@aiden-ade/sandbox-agent 0.1.60 → 0.1.62
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/dist/index.cjs +465 -342
- package/package.json +1 -1
- package/dist/__tests__/binding-switch-git.test.d.ts +0 -2
- package/dist/__tests__/binding-switch-git.test.d.ts.map +0 -1
- package/dist/__tests__/binding-switch-git.test.js +0 -610
- package/dist/__tests__/binding-switch-git.test.js.map +0 -1
- package/dist/__tests__/cli-ensure-install.test.d.ts +0 -2
- package/dist/__tests__/cli-ensure-install.test.d.ts.map +0 -1
- package/dist/__tests__/cli-ensure-install.test.js +0 -109
- package/dist/__tests__/cli-ensure-install.test.js.map +0 -1
- package/dist/__tests__/cli-executable.test.d.ts +0 -2
- package/dist/__tests__/cli-executable.test.d.ts.map +0 -1
- package/dist/__tests__/cli-executable.test.js +0 -129
- package/dist/__tests__/cli-executable.test.js.map +0 -1
- package/dist/__tests__/cli-help.test.d.ts +0 -2
- package/dist/__tests__/cli-help.test.d.ts.map +0 -1
- package/dist/__tests__/cli-help.test.js +0 -34
- package/dist/__tests__/cli-help.test.js.map +0 -1
- package/dist/__tests__/computer-readiness.test.d.ts +0 -2
- package/dist/__tests__/computer-readiness.test.d.ts.map +0 -1
- package/dist/__tests__/computer-readiness.test.js +0 -63
- package/dist/__tests__/computer-readiness.test.js.map +0 -1
- package/dist/__tests__/core-agent-workflow-context.test.d.ts +0 -2
- package/dist/__tests__/core-agent-workflow-context.test.d.ts.map +0 -1
- package/dist/__tests__/core-agent-workflow-context.test.js +0 -139
- package/dist/__tests__/core-agent-workflow-context.test.js.map +0 -1
- package/dist/__tests__/daemon-reconcile-ask.test.d.ts +0 -2
- package/dist/__tests__/daemon-reconcile-ask.test.d.ts.map +0 -1
- package/dist/__tests__/daemon-reconcile-ask.test.js +0 -86
- package/dist/__tests__/daemon-reconcile-ask.test.js.map +0 -1
- package/dist/__tests__/daemon-socket.integration.test.d.ts +0 -2
- package/dist/__tests__/daemon-socket.integration.test.d.ts.map +0 -1
- package/dist/__tests__/daemon-socket.integration.test.js +0 -450
- package/dist/__tests__/daemon-socket.integration.test.js.map +0 -1
- package/dist/__tests__/daemon.test.d.ts +0 -2
- package/dist/__tests__/daemon.test.d.ts.map +0 -1
- package/dist/__tests__/daemon.test.js +0 -3975
- package/dist/__tests__/daemon.test.js.map +0 -1
- package/dist/__tests__/ensure-shared-checkout-branch.test.d.ts +0 -2
- package/dist/__tests__/ensure-shared-checkout-branch.test.d.ts.map +0 -1
- package/dist/__tests__/ensure-shared-checkout-branch.test.js +0 -129
- package/dist/__tests__/ensure-shared-checkout-branch.test.js.map +0 -1
- package/dist/__tests__/event-outbox-persist-failure.test.d.ts +0 -2
- package/dist/__tests__/event-outbox-persist-failure.test.d.ts.map +0 -1
- package/dist/__tests__/event-outbox-persist-failure.test.js +0 -84
- package/dist/__tests__/event-outbox-persist-failure.test.js.map +0 -1
- package/dist/__tests__/event-outbox.test.d.ts +0 -2
- package/dist/__tests__/event-outbox.test.d.ts.map +0 -1
- package/dist/__tests__/event-outbox.test.js +0 -256
- package/dist/__tests__/event-outbox.test.js.map +0 -1
- package/dist/__tests__/fake-provider-cli.test.d.ts +0 -2
- package/dist/__tests__/fake-provider-cli.test.d.ts.map +0 -1
- package/dist/__tests__/fake-provider-cli.test.js +0 -46
- package/dist/__tests__/fake-provider-cli.test.js.map +0 -1
- package/dist/__tests__/generated-images.test.d.ts +0 -2
- package/dist/__tests__/generated-images.test.d.ts.map +0 -1
- package/dist/__tests__/generated-images.test.js +0 -132
- package/dist/__tests__/generated-images.test.js.map +0 -1
- package/dist/__tests__/lifecycle-logger.test.d.ts +0 -2
- package/dist/__tests__/lifecycle-logger.test.d.ts.map +0 -1
- package/dist/__tests__/lifecycle-logger.test.js +0 -49
- package/dist/__tests__/lifecycle-logger.test.js.map +0 -1
- package/dist/__tests__/local-skill-scan.test.d.ts +0 -2
- package/dist/__tests__/local-skill-scan.test.d.ts.map +0 -1
- package/dist/__tests__/local-skill-scan.test.js +0 -91
- package/dist/__tests__/local-skill-scan.test.js.map +0 -1
- package/dist/__tests__/local-workspace-migration.test.d.ts +0 -2
- package/dist/__tests__/local-workspace-migration.test.d.ts.map +0 -1
- package/dist/__tests__/local-workspace-migration.test.js +0 -195
- package/dist/__tests__/local-workspace-migration.test.js.map +0 -1
- package/dist/__tests__/mcp-inspect-timeout.test.d.ts +0 -2
- package/dist/__tests__/mcp-inspect-timeout.test.d.ts.map +0 -1
- package/dist/__tests__/mcp-inspect-timeout.test.js +0 -97
- package/dist/__tests__/mcp-inspect-timeout.test.js.map +0 -1
- package/dist/__tests__/mcp-readiness.test.d.ts +0 -2
- package/dist/__tests__/mcp-readiness.test.d.ts.map +0 -1
- package/dist/__tests__/mcp-readiness.test.js +0 -267
- package/dist/__tests__/mcp-readiness.test.js.map +0 -1
- package/dist/__tests__/mcp-registration-cli.test.d.ts +0 -2
- package/dist/__tests__/mcp-registration-cli.test.d.ts.map +0 -1
- package/dist/__tests__/mcp-registration-cli.test.js +0 -71
- package/dist/__tests__/mcp-registration-cli.test.js.map +0 -1
- package/dist/__tests__/mcp-registration.test.d.ts +0 -2
- package/dist/__tests__/mcp-registration.test.d.ts.map +0 -1
- package/dist/__tests__/mcp-registration.test.js +0 -426
- package/dist/__tests__/mcp-registration.test.js.map +0 -1
- package/dist/__tests__/model-scan-runner.test.d.ts +0 -2
- package/dist/__tests__/model-scan-runner.test.d.ts.map +0 -1
- package/dist/__tests__/model-scan-runner.test.js +0 -67
- package/dist/__tests__/model-scan-runner.test.js.map +0 -1
- package/dist/__tests__/network-diagnostics.test.d.ts +0 -2
- package/dist/__tests__/network-diagnostics.test.d.ts.map +0 -1
- package/dist/__tests__/network-diagnostics.test.js +0 -26
- package/dist/__tests__/network-diagnostics.test.js.map +0 -1
- package/dist/__tests__/observable-map.test.d.ts +0 -2
- package/dist/__tests__/observable-map.test.d.ts.map +0 -1
- package/dist/__tests__/observable-map.test.js +0 -54
- package/dist/__tests__/observable-map.test.js.map +0 -1
- package/dist/__tests__/provider-auth-preflight.test.d.ts +0 -2
- package/dist/__tests__/provider-auth-preflight.test.d.ts.map +0 -1
- package/dist/__tests__/provider-auth-preflight.test.js +0 -123
- package/dist/__tests__/provider-auth-preflight.test.js.map +0 -1
- package/dist/__tests__/provider-model-discovery.test.d.ts +0 -2
- package/dist/__tests__/provider-model-discovery.test.d.ts.map +0 -1
- package/dist/__tests__/provider-model-discovery.test.js +0 -472
- package/dist/__tests__/provider-model-discovery.test.js.map +0 -1
- package/dist/__tests__/remove-worktrees-if-clean.test.d.ts +0 -2
- package/dist/__tests__/remove-worktrees-if-clean.test.d.ts.map +0 -1
- package/dist/__tests__/remove-worktrees-if-clean.test.js +0 -221
- package/dist/__tests__/remove-worktrees-if-clean.test.js.map +0 -1
- package/dist/__tests__/resume-fallback-env.test.d.ts +0 -2
- package/dist/__tests__/resume-fallback-env.test.d.ts.map +0 -1
- package/dist/__tests__/resume-fallback-env.test.js +0 -28
- package/dist/__tests__/resume-fallback-env.test.js.map +0 -1
- package/dist/__tests__/run-journal.test.d.ts +0 -2
- package/dist/__tests__/run-journal.test.d.ts.map +0 -1
- package/dist/__tests__/run-journal.test.js +0 -121
- package/dist/__tests__/run-journal.test.js.map +0 -1
- package/dist/__tests__/run-start-gate.test.d.ts +0 -2
- package/dist/__tests__/run-start-gate.test.d.ts.map +0 -1
- package/dist/__tests__/run-start-gate.test.js +0 -29
- package/dist/__tests__/run-start-gate.test.js.map +0 -1
- package/dist/__tests__/runtime-capabilities-sync.test.d.ts +0 -2
- package/dist/__tests__/runtime-capabilities-sync.test.d.ts.map +0 -1
- package/dist/__tests__/runtime-capabilities-sync.test.js +0 -66
- package/dist/__tests__/runtime-capabilities-sync.test.js.map +0 -1
- package/dist/__tests__/runtime-config.test.d.ts +0 -2
- package/dist/__tests__/runtime-config.test.d.ts.map +0 -1
- package/dist/__tests__/runtime-config.test.js +0 -102
- package/dist/__tests__/runtime-config.test.js.map +0 -1
- package/dist/__tests__/runtime-presenter-heartbeat.test.d.ts +0 -2
- package/dist/__tests__/runtime-presenter-heartbeat.test.d.ts.map +0 -1
- package/dist/__tests__/runtime-presenter-heartbeat.test.js +0 -159
- package/dist/__tests__/runtime-presenter-heartbeat.test.js.map +0 -1
- package/dist/__tests__/sandbox-outbox.test.d.ts +0 -2
- package/dist/__tests__/sandbox-outbox.test.d.ts.map +0 -1
- package/dist/__tests__/sandbox-outbox.test.js +0 -214
- package/dist/__tests__/sandbox-outbox.test.js.map +0 -1
- package/dist/__tests__/sandbox-workflow-context.test.d.ts +0 -2
- package/dist/__tests__/sandbox-workflow-context.test.d.ts.map +0 -1
- package/dist/__tests__/sandbox-workflow-context.test.js +0 -396
- package/dist/__tests__/sandbox-workflow-context.test.js.map +0 -1
- package/dist/__tests__/service-manager.test.d.ts +0 -2
- package/dist/__tests__/service-manager.test.d.ts.map +0 -1
- package/dist/__tests__/service-manager.test.js +0 -50
- package/dist/__tests__/service-manager.test.js.map +0 -1
- package/dist/__tests__/sleep-inhibitor.test.d.ts +0 -2
- package/dist/__tests__/sleep-inhibitor.test.d.ts.map +0 -1
- package/dist/__tests__/sleep-inhibitor.test.js +0 -236
- package/dist/__tests__/sleep-inhibitor.test.js.map +0 -1
- package/dist/__tests__/status-local-workspace.test.d.ts +0 -2
- package/dist/__tests__/status-local-workspace.test.d.ts.map +0 -1
- package/dist/__tests__/status-local-workspace.test.js +0 -121
- package/dist/__tests__/status-local-workspace.test.js.map +0 -1
- package/dist/__tests__/suspension-detector.test.d.ts +0 -2
- package/dist/__tests__/suspension-detector.test.d.ts.map +0 -1
- package/dist/__tests__/suspension-detector.test.js +0 -112
- package/dist/__tests__/suspension-detector.test.js.map +0 -1
- package/dist/__tests__/web-presenter-parent-events.test.d.ts +0 -2
- package/dist/__tests__/web-presenter-parent-events.test.d.ts.map +0 -1
- package/dist/__tests__/web-presenter-parent-events.test.js +0 -130
- package/dist/__tests__/web-presenter-parent-events.test.js.map +0 -1
- package/dist/__tests__/workspace-relocation.test.d.ts +0 -2
- package/dist/__tests__/workspace-relocation.test.d.ts.map +0 -1
- package/dist/__tests__/workspace-relocation.test.js +0 -66
- package/dist/__tests__/workspace-relocation.test.js.map +0 -1
- package/dist/__tests__/workspace-run-lease.test.d.ts +0 -2
- package/dist/__tests__/workspace-run-lease.test.d.ts.map +0 -1
- package/dist/__tests__/workspace-run-lease.test.js +0 -230
- package/dist/__tests__/workspace-run-lease.test.js.map +0 -1
- package/dist/__tests__/ws-client-heartbeat-volatile.test.d.ts +0 -2
- package/dist/__tests__/ws-client-heartbeat-volatile.test.d.ts.map +0 -1
- package/dist/__tests__/ws-client-heartbeat-volatile.test.js +0 -61
- package/dist/__tests__/ws-client-heartbeat-volatile.test.js.map +0 -1
- package/dist/__tests__/ws-client-heartbeat.integration.test.d.ts +0 -2
- package/dist/__tests__/ws-client-heartbeat.integration.test.d.ts.map +0 -1
- package/dist/__tests__/ws-client-heartbeat.integration.test.js +0 -109
- package/dist/__tests__/ws-client-heartbeat.integration.test.js.map +0 -1
- package/dist/__tests__/ws-client-user-message-ack.integration.test.d.ts +0 -2
- package/dist/__tests__/ws-client-user-message-ack.integration.test.d.ts.map +0 -1
- package/dist/__tests__/ws-client-user-message-ack.integration.test.js +0 -167
- package/dist/__tests__/ws-client-user-message-ack.integration.test.js.map +0 -1
- package/dist/aiden-system-prompt.d.ts +0 -6
- package/dist/aiden-system-prompt.d.ts.map +0 -1
- package/dist/aiden-system-prompt.js +0 -6
- package/dist/aiden-system-prompt.js.map +0 -1
- package/dist/binding-switch-git.d.ts +0 -26
- package/dist/binding-switch-git.d.ts.map +0 -1
- package/dist/binding-switch-git.js +0 -973
- package/dist/binding-switch-git.js.map +0 -1
- package/dist/cli-ensure-install.d.ts +0 -39
- package/dist/cli-ensure-install.d.ts.map +0 -1
- package/dist/cli-ensure-install.js +0 -133
- package/dist/cli-ensure-install.js.map +0 -1
- package/dist/cli-executable.d.ts +0 -97
- package/dist/cli-executable.d.ts.map +0 -1
- package/dist/cli-executable.js +0 -432
- package/dist/cli-executable.js.map +0 -1
- package/dist/cli-help.d.ts +0 -7
- package/dist/cli-help.d.ts.map +0 -1
- package/dist/cli-help.js +0 -49
- package/dist/cli-help.js.map +0 -1
- package/dist/computer-readiness.d.ts +0 -42
- package/dist/computer-readiness.d.ts.map +0 -1
- package/dist/computer-readiness.js +0 -191
- package/dist/computer-readiness.js.map +0 -1
- package/dist/core-agent.d.ts +0 -47
- package/dist/core-agent.d.ts.map +0 -1
- package/dist/core-agent.js +0 -364
- package/dist/core-agent.js.map +0 -1
- package/dist/daemon.d.ts +0 -392
- package/dist/daemon.d.ts.map +0 -1
- package/dist/daemon.js +0 -4711
- package/dist/daemon.js.map +0 -1
- package/dist/event-outbox.d.ts +0 -83
- package/dist/event-outbox.d.ts.map +0 -1
- package/dist/event-outbox.js +0 -440
- package/dist/event-outbox.js.map +0 -1
- package/dist/fake-provider-cli.d.ts +0 -13
- package/dist/fake-provider-cli.d.ts.map +0 -1
- package/dist/fake-provider-cli.js +0 -53
- package/dist/fake-provider-cli.js.map +0 -1
- package/dist/generated-images.d.ts +0 -2
- package/dist/generated-images.d.ts.map +0 -1
- package/dist/generated-images.js +0 -2
- package/dist/generated-images.js.map +0 -1
- package/dist/index.d.ts +0 -6
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -209
- package/dist/index.js.map +0 -1
- package/dist/lifecycle-logger.d.ts +0 -25
- package/dist/lifecycle-logger.d.ts.map +0 -1
- package/dist/lifecycle-logger.js +0 -73
- package/dist/lifecycle-logger.js.map +0 -1
- package/dist/local-skill-scan.d.ts +0 -21
- package/dist/local-skill-scan.d.ts.map +0 -1
- package/dist/local-skill-scan.js +0 -109
- package/dist/local-skill-scan.js.map +0 -1
- package/dist/local-workspace-migration.d.ts +0 -68
- package/dist/local-workspace-migration.d.ts.map +0 -1
- package/dist/local-workspace-migration.js +0 -157
- package/dist/local-workspace-migration.js.map +0 -1
- package/dist/mcp-readiness.d.ts +0 -59
- package/dist/mcp-readiness.d.ts.map +0 -1
- package/dist/mcp-readiness.js +0 -202
- package/dist/mcp-readiness.js.map +0 -1
- package/dist/mcp-registration.d.ts +0 -75
- package/dist/mcp-registration.d.ts.map +0 -1
- package/dist/mcp-registration.js +0 -563
- package/dist/mcp-registration.js.map +0 -1
- package/dist/model-scan-runner.d.ts +0 -15
- package/dist/model-scan-runner.d.ts.map +0 -1
- package/dist/model-scan-runner.js +0 -51
- package/dist/model-scan-runner.js.map +0 -1
- package/dist/network-diagnostics.d.ts +0 -8
- package/dist/network-diagnostics.d.ts.map +0 -1
- package/dist/network-diagnostics.js +0 -56
- package/dist/network-diagnostics.js.map +0 -1
- package/dist/observable-map.d.ts +0 -25
- package/dist/observable-map.d.ts.map +0 -1
- package/dist/observable-map.js +0 -42
- package/dist/observable-map.js.map +0 -1
- package/dist/provider-auth-preflight.d.ts +0 -22
- package/dist/provider-auth-preflight.d.ts.map +0 -1
- package/dist/provider-auth-preflight.js +0 -110
- package/dist/provider-auth-preflight.js.map +0 -1
- package/dist/provider-model-discovery.d.ts +0 -38
- package/dist/provider-model-discovery.d.ts.map +0 -1
- package/dist/provider-model-discovery.js +0 -519
- package/dist/provider-model-discovery.js.map +0 -1
- package/dist/resume-fallback-env.d.ts +0 -20
- package/dist/resume-fallback-env.d.ts.map +0 -1
- package/dist/resume-fallback-env.js +0 -30
- package/dist/resume-fallback-env.js.map +0 -1
- package/dist/run-journal.d.ts +0 -53
- package/dist/run-journal.d.ts.map +0 -1
- package/dist/run-journal.js +0 -193
- package/dist/run-journal.js.map +0 -1
- package/dist/run-start-gate.d.ts +0 -9
- package/dist/run-start-gate.d.ts.map +0 -1
- package/dist/run-start-gate.js +0 -24
- package/dist/run-start-gate.js.map +0 -1
- package/dist/runtime-backends.d.ts +0 -2
- package/dist/runtime-backends.d.ts.map +0 -1
- package/dist/runtime-backends.js +0 -2
- package/dist/runtime-backends.js.map +0 -1
- package/dist/runtime-capabilities-sync.d.ts +0 -33
- package/dist/runtime-capabilities-sync.d.ts.map +0 -1
- package/dist/runtime-capabilities-sync.js +0 -56
- package/dist/runtime-capabilities-sync.js.map +0 -1
- package/dist/runtime-config.d.ts +0 -24
- package/dist/runtime-config.d.ts.map +0 -1
- package/dist/runtime-config.js +0 -124
- package/dist/runtime-config.js.map +0 -1
- package/dist/sandbox-outbox.d.ts +0 -122
- package/dist/sandbox-outbox.d.ts.map +0 -1
- package/dist/sandbox-outbox.js +0 -180
- package/dist/sandbox-outbox.js.map +0 -1
- package/dist/sandbox.d.ts +0 -44
- package/dist/sandbox.d.ts.map +0 -1
- package/dist/sandbox.js +0 -438
- package/dist/sandbox.js.map +0 -1
- package/dist/service-manager.d.ts +0 -28
- package/dist/service-manager.d.ts.map +0 -1
- package/dist/service-manager.js +0 -259
- package/dist/service-manager.js.map +0 -1
- package/dist/sleep-inhibitor.d.ts +0 -111
- package/dist/sleep-inhibitor.d.ts.map +0 -1
- package/dist/sleep-inhibitor.js +0 -412
- package/dist/sleep-inhibitor.js.map +0 -1
- package/dist/suspension-detector.d.ts +0 -48
- package/dist/suspension-detector.d.ts.map +0 -1
- package/dist/suspension-detector.js +0 -89
- package/dist/suspension-detector.js.map +0 -1
- package/dist/types.d.ts +0 -6
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -6
- package/dist/types.js.map +0 -1
- package/dist/updater.d.ts +0 -15
- package/dist/updater.d.ts.map +0 -1
- package/dist/updater.js +0 -50
- package/dist/updater.js.map +0 -1
- package/dist/version.d.ts +0 -2
- package/dist/version.d.ts.map +0 -1
- package/dist/version.js +0 -2
- package/dist/version.js.map +0 -1
- package/dist/web-presenter.d.ts +0 -55
- package/dist/web-presenter.d.ts.map +0 -1
- package/dist/web-presenter.js +0 -265
- package/dist/web-presenter.js.map +0 -1
- package/dist/workspace-relocation.d.ts +0 -22
- package/dist/workspace-relocation.d.ts.map +0 -1
- package/dist/workspace-relocation.js +0 -90
- package/dist/workspace-relocation.js.map +0 -1
- package/dist/workspace-run-lease.d.ts +0 -97
- package/dist/workspace-run-lease.d.ts.map +0 -1
- package/dist/workspace-run-lease.js +0 -241
- package/dist/workspace-run-lease.js.map +0 -1
- package/dist/ws-client.d.ts +0 -194
- package/dist/ws-client.d.ts.map +0 -1
- package/dist/ws-client.js +0 -282
- package/dist/ws-client.js.map +0 -1
|
@@ -1,519 +0,0 @@
|
|
|
1
|
-
import { readFileSync, realpathSync } from "node:fs";
|
|
2
|
-
import { AVAILABLE_MODELS, OPENCODE_ZEN_MODELS, PROVIDER_MODELS } from "@alan-ai/shared/frontend";
|
|
3
|
-
import { collapseCursorDiscoveredModelIds } from "@alan-ai/shared/runtime-discovered-models";
|
|
4
|
-
import { runCliProbeAsync } from "./cli-executable.js";
|
|
5
|
-
export const MODEL_DISCOVERY_TIMEOUT_MS = 8_000;
|
|
6
|
-
const ANTIGRAVITY_MODEL_DISCOVERY_TIMEOUT_MS = 12_000;
|
|
7
|
-
const OPENCODE_ZEN_MODEL_IDS = OPENCODE_ZEN_MODELS.map((model) => model.id);
|
|
8
|
-
const CLAUDE_MODEL_ID_PATTERN = /claude-(?:sonnet|opus|haiku|fable)-[a-z0-9][a-z0-9-]*/g;
|
|
9
|
-
const CLAUDE_MODEL_ALIASES = ["sonnet", "opus", "haiku", "fable"];
|
|
10
|
-
/**
|
|
11
|
-
* Non-numeric segments allowed after the family/version in a Claude model id (e.g.
|
|
12
|
-
* `claude-opus-4-6-fast`, `claude-sonnet-5-thinking`). Any OTHER alphabetic segment is an
|
|
13
|
-
* internal binary codename, not a dispatchable model — the scrape regex greedily runs
|
|
14
|
-
* across hyphens, so `claude-fable-5-mythos-5` matched an internal string. Rejecting
|
|
15
|
-
* unknown word segments keeps such codenames out of the picker.
|
|
16
|
-
*/
|
|
17
|
-
const CLAUDE_MODEL_QUALIFIER_SEGMENTS = new Set(["fast", "thinking", "latest", "preview"]);
|
|
18
|
-
/** Curated catalogue ids that a longer scraped sibling must never evict. */
|
|
19
|
-
const PROTECTED_CATALOG_MODEL_IDS = new Set(AVAILABLE_MODELS.map((model) => model.id).filter((id) => id.length > 0));
|
|
20
|
-
const CATALOG_MODEL_IDS_BY_PROVIDER = Object.fromEntries(Object.entries(PROVIDER_MODELS).map(([provider, models]) => [
|
|
21
|
-
provider,
|
|
22
|
-
models.map((model) => model.id),
|
|
23
|
-
]));
|
|
24
|
-
function readModelId(value) {
|
|
25
|
-
if (typeof value === "string") {
|
|
26
|
-
const trimmed = value.trim();
|
|
27
|
-
return trimmed.length > 0 ? trimmed : null;
|
|
28
|
-
}
|
|
29
|
-
if (!value || typeof value !== "object")
|
|
30
|
-
return null;
|
|
31
|
-
const record = value;
|
|
32
|
-
return (readModelId(record.slug) ??
|
|
33
|
-
readModelId(record.id) ??
|
|
34
|
-
readModelId(record.model) ??
|
|
35
|
-
readModelId(record.name) ??
|
|
36
|
-
readModelId(record.value));
|
|
37
|
-
}
|
|
38
|
-
export function extractModelIdsFromJson(value) {
|
|
39
|
-
if (Array.isArray(value)) {
|
|
40
|
-
return [...new Set(value.map(readModelId).filter((model) => Boolean(model)))];
|
|
41
|
-
}
|
|
42
|
-
if (!value || typeof value !== "object")
|
|
43
|
-
return [];
|
|
44
|
-
const record = value;
|
|
45
|
-
for (const key of ["models", "data", "items"]) {
|
|
46
|
-
const nested = extractModelIdsFromJson(record[key]);
|
|
47
|
-
if (nested.length > 0)
|
|
48
|
-
return nested;
|
|
49
|
-
}
|
|
50
|
-
const byProvider = record.opencode ?? record.providers;
|
|
51
|
-
if (byProvider) {
|
|
52
|
-
const nested = extractModelIdsFromJson(byProvider);
|
|
53
|
-
if (nested.length > 0)
|
|
54
|
-
return nested;
|
|
55
|
-
}
|
|
56
|
-
return [];
|
|
57
|
-
}
|
|
58
|
-
/** Parse `codex debug models` JSON — only slugs the CLI exposes in the picker. */
|
|
59
|
-
export function extractCodexModelSlugsFromDebugJson(value) {
|
|
60
|
-
if (!value || typeof value !== "object")
|
|
61
|
-
return [];
|
|
62
|
-
const models = value.models;
|
|
63
|
-
if (!Array.isArray(models))
|
|
64
|
-
return [];
|
|
65
|
-
const slugs = [];
|
|
66
|
-
for (const entry of models) {
|
|
67
|
-
if (!entry || typeof entry !== "object")
|
|
68
|
-
continue;
|
|
69
|
-
const record = entry;
|
|
70
|
-
const visibility = typeof record.visibility === "string" ? record.visibility.toLowerCase() : "list";
|
|
71
|
-
if (visibility === "hidden" || visibility === "hide")
|
|
72
|
-
continue;
|
|
73
|
-
const slug = readModelId(record.slug);
|
|
74
|
-
if (slug)
|
|
75
|
-
slugs.push(slug);
|
|
76
|
-
}
|
|
77
|
-
return [...new Set(slugs)];
|
|
78
|
-
}
|
|
79
|
-
function normalizeCodexReasoningEffort(effort) {
|
|
80
|
-
const normalized = effort.trim().toLowerCase();
|
|
81
|
-
if (!normalized)
|
|
82
|
-
return null;
|
|
83
|
-
// Codex/OpenAI use `none`; Alan's picker label is `minimal`.
|
|
84
|
-
if (normalized === "none")
|
|
85
|
-
return "minimal";
|
|
86
|
-
if (normalized === "minimal" ||
|
|
87
|
-
normalized === "low" ||
|
|
88
|
-
normalized === "medium" ||
|
|
89
|
-
normalized === "high" ||
|
|
90
|
-
normalized === "xhigh" ||
|
|
91
|
-
normalized === "max" ||
|
|
92
|
-
normalized === "ultra") {
|
|
93
|
-
return normalized;
|
|
94
|
-
}
|
|
95
|
-
return null;
|
|
96
|
-
}
|
|
97
|
-
/** Parse `codex debug models` JSON and expand supported reasoning levels for effort merge. */
|
|
98
|
-
export function extractCodexDiscoveredModelIdsFromDebugJson(value) {
|
|
99
|
-
if (!value || typeof value !== "object")
|
|
100
|
-
return [];
|
|
101
|
-
const models = value.models;
|
|
102
|
-
if (!Array.isArray(models))
|
|
103
|
-
return [];
|
|
104
|
-
const ids = [];
|
|
105
|
-
for (const entry of models) {
|
|
106
|
-
if (!entry || typeof entry !== "object")
|
|
107
|
-
continue;
|
|
108
|
-
const record = entry;
|
|
109
|
-
const visibility = typeof record.visibility === "string" ? record.visibility.toLowerCase() : "list";
|
|
110
|
-
if (visibility === "hidden" || visibility === "hide")
|
|
111
|
-
continue;
|
|
112
|
-
const slug = readModelId(record.slug);
|
|
113
|
-
if (!slug)
|
|
114
|
-
continue;
|
|
115
|
-
const reasoningLevels = record.supported_reasoning_levels;
|
|
116
|
-
if (Array.isArray(reasoningLevels) && reasoningLevels.length > 0) {
|
|
117
|
-
for (const levelEntry of reasoningLevels) {
|
|
118
|
-
if (!levelEntry || typeof levelEntry !== "object")
|
|
119
|
-
continue;
|
|
120
|
-
const effort = typeof levelEntry.effort === "string"
|
|
121
|
-
? levelEntry.effort
|
|
122
|
-
: null;
|
|
123
|
-
const normalized = effort ? normalizeCodexReasoningEffort(effort) : null;
|
|
124
|
-
if (normalized)
|
|
125
|
-
ids.push(`${slug}-${normalized}`);
|
|
126
|
-
}
|
|
127
|
-
continue;
|
|
128
|
-
}
|
|
129
|
-
ids.push(slug);
|
|
130
|
-
}
|
|
131
|
-
return [...new Set(ids)];
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* OpenCode's real reasoning-capability scan.
|
|
135
|
-
*
|
|
136
|
-
* `opencode models --verbose` (verified against opencode 1.17.18 — `opencode models
|
|
137
|
-
* --json`/`models list --json`/`model list --json`, tried below as a fallback, all
|
|
138
|
-
* fail with exit code 1 against the real CLI) prints, per model, an id line
|
|
139
|
-
* (`opencode/<model>`) followed by a pretty-printed JSON object carrying
|
|
140
|
-
* `capabilities.reasoning` (boolean) and `variants` (a map of tunable reasoning-effort
|
|
141
|
-
* tiers, e.g. `{ low: {...}, medium: {...}, high: {...} }`). This is NOT single-blob
|
|
142
|
-
* JSON — it's a stream of id-line + JSON-object pairs — so it needs its own parser
|
|
143
|
-
* rather than `JSON.parse` over the whole stdout.
|
|
144
|
-
*
|
|
145
|
-
* This is the live source of truth for which OpenCode models (including the free zen
|
|
146
|
-
* models) actually support tunable reasoning effort — do not hardcode a per-model
|
|
147
|
-
* effort matrix; scan it here the same way Codex's `debug models` scan and Cursor's
|
|
148
|
-
* `models --json` scan are the source of truth for their own effort tiers.
|
|
149
|
-
*/
|
|
150
|
-
const OPENCODE_MODEL_ID_LINE_PATTERN = /^[a-z0-9][\w.-]*\/[\w.-]+$/i;
|
|
151
|
-
/** Effort suffix tokens `parseModelEffortSuffix` (packages/shared/src/effort.ts) recognizes. */
|
|
152
|
-
const OPENCODE_KNOWN_VARIANT_KEYS = new Set([
|
|
153
|
-
"minimal",
|
|
154
|
-
"none",
|
|
155
|
-
"low",
|
|
156
|
-
"medium",
|
|
157
|
-
"high",
|
|
158
|
-
"xhigh",
|
|
159
|
-
"extra-high",
|
|
160
|
-
"max",
|
|
161
|
-
"ultra",
|
|
162
|
-
]);
|
|
163
|
-
/**
|
|
164
|
-
* Parse the `opencode models --verbose` hybrid text+JSON stream into structured
|
|
165
|
-
* entries. Tracks brace depth with string/escape awareness (not a naive count) so a
|
|
166
|
-
* brace inside a JSON string value can never desync parsing. Skips any block that
|
|
167
|
-
* fails to parse rather than aborting the whole scan — a single malformed model entry
|
|
168
|
-
* (future CLI schema tweak) should not blank out live effort discovery for every
|
|
169
|
-
* other model in the same scan.
|
|
170
|
-
*/
|
|
171
|
-
function parseOpenCodeVerboseModelOutput(text) {
|
|
172
|
-
const entries = [];
|
|
173
|
-
const lines = text.split(/\r?\n/);
|
|
174
|
-
let i = 0;
|
|
175
|
-
while (i < lines.length) {
|
|
176
|
-
const line = (lines[i] ?? "").trim();
|
|
177
|
-
i += 1;
|
|
178
|
-
if (!OPENCODE_MODEL_ID_LINE_PATTERN.test(line))
|
|
179
|
-
continue;
|
|
180
|
-
let jsonStart = i;
|
|
181
|
-
while (jsonStart < lines.length && (lines[jsonStart] ?? "").trim() === "")
|
|
182
|
-
jsonStart += 1;
|
|
183
|
-
if (jsonStart >= lines.length || !(lines[jsonStart] ?? "").trim().startsWith("{"))
|
|
184
|
-
continue;
|
|
185
|
-
let depth = 0;
|
|
186
|
-
let inString = false;
|
|
187
|
-
let escaped = false;
|
|
188
|
-
let endLineIdx = -1;
|
|
189
|
-
let buffer = "";
|
|
190
|
-
for (let j = jsonStart; j < lines.length; j += 1) {
|
|
191
|
-
const raw = lines[j] ?? "";
|
|
192
|
-
buffer += (buffer ? "\n" : "") + raw;
|
|
193
|
-
for (const ch of raw) {
|
|
194
|
-
if (escaped) {
|
|
195
|
-
escaped = false;
|
|
196
|
-
continue;
|
|
197
|
-
}
|
|
198
|
-
if (ch === "\\" && inString) {
|
|
199
|
-
escaped = true;
|
|
200
|
-
continue;
|
|
201
|
-
}
|
|
202
|
-
if (ch === '"') {
|
|
203
|
-
inString = !inString;
|
|
204
|
-
continue;
|
|
205
|
-
}
|
|
206
|
-
if (inString)
|
|
207
|
-
continue;
|
|
208
|
-
if (ch === "{")
|
|
209
|
-
depth += 1;
|
|
210
|
-
else if (ch === "}")
|
|
211
|
-
depth -= 1;
|
|
212
|
-
}
|
|
213
|
-
if (depth === 0) {
|
|
214
|
-
endLineIdx = j;
|
|
215
|
-
break;
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
if (endLineIdx === -1)
|
|
219
|
-
break; // truncated/malformed tail — stop parsing safely
|
|
220
|
-
try {
|
|
221
|
-
const obj = JSON.parse(buffer);
|
|
222
|
-
entries.push({
|
|
223
|
-
id: line,
|
|
224
|
-
reasoning: obj.capabilities?.reasoning === true,
|
|
225
|
-
variants: obj.variants ? Object.keys(obj.variants) : [],
|
|
226
|
-
});
|
|
227
|
-
}
|
|
228
|
-
catch {
|
|
229
|
-
// Skip this one malformed entry; keep scanning the rest of the stream.
|
|
230
|
-
}
|
|
231
|
-
i = endLineIdx + 1;
|
|
232
|
-
}
|
|
233
|
-
return entries;
|
|
234
|
-
}
|
|
235
|
-
export function extractOpenCodeModelCapabilitiesFromVerboseOutput(text) {
|
|
236
|
-
return parseOpenCodeVerboseModelOutput(text)
|
|
237
|
-
.filter((entry) => entry.id.startsWith("opencode/"))
|
|
238
|
-
.map((entry) => ({
|
|
239
|
-
id: entry.id,
|
|
240
|
-
variants: entry.reasoning
|
|
241
|
-
? entry.variants.filter((variant) => {
|
|
242
|
-
const trimmed = variant.trim();
|
|
243
|
-
return (Boolean(trimmed) &&
|
|
244
|
-
trimmed.length <= 256 &&
|
|
245
|
-
!Array.from(trimmed).some((character) => {
|
|
246
|
-
const code = character.charCodeAt(0);
|
|
247
|
-
return code <= 31 || code === 127;
|
|
248
|
-
}));
|
|
249
|
-
})
|
|
250
|
-
: [],
|
|
251
|
-
}));
|
|
252
|
-
}
|
|
253
|
-
/**
|
|
254
|
-
* Expand `opencode models --verbose` output into discovery ids. A reasoning-capable
|
|
255
|
-
* model with tunable variants emits one `<id>-<variant>` per known variant (e.g.
|
|
256
|
-
* `opencode/deepseek-v4-flash-free-low`, `...-medium`, `...-high`, `...-max`) — these
|
|
257
|
-
* collapse back to base + effort via the existing `parseModelEffortSuffix` machinery,
|
|
258
|
-
* exactly like Codex's `debug models` reasoning-tier expansion. A model with
|
|
259
|
-
* `reasoning: true` but no (recognized) tunable variant — e.g. `big-pickle`, which
|
|
260
|
-
* always reasons with no selectable level — emits its bare id only, so it is never
|
|
261
|
-
* treated as effort-tunable. An unrecognized variant key is dropped rather than
|
|
262
|
-
* guessed at, so it can never corrupt a base model id.
|
|
263
|
-
*/
|
|
264
|
-
export function extractOpenCodeDiscoveredModelIdsFromVerboseOutput(text) {
|
|
265
|
-
const entries = extractOpenCodeModelCapabilitiesFromVerboseOutput(text);
|
|
266
|
-
const ids = [];
|
|
267
|
-
for (const entry of entries) {
|
|
268
|
-
const knownVariants = entry.variants.filter((variant) => OPENCODE_KNOWN_VARIANT_KEYS.has(variant));
|
|
269
|
-
if (knownVariants.length === 0) {
|
|
270
|
-
ids.push(entry.id);
|
|
271
|
-
continue;
|
|
272
|
-
}
|
|
273
|
-
for (const variant of knownVariants) {
|
|
274
|
-
ids.push(`${entry.id}-${variant}`);
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
return [...new Set(ids)];
|
|
278
|
-
}
|
|
279
|
-
export function extractModelIdsFromText(value) {
|
|
280
|
-
const ansiPattern = new RegExp(`${String.fromCharCode(27)}\\[[0-9;]*m`, "g");
|
|
281
|
-
const ignoredLinePattern = /^(available models|models|usage|error|flag provided|try |agy\b|warning:)/i;
|
|
282
|
-
const ids = value
|
|
283
|
-
.split(/\r?\n/)
|
|
284
|
-
.map((line) => line
|
|
285
|
-
.replace(ansiPattern, "")
|
|
286
|
-
.replace(/^[-*•]\s*/, "")
|
|
287
|
-
.trim())
|
|
288
|
-
.filter((line) => line.length > 0 && !ignoredLinePattern.test(line));
|
|
289
|
-
return [...new Set(ids)];
|
|
290
|
-
}
|
|
291
|
-
/** Parse `cursor-agent models` lines like `gpt-5.3-codex - Codex 5.3`. */
|
|
292
|
-
export function extractModelIdsFromLabeledList(value) {
|
|
293
|
-
const ansiPattern = new RegExp(`${String.fromCharCode(27)}\\[[0-9;]*m`, "g");
|
|
294
|
-
const ignoredLinePattern = /^(available models|models|usage|error|warning:)/i;
|
|
295
|
-
const ids = [];
|
|
296
|
-
for (const rawLine of value.split(/\r?\n/)) {
|
|
297
|
-
const line = rawLine.replace(ansiPattern, "").trim();
|
|
298
|
-
if (!line || ignoredLinePattern.test(line))
|
|
299
|
-
continue;
|
|
300
|
-
const dashIdx = line.indexOf(" - ");
|
|
301
|
-
const id = (dashIdx >= 0 ? line.slice(0, dashIdx) : line).trim();
|
|
302
|
-
if (id)
|
|
303
|
-
ids.push(id);
|
|
304
|
-
}
|
|
305
|
-
return [...new Set(ids)];
|
|
306
|
-
}
|
|
307
|
-
export function isValidClaudeModelId(id) {
|
|
308
|
-
if (CLAUDE_MODEL_ALIASES.includes(id))
|
|
309
|
-
return true;
|
|
310
|
-
const match = id.match(/^claude-(sonnet|opus|haiku|fable)-([a-z0-9][a-z0-9-]*)$/);
|
|
311
|
-
if (!match)
|
|
312
|
-
return false;
|
|
313
|
-
if (id.includes("."))
|
|
314
|
-
return false;
|
|
315
|
-
if (/-\d{8}$/.test(id))
|
|
316
|
-
return false;
|
|
317
|
-
if (/-v\d+$/.test(id))
|
|
318
|
-
return false;
|
|
319
|
-
// Every segment after the family token must be a version number or a known qualifier.
|
|
320
|
-
// An unknown alphabetic segment (e.g. "mythos") is an internal binary codename that the
|
|
321
|
-
// greedy scrape regex ran into, not a real model id.
|
|
322
|
-
for (const segment of match[2].split("-")) {
|
|
323
|
-
if (/^\d+$/.test(segment))
|
|
324
|
-
continue;
|
|
325
|
-
if (CLAUDE_MODEL_QUALIFIER_SEGMENTS.has(segment))
|
|
326
|
-
continue;
|
|
327
|
-
return false;
|
|
328
|
-
}
|
|
329
|
-
return true;
|
|
330
|
-
}
|
|
331
|
-
/** Drop short Claude id prefixes when a longer sibling exists (e.g. claude-opus-4 vs claude-opus-4-6). */
|
|
332
|
-
export function filterClaudePrefixModelIds(ids) {
|
|
333
|
-
const set = new Set(ids);
|
|
334
|
-
return ids.filter((id) => {
|
|
335
|
-
// A curated catalogue id is never evicted by a longer scraped sibling — defense in
|
|
336
|
-
// depth so a future internal codename can't hide a real, shipped model.
|
|
337
|
-
if (PROTECTED_CATALOG_MODEL_IDS.has(id))
|
|
338
|
-
return true;
|
|
339
|
-
for (const other of set) {
|
|
340
|
-
if (other !== id && other.startsWith(`${id}-`))
|
|
341
|
-
return false;
|
|
342
|
-
}
|
|
343
|
-
return true;
|
|
344
|
-
});
|
|
345
|
-
}
|
|
346
|
-
/** Drop dated API snapshot ids when the undated sibling is present. */
|
|
347
|
-
export function filterClaudeDatedModelIds(ids) {
|
|
348
|
-
const set = new Set(ids);
|
|
349
|
-
return ids.filter((id) => {
|
|
350
|
-
const dated = id.match(/^(claude-(?:sonnet|opus|haiku|fable)-[a-z0-9][a-z0-9-]*)-\d{8}$/);
|
|
351
|
-
if (!dated)
|
|
352
|
-
return true;
|
|
353
|
-
return !set.has(dated[1]);
|
|
354
|
-
});
|
|
355
|
-
}
|
|
356
|
-
function resolveExecutableForModelScan(executable) {
|
|
357
|
-
try {
|
|
358
|
-
return realpathSync(executable);
|
|
359
|
-
}
|
|
360
|
-
catch {
|
|
361
|
-
return executable;
|
|
362
|
-
}
|
|
363
|
-
}
|
|
364
|
-
/** Claude Code has no non-interactive model list yet; scrape embedded ids from the binary. */
|
|
365
|
-
export function extractClaudeModelIdsFromExecutable(executable) {
|
|
366
|
-
try {
|
|
367
|
-
const resolved = resolveExecutableForModelScan(executable);
|
|
368
|
-
const text = readFileSync(resolved).toString("latin1");
|
|
369
|
-
const matches = text.match(CLAUDE_MODEL_ID_PATTERN) ?? [];
|
|
370
|
-
const unique = [
|
|
371
|
-
...new Set(matches.map((id) => id.trim()).filter((id) => isValidClaudeModelId(id))),
|
|
372
|
-
...CLAUDE_MODEL_ALIASES,
|
|
373
|
-
];
|
|
374
|
-
return filterClaudeDatedModelIds(filterClaudePrefixModelIds(unique));
|
|
375
|
-
}
|
|
376
|
-
catch {
|
|
377
|
-
return [];
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
export function getCatalogModelIds(provider) {
|
|
381
|
-
const catalogProvider = provider === "opencode_serve" ? "opencode_cli" : provider;
|
|
382
|
-
return [...(CATALOG_MODEL_IDS_BY_PROVIDER[catalogProvider] ?? [])];
|
|
383
|
-
}
|
|
384
|
-
function withModelProbeEnv(env) {
|
|
385
|
-
const term = env.TERM;
|
|
386
|
-
if (term && term !== "dumb")
|
|
387
|
-
return env;
|
|
388
|
-
return { ...env, TERM: "xterm-256color" };
|
|
389
|
-
}
|
|
390
|
-
async function probeJsonOrTextModels(executable, env, argSets, options) {
|
|
391
|
-
const probeEnv = withModelProbeEnv(env);
|
|
392
|
-
const timeoutMs = options?.timeoutMs ?? MODEL_DISCOVERY_TIMEOUT_MS;
|
|
393
|
-
for (const args of argSets) {
|
|
394
|
-
const result = await runCliProbeAsync(executable, probeEnv, args, timeoutMs, options?.closeStdin ? { closeStdin: true } : undefined);
|
|
395
|
-
if (!result || result.error || result.status !== 0 || !result.stdout.trim())
|
|
396
|
-
continue;
|
|
397
|
-
try {
|
|
398
|
-
const parsed = JSON.parse(result.stdout);
|
|
399
|
-
const codexModels = extractCodexDiscoveredModelIdsFromDebugJson(parsed);
|
|
400
|
-
if (codexModels.length > 0)
|
|
401
|
-
return codexModels;
|
|
402
|
-
const models = extractModelIdsFromJson(parsed);
|
|
403
|
-
if (models.length > 0)
|
|
404
|
-
return models;
|
|
405
|
-
}
|
|
406
|
-
catch {
|
|
407
|
-
const labeled = extractModelIdsFromLabeledList(result.stdout);
|
|
408
|
-
if (labeled.length > 0)
|
|
409
|
-
return labeled;
|
|
410
|
-
const models = extractModelIdsFromText(result.stdout);
|
|
411
|
-
if (models.length > 0)
|
|
412
|
-
return models;
|
|
413
|
-
}
|
|
414
|
-
}
|
|
415
|
-
return [];
|
|
416
|
-
}
|
|
417
|
-
async function discoverOpenCodeModels(executable, env) {
|
|
418
|
-
// Real command (verified live): `opencode models --verbose` prints per-model
|
|
419
|
-
// reasoning/variant capability — see extractOpenCodeDiscoveredModelIdsFromVerboseOutput.
|
|
420
|
-
// `--json`/`list --json` variants below are NOT real opencode flags (they exit 1 with
|
|
421
|
-
// opencode's own --help text); kept only as a last-resort probe in case some other
|
|
422
|
-
// OpenCode-compatible CLI build genuinely supports them.
|
|
423
|
-
const verbose = await runCliProbeAsync(executable, withModelProbeEnv(env), ["models", "--verbose"], MODEL_DISCOVERY_TIMEOUT_MS);
|
|
424
|
-
if (verbose && !verbose.error && verbose.status === 0 && verbose.stdout.trim()) {
|
|
425
|
-
const withEffort = extractOpenCodeDiscoveredModelIdsFromVerboseOutput(verbose.stdout);
|
|
426
|
-
if (withEffort.length > 0)
|
|
427
|
-
return withEffort;
|
|
428
|
-
}
|
|
429
|
-
const plain = await probeJsonOrTextModels(executable, env, [["models"]]);
|
|
430
|
-
if (plain.length > 0)
|
|
431
|
-
return plain;
|
|
432
|
-
const legacy = await probeJsonOrTextModels(executable, env, [
|
|
433
|
-
["models", "--json"],
|
|
434
|
-
["models", "list", "--json"],
|
|
435
|
-
["model", "list", "--json"],
|
|
436
|
-
]);
|
|
437
|
-
return legacy.length > 0 ? legacy : OPENCODE_ZEN_MODEL_IDS;
|
|
438
|
-
}
|
|
439
|
-
async function discoverAntigravityModels(executable, env) {
|
|
440
|
-
return probeJsonOrTextModels(executable, env, [["models"]], {
|
|
441
|
-
closeStdin: true,
|
|
442
|
-
timeoutMs: ANTIGRAVITY_MODEL_DISCOVERY_TIMEOUT_MS,
|
|
443
|
-
});
|
|
444
|
-
}
|
|
445
|
-
async function discoverCursorAgentModels(executable, env) {
|
|
446
|
-
return probeJsonOrTextModels(executable, env, [
|
|
447
|
-
["models", "--json"],
|
|
448
|
-
["models"],
|
|
449
|
-
["--list-models"],
|
|
450
|
-
]);
|
|
451
|
-
}
|
|
452
|
-
async function discoverCodexModels(executable, env) {
|
|
453
|
-
return probeJsonOrTextModels(executable, env, [["debug", "models"]]);
|
|
454
|
-
}
|
|
455
|
-
async function discoverClaudeModels(executable, env) {
|
|
456
|
-
const fromCli = await probeJsonOrTextModels(executable, env, [
|
|
457
|
-
["model", "list", "--json"],
|
|
458
|
-
["models", "--json"],
|
|
459
|
-
["models", "list", "--json"],
|
|
460
|
-
]);
|
|
461
|
-
if (fromCli.length > 0) {
|
|
462
|
-
return collapseCursorDiscoveredModelIds(fromCli);
|
|
463
|
-
}
|
|
464
|
-
return extractClaudeModelIdsFromExecutable(executable);
|
|
465
|
-
}
|
|
466
|
-
async function discoverGenericModels(executable, env) {
|
|
467
|
-
return probeJsonOrTextModels(executable, env, [
|
|
468
|
-
["models", "--json"],
|
|
469
|
-
["models", "list", "--json"],
|
|
470
|
-
["models"],
|
|
471
|
-
]);
|
|
472
|
-
}
|
|
473
|
-
/**
|
|
474
|
-
* Providers with no non-interactive model list at all — probing would just burn the
|
|
475
|
-
* discovery timeout on guaranteed-failing commands, so skip straight to the catalog.
|
|
476
|
-
*
|
|
477
|
-
* `copilot_cli` verified against Copilot CLI 1.0.75: `copilot models`/`models --json`/
|
|
478
|
-
* `models list --json` are not real subcommands (`error: unknown option '--json'`),
|
|
479
|
-
* there is no `models`-listing entry under `copilot --help`'s `Commands:`, and
|
|
480
|
-
* `~/.copilot/config.json` only caches login/session state, not the model catalog.
|
|
481
|
-
* The only place the real list is enumerated is the interactive `/model` picker inside
|
|
482
|
-
* a live TUI session, which `runCliProbeAsync` (plain stdio, no PTY) cannot drive.
|
|
483
|
-
*/
|
|
484
|
-
const CATALOG_ONLY_PROVIDERS = new Set(["supatest_cli", "droid_cli", "copilot_cli"]);
|
|
485
|
-
export function supportsProviderModelDiscovery(provider) {
|
|
486
|
-
return provider === "opencode_serve" || provider in CATALOG_MODEL_IDS_BY_PROVIDER;
|
|
487
|
-
}
|
|
488
|
-
export async function discoverProviderModels(provider, executable, env) {
|
|
489
|
-
if (CATALOG_ONLY_PROVIDERS.has(provider)) {
|
|
490
|
-
return getCatalogModelIds(provider);
|
|
491
|
-
}
|
|
492
|
-
let probed = [];
|
|
493
|
-
if (provider === "opencode_cli" || provider === "opencode_serve") {
|
|
494
|
-
probed = await discoverOpenCodeModels(executable, env);
|
|
495
|
-
}
|
|
496
|
-
else if (provider === "antigravity_cli") {
|
|
497
|
-
probed = await discoverAntigravityModels(executable, env);
|
|
498
|
-
}
|
|
499
|
-
else if (provider === "cursor_agent_cli") {
|
|
500
|
-
probed = await discoverCursorAgentModels(executable, env);
|
|
501
|
-
}
|
|
502
|
-
else if (provider === "codex_app_server") {
|
|
503
|
-
probed = await discoverCodexModels(executable, env);
|
|
504
|
-
}
|
|
505
|
-
else if (provider === "claude_cli") {
|
|
506
|
-
probed = await discoverClaudeModels(executable, env);
|
|
507
|
-
}
|
|
508
|
-
else if (provider === "kimi_cli" || provider === "grok_cli") {
|
|
509
|
-
// kimi_cli/grok_cli are not installed in this environment and their real
|
|
510
|
-
// non-interactive interface (if any) has not been verified — left on the
|
|
511
|
-
// generic best-effort prober rather than guessing a new one. See the plan
|
|
512
|
-
// doc / PR description for the verification gap.
|
|
513
|
-
probed = await discoverGenericModels(executable, env);
|
|
514
|
-
}
|
|
515
|
-
if (probed.length > 0)
|
|
516
|
-
return probed;
|
|
517
|
-
return getCatalogModelIds(provider);
|
|
518
|
-
}
|
|
519
|
-
//# sourceMappingURL=provider-model-discovery.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provider-model-discovery.js","sourceRoot":"","sources":["../src/provider-model-discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Transport for the resume-failure fallback transcript from the backend resume
|
|
3
|
-
* pipeline into the sandbox agent process.
|
|
4
|
-
*
|
|
5
|
-
* The API resume pipeline base64-encodes a compact recent transcript and injects
|
|
6
|
-
* it as `ALAN_RESUME_FALLBACK_CONTEXT_B64`. Base64 keeps the multi-line block
|
|
7
|
-
* intact across every provider env-injection path (E2B real env map; Daytona
|
|
8
|
-
* `su -c` shell interpolation), mirroring the existing `ALAN_ENV_FILE_B64`
|
|
9
|
-
* convention. The agent decodes it here and, if native resume of the provider
|
|
10
|
-
* session fails, rehydrates a fresh session from it instead of starting amnesiac.
|
|
11
|
-
*/
|
|
12
|
-
/** Env var carrying the base64 recent-transcript for resume-failure fallback. */
|
|
13
|
-
export declare const RESUME_FALLBACK_CONTEXT_ENV = "ALAN_RESUME_FALLBACK_CONTEXT_B64";
|
|
14
|
-
/**
|
|
15
|
-
* Decode the base64 resume-fallback transcript. Returns undefined for an absent,
|
|
16
|
-
* empty, or undecodable value so a malformed env var never crashes bootstrap —
|
|
17
|
-
* the agent simply falls back to amnesiac resume.
|
|
18
|
-
*/
|
|
19
|
-
export declare function decodeResumeFallbackContext(encoded: string | undefined): string | undefined;
|
|
20
|
-
//# sourceMappingURL=resume-fallback-env.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resume-fallback-env.d.ts","sourceRoot":"","sources":["../src/resume-fallback-env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,iFAAiF;AACjF,eAAO,MAAM,2BAA2B,qCAAqC,CAAC;AAE9E;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAQ3F"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Transport for the resume-failure fallback transcript from the backend resume
|
|
3
|
-
* pipeline into the sandbox agent process.
|
|
4
|
-
*
|
|
5
|
-
* The API resume pipeline base64-encodes a compact recent transcript and injects
|
|
6
|
-
* it as `ALAN_RESUME_FALLBACK_CONTEXT_B64`. Base64 keeps the multi-line block
|
|
7
|
-
* intact across every provider env-injection path (E2B real env map; Daytona
|
|
8
|
-
* `su -c` shell interpolation), mirroring the existing `ALAN_ENV_FILE_B64`
|
|
9
|
-
* convention. The agent decodes it here and, if native resume of the provider
|
|
10
|
-
* session fails, rehydrates a fresh session from it instead of starting amnesiac.
|
|
11
|
-
*/
|
|
12
|
-
/** Env var carrying the base64 recent-transcript for resume-failure fallback. */
|
|
13
|
-
export const RESUME_FALLBACK_CONTEXT_ENV = "ALAN_RESUME_FALLBACK_CONTEXT_B64";
|
|
14
|
-
/**
|
|
15
|
-
* Decode the base64 resume-fallback transcript. Returns undefined for an absent,
|
|
16
|
-
* empty, or undecodable value so a malformed env var never crashes bootstrap —
|
|
17
|
-
* the agent simply falls back to amnesiac resume.
|
|
18
|
-
*/
|
|
19
|
-
export function decodeResumeFallbackContext(encoded) {
|
|
20
|
-
if (!encoded)
|
|
21
|
-
return undefined;
|
|
22
|
-
try {
|
|
23
|
-
const decoded = Buffer.from(encoded, "base64").toString("utf8").trim();
|
|
24
|
-
return decoded.length > 0 ? decoded : undefined;
|
|
25
|
-
}
|
|
26
|
-
catch {
|
|
27
|
-
return undefined;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=resume-fallback-env.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resume-fallback-env.js","sourceRoot":"","sources":["../src/resume-fallback-env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,iFAAiF;AACjF,MAAM,CAAC,MAAM,2BAA2B,GAAG,kCAAkC,CAAC;AAE9E;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CAAC,OAA2B;IACrE,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QACvE,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
|
package/dist/run-journal.d.ts
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
export interface RuntimeRunJournalEntry {
|
|
2
|
-
runId: string;
|
|
3
|
-
conversationId: string;
|
|
4
|
-
acceptedAtMs: number;
|
|
5
|
-
/** Set when a later daemon process recovers this entry after interruption. */
|
|
6
|
-
interruptedAtMs?: number;
|
|
7
|
-
/** Diagnostic evidence only. A PID is not a durable process identity. */
|
|
8
|
-
providerPid?: number;
|
|
9
|
-
providerSpawnedAtMs?: number;
|
|
10
|
-
}
|
|
11
|
-
export type RuntimeRunRecoveryAssessment = {
|
|
12
|
-
reattachable: false;
|
|
13
|
-
reason: "provider_not_recorded";
|
|
14
|
-
} | {
|
|
15
|
-
reattachable: false;
|
|
16
|
-
reason: "provider_not_running";
|
|
17
|
-
providerPid: number;
|
|
18
|
-
} | {
|
|
19
|
-
reattachable: false;
|
|
20
|
-
reason: "provider_identity_unverified";
|
|
21
|
-
providerPid: number;
|
|
22
|
-
};
|
|
23
|
-
/**
|
|
24
|
-
* Durable accepted-run inbox. It stores identifiers only—never prompts, tool
|
|
25
|
-
* payloads, credentials, or provider output—and is persisted before the daemon
|
|
26
|
-
* acknowledges acceptance so a restart cannot turn redelivery into a second run.
|
|
27
|
-
*/
|
|
28
|
-
export declare class RuntimeRunJournal {
|
|
29
|
-
private readonly path;
|
|
30
|
-
private readonly entries;
|
|
31
|
-
private readonly recoveredIds;
|
|
32
|
-
private recoveryPersistencePending;
|
|
33
|
-
constructor(path: string, nowMs?: number);
|
|
34
|
-
get(runId: string): RuntimeRunJournalEntry | undefined;
|
|
35
|
-
recoveredRunIds(): string[];
|
|
36
|
-
/**
|
|
37
|
-
* Mark entries from an earlier daemon as interrupted only after this process
|
|
38
|
-
* has proved exclusive ownership of the config's local API endpoint.
|
|
39
|
-
*/
|
|
40
|
-
confirmRecoveryOwnership(nowMs?: number): void;
|
|
41
|
-
record(entry: RuntimeRunJournalEntry): void;
|
|
42
|
-
recordProviderSpawned(runId: string, providerPid: number, providerSpawnedAtMs: number): void;
|
|
43
|
-
/**
|
|
44
|
-
* A live PID is insufficient for reattachment: operating systems can reuse
|
|
45
|
-
* PIDs, and the daemon cannot recover the provider's anonymous stdio pipes.
|
|
46
|
-
* Keep the exact interruption outcome until a durable authenticated control
|
|
47
|
-
* channel can prove both identity and ownership.
|
|
48
|
-
*/
|
|
49
|
-
assessRecovery(runId: string, isProcessAlive: (pid: number) => boolean): RuntimeRunRecoveryAssessment | undefined;
|
|
50
|
-
remove(runId: string): void;
|
|
51
|
-
private persist;
|
|
52
|
-
}
|
|
53
|
-
//# sourceMappingURL=run-journal.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run-journal.d.ts","sourceRoot":"","sources":["../src/run-journal.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,MAAM,4BAA4B,GACpC;IAAE,YAAY,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,uBAAuB,CAAA;CAAE,GACxD;IAAE,YAAY,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,sBAAsB,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAC5E;IAAE,YAAY,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,8BAA8B,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAkCzF;;;;GAIG;AACH,qBAAa,iBAAiB;IAM1B,OAAO,CAAC,QAAQ,CAAC,IAAI;IALvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6C;IACrE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,0BAA0B,CAAS;gBAGxB,IAAI,EAAE,MAAM,EAC7B,KAAK,SAAa;IA0BpB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS;IAItD,eAAe,IAAI,MAAM,EAAE;IAI3B;;;OAGG;IACH,wBAAwB,CAAC,KAAK,SAAa,GAAG,IAAI;IAwBlD,MAAM,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI;IAY3C,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,IAAI;IAmB5F;;;;;OAKG;IACH,cAAc,CACZ,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GACvC,4BAA4B,GAAG,SAAS;IAoB3C,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAe3B,OAAO,CAAC,OAAO;CAgBhB"}
|