From 15dfacaa2488c8efa0ad6a0aa8540883e55d6bd0 Mon Sep 17 00:00:00 2001
From: P-Theo
Date: Sat, 19 Sep 2026 20:21:43 +0300
Subject: [PATCH 1/2] chore: remove decorative and redundant comments
---
scripts/check-compatibility.mjs | 3 ---
src/debug.ts | 3 ---
src/options.ts | 3 ---
src/plugin.tsx | 3 ---
src/tracker.ts | 10 +++-------
tests/plugin.test.ts | 3 +--
6 files changed, 4 insertions(+), 21 deletions(-)
diff --git a/scripts/check-compatibility.mjs b/scripts/check-compatibility.mjs
index cd2cd25..2661fd9 100644
--- a/scripts/check-compatibility.mjs
+++ b/scripts/check-compatibility.mjs
@@ -1,6 +1,3 @@
-// Verifies the OpenCode 2 compatibility pin in package.json and the floor
-// stated in the README. The pinned beta is the build and test baseline: move
-// it in the same pull request as the fix or feature that needs it.
import { execFileSync } from "node:child_process"
import { readFileSync } from "node:fs"
import { resolve } from "node:path"
diff --git a/src/debug.ts b/src/debug.ts
index 254af38..f3b2b28 100644
--- a/src/debug.ts
+++ b/src/debug.ts
@@ -2,9 +2,6 @@ import { appendFileSync, lstatSync, mkdirSync, mkdtempSync } from "node:fs"
import { tmpdir } from "node:os"
import { join } from "node:path"
-// ---------------------------------------------------------------------------
-// debug
-//
// Off unless asked for: an unconfigured install must never touch disk.
//
// The log goes inside an owner-only directory instead of straight into the
diff --git a/src/options.ts b/src/options.ts
index d6efdac..26c2b08 100644
--- a/src/options.ts
+++ b/src/options.ts
@@ -1,6 +1,3 @@
-// ---------------------------------------------------------------------------
-// options
-//
// `ctx.options` is host-supplied JSON (Record), so this is a real
// parsing boundary: every value is validated and clamped, and anything invalid
// falls back to the default rather than propagating NaN into the arithmetic.
diff --git a/src/plugin.tsx b/src/plugin.tsx
index 38cc501..69c22d8 100644
--- a/src/plugin.tsx
+++ b/src/plugin.tsx
@@ -5,9 +5,6 @@ import { configureDebug, isEnvEnabled, mark } from "./debug.js"
import { TpsTracker } from "./tracker.js"
import { formatLabel, resolveOptions } from "./options.js"
-// ---------------------------------------------------------------------------
-// plugin
-
// Event payloads are taken from the SDK's own union (via the non-generic
// `data.listen` signature) rather than restated structurally: handlers are
// contravariant, so hand-written shapes keep typechecking after a field rename.
diff --git a/src/tracker.ts b/src/tracker.ts
index f950d8d..820ffe5 100644
--- a/src/tracker.ts
+++ b/src/tracker.ts
@@ -1,9 +1,6 @@
-// ---------------------------------------------------------------------------
-// tracker (UI-free)
-//
-// Measures the rate of the observable model stream: bytes to a rolling
-// estimate while output arrives, exact step usage once the host reports it,
-// and a frozen average after the run ends.
+// Measures the rate of the observable model stream (UI-free by design): bytes
+// to a rolling estimate while output arrives, exact step usage once the host
+// reports it, and a frozen average after the run ends.
import { mark } from "./debug.js"
@@ -14,7 +11,6 @@ export interface TpsConfig {
export const DEFAULT_CONFIG: TpsConfig = {
bytesPerToken: 4.75,
}
-// The frozen final average stays visible until the next prompt starts a new run.
export const BYTES_PER_TOKEN_MIN = 1
diff --git a/tests/plugin.test.ts b/tests/plugin.test.ts
index ee70360..208ed7f 100644
--- a/tests/plugin.test.ts
+++ b/tests/plugin.test.ts
@@ -6,8 +6,7 @@ import { DEBUG_DIR_PREFIX } from "../src/debug.ts"
import type { TpsOptionsInput } from "../src/options.ts"
import definition from "../src/plugin.tsx"
-// ---------------------------------------------------------------------------
-// setup wiring: the reactive path cannot be rendered headlessly, but the parts
+// Setup wiring: the reactive path cannot be rendered headlessly, but the parts
// that matter (which events are subscribed, and when the render timer runs) are
// observable through a fake context and a patched setInterval.
From 53f85f0654cdf55d54ac63a0a64dbbdc940a9fff Mon Sep 17 00:00:00 2001
From: P-Theo
Date: Sat, 19 Sep 2026 20:21:56 +0300
Subject: [PATCH 2/2] fix: support OpenCode 2.0.10
The current theme API exposes text.muted instead of text.subdued. Update the indicator and pin the development baseline to 2.0.10, including the renamed CLI executable used by CI. Document the white-text fallback observed with older themes.
---
.github/workflows/ci.yml | 2 +-
README.md | 4 +-
docs/release.md | 2 +-
package-lock.json | 852 ++++++++++++++------------------
package.json | 6 +-
scripts/check-compatibility.mjs | 14 +-
src/plugin.tsx | 2 +-
tests/entrypoint.test.tsx | 4 +-
tests/plugin.test.ts | 4 +-
9 files changed, 393 insertions(+), 497 deletions(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 40124bd..66608f1 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -30,7 +30,7 @@ jobs:
# The compatibility check needs the CLI, but running its postinstall would
# restore dependency lifecycle-script execution. The runner is Linux x64.
- name: Prepare the OpenCode CLI
- run: install -m 755 node_modules/@opencode/cli-linux-x64/bin/opencode2 node_modules/@opencode/cli/bin/opencode2.exe
+ run: install -m 755 node_modules/@opencode/cli-linux-x64/bin/opencode node_modules/@opencode/cli/bin/opencode.exe
- run: npm run check:compatibility
diff --git a/README.md b/README.md
index cd338f0..a42eb56 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,9 @@ When OpenCode reports terminal usage, the token count becomes exact while TPS re
## Install
-Built against the OpenCode 2 preview. The earliest known compatible beta is `0.0.0-beta-17595`. The TUI plugin API is still moving, so a much newer or older build may drop the indicator without an error. If the figure never appears, check your version first, then [open an issue](https://github.com/P-Theo/opencode2-tps/issues).
+Built against the OpenCode 2 preview. The earliest known compatible beta is `0.0.0-beta-17595`. If the figure never appears, check your version first, then [open an issue](https://github.com/P-Theo/opencode2-tps/issues).
+
+The current plugin release targets the theme API in OpenCode `2.0.10`, using `ctx.theme.text.muted` in place of the old `ctx.theme.text.subdued` field. On older versions that only provide `subdued`, the indicator falls back to pure white (`#ffffff`) instead of the muted theme color.
Install it with the CLI's plugin command, which adds the entry to `~/.config/opencode/cli.json` for you:
diff --git a/docs/release.md b/docs/release.md
index 6db36e5..41a0532 100644
--- a/docs/release.md
+++ b/docs/release.md
@@ -4,7 +4,7 @@ Maintainer runbook.
A path entry loads the `tui.tsx` source through the host's transform; an installed package loads the pre-built `dist/tui.js` through the `exports` subpath. Those are two different code paths, so the bundle gets tested before it goes out.
-The pinned `@opencode/*` beta is the build and test baseline. Move it in the same pull request as the fix or feature that needs it; CI validates the pin format, the README compatibility floor, and that the installed CLI reports the pinned version.
+The pinned `@opencode/*` version is the build and test baseline. Move it in the same pull request as the fix or feature that needs it; CI validates the pin format, the README compatibility floor, and that the installed CLI reports the pinned version.
A docs-only release skips steps 1 to 5. The bundle is unchanged, and CI already packs and imports the artifact on every push to `main`. Go straight to step 6. A README change that matters on the package page needs a patch release to reach it, because npmjs.com only refreshes the rendered README when a new version is published.
diff --git a/package-lock.json b/package-lock.json
index 3ba96f4..37faf06 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11,9 +11,9 @@
"devDependencies": {
"@babel/core": "^7.29.7",
"@babel/preset-typescript": "^7.29.7",
- "@opencode/cli": "0.0.0-beta-19381",
- "@opencode/plugin": "0.0.0-beta-19381",
- "@opencode/theme": "0.0.0-beta-19381",
+ "@opencode/cli": "2.0.10",
+ "@opencode/plugin": "2.0.10",
+ "@opencode/theme": "2.0.10",
"@opentui/core": "^0.5.10",
"@opentui/solid": "^0.5.10",
"@oxlint/plugins": "^1.78.0",
@@ -197,9 +197,9 @@
}
},
"node_modules/@aws-sdk/core": {
- "version": "3.977.9",
- "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.977.9.tgz",
- "integrity": "sha512-reqPFEQrZxDZpeGj4PFMepBeR5LGYHRqq/L0motTzgFkCRBA4rFdaVXDSLYyGHhxVz7sT2PDnPN9CluGSfgyJA==",
+ "version": "3.978.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.978.0.tgz",
+ "integrity": "sha512-2yX9LUmxPklVjSGTb8dfnWRJSiFQ3TeH2nn7G1mdKHTfnabzF0+gfrS8rYfLWmZrQ8A3mEcxMJjRc51dL5KWaA==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -217,13 +217,13 @@
}
},
"node_modules/@aws-sdk/credential-provider-cognito-identity": {
- "version": "3.972.69",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.972.69.tgz",
- "integrity": "sha512-vpsh9VWmQVC/nsdzf72F2yUMBOFT1aq+hoLseYV03zjVXVHkjqSNJskFRKPFxc3MRFrHNbSSmOwsbYE15u9ecw==",
+ "version": "3.972.70",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.972.70.tgz",
+ "integrity": "sha512-KlU89w6Hmb4oZB5zFz/MNIhPOBQGVE7KrDr3BTPCwC4W+q566YH8tGNsAML781LKATtqmNCGFry8XvsJ2XPusg==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/nested-clients": "^3.997.44",
+ "@aws-sdk/nested-clients": "^3.997.45",
"@aws-sdk/types": "^3.974.5",
"@smithy/core": "^3.33.3",
"@smithy/types": "^4.17.2",
@@ -234,13 +234,13 @@
}
},
"node_modules/@aws-sdk/credential-provider-env": {
- "version": "3.972.70",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.70.tgz",
- "integrity": "sha512-H404B7dJl2mCrBqahDEYsanB0xhdDp6tXnXcTUnXmmpy2Q3J0Ho0bUajZ2jr/RdwzCyS59Gi8xXIFwPLGBl6Uw==",
+ "version": "3.972.71",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.71.tgz",
+ "integrity": "sha512-JN+JHruYZw3GUZB8YGAlDk4wTDPOEAEEdEzj5nS0xodWR4smzHsN7PnK2j6IeOsDIj2aqua5DSbhXl9Gtf90FQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "^3.977.9",
+ "@aws-sdk/core": "^3.978.0",
"@aws-sdk/types": "^3.974.5",
"@smithy/core": "^3.33.3",
"@smithy/types": "^4.17.2",
@@ -251,13 +251,13 @@
}
},
"node_modules/@aws-sdk/credential-provider-http": {
- "version": "3.972.72",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.72.tgz",
- "integrity": "sha512-X98zYOrVOeuosCX+6ktf29FC2N2GHPLia7qv6mzPzTc+RPAuHWCDS++Z6JK7eGYqb/v6uaW7bAXaOvDBfol+0w==",
+ "version": "3.972.73",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.73.tgz",
+ "integrity": "sha512-uyYYnJOnlis8uQzaYGPd7N1JoioCoNpXgnkXYixsWJXHXgXyYi8WXJSDfofxJeWfQIGWLe2Nwyq60Uc7MZdVOg==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "^3.977.9",
+ "@aws-sdk/core": "^3.978.0",
"@aws-sdk/types": "^3.974.5",
"@smithy/core": "^3.33.3",
"@smithy/fetch-http-handler": "^5.7.2",
@@ -270,20 +270,20 @@
}
},
"node_modules/@aws-sdk/credential-provider-ini": {
- "version": "3.973.15",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.973.15.tgz",
- "integrity": "sha512-Rykg6s5ceBuynMOGWgoowO4N+27JfnqXAnVaSunZl0hOO1XodSrxGNz6sCEbnmS0lAfQZDKyb3fbr46gSuv6Sg==",
+ "version": "3.973.16",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.973.16.tgz",
+ "integrity": "sha512-i++ly+0Uxa+u3ebSSyr0S/3CFhFJDxCXT3+Zj+mW2bXenEx5bKGCdTIKFu39SgXBNhWDjex/8cXUx9MUTMCrTw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "^3.977.9",
- "@aws-sdk/credential-provider-env": "^3.972.70",
- "@aws-sdk/credential-provider-http": "^3.972.72",
- "@aws-sdk/credential-provider-login": "^3.972.77",
- "@aws-sdk/credential-provider-process": "^3.972.70",
- "@aws-sdk/credential-provider-sso": "^3.973.14",
- "@aws-sdk/credential-provider-web-identity": "^3.972.76",
- "@aws-sdk/nested-clients": "^3.997.44",
+ "@aws-sdk/core": "^3.978.0",
+ "@aws-sdk/credential-provider-env": "^3.972.71",
+ "@aws-sdk/credential-provider-http": "^3.972.73",
+ "@aws-sdk/credential-provider-login": "^3.972.78",
+ "@aws-sdk/credential-provider-process": "^3.972.71",
+ "@aws-sdk/credential-provider-sso": "^3.973.15",
+ "@aws-sdk/credential-provider-web-identity": "^3.972.77",
+ "@aws-sdk/nested-clients": "^3.997.45",
"@aws-sdk/types": "^3.974.5",
"@smithy/core": "^3.33.3",
"@smithy/credential-provider-imds": "^4.4.16",
@@ -295,14 +295,14 @@
}
},
"node_modules/@aws-sdk/credential-provider-login": {
- "version": "3.972.77",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.77.tgz",
- "integrity": "sha512-Jb59xfEISoN5mmbnA+HYqdtrSX3CgCtJoof+V5D8/TgUI56W63GEEd5Y58WijU3Ou6+WEgaLD1feVzaRXV5IDQ==",
+ "version": "3.972.78",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.78.tgz",
+ "integrity": "sha512-eUtswnXu0+Ii9ieRK+0L7aPFV3Z/dnW2VntJzjBP9xs8s+8p5nBNuymIXtXwZ+5r5+XJP3e32nMkuZ/r0HozEA==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "^3.977.9",
- "@aws-sdk/nested-clients": "^3.997.44",
+ "@aws-sdk/core": "^3.978.0",
+ "@aws-sdk/nested-clients": "^3.997.45",
"@aws-sdk/types": "^3.974.5",
"@smithy/core": "^3.33.3",
"@smithy/types": "^4.17.2",
@@ -313,18 +313,18 @@
}
},
"node_modules/@aws-sdk/credential-provider-node": {
- "version": "3.972.82",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.82.tgz",
- "integrity": "sha512-znDkEOGXB8W3kG1LJUKP3foBZY/9qLM0eil/DxWXSp37XsdsRLQHE/d/OaCGGVgKpA6znR38h/+INk8do1FjiA==",
+ "version": "3.972.83",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.83.tgz",
+ "integrity": "sha512-jdso7ejzfRnatxMUZK4S/U6KbaDPCvfIV4XL+IQAPFDBt5rj5Fq595euqlK8Le4lNCMFR9oUpt+1l0aMgaayOQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/credential-provider-env": "^3.972.70",
- "@aws-sdk/credential-provider-http": "^3.972.72",
- "@aws-sdk/credential-provider-ini": "^3.973.15",
- "@aws-sdk/credential-provider-process": "^3.972.70",
- "@aws-sdk/credential-provider-sso": "^3.973.14",
- "@aws-sdk/credential-provider-web-identity": "^3.972.76",
+ "@aws-sdk/credential-provider-env": "^3.972.71",
+ "@aws-sdk/credential-provider-http": "^3.972.73",
+ "@aws-sdk/credential-provider-ini": "^3.973.16",
+ "@aws-sdk/credential-provider-process": "^3.972.71",
+ "@aws-sdk/credential-provider-sso": "^3.973.15",
+ "@aws-sdk/credential-provider-web-identity": "^3.972.77",
"@aws-sdk/types": "^3.974.5",
"@smithy/core": "^3.33.3",
"@smithy/credential-provider-imds": "^4.4.16",
@@ -336,13 +336,13 @@
}
},
"node_modules/@aws-sdk/credential-provider-process": {
- "version": "3.972.70",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.70.tgz",
- "integrity": "sha512-2ry03fGRJr4sV3jI+ocjj5JqALnFD6ymM5KiNCDZMvq8bX2GSbE0vji4aM43TVCl2nXqqLRZaUxdq/KeWRAY4Q==",
+ "version": "3.972.71",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.71.tgz",
+ "integrity": "sha512-lYmXJa4gvq4xN1lrT5NiP5vIYYKcGWAdj8y+8o6dlcateB5eF3Dn8DtmjjHKfMBrTPAMr2pebIiX/UOj8c1/UA==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "^3.977.9",
+ "@aws-sdk/core": "^3.978.0",
"@aws-sdk/types": "^3.974.5",
"@smithy/core": "^3.33.3",
"@smithy/types": "^4.17.2",
@@ -353,15 +353,15 @@
}
},
"node_modules/@aws-sdk/credential-provider-sso": {
- "version": "3.973.14",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.973.14.tgz",
- "integrity": "sha512-jkhg/8ocAAoc0RFyLMhCw+/zZh7gystQgd4F4hznNa8P4Cc501PQmxd+jGLiMHodPJ+7Zv/3znM62gZojyasmA==",
+ "version": "3.973.15",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.973.15.tgz",
+ "integrity": "sha512-6Jhcf4v0pSFdjk1EW2kvzuEBKD+UZ2uNcHUIglKKLndD20YhvkL2kdmDOV5/j4mYuWWwe/a1FQ1aomU86/Cg5Q==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "^3.977.9",
- "@aws-sdk/nested-clients": "^3.997.44",
- "@aws-sdk/token-providers": "3.1116.0",
+ "@aws-sdk/core": "^3.978.0",
+ "@aws-sdk/nested-clients": "^3.997.45",
+ "@aws-sdk/token-providers": "3.1129.0",
"@aws-sdk/types": "^3.974.5",
"@smithy/core": "^3.33.3",
"@smithy/types": "^4.17.2",
@@ -372,14 +372,14 @@
}
},
"node_modules/@aws-sdk/credential-provider-web-identity": {
- "version": "3.972.76",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.76.tgz",
- "integrity": "sha512-d3AGyVu759PGr35mEB2s22xxlNEA5rpdxtSPJthfPFJvoQ8dt357iVPECqWfUxXp1toJAvKmbtcIYVGigaGsCA==",
+ "version": "3.972.77",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.77.tgz",
+ "integrity": "sha512-uylIQSUWpfLuH2LovxEEfwzJGM/SabLOfLMg6YXu/E8jJEKUdpdILCVCQCdFvHyu/7dLJOHPMfrSwduxO56NkQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "^3.977.9",
- "@aws-sdk/nested-clients": "^3.997.44",
+ "@aws-sdk/core": "^3.978.0",
+ "@aws-sdk/nested-clients": "^3.997.45",
"@aws-sdk/types": "^3.974.5",
"@smithy/core": "^3.33.3",
"@smithy/types": "^4.17.2",
@@ -419,13 +419,13 @@
}
},
"node_modules/@aws-sdk/nested-clients": {
- "version": "3.997.44",
- "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.997.44.tgz",
- "integrity": "sha512-NhEgryjlBF9w38ZXqGymQV28IhkYa1mKhlbYnqIis57AYwWGVYfUPgg/qC2rLRqOUfblxx++irvju10kVTa8Vw==",
+ "version": "3.997.45",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.997.45.tgz",
+ "integrity": "sha512-mooq9Q+jLa18VoM7HouczmslZU60iiB0aKc/Ztnq/luIL1ud0z4DnYprLR/ZO1gp331S9tJctM1HZr7u6YKBXQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "^3.977.9",
+ "@aws-sdk/core": "^3.978.0",
"@aws-sdk/signature-v4-multi-region": "^3.996.46",
"@aws-sdk/types": "^3.974.5",
"@smithy/core": "^3.33.3",
@@ -455,14 +455,14 @@
}
},
"node_modules/@aws-sdk/token-providers": {
- "version": "3.1116.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1116.0.tgz",
- "integrity": "sha512-ygIivKqh8aHzNkucOCXHyIBgBpLPfrSI0mCqXF+vLBsPTUKqj0VSqAY0GFPe7lQl4HntjOcQ+KSyS7oUV2C54Q==",
+ "version": "3.1129.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1129.0.tgz",
+ "integrity": "sha512-Sbl3rpzQdsG4ZK2zh0JWUYyZPKKorJlVOddA2T0DVbKJFrsW8J6wgnslxxUH04+WaBMr4A1HzJZvZX0xUvkniA==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "^3.977.9",
- "@aws-sdk/nested-clients": "^3.997.44",
+ "@aws-sdk/core": "^3.978.0",
+ "@aws-sdk/nested-clients": "^3.997.45",
"@aws-sdk/types": "^3.974.5",
"@smithy/core": "^3.33.3",
"@smithy/types": "^4.17.2",
@@ -956,6 +956,90 @@
"node": ">=6.9.0"
}
},
+ "node_modules/@effect/opentelemetry": {
+ "version": "4.0.0-rc.112",
+ "resolved": "https://registry.npmjs.org/@effect/opentelemetry/-/opentelemetry-4.0.0-rc.112.tgz",
+ "integrity": "sha512-OTRv1DxTHUmnakgJ6XVM8wVgF1KgZH4UXnOemwSLUwUjXO+RCikzF8oR/rlVmOGq81KtQzj1URM4M4nchlQOuQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18.0.0"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.9.0 <2.0.0",
+ "@opentelemetry/api-logs": ">=0.203.0 <0.300.0",
+ "@opentelemetry/resources": ">=2.0.0 <3.0.0",
+ "@opentelemetry/sdk-logs": ">=0.203.0 <0.300.0",
+ "@opentelemetry/sdk-metrics": ">=2.0.0 <3.0.0",
+ "@opentelemetry/sdk-trace-base": ">=2.0.0 <3.0.0",
+ "@opentelemetry/sdk-trace-node": ">=2.0.0 <3.0.0",
+ "@opentelemetry/sdk-trace-web": ">=2.0.0 <3.0.0",
+ "@opentelemetry/semantic-conventions": ">=1.33.0 <2.0.0",
+ "effect": "^4.0.0-rc.112"
+ },
+ "peerDependenciesMeta": {
+ "@opentelemetry/api": {
+ "optional": true
+ },
+ "@opentelemetry/api-logs": {
+ "optional": true
+ },
+ "@opentelemetry/resources": {
+ "optional": true
+ },
+ "@opentelemetry/sdk-logs": {
+ "optional": true
+ },
+ "@opentelemetry/sdk-metrics": {
+ "optional": true
+ },
+ "@opentelemetry/sdk-trace-base": {
+ "optional": true
+ },
+ "@opentelemetry/sdk-trace-node": {
+ "optional": true
+ },
+ "@opentelemetry/sdk-trace-web": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@effect/platform-node": {
+ "version": "4.0.0-rc.112",
+ "resolved": "https://registry.npmjs.org/@effect/platform-node/-/platform-node-4.0.0-rc.112.tgz",
+ "integrity": "sha512-/BMAcdNGQQskLmI0Zoa95KfTZkr9HV9N4NSxaSrusG6GeW6Ulp9KvZ+Rlaiw8lnOt43CXjFLdfll5/k5rxL4hQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@effect/platform-node-shared": "^4.0.0-rc.112",
+ "mime": "^4.1.0",
+ "undici": "^8.10.0"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ },
+ "peerDependencies": {
+ "effect": "^4.0.0-rc.112",
+ "redis": ">=5.0.0 <7.0.0"
+ }
+ },
+ "node_modules/@effect/platform-node-shared": {
+ "version": "4.0.0-rc.112",
+ "resolved": "https://registry.npmjs.org/@effect/platform-node-shared/-/platform-node-shared-4.0.0-rc.112.tgz",
+ "integrity": "sha512-ttjz0xKamFN7vL8pNDYVwddJLjZvqKePc05djlz2VcdaKbLsnYbtMnL1rbOfHgEnIUSHGh7FkjaN4DM1Ov81sQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/ws": "^8.18.1",
+ "ws": "^8.21.3"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ },
+ "peerDependencies": {
+ "effect": "^4.0.0-rc.112"
+ }
+ },
"node_modules/@gar/promise-retry": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@gar/promise-retry/-/promise-retry-1.0.3.tgz",
@@ -1191,9 +1275,9 @@
}
},
"node_modules/@npmcli/agent/node_modules/lru-cache": {
- "version": "11.5.2",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz",
- "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==",
+ "version": "11.5.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz",
+ "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==",
"dev": true,
"license": "BlueOak-1.0.0",
"engines": {
@@ -1259,9 +1343,9 @@
}
},
"node_modules/@npmcli/arborist/node_modules/brace-expansion": {
- "version": "5.0.9",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz",
- "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==",
+ "version": "5.0.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz",
+ "integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1272,9 +1356,9 @@
}
},
"node_modules/@npmcli/arborist/node_modules/lru-cache": {
- "version": "11.5.2",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz",
- "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==",
+ "version": "11.5.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz",
+ "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==",
"dev": true,
"license": "BlueOak-1.0.0",
"engines": {
@@ -1389,20 +1473,10 @@
"node": "^20.17.0 || >=22.9.0"
}
},
- "node_modules/@npmcli/git/node_modules/isexe": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz",
- "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "engines": {
- "node": ">=20"
- }
- },
"node_modules/@npmcli/git/node_modules/lru-cache": {
- "version": "11.5.2",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz",
- "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==",
+ "version": "11.5.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz",
+ "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==",
"dev": true,
"license": "BlueOak-1.0.0",
"engines": {
@@ -1422,22 +1496,6 @@
"node": ">=10"
}
},
- "node_modules/@npmcli/git/node_modules/which": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz",
- "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "isexe": "^4.0.0"
- },
- "bin": {
- "node-which": "bin/which.js"
- },
- "engines": {
- "node": "^20.17.0 || >=22.9.0"
- }
- },
"node_modules/@npmcli/installed-package-contents": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-4.0.0.tgz",
@@ -1482,9 +1540,9 @@
}
},
"node_modules/@npmcli/map-workspaces/node_modules/brace-expansion": {
- "version": "5.0.9",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz",
- "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==",
+ "version": "5.0.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz",
+ "integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1513,9 +1571,9 @@
}
},
"node_modules/@npmcli/map-workspaces/node_modules/lru-cache": {
- "version": "11.5.2",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz",
- "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==",
+ "version": "11.5.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz",
+ "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==",
"dev": true,
"license": "BlueOak-1.0.0",
"engines": {
@@ -1645,9 +1703,9 @@
}
},
"node_modules/@npmcli/package-json/node_modules/brace-expansion": {
- "version": "5.0.9",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz",
- "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==",
+ "version": "5.0.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz",
+ "integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1676,9 +1734,9 @@
}
},
"node_modules/@npmcli/package-json/node_modules/lru-cache": {
- "version": "11.5.2",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz",
- "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==",
+ "version": "11.5.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz",
+ "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==",
"dev": true,
"license": "BlueOak-1.0.0",
"engines": {
@@ -1754,32 +1812,6 @@
"node": "^20.17.0 || >=22.9.0"
}
},
- "node_modules/@npmcli/promise-spawn/node_modules/isexe": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz",
- "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "engines": {
- "node": ">=20"
- }
- },
- "node_modules/@npmcli/promise-spawn/node_modules/which": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz",
- "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "isexe": "^4.0.0"
- },
- "bin": {
- "node-which": "bin/which.js"
- },
- "engines": {
- "node": "^20.17.0 || >=22.9.0"
- }
- },
"node_modules/@npmcli/query": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/@npmcli/query/-/query-5.0.0.tgz",
@@ -1821,14 +1853,14 @@
}
},
"node_modules/@opencode/ai": {
- "version": "0.0.0-beta-19381",
- "resolved": "https://registry.npmjs.org/@opencode/ai/-/ai-0.0.0-beta-19381.tgz",
- "integrity": "sha512-22V30RSke8NUKWYuDNwkKnO1mpzO1ouIqpOq70lUYB5A1a/UCLHNvAS76/2B+rdiVl0Y8jIPMkZ1BdV6VdZ+SA==",
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/@opencode/ai/-/ai-2.0.10.tgz",
+ "integrity": "sha512-2cTzFtglMeAip/GyS3TPnJ9yO0FPy4zvTEXFKOXTksDL4SOoipKhykRFQy9b7pjncTlpDukQKlNbvLcG/1HPMA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@aws-sdk/credential-providers": "3.1057.0",
- "@opencode/schema": "0.0.0-beta-19381",
+ "@opencode/schema": "2.0.10",
"@smithy/eventstream-codec": "4.2.14",
"@smithy/util-utf8": "4.2.2",
"aws4fetch": "1.0.20",
@@ -1836,21 +1868,10 @@
"google-auth-library": "10.5.0"
}
},
- "node_modules/@opencode/ai/node_modules/effect": {
- "version": "4.0.0-rc.112",
- "resolved": "https://registry.npmjs.org/effect/-/effect-4.0.0-rc.112.tgz",
- "integrity": "sha512-wXxwuh1Ywnv4cPRM3Wfa0vDwuOHnZ1TsTgHJkG9XgzND6inhBH9n1vBxhg3iIXOia/OrpmvVmd3lrD4vq6bF3A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fast-check": "^4.9.0",
- "msgpackr": "^2.0.5"
- }
- },
"node_modules/@opencode/cli": {
- "version": "0.0.0-beta-19381",
- "resolved": "https://registry.npmjs.org/@opencode/cli/-/cli-0.0.0-beta-19381.tgz",
- "integrity": "sha512-Gr7uLcwMXSmufxYFkaP95aHG2huLKRrQlgtiSGineIhxJjr5XRELUpPy6QuQiPHVOK/LPG7lS+xIyoskb/vHcA==",
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/@opencode/cli/-/cli-2.0.10.tgz",
+ "integrity": "sha512-WYHnl1o1hfXKvrr54TsXTKQUrONYbEr8c7m7E0jMFe1Z+LBnwaNu5JaTpgAEIaO03DEws2ifCUhjS7A+ge2q1Q==",
"cpu": [
"arm64",
"x64"
@@ -1864,27 +1885,28 @@
"win32"
],
"bin": {
- "opencode2": "bin/opencode2.exe"
+ "opencode": "bin/opencode.exe",
+ "opencode2": "bin/opencode.exe"
},
"optionalDependencies": {
- "@opencode/cli-darwin-arm64": "0.0.0-beta-19381",
- "@opencode/cli-darwin-x64": "0.0.0-beta-19381",
- "@opencode/cli-darwin-x64-baseline": "0.0.0-beta-19381",
- "@opencode/cli-linux-arm64": "0.0.0-beta-19381",
- "@opencode/cli-linux-arm64-musl": "0.0.0-beta-19381",
- "@opencode/cli-linux-x64": "0.0.0-beta-19381",
- "@opencode/cli-linux-x64-baseline": "0.0.0-beta-19381",
- "@opencode/cli-linux-x64-baseline-musl": "0.0.0-beta-19381",
- "@opencode/cli-linux-x64-musl": "0.0.0-beta-19381",
- "@opencode/cli-windows-arm64": "0.0.0-beta-19381",
- "@opencode/cli-windows-x64": "0.0.0-beta-19381",
- "@opencode/cli-windows-x64-baseline": "0.0.0-beta-19381"
+ "@opencode/cli-darwin-arm64": "2.0.10",
+ "@opencode/cli-darwin-x64": "2.0.10",
+ "@opencode/cli-darwin-x64-baseline": "2.0.10",
+ "@opencode/cli-linux-arm64": "2.0.10",
+ "@opencode/cli-linux-arm64-musl": "2.0.10",
+ "@opencode/cli-linux-x64": "2.0.10",
+ "@opencode/cli-linux-x64-baseline": "2.0.10",
+ "@opencode/cli-linux-x64-baseline-musl": "2.0.10",
+ "@opencode/cli-linux-x64-musl": "2.0.10",
+ "@opencode/cli-windows-arm64": "2.0.10",
+ "@opencode/cli-windows-x64": "2.0.10",
+ "@opencode/cli-windows-x64-baseline": "2.0.10"
}
},
"node_modules/@opencode/cli-darwin-arm64": {
- "version": "0.0.0-beta-19381",
- "resolved": "https://registry.npmjs.org/@opencode/cli-darwin-arm64/-/cli-darwin-arm64-0.0.0-beta-19381.tgz",
- "integrity": "sha512-RXz/EmI+919+0M8/quWWWcuE3uw1utBurYRX+TRf2YHoW62Fpcr1OOQMjsrWcS23uoJrW9hUxZoZCHA10nDBnA==",
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/@opencode/cli-darwin-arm64/-/cli-darwin-arm64-2.0.10.tgz",
+ "integrity": "sha512-rLL4TmDEeiQ31jFsFzJQ+go/avasnlXa33U4mW9J2E1vN2MiLGOeaQzlOYQ4gE72Bbkrp2Pl/JUx1JJCiK2l3Q==",
"cpu": [
"arm64"
],
@@ -1896,9 +1918,9 @@
]
},
"node_modules/@opencode/cli-darwin-x64": {
- "version": "0.0.0-beta-19381",
- "resolved": "https://registry.npmjs.org/@opencode/cli-darwin-x64/-/cli-darwin-x64-0.0.0-beta-19381.tgz",
- "integrity": "sha512-+k5JtJ1BGnQjohxld/LCsPyBHvhAOzi2HgQY7unQG2NBFgMgT5MHO53hlDYxeKXaOcBUAqmOEIWMGu76aEAOuQ==",
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/@opencode/cli-darwin-x64/-/cli-darwin-x64-2.0.10.tgz",
+ "integrity": "sha512-Za7RHOuiOJZWETC17IfI3dLpAda0AN56PNz0zVW5GXr9XpRTkNwzKhoVmWzDToi9jD1iW9eCq8SkzOxZ+QIlWg==",
"cpu": [
"x64"
],
@@ -1910,9 +1932,9 @@
]
},
"node_modules/@opencode/cli-darwin-x64-baseline": {
- "version": "0.0.0-beta-19381",
- "resolved": "https://registry.npmjs.org/@opencode/cli-darwin-x64-baseline/-/cli-darwin-x64-baseline-0.0.0-beta-19381.tgz",
- "integrity": "sha512-mTgS5sgnGBct7EnbI4OABfnj6x5d5zwwO2ZVjGLo8LQK30a28uMwxACFd5SL6sKdawKkY2QWaT8Du7IMZWn7Wg==",
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/@opencode/cli-darwin-x64-baseline/-/cli-darwin-x64-baseline-2.0.10.tgz",
+ "integrity": "sha512-tsRo4XFz0hbE+nA1BuhoDuLeQGAAYilnypzUcW4/mRS8ur/go17xZjSOdxV1e0NzsS0qGuQqe5ykC1vWRzH8WQ==",
"cpu": [
"x64"
],
@@ -1924,9 +1946,9 @@
]
},
"node_modules/@opencode/cli-linux-arm64": {
- "version": "0.0.0-beta-19381",
- "resolved": "https://registry.npmjs.org/@opencode/cli-linux-arm64/-/cli-linux-arm64-0.0.0-beta-19381.tgz",
- "integrity": "sha512-heNFpG4ADKAVsAy7gfBz+Hmm5JbMHVAT1ViwaDChpQWsYnGMLCvyXzxvgu9kEPZKP1d31ry1nDUoGewvy3PlqA==",
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/@opencode/cli-linux-arm64/-/cli-linux-arm64-2.0.10.tgz",
+ "integrity": "sha512-hNX2+FFfjFkszz1yvYzqmsFqGj0wW9Hk2mteQPsePFx11N0/2Fga2o6PV+3+P6GHZrgCmLAv/3JfYRZS2cTMpA==",
"cpu": [
"arm64"
],
@@ -1938,9 +1960,9 @@
]
},
"node_modules/@opencode/cli-linux-arm64-musl": {
- "version": "0.0.0-beta-19381",
- "resolved": "https://registry.npmjs.org/@opencode/cli-linux-arm64-musl/-/cli-linux-arm64-musl-0.0.0-beta-19381.tgz",
- "integrity": "sha512-Wo2eJVwgWpXHHSAi6V6Dmng/3n94LimVsDHLkznKPtMnoTD0vFl3n0Z81x2gdiV814aFB1S4Ga6AYrDMHUwZDQ==",
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/@opencode/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.0.10.tgz",
+ "integrity": "sha512-0nqan991GzKhQcDhhKjV61S/CEKNNoEaIQo0SjkXIKBmRD2j1r5B6c/h1ATLJrL7/J/XPv+Nbm8T5O7Oms7Hzg==",
"cpu": [
"arm64"
],
@@ -1952,9 +1974,9 @@
]
},
"node_modules/@opencode/cli-linux-x64": {
- "version": "0.0.0-beta-19381",
- "resolved": "https://registry.npmjs.org/@opencode/cli-linux-x64/-/cli-linux-x64-0.0.0-beta-19381.tgz",
- "integrity": "sha512-COoB8ng1LO09lb3Ep4mJ2B1n4ybckVFnsUEfUjlfhkuLa1g0JuAwMlOiBrSku0iKG7+GIeRCNxgVN3we/49dWQ==",
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/@opencode/cli-linux-x64/-/cli-linux-x64-2.0.10.tgz",
+ "integrity": "sha512-HEpZUlm4VcjlS9xV1B6/5tDoFsqMO0aQ8SvycpHMjEvuBUtXNuCPM96eF1WEVLv4dSeLkha1nJdwMA7ubOSyPQ==",
"cpu": [
"x64"
],
@@ -1966,9 +1988,9 @@
]
},
"node_modules/@opencode/cli-linux-x64-baseline": {
- "version": "0.0.0-beta-19381",
- "resolved": "https://registry.npmjs.org/@opencode/cli-linux-x64-baseline/-/cli-linux-x64-baseline-0.0.0-beta-19381.tgz",
- "integrity": "sha512-f8UNECSrBcGT0wIPYNpIS5pEnU33agzYYIMf1EHHct4Ql0fllqeJqX4q8NceYf7E+7uT2ht2aQDDez0uCkPZFQ==",
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/@opencode/cli-linux-x64-baseline/-/cli-linux-x64-baseline-2.0.10.tgz",
+ "integrity": "sha512-f+sZBhT7WkWZlkOYo+AQabPCogBy2TKfy0ynIasHuGHVgbNvU1J82NOm2sEVoAmnvuEGj6E5hE731FMb8Zu5xQ==",
"cpu": [
"x64"
],
@@ -1980,9 +2002,9 @@
]
},
"node_modules/@opencode/cli-linux-x64-baseline-musl": {
- "version": "0.0.0-beta-19381",
- "resolved": "https://registry.npmjs.org/@opencode/cli-linux-x64-baseline-musl/-/cli-linux-x64-baseline-musl-0.0.0-beta-19381.tgz",
- "integrity": "sha512-HjFDCy2QVvTQXLEIUuk78wcbOBkqjYV1qpy4YcpUQ4Q9ZKSpWLe9i9KBY1P7oEGd33I4WvyJFrS0ZpZXyKFv3g==",
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/@opencode/cli-linux-x64-baseline-musl/-/cli-linux-x64-baseline-musl-2.0.10.tgz",
+ "integrity": "sha512-7mdY390dRQKYy7oITJ4x7EL+bzUIGglKNAycF16kfLEtXavh5sqqB9PBus5Nxxw6XazxWR2Z8YnwVVivOSPs7A==",
"cpu": [
"x64"
],
@@ -1994,9 +2016,9 @@
]
},
"node_modules/@opencode/cli-linux-x64-musl": {
- "version": "0.0.0-beta-19381",
- "resolved": "https://registry.npmjs.org/@opencode/cli-linux-x64-musl/-/cli-linux-x64-musl-0.0.0-beta-19381.tgz",
- "integrity": "sha512-6TDba09UZo0kBlS2gB5bM+dlQeMv9fj0BwLwbcKCs8XzcMRWJlmK3ad7erwI4KR90NiyU+7EC7nd/vq+OK6LVA==",
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/@opencode/cli-linux-x64-musl/-/cli-linux-x64-musl-2.0.10.tgz",
+ "integrity": "sha512-qgJvcdxyAubB6uwZi6kpSIZZyV22YI51QVRSE2Oswjh+RtRJOngOpjeRXQkEBTe+eau2xTrDJX21ogdnSErlPA==",
"cpu": [
"x64"
],
@@ -2008,9 +2030,9 @@
]
},
"node_modules/@opencode/cli-windows-arm64": {
- "version": "0.0.0-beta-19381",
- "resolved": "https://registry.npmjs.org/@opencode/cli-windows-arm64/-/cli-windows-arm64-0.0.0-beta-19381.tgz",
- "integrity": "sha512-Xas1LJn9PAa3veUktyg1n5qOJc61sOvbXRFgBENNmnggvsoFjsQxAelEtm6NlviFJp2i+g2PJnegjfoLazUS8w==",
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/@opencode/cli-windows-arm64/-/cli-windows-arm64-2.0.10.tgz",
+ "integrity": "sha512-RAaBLSxE6bCf0I92q+utq/WDPiet3OaHrhyVI+PVbplPIDmRU5d1EgKiQluzQxMGvhSztWbvCFCrIxd5N2Fu0g==",
"cpu": [
"arm64"
],
@@ -2022,9 +2044,9 @@
]
},
"node_modules/@opencode/cli-windows-x64": {
- "version": "0.0.0-beta-19381",
- "resolved": "https://registry.npmjs.org/@opencode/cli-windows-x64/-/cli-windows-x64-0.0.0-beta-19381.tgz",
- "integrity": "sha512-EFS147FIEgeOsXQ2tMcbxbw+A8dMali99vDHTGOfVg719aKe4WKrkxIn8rAzBPHEpT9QHEwxGvKr6j1dLvOO6A==",
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/@opencode/cli-windows-x64/-/cli-windows-x64-2.0.10.tgz",
+ "integrity": "sha512-oUPT8mpyhIXZYQtx1yHPebEqzCUNzy8lvNqZJoQoJu6l7nz2N/XZSpiOP5HjYjY+CY6uUeIDYcY7cGN7HF+LEg==",
"cpu": [
"x64"
],
@@ -2036,9 +2058,9 @@
]
},
"node_modules/@opencode/cli-windows-x64-baseline": {
- "version": "0.0.0-beta-19381",
- "resolved": "https://registry.npmjs.org/@opencode/cli-windows-x64-baseline/-/cli-windows-x64-baseline-0.0.0-beta-19381.tgz",
- "integrity": "sha512-tDw357bOzIsZUXSEiyjZvK6abv01soIWmnmsiw24+KlkgNNtKAAtu+1T2xmB9S7JKd7/+g6nHStdGEmwU0yFVg==",
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/@opencode/cli-windows-x64-baseline/-/cli-windows-x64-baseline-2.0.10.tgz",
+ "integrity": "sha512-e7j3rqDXe5pzKe+Ql36E3IZZZJGT6+KM5SlzsJLNq9QHmZpZRh6ZTmtQIp2iJLAmAVn+329aEIhFfkbUrMKpSA==",
"cpu": [
"x64"
],
@@ -2049,37 +2071,22 @@
"win32"
]
},
- "node_modules/@opencode/plugin": {
- "version": "0.0.0-beta-19381",
- "resolved": "https://registry.npmjs.org/@opencode/plugin/-/plugin-0.0.0-beta-19381.tgz",
- "integrity": "sha512-xs71eTix7Y16bob6PQvgW7XS5FqhKWeHnuChpMYh4gxhUG91MiuqwP/zOUxpny+JIYetslT/T76ua92mqMhBDg==",
+ "node_modules/@opencode/client": {
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/@opencode/client/-/client-2.0.10.tgz",
+ "integrity": "sha512-Pz4FD6jVtfZYX97AghVTM+cedi3HfI+U6gg/we5Luf08L85TewKsSXR4jHOZTCvggl0vACTquz1/hOjsJWE0Sg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@ai-sdk/provider": "3.0.8",
- "@opencode/ai": "0.0.0-beta-19381",
- "@opencode/client": "0.0.0-beta-19381",
- "@opencode/protocol": "0.0.0-beta-19381",
- "@opencode/schema": "0.0.0-beta-19381",
- "@opencode/util": "0.0.0-beta-19381",
- "@standard-schema/spec": "1.1.0",
- "effect": "4.0.0-rc.112",
- "zod": "4.1.8"
+ "@opencode/protocol": "2.0.10",
+ "@opencode/schema": "2.0.10"
},
"peerDependencies": {
- "@opencode/theme": "0.0.0-beta-19381",
- "@opentui/core": ">=0.5.10",
- "@opentui/solid": ">=0.5.10",
+ "effect": "4.0.0-rc.112",
"solid-js": ">=1.9.0"
},
"peerDependenciesMeta": {
- "@opencode/theme": {
- "optional": true
- },
- "@opentui/core": {
- "optional": true
- },
- "@opentui/solid": {
+ "effect": {
"optional": true
},
"solid-js": {
@@ -2087,22 +2094,37 @@
}
}
},
- "node_modules/@opencode/plugin/node_modules/@opencode/client": {
- "version": "0.0.0-beta-19381",
- "resolved": "https://registry.npmjs.org/@opencode/client/-/client-0.0.0-beta-19381.tgz",
- "integrity": "sha512-VIJstFeUC/XceLqQK5Mt3tHEl5OlsUF/M+wkhkhbLMpFx5F1J5pwc7jdMaXBJVMJzF6MFy233SzHH2vI8ALBjQ==",
+ "node_modules/@opencode/plugin": {
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/@opencode/plugin/-/plugin-2.0.10.tgz",
+ "integrity": "sha512-9CQDhp9fZW01VOkQnnAdricS3efGG6bQULa82lc4RF3kGQ9ifeDsyIoDSxMrUoWPBLDdRQMqZ/CMw9sKVal0kw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@opencode/protocol": "0.0.0-beta-19381",
- "@opencode/schema": "0.0.0-beta-19381"
+ "@ai-sdk/provider": "3.0.8",
+ "@opencode/ai": "2.0.10",
+ "@opencode/client": "2.0.10",
+ "@opencode/protocol": "2.0.10",
+ "@opencode/schema": "2.0.10",
+ "@opencode/util": "2.0.10",
+ "@standard-schema/spec": "1.1.0",
+ "effect": "4.0.0-rc.112",
+ "zod": "4.1.8"
},
"peerDependencies": {
- "effect": "4.0.0-rc.112",
+ "@opencode/theme": "2.0.10",
+ "@opentui/core": ">=0.5.10",
+ "@opentui/solid": ">=0.5.10",
"solid-js": ">=1.9.0"
},
"peerDependenciesMeta": {
- "effect": {
+ "@opencode/theme": {
+ "optional": true
+ },
+ "@opentui/core": {
+ "optional": true
+ },
+ "@opentui/solid": {
"optional": true
},
"solid-js": {
@@ -2110,43 +2132,21 @@
}
}
},
- "node_modules/@opencode/plugin/node_modules/effect": {
- "version": "4.0.0-rc.112",
- "resolved": "https://registry.npmjs.org/effect/-/effect-4.0.0-rc.112.tgz",
- "integrity": "sha512-wXxwuh1Ywnv4cPRM3Wfa0vDwuOHnZ1TsTgHJkG9XgzND6inhBH9n1vBxhg3iIXOia/OrpmvVmd3lrD4vq6bF3A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fast-check": "^4.9.0",
- "msgpackr": "^2.0.5"
- }
- },
"node_modules/@opencode/protocol": {
- "version": "0.0.0-beta-19381",
- "resolved": "https://registry.npmjs.org/@opencode/protocol/-/protocol-0.0.0-beta-19381.tgz",
- "integrity": "sha512-e1iHI2IUDiIuzMsVMU7I77xlzwwD+69r4xEdfVtr4FZQvNYIHv771rgFpBIjeuE1e/GtP6gx0wa/zvf7fAJo6w==",
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/@opencode/protocol/-/protocol-2.0.10.tgz",
+ "integrity": "sha512-cHr0aSK39Q9c3JwPDvG45FFlE6rU/ntTFDSaqm4LRl74tki88G4WpzKk6Q56G06K6hKIONrezcPdXtDKtnZzyw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@opencode/schema": "0.0.0-beta-19381",
+ "@opencode/schema": "2.0.10",
"effect": "4.0.0-rc.112"
}
},
- "node_modules/@opencode/protocol/node_modules/effect": {
- "version": "4.0.0-rc.112",
- "resolved": "https://registry.npmjs.org/effect/-/effect-4.0.0-rc.112.tgz",
- "integrity": "sha512-wXxwuh1Ywnv4cPRM3Wfa0vDwuOHnZ1TsTgHJkG9XgzND6inhBH9n1vBxhg3iIXOia/OrpmvVmd3lrD4vq6bF3A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fast-check": "^4.9.0",
- "msgpackr": "^2.0.5"
- }
- },
"node_modules/@opencode/schema": {
- "version": "0.0.0-beta-19381",
- "resolved": "https://registry.npmjs.org/@opencode/schema/-/schema-0.0.0-beta-19381.tgz",
- "integrity": "sha512-wrVyp4RcwMHglc+OIev/WeR1tUo1WfUkOKh8AbE/sY5NubnOa16zKDqrYC419ruU2x1A3H7octb1atNdwRtCBg==",
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/@opencode/schema/-/schema-2.0.10.tgz",
+ "integrity": "sha512-RpRhRZFH1YFnM+OcrxOZc2ObIW3RQ63z/LkcHrZKa47kWF0OiaZVkbAOITeAoAoofcnS3O5ekZBvgT/7kBwRUA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2154,21 +2154,10 @@
"effect": "4.0.0-rc.112"
}
},
- "node_modules/@opencode/schema/node_modules/effect": {
- "version": "4.0.0-rc.112",
- "resolved": "https://registry.npmjs.org/effect/-/effect-4.0.0-rc.112.tgz",
- "integrity": "sha512-wXxwuh1Ywnv4cPRM3Wfa0vDwuOHnZ1TsTgHJkG9XgzND6inhBH9n1vBxhg3iIXOia/OrpmvVmd3lrD4vq6bF3A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fast-check": "^4.9.0",
- "msgpackr": "^2.0.5"
- }
- },
"node_modules/@opencode/theme": {
- "version": "0.0.0-beta-19381",
- "resolved": "https://registry.npmjs.org/@opencode/theme/-/theme-0.0.0-beta-19381.tgz",
- "integrity": "sha512-JQ4K0lotgB2TF/NR/4TaVJ/UpvTOcH30Q8L1atFeHBIucxiEM62L2hVF1mk6ZP3jSBeplZgSv9cAAFOA4v/IoA==",
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/@opencode/theme/-/theme-2.0.10.tgz",
+ "integrity": "sha512-gFh8TGM2oI2lllqc0g3pyEDNZNTll8+lYzWzncIZocoADcep6cmsRE3Lndx6biGvCfdtzL02akImttdbAGJ+Yw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2176,21 +2165,10 @@
"effect": "4.0.0-rc.112"
}
},
- "node_modules/@opencode/theme/node_modules/effect": {
- "version": "4.0.0-rc.112",
- "resolved": "https://registry.npmjs.org/effect/-/effect-4.0.0-rc.112.tgz",
- "integrity": "sha512-wXxwuh1Ywnv4cPRM3Wfa0vDwuOHnZ1TsTgHJkG9XgzND6inhBH9n1vBxhg3iIXOia/OrpmvVmd3lrD4vq6bF3A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fast-check": "^4.9.0",
- "msgpackr": "^2.0.5"
- }
- },
"node_modules/@opencode/util": {
- "version": "0.0.0-beta-19381",
- "resolved": "https://registry.npmjs.org/@opencode/util/-/util-0.0.0-beta-19381.tgz",
- "integrity": "sha512-DEm0InxoUwHV7U8xE2gw8tmU+J5wOON3A2Ht/REWI5KWtLpMq2z88x4gmgvUo4Ac6+c0s9/KQB4+6201Vg/hRQ==",
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/@opencode/util/-/util-2.0.10.tgz",
+ "integrity": "sha512-uvExiMxpHDyTuJwH1UnKO3UXJjicxHo4hpXCSH/TMYR6G0YHpqLGZGY9+u6gHMIuk+vlRAitY7wuXOlxPQcaWw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2213,90 +2191,6 @@
"pacote": "21.5.1"
}
},
- "node_modules/@opencode/util/node_modules/@effect/opentelemetry": {
- "version": "4.0.0-rc.112",
- "resolved": "https://registry.npmjs.org/@effect/opentelemetry/-/opentelemetry-4.0.0-rc.112.tgz",
- "integrity": "sha512-OTRv1DxTHUmnakgJ6XVM8wVgF1KgZH4UXnOemwSLUwUjXO+RCikzF8oR/rlVmOGq81KtQzj1URM4M4nchlQOuQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18.0.0"
- },
- "peerDependencies": {
- "@opentelemetry/api": ">=1.9.0 <2.0.0",
- "@opentelemetry/api-logs": ">=0.203.0 <0.300.0",
- "@opentelemetry/resources": ">=2.0.0 <3.0.0",
- "@opentelemetry/sdk-logs": ">=0.203.0 <0.300.0",
- "@opentelemetry/sdk-metrics": ">=2.0.0 <3.0.0",
- "@opentelemetry/sdk-trace-base": ">=2.0.0 <3.0.0",
- "@opentelemetry/sdk-trace-node": ">=2.0.0 <3.0.0",
- "@opentelemetry/sdk-trace-web": ">=2.0.0 <3.0.0",
- "@opentelemetry/semantic-conventions": ">=1.33.0 <2.0.0",
- "effect": "^4.0.0-rc.112"
- },
- "peerDependenciesMeta": {
- "@opentelemetry/api": {
- "optional": true
- },
- "@opentelemetry/api-logs": {
- "optional": true
- },
- "@opentelemetry/resources": {
- "optional": true
- },
- "@opentelemetry/sdk-logs": {
- "optional": true
- },
- "@opentelemetry/sdk-metrics": {
- "optional": true
- },
- "@opentelemetry/sdk-trace-base": {
- "optional": true
- },
- "@opentelemetry/sdk-trace-node": {
- "optional": true
- },
- "@opentelemetry/sdk-trace-web": {
- "optional": true
- }
- }
- },
- "node_modules/@opencode/util/node_modules/@effect/platform-node": {
- "version": "4.0.0-rc.112",
- "resolved": "https://registry.npmjs.org/@effect/platform-node/-/platform-node-4.0.0-rc.112.tgz",
- "integrity": "sha512-/BMAcdNGQQskLmI0Zoa95KfTZkr9HV9N4NSxaSrusG6GeW6Ulp9KvZ+Rlaiw8lnOt43CXjFLdfll5/k5rxL4hQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@effect/platform-node-shared": "^4.0.0-rc.112",
- "mime": "^4.1.0",
- "undici": "^8.10.0"
- },
- "engines": {
- "node": ">=18.0.0"
- },
- "peerDependencies": {
- "effect": "^4.0.0-rc.112",
- "redis": ">=5.0.0 <7.0.0"
- }
- },
- "node_modules/@opencode/util/node_modules/@effect/platform-node-shared": {
- "version": "4.0.0-rc.112",
- "resolved": "https://registry.npmjs.org/@effect/platform-node-shared/-/platform-node-shared-4.0.0-rc.112.tgz",
- "integrity": "sha512-ttjz0xKamFN7vL8pNDYVwddJLjZvqKePc05djlz2VcdaKbLsnYbtMnL1rbOfHgEnIUSHGh7FkjaN4DM1Ov81sQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/ws": "^8.18.1",
- "ws": "^8.21.3"
- },
- "engines": {
- "node": ">=18.0.0"
- },
- "peerDependencies": {
- "effect": "^4.0.0-rc.112"
- }
- },
"node_modules/@opencode/util/node_modules/balanced-match": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
@@ -2308,9 +2202,9 @@
}
},
"node_modules/@opencode/util/node_modules/brace-expansion": {
- "version": "5.0.9",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz",
- "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==",
+ "version": "5.0.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz",
+ "integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2320,17 +2214,6 @@
"node": "20 || >=22"
}
},
- "node_modules/@opencode/util/node_modules/effect": {
- "version": "4.0.0-rc.112",
- "resolved": "https://registry.npmjs.org/effect/-/effect-4.0.0-rc.112.tgz",
- "integrity": "sha512-wXxwuh1Ywnv4cPRM3Wfa0vDwuOHnZ1TsTgHJkG9XgzND6inhBH9n1vBxhg3iIXOia/OrpmvVmd3lrD4vq6bF3A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fast-check": "^4.9.0",
- "msgpackr": "^2.0.5"
- }
- },
"node_modules/@opencode/util/node_modules/glob": {
"version": "13.0.5",
"resolved": "https://registry.npmjs.org/glob/-/glob-13.0.5.tgz",
@@ -2350,9 +2233,9 @@
}
},
"node_modules/@opencode/util/node_modules/lru-cache": {
- "version": "11.5.2",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz",
- "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==",
+ "version": "11.5.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz",
+ "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==",
"dev": true,
"license": "BlueOak-1.0.0",
"engines": {
@@ -2402,16 +2285,6 @@
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/@opencode/util/node_modules/undici": {
- "version": "8.10.2",
- "resolved": "https://registry.npmjs.org/undici/-/undici-8.10.2.tgz",
- "integrity": "sha512-/y4/bH9YNU5hi9NIrpOuvGXFcxrj3CMrV+/AYpowAYTpHn8gX/XPFjNy766FPoYY0miQhdW977JFWKGNhBdwyQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=22.19.0"
- }
- },
"node_modules/@opentelemetry/api": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz",
@@ -3555,13 +3428,13 @@
}
},
"node_modules/@smithy/core": {
- "version": "3.33.3",
- "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.33.3.tgz",
- "integrity": "sha512-CsOeKq/9kA3y6VJHt+/+VTCtBaxJ4OTFpgrjIUhPpDIKxBci1k2bJaQASF2h/ELWrulGp+t97DZ0mevfAD8idg==",
+ "version": "3.34.1",
+ "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.34.1.tgz",
+ "integrity": "sha512-dLcOUxz8YCv1RZUMKq6GbyUf95pLbrqh34bPvpCZ1+CByFF31BEAFewZjsGCnVsZTKdThNENfGyAgk2TJqVwSw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.17.2",
+ "@smithy/types": "^4.18.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -3754,9 +3627,9 @@
}
},
"node_modules/@tufjs/models/node_modules/brace-expansion": {
- "version": "5.0.9",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz",
- "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==",
+ "version": "5.0.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz",
+ "integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4107,9 +3980,9 @@
}
},
"node_modules/cacache/node_modules/brace-expansion": {
- "version": "5.0.9",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz",
- "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==",
+ "version": "5.0.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz",
+ "integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4138,9 +4011,9 @@
}
},
"node_modules/cacache/node_modules/lru-cache": {
- "version": "11.5.2",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz",
- "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==",
+ "version": "11.5.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz",
+ "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==",
"dev": true,
"license": "BlueOak-1.0.0",
"engines": {
@@ -4324,6 +4197,29 @@
"node": ">= 8"
}
},
+ "node_modules/cross-spawn/node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/cross-spawn/node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
"node_modules/cssesc": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
@@ -4410,6 +4306,17 @@
"safe-buffer": "^5.0.1"
}
},
+ "node_modules/effect": {
+ "version": "4.0.0-rc.112",
+ "resolved": "https://registry.npmjs.org/effect/-/effect-4.0.0-rc.112.tgz",
+ "integrity": "sha512-wXxwuh1Ywnv4cPRM3Wfa0vDwuOHnZ1TsTgHJkG9XgzND6inhBH9n1vBxhg3iIXOia/OrpmvVmd3lrD4vq6bF3A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-check": "^4.9.0",
+ "msgpackr": "^2.0.5"
+ }
+ },
"node_modules/electron-to-chromium": {
"version": "1.5.408",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.408.tgz",
@@ -4482,9 +4389,9 @@
"license": "MIT"
},
"node_modules/fast-check": {
- "version": "4.9.0",
- "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-4.9.0.tgz",
- "integrity": "sha512-7ms6T7SybUev/PQITciI0yLM2pOSFy5zpG8Ty7tQofcVaQUvrMXp6CBwqF6fThLCLOrfBtuHAtwq6Yu4XPCllg==",
+ "version": "4.10.1",
+ "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-4.10.1.tgz",
+ "integrity": "sha512-sB5Vghiu8MyCyToHoBVGsT0baZg3sZWNIY+a6Ct2EDrQJlT4YdH6MC1BSLNe3kX1k5i5g0q1O52XFgcKK/rGHg==",
"dev": true,
"funding": [
{
@@ -4815,9 +4722,9 @@
}
},
"node_modules/hosted-git-info/node_modules/lru-cache": {
- "version": "11.5.2",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz",
- "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==",
+ "version": "11.5.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz",
+ "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==",
"dev": true,
"license": "BlueOak-1.0.0",
"engines": {
@@ -4908,9 +4815,9 @@
}
},
"node_modules/ignore-walk/node_modules/brace-expansion": {
- "version": "5.0.9",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz",
- "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==",
+ "version": "5.0.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz",
+ "integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4947,9 +4854,9 @@
}
},
"node_modules/ip-address": {
- "version": "10.7.0",
- "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.7.0.tgz",
- "integrity": "sha512-BGFsyJd5mpXp3rK6jIdADLNgpJUK1jnjzvYF8lK+VyDab9JAmqN0YOKDdP17HlgKb2+ehPgDc8EtnRLbGCAMhA==",
+ "version": "10.7.2",
+ "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.7.2.tgz",
+ "integrity": "sha512-7H/2gFSIitxc0hG3nOI1glS8QLo/EHBFFLk8vEUjXY/xu0AdL8jZ9U1IzO2PUm0d2D/ofQcAifb0g6OBkt8U7w==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4983,11 +4890,14 @@
}
},
"node_modules/isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz",
+ "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==",
"dev": true,
- "license": "ISC"
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": ">=20"
+ }
},
"node_modules/jackspeak": {
"version": "3.4.3",
@@ -5440,9 +5350,9 @@
"license": "MIT"
},
"node_modules/msgpackr": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-2.0.5.tgz",
- "integrity": "sha512-cef05H/dSYpLpqp3sj/qyZh5vhUYCalnaLO7j1yOmpsR0y/XwLVtK7r5gn+U/F7CTEfMowcGhlUQJDLcLf7jcA==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-2.1.0.tgz",
+ "integrity": "sha512-p/pBCVO63CsvvpkomUnNNag6+n38rULuDA6HHe70o2gtC8ODI52foF/4ko2qQcp6OiErJXTmrZeXmsGGHsIQNQ==",
"dev": true,
"license": "MIT",
"optionalDependencies": {
@@ -5570,16 +5480,6 @@
"node-gyp-build-optional-packages-test": "build-test.js"
}
},
- "node_modules/node-gyp/node_modules/isexe": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz",
- "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "engines": {
- "node": ">=20"
- }
- },
"node_modules/node-gyp/node_modules/semver": {
"version": "7.8.5",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz",
@@ -5593,20 +5493,14 @@
"node": ">=10"
}
},
- "node_modules/node-gyp/node_modules/which": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz",
- "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==",
+ "node_modules/node-gyp/node_modules/undici": {
+ "version": "6.28.1",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-6.28.1.tgz",
+ "integrity": "sha512-zWpdTVD54H48CIybL0rWQ3ukpb9d23wM7eH5RtfdmeP70cWHNjtfo7P4vZX+5CoDcO53J4Pu5uXp7lNfjc6DRA==",
"dev": true,
- "license": "ISC",
- "dependencies": {
- "isexe": "^4.0.0"
- },
- "bin": {
- "node-which": "bin/which.js"
- },
+ "license": "MIT",
"engines": {
- "node": "^20.17.0 || >=22.9.0"
+ "node": ">=18.17"
}
},
"node_modules/node-releases": {
@@ -5865,9 +5759,9 @@
}
},
"node_modules/p-map": {
- "version": "7.0.7",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.7.tgz",
- "integrity": "sha512-VaWRu2i4FJNRtiRWCuuQRgfQ1B7a6+gMSrO+3j0EQi/k0ULfS9kosRxGoiqwzIjZTDI02tGfk5mXXltLg6QtfQ==",
+ "version": "7.0.8",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.8.tgz",
+ "integrity": "sha512-MitaVsCuCFIvOLLPIU7NnfrZvS9H9h7kwMUkDo+T2pEISaJD48IV9S8iIdXB7PsvvdxyYcsSTTrr90XKsbulNw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6482,9 +6376,9 @@
}
},
"node_modules/spdx-license-ids": {
- "version": "3.0.23",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz",
- "integrity": "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==",
+ "version": "3.0.24",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.24.tgz",
+ "integrity": "sha512-cLS9TtWkIQFyLkJ3/5aFQAOHOSKTlOs/7WDut/XPSdjom1fJhUdkepeJAKXa9Y05+FabHd0sti+Et559vDtkpQ==",
"dev": true,
"license": "CC0-1.0"
},
@@ -6729,13 +6623,13 @@
}
},
"node_modules/undici": {
- "version": "6.28.1",
- "resolved": "https://registry.npmjs.org/undici/-/undici-6.28.1.tgz",
- "integrity": "sha512-zWpdTVD54H48CIybL0rWQ3ukpb9d23wM7eH5RtfdmeP70cWHNjtfo7P4vZX+5CoDcO53J4Pu5uXp7lNfjc6DRA==",
+ "version": "8.10.2",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-8.10.2.tgz",
+ "integrity": "sha512-/y4/bH9YNU5hi9NIrpOuvGXFcxrj3CMrV+/AYpowAYTpHn8gX/XPFjNy766FPoYY0miQhdW977JFWKGNhBdwyQ==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=18.17"
+ "node": ">=22.19.0"
}
},
"node_modules/undici-types": {
@@ -6830,19 +6724,19 @@
}
},
"node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz",
+ "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==",
"dev": true,
"license": "ISC",
"dependencies": {
- "isexe": "^2.0.0"
+ "isexe": "^4.0.0"
},
"bin": {
- "node-which": "bin/node-which"
+ "node-which": "bin/which.js"
},
"engines": {
- "node": ">= 8"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/wrap-ansi": {
diff --git a/package.json b/package.json
index cb4946a..21e9121 100644
--- a/package.json
+++ b/package.json
@@ -48,9 +48,9 @@
"devDependencies": {
"@babel/core": "^7.29.7",
"@babel/preset-typescript": "^7.29.7",
- "@opencode/cli": "0.0.0-beta-19381",
- "@opencode/plugin": "0.0.0-beta-19381",
- "@opencode/theme": "0.0.0-beta-19381",
+ "@opencode/cli": "2.0.10",
+ "@opencode/plugin": "2.0.10",
+ "@opencode/theme": "2.0.10",
"@opentui/core": "^0.5.10",
"@opentui/solid": "^0.5.10",
"@oxlint/plugins": "^1.78.0",
diff --git a/scripts/check-compatibility.mjs b/scripts/check-compatibility.mjs
index 2661fd9..09943f9 100644
--- a/scripts/check-compatibility.mjs
+++ b/scripts/check-compatibility.mjs
@@ -13,7 +13,7 @@ const versions = packages.map((name) => packageJson.devDependencies[name])
const version = versions[0]
-if (!/^0\.0\.0-beta-\d{5,6}$/.test(version)) {
+if (!/^2\.\d+\.\d+$/.test(version)) {
throw new Error(`OpenCode 2 compatibility version has an unexpected format: ${version}`)
}
@@ -21,13 +21,13 @@ if (!versions.every((candidate) => candidate === version)) {
throw new Error(`OpenCode 2 packages must use one exact version: ${versions.join(", ")}`)
}
-const floor = /earliest known compatible beta is\s+`(0\.0\.0-beta-\d{5,6})`/i.exec(readme)?.[1]
+const floor = /earliest known compatible (?:beta|version for this release) is\s+`(0\.0\.0-beta-\d{5,6}|2\.\d+\.\d+)`/i.exec(readme)?.[1]
if (floor === undefined) {
- throw new Error("README does not state the earliest known compatible beta")
+ throw new Error("README does not state the earliest known compatible version")
}
-if (Number(floor.replace("0.0.0-beta-", "")) > Number(version.replace("0.0.0-beta-", ""))) {
+if (floor.localeCompare(version, "en", { numeric: true }) > 0) {
throw new Error(`README floor ${floor} is newer than the pinned compatibility target ${version}`)
}
@@ -38,12 +38,12 @@ const root = fileURLToPath(new URL("..", import.meta.url))
// execFileSync'd on Windows without a shell, while the native binary runs
// unshelled on every platform despite the .exe name. A normal install's
// postinstall (or CI's prepare step with --ignore-scripts) puts it there.
-const executable = resolve(root, "node_modules", "@opencode", "cli", "bin", "opencode2.exe")
+const executable = resolve(root, "node_modules", "@opencode", "cli", "bin", "opencode.exe")
const reported = execFileSync(executable, ["--version"], { encoding: "utf8" }).trim()
-if (reported !== `opencode2 v${version}`) {
- throw new Error(`Expected opencode2 v${version}, got ${reported}`)
+if (reported !== `opencode v${version}`) {
+ throw new Error(`Expected opencode v${version}, got ${reported}`)
}
console.log(`OpenCode 2 compatibility target: ${version} (floor ${floor})`)
diff --git a/src/plugin.tsx b/src/plugin.tsx
index 69c22d8..2b4b0bf 100644
--- a/src/plugin.tsx
+++ b/src/plugin.tsx
@@ -221,7 +221,7 @@ const definition: Plugin.Definition = {
{(text: () => string) => (
- {`${text()} `}
+ {`${text()} `}
)}
diff --git a/tests/entrypoint.test.tsx b/tests/entrypoint.test.tsx
index a00d1bf..d75bfb0 100644
--- a/tests/entrypoint.test.tsx
+++ b/tests/entrypoint.test.tsx
@@ -59,7 +59,7 @@ interface Claim {
interface FakeContext {
readonly options: TpsOptionsInput
readonly app: { readonly version: string }
- readonly theme: { readonly text: { readonly subdued: string } }
+ readonly theme: { readonly text: { readonly muted: string } }
readonly storage: {
readonly memory: (
key: string,
@@ -127,7 +127,7 @@ function createHarness(options: TpsOptionsInput = {}): Harness {
const context: FakeContext = {
options,
app: { version: "test" },
- theme: { text: { subdued: "#888888" } },
+ theme: { text: { muted: "#888888" } },
storage: {
memory: () => [generation, (mutation: (draft: Generation) => void) => mutation(generation)] as const,
},
diff --git a/tests/plugin.test.ts b/tests/plugin.test.ts
index 208ed7f..8140e92 100644
--- a/tests/plugin.test.ts
+++ b/tests/plugin.test.ts
@@ -47,7 +47,7 @@ interface Generation {
interface FakeContext {
readonly options: TpsOptionsInput
readonly app: { readonly version: string }
- readonly theme: { readonly text: { readonly subdued: string } }
+ readonly theme: { readonly text: { readonly muted: string } }
readonly storage: {
memory: (
key: string,
@@ -101,7 +101,7 @@ function createHarness(options: TpsOptionsInput = {}) {
const ctx: FakeContext = {
options,
app: { version: "test" },
- theme: { text: { subdued: "#888888" } },
+ theme: { text: { muted: "#888888" } },
storage: {
memory: () => [generation, (mutation: (draft: Generation) => void) => mutation(generation)] as const,
},