@bitkyc08/opencodex 2.68.0-preview.20260927 → 2.69.0-preview.20260928
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/ocx.mjs +25 -17
- package/gui/dist/assets/App-cDPyCb_V.js +51 -0
- package/gui/dist/assets/{Tray-DFnMiyD0.js → Tray-H1IAB8mN.js} +1 -1
- package/gui/dist/assets/index-BF9QnKO_.css +1 -0
- package/gui/dist/assets/index-CI6YTp8z.js +86 -0
- package/gui/dist/assets/{quota-summary-i84eOU3o.js → quota-summary-CutOlPu2.js} +1 -1
- package/gui/dist/index.html +2 -2
- package/gui/dist/provider-icons/factory-droid.svg +8 -0
- package/package.json +1 -1
- package/src/adapters/anthropic-output-schema.ts +109 -11
- package/src/adapters/coding-agent/protocol.ts +106 -11
- package/src/adapters/coding-agent/turn.ts +23 -18
- package/src/adapters/google-errors.ts +16 -1
- package/src/adapters/google-http.ts +14 -0
- package/src/adapters/openai-chat/passthrough.ts +2 -0
- package/src/adapters/openai-chat/summary-budget.ts +72 -0
- package/src/adapters/openai-chat/tool-call-id-remint.ts +11 -2
- package/src/adapters/openai-chat.ts +6 -9
- package/src/bridge/response-json.ts +3 -1
- package/src/bridge/sse.ts +3 -1
- package/src/claude/desktop-picker.ts +6 -2
- package/src/claude/desktop-system-proxy.ts +155 -0
- package/src/claude/inbound-model-options.ts +10 -2
- package/src/claude/inbound.ts +1 -1
- package/src/claude/intercept/picker-ca-cleanup.ts +31 -0
- package/src/claude/intercept/picker-ca.ts +283 -83
- package/src/claude/intercept/picker-models.ts +4 -1
- package/src/claude/intercept/picker-trust.ts +15 -2
- package/src/claude/intercept/runtime.ts +99 -32
- package/src/cli/account-api.ts +5 -2
- package/src/cli/account-extended.ts +47 -11
- package/src/cli/account-target.ts +12 -7
- package/src/cli/account.ts +47 -3
- package/src/cli/capabilities.ts +33 -7
- package/src/cli/claude-agent-startup-sync.ts +2 -0
- package/src/cli/claude-desktop.ts +37 -13
- package/src/cli/cross-home-owner.ts +138 -0
- package/src/cli/dispatch.ts +1 -1
- package/src/cli/doctor.ts +18 -8
- package/src/cli/ensure-desired-integrations.ts +5 -0
- package/src/cli/export-command.ts +6 -6
- package/src/cli/help.ts +1 -1
- package/src/cli/index.ts +15 -18
- package/src/cli/integrations.ts +8 -1
- package/src/cli/models-runtime-subcommands.ts +1 -0
- package/src/cli/models-runtime.ts +106 -4
- package/src/cli/models.ts +6 -1
- package/src/cli/opencode.ts +2 -83
- package/src/cli/registry.ts +3 -2
- package/src/cli/status.ts +86 -7
- package/src/client/connect.ts +24 -10
- package/src/client/link-ingress.ts +3 -1
- package/src/client/link-join.ts +76 -9
- package/src/client/link-relay-transport.ts +184 -0
- package/src/client/link-relay.ts +16 -4
- package/src/client/machine-listener.ts +2 -0
- package/src/clients/config-export/constants.ts +8 -0
- package/src/clients/config-export/contracts.ts +13 -1
- package/src/clients/config-export/droid.ts +71 -0
- package/src/clients/config-export/kilo.ts +116 -0
- package/src/clients/config-export.ts +33 -2
- package/src/codex/auth-api/routes.ts +1 -1
- package/src/codex/catalog/access-programs.ts +14 -2
- package/src/codex/catalog/provider-models.ts +1 -1
- package/src/codex/catalog-auto-refresh.ts +122 -0
- package/src/codex/config-drift-heal.ts +80 -0
- package/src/codex/desktop-switches.ts +7 -5
- package/src/codex/inject/bounded-config-reader.ts +69 -0
- package/src/codex/inject/config-toml.ts +31 -3
- package/src/codex/inject/routing-target.ts +6 -1
- package/src/codex/inject.ts +4 -0
- package/src/codex/model-entitlements.ts +32 -5
- package/src/codex/native-profile-startup.ts +17 -5
- package/src/codex/project-config-warnings.ts +72 -21
- package/src/codex/quota-auto-refresh-state.ts +8 -2
- package/src/codex/quota-auto-refresh.ts +80 -9
- package/src/codex/sync.ts +10 -0
- package/src/combos/failover.ts +4 -1
- package/src/combos/jev.ts +15 -4
- package/src/combos/types.ts +16 -0
- package/src/config/diagnostics.ts +19 -1
- package/src/config/load-degrade.ts +29 -0
- package/src/config/macos-system-proxy.ts +114 -0
- package/src/config/proxy-env.ts +67 -20
- package/src/config/schema/config-schema.ts +15 -0
- package/src/config/schema/leaf-validators.ts +23 -0
- package/src/config.ts +2 -0
- package/src/generated/compatibility-version.json +220 -144
- package/src/integrations/catalog-refresh.ts +1 -1
- package/src/integrations/config-io.ts +12 -3
- package/src/integrations/droid-settings.ts +65 -0
- package/src/integrations/kilo-candidates.ts +30 -0
- package/src/integrations/mutation-plan.ts +62 -7
- package/src/integrations/native/ownership-preflight.ts +46 -12
- package/src/integrations/registry.ts +136 -7
- package/src/integrations/state.ts +52 -4
- package/src/integrations/target.ts +3 -0
- package/src/integrations/writer.ts +55 -14
- package/src/lib/account-selection-events.ts +14 -0
- package/src/lib/jsonc.ts +110 -0
- package/src/lib/standalone.ts +9 -1
- package/src/lib/windows-system-proxy.ts +101 -1
- package/src/link/relay-auth.ts +29 -0
- package/src/link/ssh-argv.ts +6 -3
- package/src/link/ssh-runner.ts +5 -5
- package/src/oauth/generic-account-failover.ts +52 -8
- package/src/oauth/index.ts +37 -14
- package/src/oauth/store.ts +96 -11
- package/src/oauth/token-guardian.ts +7 -3
- package/src/oauth/types.ts +2 -0
- package/src/plugins/loader.ts +5 -3
- package/src/providers/fastwire.ts +3 -0
- package/src/providers/key-failover.ts +13 -5
- package/src/providers/kiro-model-catalog.ts +4 -3
- package/src/providers/model-rename-fields.ts +1 -0
- package/src/providers/openai-tiers-destination.ts +9 -0
- package/src/providers/quota/account-cache.ts +17 -3
- package/src/providers/quota/vendor-probes-oauth.ts +2 -0
- package/src/providers/quota.ts +2 -2
- package/src/responses/code-mode-helper-compat.ts +14 -1
- package/src/responses/custom-tool-compat.ts +1 -1
- package/src/server/auth-cors.ts +1 -0
- package/src/server/images.ts +70 -20
- package/src/server/index/link-listener.ts +20 -3
- package/src/server/index/link-relay-sessions.ts +138 -0
- package/src/server/index/optional-listeners.ts +11 -1
- package/src/server/index/serve-options.ts +12 -0
- package/src/server/inference/client-encoder-delivery.ts +1 -0
- package/src/server/local-management-read-client.ts +21 -2
- package/src/server/management/agent-settings-routes.ts +19 -5
- package/src/server/management/combo-routes.ts +5 -3
- package/src/server/management/config-routes.ts +32 -6
- package/src/server/management/model-routes.ts +232 -7
- package/src/server/management/model-rows.ts +199 -1
- package/src/server/management/oauth-account-routes.ts +63 -3
- package/src/server/management/route-registry.ts +2 -0
- package/src/server/port-reclaim.ts +170 -32
- package/src/server/responses/adapter-delivery.ts +6 -4
- package/src/server/responses/adapter-dispatch.ts +72 -2
- package/src/server/responses/core-combo.ts +6 -1
- package/src/server/responses/core-normalize.ts +19 -4
- package/src/server/responses/core-options.ts +2 -0
- package/src/server/responses/memory-models.ts +169 -0
- package/src/server/responses/passthrough-delivery.ts +4 -0
- package/src/server/responses/passthrough-dispatch.ts +10 -0
- package/src/server/responses/request-prepare.ts +86 -4
- package/src/server/responses/request-transport.ts +4 -0
- package/src/server/responses/run-turn-execution.ts +5 -2
- package/src/server/responses/shadow-target-availability.ts +17 -4
- package/src/server/responses/sidecar-execution.ts +18 -2
- package/src/server/responses/skills-snapshot.ts +239 -0
- package/src/server/responses-undeclared-tool-guard.ts +43 -6
- package/src/server/search.ts +1 -1
- package/src/service/guards.ts +4 -5
- package/src/service/state.ts +39 -2
- package/src/service.ts +2 -2
- package/src/types/config.ts +46 -4
- package/src/types/provider.ts +9 -0
- package/src/types/request.ts +6 -0
- package/src/types/tools.ts +38 -8
- package/src/types.ts +3 -0
- package/src/update/async-check.ts +5 -1
- package/src/update/index.ts +30 -12
- package/src/update/job.ts +3 -1
- package/src/update/pnpm-read-policy.d.mts +4 -0
- package/src/update/pnpm-read-policy.mjs +44 -0
- package/src/update/worker-launch.ts +152 -11
- package/src/usage/cost.ts +6 -3
- package/src/usage/log.ts +4 -0
- package/src/web-search/backends.ts +2 -2
- package/src/web-search/devin-executor.ts +1 -1
- package/src/web-search/sidecar-providers.ts +5 -5
- package/gui/dist/assets/App-B5-cAEd2.js +0 -51
- package/gui/dist/assets/index-BDUBS8PW.css +0 -1
- package/gui/dist/assets/index-BcXblvem.js +0 -86
package/bin/ocx.mjs
CHANGED
|
@@ -42,6 +42,7 @@ import {
|
|
|
42
42
|
resolvePnpmGlobalOwner,
|
|
43
43
|
runPnpmGlobalUpdate,
|
|
44
44
|
} from "../src/update/pnpm-global-install.mjs";
|
|
45
|
+
import { PNPM_READ_CWD, withPnpmCommandCwd, pnpmReadEnvironment } from "../src/update/pnpm-read-policy.mjs";
|
|
45
46
|
import { checkRegistryPackageIntegrity } from "../src/update/registry-integrity.mjs";
|
|
46
47
|
import { hasPendingTeardownIn } from "../src/config/pending-teardown-names.mjs";
|
|
47
48
|
import {
|
|
@@ -208,6 +209,8 @@ function runPackageManagerSelfUpdate(manager) {
|
|
|
208
209
|
encoding: "utf8",
|
|
209
210
|
timeout: 20_000,
|
|
210
211
|
windowsHide: true,
|
|
212
|
+
cwd: PNPM_READ_CWD,
|
|
213
|
+
env: pnpmReadEnvironment(unprivilegedOwnershipMutationEnvironment(process.env)),
|
|
211
214
|
...invocation.options,
|
|
212
215
|
});
|
|
213
216
|
},
|
|
@@ -221,6 +224,20 @@ function runPackageManagerSelfUpdate(manager) {
|
|
|
221
224
|
const managerInvocation = args => manager === "pnpm"
|
|
222
225
|
? pnpmOwnerInvocation(owner, args)
|
|
223
226
|
: npmInvocation(args);
|
|
227
|
+
// Read-only pnpm probes run from the installed package directory with project pnpmfiles
|
|
228
|
+
// disabled, so an attacker-controlled cwd cannot execute hooks during the update check.
|
|
229
|
+
const readProbeOptions = invocation => ({
|
|
230
|
+
encoding: "utf8",
|
|
231
|
+
timeout: 12000,
|
|
232
|
+
windowsHide: true,
|
|
233
|
+
...(manager === "pnpm"
|
|
234
|
+
? {
|
|
235
|
+
cwd: PNPM_READ_CWD,
|
|
236
|
+
env: pnpmReadEnvironment(unprivilegedOwnershipMutationEnvironment(invocation.env ?? process.env)),
|
|
237
|
+
}
|
|
238
|
+
: invocation.env ? { env: invocation.env } : {}),
|
|
239
|
+
...invocation.options,
|
|
240
|
+
});
|
|
224
241
|
const latestInvocation = managerInvocation(["view", `${PKG}@${tag}`, "version"]);
|
|
225
242
|
const installArgs = manager === "pnpm"
|
|
226
243
|
? ["add", "-g", "--allow-build=bun", `${PKG}@${tag}`]
|
|
@@ -230,13 +247,7 @@ function runPackageManagerSelfUpdate(manager) {
|
|
|
230
247
|
console.error(`opencodex: could not resolve ${manager} from a trusted absolute PATH entry; aborting before stopping the proxy.`);
|
|
231
248
|
process.exit(1);
|
|
232
249
|
}
|
|
233
|
-
const latestResult = spawnSync(latestInvocation.file, latestInvocation.args,
|
|
234
|
-
encoding: "utf8",
|
|
235
|
-
timeout: 12000,
|
|
236
|
-
windowsHide: true,
|
|
237
|
-
...(latestInvocation.env ? { env: latestInvocation.env } : {}),
|
|
238
|
-
...latestInvocation.options,
|
|
239
|
-
});
|
|
250
|
+
const latestResult = spawnSync(latestInvocation.file, latestInvocation.args, readProbeOptions(latestInvocation));
|
|
240
251
|
const latest = latestResult.status === 0 && typeof latestResult.stdout === "string" ? latestResult.stdout.trim() : "";
|
|
241
252
|
|
|
242
253
|
console.log(`opencodex v${current} (installed via ${manager}, tag ${tag})`);
|
|
@@ -248,13 +259,7 @@ function runPackageManagerSelfUpdate(manager) {
|
|
|
248
259
|
const integrity = checkRegistryPackageIntegrity(PKG, latest || null, args => {
|
|
249
260
|
const invocation = managerInvocation(args);
|
|
250
261
|
if (!invocation) return { status: 1 };
|
|
251
|
-
return spawnSync(invocation.file, invocation.args,
|
|
252
|
-
encoding: "utf8",
|
|
253
|
-
timeout: 12000,
|
|
254
|
-
windowsHide: true,
|
|
255
|
-
...(invocation.env ? { env: invocation.env } : {}),
|
|
256
|
-
...invocation.options,
|
|
257
|
-
});
|
|
262
|
+
return spawnSync(invocation.file, invocation.args, readProbeOptions(invocation));
|
|
258
263
|
});
|
|
259
264
|
if (integrity.ok === false) {
|
|
260
265
|
console.error(`opencodex: ${integrity.reason}; aborting before stopping the proxy.`);
|
|
@@ -768,14 +773,17 @@ function runPackageManagerSelfUpdate(manager) {
|
|
|
768
773
|
runPnpm: (args, capture = false) => {
|
|
769
774
|
const invocation = pnpmOwnerInvocation(owner, args);
|
|
770
775
|
if (!invocation) return { status: 1 };
|
|
771
|
-
return spawnSync(invocation.file, invocation.args, {
|
|
776
|
+
return withPnpmCommandCwd(args, cwd => spawnSync(invocation.file, invocation.args, {
|
|
772
777
|
...invocation.options,
|
|
773
778
|
stdio: capture ? "pipe" : "inherit",
|
|
774
779
|
encoding: "utf8",
|
|
775
780
|
timeout: 180000,
|
|
776
781
|
windowsHide: true,
|
|
777
|
-
|
|
778
|
-
|
|
782
|
+
// Reads probe from the package dir; mutations (add -g, rollback) must not
|
|
783
|
+
// keep a cwd handle inside the package Windows is replacing.
|
|
784
|
+
cwd,
|
|
785
|
+
env: pnpmReadEnvironment(unprivilegedOwnershipMutationEnvironment(invocation.env ?? process.env)),
|
|
786
|
+
}));
|
|
779
787
|
},
|
|
780
788
|
log: line => console.log(line),
|
|
781
789
|
});
|