From 0fd2b19d291c3462d6b09ae4308525240f5e6835 Mon Sep 17 00:00:00 2001 From: Harry Date: Thu, 16 Apr 2026 10:10:10 -0400 Subject: [PATCH 1/3] fall back to process.stdout.write when writeFileSync fails --- src/notify.ts | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/notify.ts b/src/notify.ts index e0086cd..fb8b9f1 100644 --- a/src/notify.ts +++ b/src/notify.ts @@ -4,16 +4,27 @@ import { writeFileSync } from "fs" * Send a Warp notification via OSC 777 escape sequence. * Only emits when Warp declares cli-agent protocol support, * avoiding garbled output in other terminals (and working over SSH). + * + * On Unix we write to /dev/tty so the sequence bypasses any + * stdout redirection or terminal-multiplexer capture. + * On Windows /dev/tty doesn't exist, so we fall back to + * process.stdout which works because OpenCode plugins run + * in-process (sharing the same ConPTY-connected stdout). */ function warpNotify(title: string, body: string): void { if (!process.env.WARP_CLI_AGENT_PROTOCOL_VERSION) return + const sequence = `\x1b]777;notify;${title};${body}\x07` + try { - // OSC 777 format: \033]777;notify;;<body>\007 - const sequence = `\x1b]777;notify;${title};${body}\x07` writeFileSync("/dev/tty", sequence) } catch { - // Silently ignore if /dev/tty is not available + // /dev/tty unavailable (e.g. Windows) — write to stdout instead. + try { + process.stdout.write(sequence) + } catch { + // Silently ignore if stdout is also unavailable + } } } From 98cb4e96d52e9e2f11bbfe707824c20a903fc05b Mon Sep 17 00:00:00 2001 From: Harry <harryalbert364@gmail.com> Date: Thu, 16 Apr 2026 10:28:39 -0400 Subject: [PATCH 2/3] fix package-lock and untrack node_modules/package-lock --- node_modules/.package-lock.json | 67 --------------------------------- package-lock.json | 10 +++-- 2 files changed, 6 insertions(+), 71 deletions(-) delete mode 100644 node_modules/.package-lock.json diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json deleted file mode 100644 index 190550b..0000000 --- a/node_modules/.package-lock.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "name": "opencode-warp", - "version": "0.1.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "node_modules/@opencode-ai/plugin": { - "version": "1.2.27", - "resolved": "https://registry.npmjs.org/@opencode-ai/plugin/-/plugin-1.2.27.tgz", - "integrity": "sha512-h+8Bw9v9nghMg7T+SUCTzxlIhOrsTqXW7U0HVLGQST5DjbN7uyCUM51roZWZ8LRjGxzbzFhvPnY1bj8i+ioZyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@opencode-ai/sdk": "1.2.27", - "zod": "4.1.8" - } - }, - "node_modules/@opencode-ai/sdk": { - "version": "1.2.27", - "resolved": "https://registry.npmjs.org/@opencode-ai/sdk/-/sdk-1.2.27.tgz", - "integrity": "sha512-Wk0o/I+Fo+wE3zgvlJDs8Fb67KlKqX0PrV8dK5adSDkANq6r4Z25zXJg2iOir+a8ntg3rAcpel1OY4FV/TwRUA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz", - "integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~7.18.0" - } - }, - "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici-types": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", - "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", - "dev": true, - "license": "MIT" - }, - "node_modules/zod": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.8.tgz", - "integrity": "sha512-5R1P+WwQqmmMIEACyzSvo4JXHY5WiAFHRMg+zBZKgKS+Q1viRa0C1hmUKtHltoIFKtIdki3pRxkmpP74jnNYHQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - } - } -} diff --git a/package-lock.json b/package-lock.json index fe5b916..f1bb9e2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,13 +1,17 @@ { - "name": "opencode-warp", + "name": "@warp-dot-dev/opencode-warp", "version": "0.1.4", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "opencode-warp", + "name": "@warp-dot-dev/opencode-warp", "version": "0.1.4", "license": "MIT", + "dependencies": { + "undici-types": "^7.18.2", + "zod": "^4.1.8" + }, "devDependencies": { "@opencode-ai/plugin": "^1.0.0", "@types/node": "^25.5.0", @@ -63,14 +67,12 @@ "version": "7.18.2", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", - "dev": true, "license": "MIT" }, "node_modules/zod": { "version": "4.1.8", "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.8.tgz", "integrity": "sha512-5R1P+WwQqmmMIEACyzSvo4JXHY5WiAFHRMg+zBZKgKS+Q1viRa0C1hmUKtHltoIFKtIdki3pRxkmpP74jnNYHQ==", - "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" From edc7282103b3f5baab1731a4347086438ee47ee5 Mon Sep 17 00:00:00 2001 From: Harry <harryalbert364@gmail.com> Date: Fri, 17 Apr 2026 09:24:31 -0400 Subject: [PATCH 3/3] revert some changes --- node_modules/.package-lock.json | 67 +++++++++++++++++++++++++++++++++ package-lock.json | 10 ++--- 2 files changed, 71 insertions(+), 6 deletions(-) create mode 100644 node_modules/.package-lock.json diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json new file mode 100644 index 0000000..190550b --- /dev/null +++ b/node_modules/.package-lock.json @@ -0,0 +1,67 @@ +{ + "name": "opencode-warp", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "node_modules/@opencode-ai/plugin": { + "version": "1.2.27", + "resolved": "https://registry.npmjs.org/@opencode-ai/plugin/-/plugin-1.2.27.tgz", + "integrity": "sha512-h+8Bw9v9nghMg7T+SUCTzxlIhOrsTqXW7U0HVLGQST5DjbN7uyCUM51roZWZ8LRjGxzbzFhvPnY1bj8i+ioZyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@opencode-ai/sdk": "1.2.27", + "zod": "4.1.8" + } + }, + "node_modules/@opencode-ai/sdk": { + "version": "1.2.27", + "resolved": "https://registry.npmjs.org/@opencode-ai/sdk/-/sdk-1.2.27.tgz", + "integrity": "sha512-Wk0o/I+Fo+wE3zgvlJDs8Fb67KlKqX0PrV8dK5adSDkANq6r4Z25zXJg2iOir+a8ntg3rAcpel1OY4FV/TwRUA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz", + "integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.18.0" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", + "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/zod": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.8.tgz", + "integrity": "sha512-5R1P+WwQqmmMIEACyzSvo4JXHY5WiAFHRMg+zBZKgKS+Q1viRa0C1hmUKtHltoIFKtIdki3pRxkmpP74jnNYHQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/package-lock.json b/package-lock.json index f1bb9e2..fe5b916 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,17 +1,13 @@ { - "name": "@warp-dot-dev/opencode-warp", + "name": "opencode-warp", "version": "0.1.4", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "@warp-dot-dev/opencode-warp", + "name": "opencode-warp", "version": "0.1.4", "license": "MIT", - "dependencies": { - "undici-types": "^7.18.2", - "zod": "^4.1.8" - }, "devDependencies": { "@opencode-ai/plugin": "^1.0.0", "@types/node": "^25.5.0", @@ -67,12 +63,14 @@ "version": "7.18.2", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", + "dev": true, "license": "MIT" }, "node_modules/zod": { "version": "4.1.8", "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.8.tgz", "integrity": "sha512-5R1P+WwQqmmMIEACyzSvo4JXHY5WiAFHRMg+zBZKgKS+Q1viRa0C1hmUKtHltoIFKtIdki3pRxkmpP74jnNYHQ==", + "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks"