@songsid/agend 2.3.4-beta.5 → 2.3.5-alpha.2
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/README.md +2 -0
- package/README.zh-TW.md +2 -0
- package/THIRD_PARTY_NOTICES.md +53 -0
- package/dist/agent-endpoint.d.ts +5 -1
- package/dist/agent-endpoint.js +12 -2
- package/dist/agent-endpoint.js.map +1 -1
- package/dist/backend/claude-code.d.ts +18 -12
- package/dist/backend/claude-code.js +225 -136
- package/dist/backend/claude-code.js.map +1 -1
- package/dist/backend/codex-package.d.ts +5 -2
- package/dist/backend/codex-package.js +1 -5
- package/dist/backend/codex-package.js.map +1 -1
- package/dist/backend/codex.d.ts +136 -113
- package/dist/backend/codex.js +1271 -1219
- package/dist/backend/codex.js.map +1 -1
- package/dist/backend/grok-model-cache.d.ts +7 -0
- package/dist/backend/grok-model-cache.js +65 -0
- package/dist/backend/grok-model-cache.js.map +1 -0
- package/dist/backend/grok.d.ts +2 -0
- package/dist/backend/grok.js +22 -0
- package/dist/backend/grok.js.map +1 -1
- package/dist/backend/native-pane.d.ts +9 -0
- package/dist/backend/native-pane.js +59 -0
- package/dist/backend/native-pane.js.map +1 -0
- package/dist/backend/types.d.ts +7 -0
- package/dist/backend/types.js.map +1 -1
- package/dist/channel/ipc-bridge.d.ts +2 -0
- package/dist/channel/mcp-tools.js +1 -1
- package/dist/channel/mcp-tools.js.map +1 -1
- package/dist/cli.js +6 -2
- package/dist/cli.js.map +1 -1
- package/dist/config-validator.js +59 -0
- package/dist/config-validator.js.map +1 -1
- package/dist/config.js +16 -0
- package/dist/config.js.map +1 -1
- package/dist/daemon.d.ts +62 -5
- package/dist/daemon.js +760 -240
- package/dist/daemon.js.map +1 -1
- package/dist/delivery-consumed-watch.d.ts +15 -3
- package/dist/delivery-consumed-watch.js +23 -1
- package/dist/delivery-consumed-watch.js.map +1 -1
- package/dist/delivery-outbox.d.ts +5 -0
- package/dist/delivery-outbox.js +32 -4
- package/dist/delivery-outbox.js.map +1 -1
- package/dist/delivery-reconciliation.d.ts +2 -35
- package/dist/delivery-reconciliation.js +2 -156
- package/dist/delivery-reconciliation.js.map +1 -1
- package/dist/fleet-context.d.ts +2 -2
- package/dist/fleet-level-config.d.ts +1 -1
- package/dist/fleet-level-config.js +2 -0
- package/dist/fleet-level-config.js.map +1 -1
- package/dist/fleet-manager.d.ts +125 -2
- package/dist/fleet-manager.js +1157 -27
- package/dist/fleet-manager.js.map +1 -1
- package/dist/fleet-windows-runtime.d.ts +92 -0
- package/dist/fleet-windows-runtime.js +373 -0
- package/dist/fleet-windows-runtime.js.map +1 -0
- package/dist/instance-config-impact.js +4 -0
- package/dist/instance-config-impact.js.map +1 -1
- package/dist/instance-lifecycle.d.ts +20 -3
- package/dist/instance-lifecycle.js +358 -156
- package/dist/instance-lifecycle.js.map +1 -1
- package/dist/local-pane-endpoint.d.ts +46 -0
- package/dist/local-pane-endpoint.js +189 -0
- package/dist/local-pane-endpoint.js.map +1 -0
- package/dist/local-pane-launcher.d.ts +2 -0
- package/dist/local-pane-launcher.js +38 -0
- package/dist/local-pane-launcher.js.map +1 -0
- package/dist/local-pane-stage.ps1 +101 -0
- package/dist/locale.js +34 -0
- package/dist/locale.js.map +1 -1
- package/dist/model-catalog-defaults.d.ts +14 -0
- package/dist/model-catalog-defaults.js +20 -0
- package/dist/model-catalog-defaults.js.map +1 -0
- package/dist/native-agent-admission.d.ts +7 -0
- package/dist/native-agent-admission.js +26 -0
- package/dist/native-agent-admission.js.map +1 -0
- package/dist/native-daemon-client.d.ts +13 -0
- package/dist/native-daemon-client.js +28 -0
- package/dist/native-daemon-client.js.map +1 -0
- package/dist/native-instance-api.d.ts +14 -0
- package/dist/native-instance-api.js +205 -0
- package/dist/native-instance-api.js.map +1 -0
- package/dist/native-instance-input.d.ts +84 -0
- package/dist/native-instance-input.js +54 -0
- package/dist/native-instance-input.js.map +1 -0
- package/dist/native-instance-registry.d.ts +32 -0
- package/dist/native-instance-registry.js +105 -0
- package/dist/native-instance-registry.js.map +1 -0
- package/dist/native-mcp.d.ts +40 -0
- package/dist/native-mcp.js +278 -0
- package/dist/native-mcp.js.map +1 -0
- package/dist/native-model-catalog.d.ts +5 -0
- package/dist/native-model-catalog.js +76 -0
- package/dist/native-model-catalog.js.map +1 -0
- package/dist/native-pane-crash-budget.d.ts +20 -0
- package/dist/native-pane-crash-budget.js +60 -0
- package/dist/native-pane-crash-budget.js.map +1 -0
- package/dist/native-pane-create.d.ts +26 -0
- package/dist/native-pane-create.js +53 -0
- package/dist/native-pane-create.js.map +1 -0
- package/dist/native-pane-lifecycle.d.ts +65 -0
- package/dist/native-pane-lifecycle.js +227 -0
- package/dist/native-pane-lifecycle.js.map +1 -0
- package/dist/native-pane-manager.d.ts +58 -0
- package/dist/native-pane-manager.js +563 -0
- package/dist/native-pane-manager.js.map +1 -0
- package/dist/native-pane-output-log.d.ts +15 -0
- package/dist/native-pane-output-log.js +108 -0
- package/dist/native-pane-output-log.js.map +1 -0
- package/dist/native-pane-reconciliation.d.ts +4 -0
- package/dist/native-pane-reconciliation.js +40 -0
- package/dist/native-pane-reconciliation.js.map +1 -0
- package/dist/native-pane-recovery.d.ts +12 -0
- package/dist/native-pane-recovery.js +10 -0
- package/dist/native-pane-recovery.js.map +1 -0
- package/dist/native-pane-tools.d.ts +2 -0
- package/dist/native-pane-tools.js +14 -0
- package/dist/native-pane-tools.js.map +1 -0
- package/dist/needs-you-hub.d.ts +2 -0
- package/dist/needs-you-hub.js +1 -0
- package/dist/needs-you-hub.js.map +1 -1
- package/dist/needs-you.d.ts +12 -1
- package/dist/needs-you.js +8 -1
- package/dist/needs-you.js.map +1 -1
- package/dist/outbound-handlers.d.ts +16 -2
- package/dist/outbound-handlers.js +67 -3
- package/dist/outbound-handlers.js.map +1 -1
- package/dist/outbound-schemas.d.ts +38 -0
- package/dist/outbound-schemas.js +12 -0
- package/dist/outbound-schemas.js.map +1 -1
- package/dist/pane-port.d.ts +107 -0
- package/dist/pane-port.js +2 -0
- package/dist/pane-port.js.map +1 -0
- package/dist/runtime-api.d.ts +8 -0
- package/dist/runtime-api.js +96 -0
- package/dist/runtime-api.js.map +1 -0
- package/dist/runtime-assets/@xterm/addon-serialize/LICENSE +21 -0
- package/dist/runtime-assets/@xterm/addon-serialize/lib/addon-serialize.js +2 -0
- package/dist/runtime-assets/@xterm/addon-serialize/lib/addon-serialize.mjs +19 -0
- package/dist/runtime-assets/@xterm/addon-serialize/package.json +29 -0
- package/dist/runtime-assets/@xterm/headless/LICENSE +21 -0
- package/dist/runtime-assets/@xterm/headless/lib-headless/xterm-headless.js +2 -0
- package/dist/runtime-assets/@xterm/headless/lib-headless/xterm-headless.mjs +46 -0
- package/dist/runtime-assets/@xterm/headless/package.json +29 -0
- package/dist/runtime-assets/node-pty/CONPTY-LICENSE +21 -0
- package/dist/runtime-assets/node-pty/CONPTY-NOTICE.md +503 -0
- package/dist/runtime-assets/node-pty/LICENSE +69 -0
- package/dist/runtime-assets/node-pty/lib/conpty_console_list_agent.js +16 -0
- package/dist/runtime-assets/node-pty/lib/eventEmitter2.js +47 -0
- package/dist/runtime-assets/node-pty/lib/index.js +52 -0
- package/dist/runtime-assets/node-pty/lib/interfaces.js +7 -0
- package/dist/runtime-assets/node-pty/lib/shared/conout.js +11 -0
- package/dist/runtime-assets/node-pty/lib/terminal.js +190 -0
- package/dist/runtime-assets/node-pty/lib/types.js +7 -0
- package/dist/runtime-assets/node-pty/lib/unixTerminal.js +346 -0
- package/dist/runtime-assets/node-pty/lib/utils.js +39 -0
- package/dist/runtime-assets/node-pty/lib/windowsConoutConnection.js +125 -0
- package/dist/runtime-assets/node-pty/lib/windowsPtyAgent.js +320 -0
- package/dist/runtime-assets/node-pty/lib/windowsTerminal.js +199 -0
- package/dist/runtime-assets/node-pty/lib/worker/conoutSocketWorker.js +22 -0
- package/dist/runtime-assets/node-pty/package.json +64 -0
- package/dist/runtime-assets/node-pty/prebuilds/win32-arm64/conpty/OpenConsole.exe +0 -0
- package/dist/runtime-assets/node-pty/prebuilds/win32-arm64/conpty/conpty.dll +0 -0
- package/dist/runtime-assets/node-pty/prebuilds/win32-arm64/conpty.node +0 -0
- package/dist/runtime-assets/node-pty/prebuilds/win32-arm64/conpty_console_list.node +0 -0
- package/dist/runtime-assets/node-pty/prebuilds/win32-x64/conpty/OpenConsole.exe +0 -0
- package/dist/runtime-assets/node-pty/prebuilds/win32-x64/conpty/conpty.dll +0 -0
- package/dist/runtime-assets/node-pty/prebuilds/win32-x64/conpty.node +0 -0
- package/dist/runtime-assets/node-pty/prebuilds/win32-x64/conpty_console_list.node +0 -0
- package/dist/runtime-bundle.d.ts +17 -0
- package/dist/runtime-bundle.js +147 -0
- package/dist/runtime-bundle.js.map +1 -0
- package/dist/runtime-cli.d.ts +2 -0
- package/dist/runtime-cli.js +117 -0
- package/dist/runtime-cli.js.map +1 -0
- package/dist/runtime-client-store.d.ts +49 -0
- package/dist/runtime-client-store.js +292 -0
- package/dist/runtime-client-store.js.map +1 -0
- package/dist/runtime-client.d.ts +100 -0
- package/dist/runtime-client.js +700 -0
- package/dist/runtime-client.js.map +1 -0
- package/dist/runtime-coordinator.d.ts +82 -0
- package/dist/runtime-coordinator.js +864 -0
- package/dist/runtime-coordinator.js.map +1 -0
- package/dist/runtime-pane-assets.d.ts +17 -0
- package/dist/runtime-pane-assets.js +23 -0
- package/dist/runtime-pane-assets.js.map +1 -0
- package/dist/runtime-pane-boot.d.ts +2 -0
- package/dist/runtime-pane-boot.js +24 -0
- package/dist/runtime-pane-boot.js.map +1 -0
- package/dist/runtime-pane-codex-index.d.ts +1 -0
- package/dist/runtime-pane-codex-index.js +47 -0
- package/dist/runtime-pane-codex-index.js.map +1 -0
- package/dist/runtime-pane-config.d.ts +16 -0
- package/dist/runtime-pane-config.js +54 -0
- package/dist/runtime-pane-config.js.map +1 -0
- package/dist/runtime-pane-host.d.ts +43 -0
- package/dist/runtime-pane-host.js +403 -0
- package/dist/runtime-pane-host.js.map +1 -0
- package/dist/runtime-pane-job-owner.d.ts +1 -0
- package/dist/runtime-pane-job-owner.js +29 -0
- package/dist/runtime-pane-job-owner.js.map +1 -0
- package/dist/runtime-pane-job.ps1 +116 -0
- package/dist/runtime-pane-link.d.ts +40 -0
- package/dist/runtime-pane-link.js +246 -0
- package/dist/runtime-pane-link.js.map +1 -0
- package/dist/runtime-pane-mcp-protocol.d.ts +32 -0
- package/dist/runtime-pane-mcp-protocol.js +39 -0
- package/dist/runtime-pane-mcp-protocol.js.map +1 -0
- package/dist/runtime-pane-mcp-relay.d.ts +17 -0
- package/dist/runtime-pane-mcp-relay.js +70 -0
- package/dist/runtime-pane-mcp-relay.js.map +1 -0
- package/dist/runtime-pane-mcp.d.ts +43 -0
- package/dist/runtime-pane-mcp.js +137 -0
- package/dist/runtime-pane-mcp.js.map +1 -0
- package/dist/runtime-pane-native.d.ts +45 -0
- package/dist/runtime-pane-native.js +65 -0
- package/dist/runtime-pane-native.js.map +1 -0
- package/dist/runtime-pane-output.d.ts +19 -0
- package/dist/runtime-pane-output.js +53 -0
- package/dist/runtime-pane-output.js.map +1 -0
- package/dist/runtime-pane-port.d.ts +134 -0
- package/dist/runtime-pane-port.js +537 -0
- package/dist/runtime-pane-port.js.map +1 -0
- package/dist/runtime-pane-private.d.ts +14 -0
- package/dist/runtime-pane-private.js +51 -0
- package/dist/runtime-pane-private.js.map +1 -0
- package/dist/runtime-pane-private.ps1 +14 -0
- package/dist/runtime-pane-process.d.ts +4 -0
- package/dist/runtime-pane-process.js +108 -0
- package/dist/runtime-pane-process.js.map +1 -0
- package/dist/runtime-pane-protocol.d.ts +169 -0
- package/dist/runtime-pane-protocol.js +189 -0
- package/dist/runtime-pane-protocol.js.map +1 -0
- package/dist/runtime-pane-screen.d.ts +19 -0
- package/dist/runtime-pane-screen.js +76 -0
- package/dist/runtime-pane-screen.js.map +1 -0
- package/dist/runtime-pane-service.d.ts +11 -0
- package/dist/runtime-pane-service.js +221 -0
- package/dist/runtime-pane-service.js.map +1 -0
- package/dist/runtime-pane-stdio-protocol.d.ts +54 -0
- package/dist/runtime-pane-stdio-protocol.js +94 -0
- package/dist/runtime-pane-stdio-protocol.js.map +1 -0
- package/dist/runtime-pane-stdio.d.ts +3 -0
- package/dist/runtime-pane-stdio.js +123 -0
- package/dist/runtime-pane-stdio.js.map +1 -0
- package/dist/runtime-pane-store.d.ts +33 -0
- package/dist/runtime-pane-store.js +164 -0
- package/dist/runtime-pane-store.js.map +1 -0
- package/dist/runtime-pane-transcript-protocol.d.ts +43 -0
- package/dist/runtime-pane-transcript-protocol.js +58 -0
- package/dist/runtime-pane-transcript-protocol.js.map +1 -0
- package/dist/runtime-pane-transcript.d.ts +45 -0
- package/dist/runtime-pane-transcript.js +605 -0
- package/dist/runtime-pane-transcript.js.map +1 -0
- package/dist/runtime-pane-worker.d.ts +1 -0
- package/dist/runtime-pane-worker.js +154 -0
- package/dist/runtime-pane-worker.js.map +1 -0
- package/dist/runtime-protocol.d.ts +149 -0
- package/dist/runtime-protocol.js +19 -0
- package/dist/runtime-protocol.js.map +1 -0
- package/dist/runtime-switches.d.ts +79 -0
- package/dist/runtime-switches.js +90 -0
- package/dist/runtime-switches.js.map +1 -0
- package/dist/runtime-transcript-delta-reader.d.ts +23 -0
- package/dist/runtime-transcript-delta-reader.js +74 -0
- package/dist/runtime-transcript-delta-reader.js.map +1 -0
- package/dist/runtime-transcript-source.d.ts +36 -0
- package/dist/runtime-transcript-source.js +189 -0
- package/dist/runtime-transcript-source.js.map +1 -0
- package/dist/runtime-windows-bridge.d.ts +41 -0
- package/dist/runtime-windows-bridge.js +157 -0
- package/dist/runtime-windows-bridge.js.map +1 -0
- package/dist/settings-api.js +58 -0
- package/dist/settings-api.js.map +1 -1
- package/dist/settings-change.js +28 -0
- package/dist/settings-change.js.map +1 -1
- package/dist/settings-confirmation.d.ts +15 -1
- package/dist/settings-confirmation.js +46 -9
- package/dist/settings-confirmation.js.map +1 -1
- package/dist/settings-effect.js +23 -1
- package/dist/settings-effect.js.map +1 -1
- package/dist/settings-http-confirmation.js +11 -2
- package/dist/settings-http-confirmation.js.map +1 -1
- package/dist/tmux-control.d.ts +2 -1
- package/dist/tmux-control.js.map +1 -1
- package/dist/tmux-manager.d.ts +2 -1
- package/dist/tmux-manager.js.map +1 -1
- package/dist/tmux-pane-host.d.ts +26 -0
- package/dist/tmux-pane-host.js +25 -0
- package/dist/tmux-pane-host.js.map +1 -0
- package/dist/topic-commands.js +3 -0
- package/dist/topic-commands.js.map +1 -1
- package/dist/transcript-delta-reader.d.ts +1 -1
- package/dist/transcript-delta-reader.js +1 -1
- package/dist/transcript-delta-reader.js.map +1 -1
- package/dist/transcript-monitor.d.ts +3 -0
- package/dist/transcript-monitor.js +22 -46
- package/dist/transcript-monitor.js.map +1 -1
- package/dist/transcript-needles.d.ts +35 -0
- package/dist/transcript-needles.js +158 -0
- package/dist/transcript-needles.js.map +1 -0
- package/dist/transcript-records.d.ts +21 -0
- package/dist/transcript-records.js +140 -0
- package/dist/transcript-records.js.map +1 -0
- package/dist/transcript-sources.d.ts +5 -0
- package/dist/transcript-sources.js +8 -79
- package/dist/transcript-sources.js.map +1 -1
- package/dist/types.d.ts +21 -0
- package/dist/ui/agent-proposals.js +90 -0
- package/dist/ui/agent-runtime.js +106 -0
- package/dist/ui/chat-store.js +13 -2
- package/dist/ui/chat-strings.js +48 -0
- package/dist/ui/cli-picker.js +42 -0
- package/dist/ui/native-instance-settings.js +47 -0
- package/dist/ui/native-pane-recovery.js +45 -0
- package/dist/ui/panel-chat.js +61 -32
- package/dist/ui/panel-details.js +2 -1
- package/dist/ui/panel-fleet.js +99 -18
- package/dist/ui/panel-needs.js +152 -3
- package/dist/ui/panel-runtimes.js +231 -0
- package/dist/ui/panel-settings.js +14 -8
- package/dist/ui/panel-windows-agent.js +86 -0
- package/dist/ui/panel-windows-cli.js +143 -0
- package/dist/ui/provider-marks.js +83 -0
- package/dist/ui/runtime-catalog.js +55 -0
- package/dist/ui/settings-catalog.js +37 -10
- package/dist/ui/settings-confirm.js +3 -1
- package/dist/ui/settings-dialogs.js +14 -5
- package/dist/ui/settings-registry.js +5 -0
- package/dist/ui/settings-strings.js +14 -0
- package/dist/ui/shared/app-i18n.js +2 -2
- package/dist/ui/shared/app-route.js +6 -2
- package/dist/ui/shared/app-shell.js +3 -2
- package/dist/ui/shared/app-store.js +1 -0
- package/dist/ui/shared/app-stream.js +3 -1
- package/dist/ui/shared/app.css +301 -0
- package/dist/ui/shared/app.js +4 -0
- package/dist/ui/shared/header-tools.js +6 -4
- package/dist/ui/shared/instance-nav.js +20 -4
- package/dist/ui/shared/instance-switch.js +4 -3
- package/dist/ui/shared/ui-menu.js +28 -8
- package/dist/ui/shared/view-strings.js +6 -0
- package/dist/ui/windows-agents-nav.js +2 -0
- package/dist/ui/windows-cli-catalog.js +79 -0
- package/dist/update-check.d.ts +8 -2
- package/dist/update-check.js +5 -2
- package/dist/update-check.js.map +1 -1
- package/dist/web-api.d.ts +25 -0
- package/dist/web-api.js +171 -6
- package/dist/web-api.js.map +1 -1
- package/dist/web-chat-history.d.ts +19 -2
- package/dist/web-chat-history.js +72 -3
- package/dist/web-chat-history.js.map +1 -1
- package/dist/web-shell-routes.d.ts +4 -1
- package/dist/web-shell-routes.js +7 -2
- package/dist/web-shell-routes.js.map +1 -1
- package/dist/windows-agents.d.ts +112 -0
- package/dist/windows-agents.js +463 -0
- package/dist/windows-agents.js.map +1 -0
- package/dist/windows-cli-api.d.ts +23 -0
- package/dist/windows-cli-api.js +158 -0
- package/dist/windows-cli-api.js.map +1 -0
- package/dist/windows-cli-providers.d.ts +115 -0
- package/dist/windows-cli-providers.js +429 -0
- package/dist/windows-cli-providers.js.map +1 -0
- package/dist/windows-cli-worker.d.ts +58 -0
- package/dist/windows-cli-worker.js +479 -0
- package/dist/windows-cli-worker.js.map +1 -0
- package/dist/windows-cli.d.ts +115 -0
- package/dist/windows-cli.js +402 -0
- package/dist/windows-cli.js.map +1 -0
- package/dist/windows-native-mcp.d.ts +19 -0
- package/dist/windows-native-mcp.js +143 -0
- package/dist/windows-native-mcp.js.map +1 -0
- package/dist/windows-pane-mcp.d.ts +26 -0
- package/dist/windows-pane-mcp.js +187 -0
- package/dist/windows-pane-mcp.js.map +1 -0
- package/package.json +9 -3
- package/templates/runtime-assets/conpty-LICENSE +21 -0
- package/templates/runtime-assets/conpty-NOTICE.md +503 -0
- package/templates/runtime-assets/local-pane-stage.ps1 +101 -0
- package/templates/runtime-assets/runtime-pane-job.ps1 +116 -0
- package/templates/runtime-assets/runtime-pane-private.ps1 +14 -0
- package/templates/runtime-assets/xterm-LICENSE +21 -0
|
@@ -0,0 +1,429 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Native Windows CLI adapters. Built-ins only: also loaded by Windows Node from WSL.
|
|
3
|
+
* Protocol references (fixtures below intentionally require explicit terminal success):
|
|
4
|
+
* - Antigravity: https://antigravity.google/docs/cli/headless/
|
|
5
|
+
* - Grok: https://github.com/xai-org/grok-build/blob/main/crates/codegen/xai-grok-pager/docs/user-guide/14-headless-mode.md
|
|
6
|
+
* - OpenCode: https://opencode.ai/docs/cli/ and anomalyco/opencode#26855 (stdin/step_finish).
|
|
7
|
+
* - Muse: https://dev.meta.ai/docs/muse-code/extending and meta-models/muse-code-sdk MSP schema.
|
|
8
|
+
* - Claude flags were checked against the installed native 2.1.299 --help.
|
|
9
|
+
*/
|
|
10
|
+
export const NATIVE_PROVIDER_IDS = ["codex", "claude-code", "antigravity", "grok", "kiro-cli", "opencode", "muse"];
|
|
11
|
+
export const NATIVE_MCP_SERVER = "agend_native";
|
|
12
|
+
export function nativeProviderMcpSupported(cli) { return cli === "codex" || cli === "claude-code"; }
|
|
13
|
+
export function validateNativeMcpConnection(value) {
|
|
14
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
15
|
+
throw new Error("Invalid native MCP connection");
|
|
16
|
+
const v = value;
|
|
17
|
+
if (Object.keys(v).some(key => !["endpoint", "token", "tools"].includes(key)) || typeof v.endpoint !== "string" || typeof v.token !== "string"
|
|
18
|
+
|| !/^[a-f0-9]{64}$/i.test(v.token) || !Array.isArray(v.tools) || !v.tools.length || v.tools.length > 128
|
|
19
|
+
|| v.tools.some(tool => typeof tool !== "string" || !/^[a-z][a-z0-9_]{0,63}$/.test(tool)))
|
|
20
|
+
throw new Error("Invalid native MCP connection");
|
|
21
|
+
let endpoint;
|
|
22
|
+
try {
|
|
23
|
+
endpoint = new URL(v.endpoint);
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
throw new Error("Invalid native MCP endpoint");
|
|
27
|
+
}
|
|
28
|
+
if (endpoint.protocol !== "http:" || !["127.0.0.1", "[::1]"].includes(endpoint.hostname) || endpoint.pathname !== "/agent"
|
|
29
|
+
|| !endpoint.port || endpoint.port === "0" || endpoint.username || endpoint.password || endpoint.search || endpoint.hash)
|
|
30
|
+
throw new Error("Invalid native MCP endpoint");
|
|
31
|
+
return { endpoint: endpoint.href, token: v.token, tools: [...new Set(v.tools)] };
|
|
32
|
+
}
|
|
33
|
+
const PROVIDERS = {
|
|
34
|
+
codex: {
|
|
35
|
+
id: "codex", name: "Codex", company: "OpenAI", binaryNames: ["codex.exe"],
|
|
36
|
+
supports: { execution: true, resume: true, model: true, mcp: true }, readOnlySupport: true,
|
|
37
|
+
permission: "os-sandbox", permissionNote: "Uses Codex's native read-only or workspace-write sandbox. Approval policy is unchanged.",
|
|
38
|
+
promptTransport: "stdin-text", authProbe: ["login", "status"], modelProbe: null,
|
|
39
|
+
},
|
|
40
|
+
"claude-code": {
|
|
41
|
+
id: "claude-code", name: "Claude Code", company: "Anthropic", binaryNames: ["claude.exe"],
|
|
42
|
+
supports: { execution: true, resume: true, model: true, mcp: true }, readOnlySupport: true,
|
|
43
|
+
permission: "read-tools", permissionNote: "Read-only exposes Read, Glob and Grep only, with MCP disabled; it is a tool restriction, not an OS sandbox. Workspace accepts file edits inside the working directory only. Every other permission request (shell, network, other folders) is denied in headless mode unless Claude Code's own settings already allow it.",
|
|
44
|
+
promptTransport: "stdin-text", authProbe: ["auth", "status"], modelProbe: null,
|
|
45
|
+
},
|
|
46
|
+
antigravity: {
|
|
47
|
+
id: "antigravity", name: "Antigravity", company: "Google", binaryNames: ["agy.exe"],
|
|
48
|
+
supports: { execution: true, resume: true, model: true }, readOnlySupport: false,
|
|
49
|
+
permission: "native-policy", permissionNote: "Uses the native CLI permission policy. Plan mode and terminal sandboxing do not guarantee read-only workspace access.",
|
|
50
|
+
promptTransport: "stdin-json", authProbe: null, modelProbe: ["models"],
|
|
51
|
+
},
|
|
52
|
+
grok: {
|
|
53
|
+
id: "grok", name: "Grok", company: "xAI", binaryNames: ["grok.exe"],
|
|
54
|
+
supports: { execution: true, resume: true, model: true }, readOnlySupport: false,
|
|
55
|
+
permission: "native-policy", permissionNote: "Uses the native CLI permission policy; no blanket approval or sandbox bypass is added.",
|
|
56
|
+
promptTransport: "file", authProbe: null, modelProbe: ["models"],
|
|
57
|
+
},
|
|
58
|
+
"kiro-cli": {
|
|
59
|
+
id: "kiro-cli", name: "Kiro", company: "AWS", binaryNames: ["kiro-cli.exe"],
|
|
60
|
+
supports: { execution: false, resume: false, model: true }, readOnlySupport: false,
|
|
61
|
+
permission: "native-policy", permissionNote: "Native Windows Kiro CLI is separate from Kiro IDE. Headless authentication requires KIRO_API_KEY.",
|
|
62
|
+
promptTransport: "stdin-text", authProbe: null, modelProbe: ["chat", "--list-models", "--format", "json"],
|
|
63
|
+
reason: "Windows headless execution exists, but this adapter has not verified its terminal JSON event schema yet.",
|
|
64
|
+
},
|
|
65
|
+
opencode: {
|
|
66
|
+
id: "opencode", name: "OpenCode", company: "Anomaly", binaryNames: ["opencode.exe"],
|
|
67
|
+
supports: { execution: true, resume: true, model: true }, readOnlySupport: false,
|
|
68
|
+
permission: "native-policy", permissionNote: "Uses the native CLI permission policy; no --auto or permission allow override is added.",
|
|
69
|
+
promptTransport: "stdin-text", authProbe: null, modelProbe: ["models"],
|
|
70
|
+
},
|
|
71
|
+
muse: {
|
|
72
|
+
id: "muse", name: "Muse", company: "Meta", binaryNames: ["muse.exe"],
|
|
73
|
+
supports: { execution: true, resume: true, model: true }, readOnlySupport: false,
|
|
74
|
+
permission: "native-policy", permissionNote: "Uses the native CLI approval and sandbox policy; no --disable-approval, --yolo or workspace-switch override is added.",
|
|
75
|
+
promptTransport: "file", authProbe: null, modelProbe: null,
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
export function isNativeProviderId(value) {
|
|
79
|
+
return typeof value === "string" && NATIVE_PROVIDER_IDS.includes(value);
|
|
80
|
+
}
|
|
81
|
+
export function nativeProvider(id) {
|
|
82
|
+
if (!isNativeProviderId(id))
|
|
83
|
+
throw new Error("Unknown Windows CLI provider");
|
|
84
|
+
return PROVIDERS[id];
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* M-2239 P1-2: each CLI's own "do not update" switch, put in front of every argv AgEnD runs (probe and task), as the
|
|
88
|
+
* Linux backends do (codex.ts, grok.ts). The env switches are in nativeCliEnvironment. Antigravity has no documented
|
|
89
|
+
* switch: it is started only by an administrator's explicit detection or a task, never on a timer or a read.
|
|
90
|
+
*/
|
|
91
|
+
export function nativeUpdateGuard(id) {
|
|
92
|
+
return id === "codex" ? ["-c", "check_for_update_on_startup=false"] : id === "grok" ? ["--no-auto-update"] : [];
|
|
93
|
+
}
|
|
94
|
+
/** Empty means native CLI default. Models remain literal argv, never shell source. */
|
|
95
|
+
export function validateNativeModel(value) {
|
|
96
|
+
if (value === undefined || value === null || value === "")
|
|
97
|
+
return undefined;
|
|
98
|
+
if (typeof value !== "string")
|
|
99
|
+
throw new Error("Model must be a string");
|
|
100
|
+
const model = value.trim();
|
|
101
|
+
if (!model)
|
|
102
|
+
return undefined;
|
|
103
|
+
// Includes Claude's opus[1m] and Antigravity's human-readable model labels.
|
|
104
|
+
if (model.length > 160 || !/^[A-Za-z0-9][A-Za-z0-9._:/[\]() +\-]*$/.test(model))
|
|
105
|
+
throw new Error("Invalid Windows CLI model");
|
|
106
|
+
return model;
|
|
107
|
+
}
|
|
108
|
+
const UUID_RE = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/i;
|
|
109
|
+
export function validNativeSessionId(cli, value) {
|
|
110
|
+
if (typeof value !== "string")
|
|
111
|
+
return false;
|
|
112
|
+
return cli === "opencode" ? /^ses_[A-Za-z0-9]{8,100}$/.test(value) : UUID_RE.test(value);
|
|
113
|
+
}
|
|
114
|
+
function checkMcpLaunch(value) {
|
|
115
|
+
const path = (v) => typeof v === "string" && /^(?:[a-z]:[\\/]|\\\\[^\\/]+[\\/][^\\/]+)/i.test(v) && !/[\x00-\x1f\x7f]/.test(v);
|
|
116
|
+
if (![value.nodePath, value.helperPath, value.connectionPath, value.configPath].every(path) || !/[\\/]node\.exe$/i.test(value.nodePath)
|
|
117
|
+
|| !/[\\/]windows-native-mcp\.js$/.test(value.helperPath) || !Array.isArray(value.tools) || !value.tools.length || value.tools.length > 128
|
|
118
|
+
|| value.tools.some(tool => !/^[a-z][a-z0-9_]{0,63}$/.test(tool)) || value.serverName !== undefined && !/^agend_native_[a-f0-9]{12}$/.test(value.serverName))
|
|
119
|
+
throw new Error("Invalid native MCP launch");
|
|
120
|
+
}
|
|
121
|
+
export function nativeMcpServerConfig(launch) {
|
|
122
|
+
checkMcpLaunch(launch);
|
|
123
|
+
return { mcpServers: { [launch.serverName ?? NATIVE_MCP_SERVER]: { command: launch.nodePath, args: [launch.helperPath, "--connection-file", launch.connectionPath] } } };
|
|
124
|
+
}
|
|
125
|
+
/** Launch-local file policy, supported by the audited native Claude release. No account settings are rewritten.
|
|
126
|
+
* acceptEdits alone can still honor broader ambient allow rules. This hard file-tool check takes precedence over
|
|
127
|
+
* those grants. User/project/local settings are excluded so inherited additionalDirectories cannot widen the file
|
|
128
|
+
* boundary. Managed organization policy remains provider-owned. This is not an OS sandbox for shell commands or MCP
|
|
129
|
+
* tools. Both the exec and persistent adapter must use this exact policy.
|
|
130
|
+
*/
|
|
131
|
+
export function nativeClaudeFilePolicyArgs() {
|
|
132
|
+
return ["--setting-sources", "", "--settings", JSON.stringify({ permissions: { blockWritesOutsideWorkingDirectories: true } })];
|
|
133
|
+
}
|
|
134
|
+
/** Only an argv plan. The caller supplies cwd to spawn({ shell: false, stdio: ['pipe', ...] }). */
|
|
135
|
+
export function buildNativeInvocation(task, options = {}) {
|
|
136
|
+
const provider = nativeProvider(task.cli);
|
|
137
|
+
if (!provider.supports.execution)
|
|
138
|
+
throw new Error(provider.reason || "Windows CLI execution is not supported");
|
|
139
|
+
if (task.sandbox !== "read-only" && task.sandbox !== "workspace-write")
|
|
140
|
+
throw new Error("Invalid sandbox mode");
|
|
141
|
+
if (task.sandbox === "read-only" && !provider.readOnlySupport)
|
|
142
|
+
throw new Error(`${provider.name} cannot guarantee read-only execution; choose native CLI permissions instead`);
|
|
143
|
+
if (typeof task.prompt !== "string" || !task.prompt.trim() || task.prompt.includes("\0") || task.prompt.length > 24_576)
|
|
144
|
+
throw new Error("Invalid Windows CLI prompt");
|
|
145
|
+
if (options.mcp) {
|
|
146
|
+
if (!nativeProviderMcpSupported(task.cli))
|
|
147
|
+
throw new Error("This Windows CLI does not support scoped AgEnD MCP tools");
|
|
148
|
+
checkMcpLaunch(options.mcp);
|
|
149
|
+
}
|
|
150
|
+
const model = validateNativeModel(task.model);
|
|
151
|
+
const resume = options.resumeSessionId;
|
|
152
|
+
if (resume !== undefined && !validNativeSessionId(task.cli, resume))
|
|
153
|
+
throw new Error("Invalid Windows conversation id");
|
|
154
|
+
const withModel = (args) => model ? [...args, "--model", model] : args;
|
|
155
|
+
switch (task.cli) {
|
|
156
|
+
case "codex": {
|
|
157
|
+
// Preserve the MVP ordering: global sandbox/cwd options must precede `exec resume`.
|
|
158
|
+
const args = resume
|
|
159
|
+
? ["-C", task.cwd, "--sandbox", task.sandbox, "exec", "resume", "--json", "--skip-git-repo-check", resume]
|
|
160
|
+
: ["exec", "--json", "--skip-git-repo-check", "--sandbox", task.sandbox, "-C", task.cwd];
|
|
161
|
+
const mcp = options.mcp;
|
|
162
|
+
const namespace = mcp?.serverName ?? NATIVE_MCP_SERVER;
|
|
163
|
+
const prefix = mcp ? ["-c", `mcp_servers.${namespace}.command=${JSON.stringify(mcp.nodePath)}`, "-c", `mcp_servers.${namespace}.args=${JSON.stringify([mcp.helperPath, "--connection-file", mcp.connectionPath])}`] : [];
|
|
164
|
+
return { args: [...nativeUpdateGuard("codex"), ...prefix, ...withModel(args), "-"], stdin: task.prompt };
|
|
165
|
+
}
|
|
166
|
+
case "claude-code": {
|
|
167
|
+
const args = ["--print", "--verbose", "--input-format", "text", "--output-format", "stream-json", "--permission-prompts", "none", ...nativeClaudeFilePolicyArgs()];
|
|
168
|
+
if (task.sandbox === "read-only") {
|
|
169
|
+
// Only built-in read tools; disallow MCP tools even if user/project config enables them.
|
|
170
|
+
// No allowedTools flag: that would override the user's approval policy for the listed tools.
|
|
171
|
+
args.push("--permission-mode", "plan", "--tools", "Read,Glob,Grep", "--strict-mcp-config");
|
|
172
|
+
if (!options.mcp)
|
|
173
|
+
args.push("--mcp-config", '{"mcpServers":{}}');
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
// Accept file edits in the CLI's working directories, with the hard file-tool boundary above. Shell/network
|
|
177
|
+
// still use the CLI policy; headless denies requests needing a prompt, while ambient allow rules may allow them.
|
|
178
|
+
args.push("--permission-mode", "acceptEdits");
|
|
179
|
+
}
|
|
180
|
+
if (options.mcp)
|
|
181
|
+
args.push("--mcp-config", options.mcp.configPath, "--allowedTools", options.mcp.tools.map(tool => `mcp__${options.mcp.serverName ?? NATIVE_MCP_SERVER}__${tool}`).join(","));
|
|
182
|
+
if (resume)
|
|
183
|
+
args.push("--resume", resume);
|
|
184
|
+
return { args: withModel(args), stdin: task.prompt };
|
|
185
|
+
}
|
|
186
|
+
case "antigravity": {
|
|
187
|
+
// Official streaming input protocol; EOF completes the final turn and exits.
|
|
188
|
+
const args = ["--input-format", "stream-json", "--output-format", "stream-json"];
|
|
189
|
+
if (resume)
|
|
190
|
+
args.push("--conversation", resume);
|
|
191
|
+
return { args: withModel(args), stdin: `${JSON.stringify({ event: "user", message: { content: task.prompt } })}\n` };
|
|
192
|
+
}
|
|
193
|
+
case "grok": {
|
|
194
|
+
const file = promptFile(options.promptFile);
|
|
195
|
+
const args = [...nativeUpdateGuard("grok"), "--prompt-file", file, "--output-format", "streaming-json", "--cwd", task.cwd];
|
|
196
|
+
if (resume)
|
|
197
|
+
args.push("--resume", resume);
|
|
198
|
+
return { args: withModel(args), stdin: "" };
|
|
199
|
+
}
|
|
200
|
+
case "opencode": {
|
|
201
|
+
const args = ["run", "--format", "json", "--dir", task.cwd];
|
|
202
|
+
if (resume)
|
|
203
|
+
args.push("--session", resume);
|
|
204
|
+
return { args: withModel(args), stdin: task.prompt };
|
|
205
|
+
}
|
|
206
|
+
case "muse": {
|
|
207
|
+
const args = ["exec", "--json", "--prompt-file", promptFile(options.promptFile)];
|
|
208
|
+
// `muse resume` launches the TUI. Headless resume is exec --session-id.
|
|
209
|
+
if (resume)
|
|
210
|
+
args.push("--session-id", resume);
|
|
211
|
+
return { args: withModel(args), stdin: "" };
|
|
212
|
+
}
|
|
213
|
+
default: throw new Error("Windows CLI execution is not supported");
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
function promptFile(value) {
|
|
217
|
+
if (typeof value !== "string" || !/^[A-Za-z]:[\\/]/.test(value) || /[\x00-\x1f\x7f]/.test(value))
|
|
218
|
+
throw new Error("A private Windows prompt file is required");
|
|
219
|
+
return value;
|
|
220
|
+
}
|
|
221
|
+
function object(value) {
|
|
222
|
+
return value !== null && typeof value === "object" && !Array.isArray(value) ? value : null;
|
|
223
|
+
}
|
|
224
|
+
function string(value) { return typeof value === "string" ? value : undefined; }
|
|
225
|
+
function errorMessage(value) {
|
|
226
|
+
return string(value) ?? string(object(value)?.message) ?? string(object(object(value)?.data)?.message);
|
|
227
|
+
}
|
|
228
|
+
function session(cli, value) {
|
|
229
|
+
return validNativeSessionId(cli, value) ? { sessionId: value } : {};
|
|
230
|
+
}
|
|
231
|
+
function failure(message, fallback) {
|
|
232
|
+
return { failed: true, error: message || fallback };
|
|
233
|
+
}
|
|
234
|
+
/** A recognized provider event, never arbitrary stdout, supplies completion proof. */
|
|
235
|
+
export function parseNativeProviderEvent(cli, line) {
|
|
236
|
+
let e;
|
|
237
|
+
try {
|
|
238
|
+
e = object(JSON.parse(line));
|
|
239
|
+
}
|
|
240
|
+
catch {
|
|
241
|
+
return null;
|
|
242
|
+
}
|
|
243
|
+
if (!e)
|
|
244
|
+
return null;
|
|
245
|
+
switch (cli) {
|
|
246
|
+
case "codex": {
|
|
247
|
+
if (e.type === "thread.started")
|
|
248
|
+
return session(cli, e.thread_id);
|
|
249
|
+
if (e.type === "turn.completed")
|
|
250
|
+
return { completed: true };
|
|
251
|
+
if (e.type === "error" || e.type === "turn.failed")
|
|
252
|
+
return failure(errorMessage(e.error) ?? string(e.message), "Codex turn failed");
|
|
253
|
+
const item = object(e.item);
|
|
254
|
+
if (e.type === "item.completed" && item?.type === "agent_message" && typeof item.text === "string")
|
|
255
|
+
return { text: item.text };
|
|
256
|
+
if (e.type === "item.completed" && item?.type === "command_execution") {
|
|
257
|
+
return { text: [item.command, item.aggregated_output].filter((v) => typeof v === "string").join("\n") };
|
|
258
|
+
}
|
|
259
|
+
return null;
|
|
260
|
+
}
|
|
261
|
+
case "claude-code": {
|
|
262
|
+
const sid = session(cli, e.session_id);
|
|
263
|
+
if (e.type === "system" && e.subtype === "init")
|
|
264
|
+
return sid;
|
|
265
|
+
if (e.type === "assistant") {
|
|
266
|
+
const content = object(e.message)?.content;
|
|
267
|
+
const text = Array.isArray(content) ? content.map(object).filter(v => v?.type === "text").map(v => string(v?.text) ?? "").join("") : "";
|
|
268
|
+
return text ? { ...sid, text } : null;
|
|
269
|
+
}
|
|
270
|
+
if (e.type === "result") {
|
|
271
|
+
// `result` repeats the assistant message; don't append its text a second time.
|
|
272
|
+
if (e.subtype === "success" && e.is_error !== true)
|
|
273
|
+
return { ...sid, completed: true };
|
|
274
|
+
const errors = Array.isArray(e.errors) ? e.errors.map(errorMessage).filter(Boolean).join("\n") : undefined;
|
|
275
|
+
return { ...sid, ...failure(errors || string(e.result) || errorMessage(e.error), `Claude turn ended with ${String(e.subtype || "an error")}`) };
|
|
276
|
+
}
|
|
277
|
+
if (e.type === "error")
|
|
278
|
+
return { ...sid, ...failure(errorMessage(e.error) ?? string(e.message), "Claude turn failed") };
|
|
279
|
+
return null;
|
|
280
|
+
}
|
|
281
|
+
case "antigravity": {
|
|
282
|
+
if (e.event === "init")
|
|
283
|
+
return session(cli, e.conversation_id);
|
|
284
|
+
if (e.event !== "result")
|
|
285
|
+
return null;
|
|
286
|
+
const result = object(e.result);
|
|
287
|
+
if (!result)
|
|
288
|
+
return null;
|
|
289
|
+
const sid = session(cli, result.conversation_id);
|
|
290
|
+
// Recent CLI releases can report SUCCESS after a print timeout. This is an early stop.
|
|
291
|
+
if (typeof result.finished_reason === "string" && result.finished_reason)
|
|
292
|
+
return { ...sid, ...failure(errorMessage(result.error), `Antigravity turn stopped early: ${result.finished_reason}`) };
|
|
293
|
+
if (result.status === "SUCCESS")
|
|
294
|
+
return { ...sid, text: string(result.response), completed: true };
|
|
295
|
+
return { ...sid, ...failure(errorMessage(result.error), `Antigravity turn ended with ${String(result.status || "an unknown status")}`) };
|
|
296
|
+
}
|
|
297
|
+
case "grok": {
|
|
298
|
+
if (e.type === "text" && typeof e.data === "string")
|
|
299
|
+
return { text: e.data };
|
|
300
|
+
if (e.type === "error")
|
|
301
|
+
return failure(string(e.message) ?? errorMessage(e.error), "Grok turn failed");
|
|
302
|
+
if (e.type !== "end")
|
|
303
|
+
return null;
|
|
304
|
+
const sid = session(cli, e.sessionId);
|
|
305
|
+
return e.stopReason === "end_turn" ? { ...sid, completed: true }
|
|
306
|
+
: { ...sid, ...failure(undefined, `Grok turn ended with ${String(e.stopReason || "an unknown stop reason")}`) };
|
|
307
|
+
}
|
|
308
|
+
case "opencode": {
|
|
309
|
+
const part = object(e.part);
|
|
310
|
+
const sid = session(cli, e.sessionID ?? part?.sessionID);
|
|
311
|
+
if (e.type === "text" && typeof part?.text === "string")
|
|
312
|
+
return { ...sid, text: part.text };
|
|
313
|
+
if (e.type === "step_start")
|
|
314
|
+
return sid;
|
|
315
|
+
if (e.type === "error")
|
|
316
|
+
return { ...sid, ...failure(errorMessage(e.error), "OpenCode turn failed") };
|
|
317
|
+
if (e.type === "step_finish") {
|
|
318
|
+
// A tool-calls step is not a finished turn. Older versions without a reason fail closed.
|
|
319
|
+
if (part?.reason === "stop")
|
|
320
|
+
return { ...sid, completed: true };
|
|
321
|
+
if (["length", "content-filter", "error"].includes(String(part?.reason)))
|
|
322
|
+
return { ...sid, ...failure(undefined, `OpenCode turn ended with ${String(part?.reason)}`) };
|
|
323
|
+
}
|
|
324
|
+
return null;
|
|
325
|
+
}
|
|
326
|
+
case "muse": {
|
|
327
|
+
// Muse exec --json parity lines carry the stable MSP method/params envelope.
|
|
328
|
+
// https://github.com/meta-models/muse-code-sdk/blob/main/schema/msp/stable/msp.schema.json
|
|
329
|
+
const params = object(e.params);
|
|
330
|
+
if (!params)
|
|
331
|
+
return null;
|
|
332
|
+
if (e.method === "session/started")
|
|
333
|
+
return session(cli, object(params.session)?.sessionId);
|
|
334
|
+
const sid = session(cli, params.sessionId);
|
|
335
|
+
if (e.method === "item/completed") {
|
|
336
|
+
const item = object(params.item);
|
|
337
|
+
return item?.kind === "agentMessage" && typeof item.text === "string" ? { ...sid, text: item.text } : null;
|
|
338
|
+
}
|
|
339
|
+
if (e.method === "turn/completed") {
|
|
340
|
+
if (params.terminal === "completed" && !params.error)
|
|
341
|
+
return { ...sid, completed: true };
|
|
342
|
+
return { ...sid, ...failure(errorMessage(params.error) ?? string(params.reason), `Muse turn ended with ${String(params.terminal || "an unknown status")}`) };
|
|
343
|
+
}
|
|
344
|
+
return null;
|
|
345
|
+
}
|
|
346
|
+
default: return null;
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
/** No auth probe may infer signed-out from an unsupported command, timeout or malformed output. */
|
|
350
|
+
export function parseNativeAuthResult(cli, ok, output) {
|
|
351
|
+
if (cli === "codex") {
|
|
352
|
+
if (/\bnot logged in\b/i.test(output))
|
|
353
|
+
return false;
|
|
354
|
+
return ok && /\blogged in\b/i.test(output) ? true : null;
|
|
355
|
+
}
|
|
356
|
+
if (cli === "claude-code") {
|
|
357
|
+
try {
|
|
358
|
+
const value = object(JSON.parse(output.trim()));
|
|
359
|
+
return typeof value?.loggedIn === "boolean" ? value.loggedIn : null;
|
|
360
|
+
}
|
|
361
|
+
catch {
|
|
362
|
+
return null;
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
return null;
|
|
366
|
+
}
|
|
367
|
+
/** Seven providers share a 64 KiB worker reply. Keep catalog data below 6 KiB each. */
|
|
368
|
+
export function boundNativeModelOptions(options) {
|
|
369
|
+
const out = [], seen = new Set();
|
|
370
|
+
let bytes = 2;
|
|
371
|
+
for (const raw of options) {
|
|
372
|
+
if (!raw || typeof raw.id !== "string" || !raw.id || raw.id.length > 160 || seen.has(raw.id))
|
|
373
|
+
continue;
|
|
374
|
+
const model = { id: raw.id, ...(raw.name ? { name: raw.name.slice(0, 200) } : {}), ...(raw.description ? { description: raw.description.slice(0, 300) } : {}) };
|
|
375
|
+
const size = Buffer.byteLength(JSON.stringify(model)) + (out.length ? 1 : 0);
|
|
376
|
+
if (bytes + size > 6 * 1024 || out.length >= 200)
|
|
377
|
+
break;
|
|
378
|
+
bytes += size;
|
|
379
|
+
seen.add(model.id);
|
|
380
|
+
out.push(model);
|
|
381
|
+
}
|
|
382
|
+
return out;
|
|
383
|
+
}
|
|
384
|
+
/** Conservative model listing parser; malformed/unrecognized listings leave custom model entry available. */
|
|
385
|
+
export function parseNativeModels(cli, output) {
|
|
386
|
+
if (!nativeProvider(cli).modelProbe)
|
|
387
|
+
return [];
|
|
388
|
+
const models = new Map();
|
|
389
|
+
const add = (value, label) => {
|
|
390
|
+
if (typeof value !== "string" || value.length > 160 || !/^[A-Za-z0-9][A-Za-z0-9._:/[\]\-]*$/.test(value))
|
|
391
|
+
return;
|
|
392
|
+
models.set(value, { id: value, ...(typeof label === "string" && label !== value && label.length <= 200 ? { name: label } : {}) });
|
|
393
|
+
};
|
|
394
|
+
try {
|
|
395
|
+
const parsed = JSON.parse(output);
|
|
396
|
+
const rows = Array.isArray(parsed) ? parsed : object(parsed)?.models;
|
|
397
|
+
if (Array.isArray(rows))
|
|
398
|
+
for (const row of rows) {
|
|
399
|
+
if (typeof row === "string")
|
|
400
|
+
add(row);
|
|
401
|
+
else {
|
|
402
|
+
const v = object(row);
|
|
403
|
+
add(v?.id ?? v?.model_id ?? v?.modelId, v?.name ?? v?.display_name ?? v?.displayName);
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
return [...models.values()].slice(0, 200);
|
|
407
|
+
}
|
|
408
|
+
catch { /* text listing below */ }
|
|
409
|
+
const plain = output.replace(/\x1b\[[0-?]*[ -/]*[@-~]/g, "");
|
|
410
|
+
for (const line of plain.split(/\r?\n/)) {
|
|
411
|
+
if (cli === "opencode") {
|
|
412
|
+
const value = line.trim();
|
|
413
|
+
if (/^[A-Za-z0-9._-]+\/[A-Za-z0-9._:/[\]\-]+$/.test(value))
|
|
414
|
+
add(value);
|
|
415
|
+
}
|
|
416
|
+
else if (cli === "antigravity") {
|
|
417
|
+
const match = /^\s*([A-Za-z0-9][A-Za-z0-9._:/[\]\-]*[-.][A-Za-z0-9._:/[\]\-]*)(?:\t+| {2,})(.+?)\s*$/.exec(line);
|
|
418
|
+
if (match)
|
|
419
|
+
add(match[1], match[2]);
|
|
420
|
+
}
|
|
421
|
+
else if (cli === "grok") {
|
|
422
|
+
const match = /(?:^(?:[*-]\s+)?|[│|]\s*)(grok-[A-Za-z0-9._:/[\]\-]+)(?:\s|[│|]|$)/.exec(line.trim());
|
|
423
|
+
if (match)
|
|
424
|
+
add(match[1]);
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
return [...models.values()].slice(0, 200);
|
|
428
|
+
}
|
|
429
|
+
//# sourceMappingURL=windows-cli-providers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"windows-cli-providers.js","sourceRoot":"","sources":["../src/windows-cli-providers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { type NativeModelOption, type NativeProviderDescriptor, type NativeProviderId } from "./windows-cli-providers.js";
|
|
2
|
+
export declare const NATIVE_CLI_IDS: readonly ["codex", "claude-code", "antigravity", "grok", "kiro-cli", "opencode", "muse"];
|
|
3
|
+
export type NativeCliId = NativeProviderId;
|
|
4
|
+
export interface NativeCliRow {
|
|
5
|
+
id: NativeCliId;
|
|
6
|
+
path: string | null;
|
|
7
|
+
version: string | null;
|
|
8
|
+
authenticated: boolean | null;
|
|
9
|
+
runnable: boolean;
|
|
10
|
+
supports: NativeProviderDescriptor["supports"];
|
|
11
|
+
readOnlySupport: boolean;
|
|
12
|
+
permissionNote: string;
|
|
13
|
+
models: NativeModelOption[];
|
|
14
|
+
reason?: string;
|
|
15
|
+
modelsSource?: "cli-cache" | "official-catalog" | "cli-list" | "unavailable";
|
|
16
|
+
}
|
|
17
|
+
export interface NativeTaskInput {
|
|
18
|
+
requestId: string;
|
|
19
|
+
cli: NativeProviderId;
|
|
20
|
+
cwd: string;
|
|
21
|
+
prompt: string;
|
|
22
|
+
sandbox: "read-only" | "workspace-write";
|
|
23
|
+
model?: string;
|
|
24
|
+
}
|
|
25
|
+
export declare function validWindowsAgentId(value: unknown): value is string;
|
|
26
|
+
/** A private, durable workspace. Only a server-generated agent UUID chooses its final segment. */
|
|
27
|
+
export declare function prepareNativeWorkspace(agentId: unknown, home?: string): string;
|
|
28
|
+
/** A native, drive-qualified directory. UNC/device paths and control bytes are not part of this MVP. */
|
|
29
|
+
export declare function validWindowsDirectory(value: unknown): value is string;
|
|
30
|
+
export declare function validateNativeTask(value: unknown): NativeTaskInput;
|
|
31
|
+
export declare function codexTaskArgs(input: NativeTaskInput, resumeSessionId?: string): string[];
|
|
32
|
+
export declare function codexEventText(line: string): string | null;
|
|
33
|
+
export interface NativeCliExecutable {
|
|
34
|
+
path: string;
|
|
35
|
+
command: string;
|
|
36
|
+
args: string[];
|
|
37
|
+
}
|
|
38
|
+
interface NativeCommandOutput {
|
|
39
|
+
ok: boolean;
|
|
40
|
+
text: string;
|
|
41
|
+
}
|
|
42
|
+
export declare function nativeCliEnvironment(source?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
|
|
43
|
+
/** Recognize npm's known Node launcher only; never execute or interpret a .cmd file. */
|
|
44
|
+
export declare function npmCliShimTarget(id: NativeCliId, source: string): string | null;
|
|
45
|
+
export declare function findCli(id: NativeCliId): Promise<NativeCliExecutable | null>;
|
|
46
|
+
export interface NativeProbeOptions {
|
|
47
|
+
find?: (id: NativeCliId) => Promise<NativeCliExecutable | null>;
|
|
48
|
+
run?: (executable: NativeCliExecutable, args: string[]) => Promise<NativeCommandOutput>;
|
|
49
|
+
/** Tests can isolate account metadata without reading the user's real cache. */
|
|
50
|
+
readModels?: (id: NativeCliId, version: string | null) => NativeModelOption[];
|
|
51
|
+
}
|
|
52
|
+
/** Read Codex's own account-aware cache. No token files or model requests are involved. */
|
|
53
|
+
export declare function readNativeCodexModels(home?: string, env?: NodeJS.ProcessEnv): NativeModelOption[];
|
|
54
|
+
export declare function probeNativeClis(options?: NativeProbeOptions): Promise<{
|
|
55
|
+
clis: NativeCliRow[];
|
|
56
|
+
home: string;
|
|
57
|
+
}>;
|
|
58
|
+
export {};
|