@alan-ai-hq/agent-manager 0.1.113 → 0.1.115
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/LICENSE +88 -0
- package/dist/__tests__/binding-switch-git.test.d.ts +2 -0
- package/dist/__tests__/binding-switch-git.test.d.ts.map +1 -0
- package/dist/__tests__/binding-switch-git.test.js +555 -0
- package/dist/__tests__/binding-switch-git.test.js.map +1 -0
- package/dist/__tests__/cli-ensure-install.test.d.ts +2 -0
- package/dist/__tests__/cli-ensure-install.test.d.ts.map +1 -0
- package/dist/__tests__/cli-ensure-install.test.js +177 -0
- package/dist/__tests__/cli-ensure-install.test.js.map +1 -0
- package/dist/__tests__/cli-executable.test.d.ts +2 -0
- package/dist/__tests__/cli-executable.test.d.ts.map +1 -0
- package/dist/__tests__/cli-executable.test.js +155 -0
- package/dist/__tests__/cli-executable.test.js.map +1 -0
- package/dist/__tests__/cli-executable.windows.test.d.ts +2 -0
- package/dist/__tests__/cli-executable.windows.test.d.ts.map +1 -0
- package/dist/__tests__/cli-executable.windows.test.js +123 -0
- package/dist/__tests__/cli-executable.windows.test.js.map +1 -0
- package/dist/__tests__/cli-help.test.d.ts +2 -0
- package/dist/__tests__/cli-help.test.d.ts.map +1 -0
- package/dist/__tests__/cli-help.test.js +47 -0
- package/dist/__tests__/cli-help.test.js.map +1 -0
- package/dist/__tests__/computer-readiness.test.d.ts +2 -0
- package/dist/__tests__/computer-readiness.test.d.ts.map +1 -0
- package/dist/__tests__/computer-readiness.test.js +63 -0
- package/dist/__tests__/computer-readiness.test.js.map +1 -0
- package/dist/__tests__/core-agent-provider-auth-env.test.d.ts +2 -0
- package/dist/__tests__/core-agent-provider-auth-env.test.d.ts.map +1 -0
- package/dist/__tests__/core-agent-provider-auth-env.test.js +93 -0
- package/dist/__tests__/core-agent-provider-auth-env.test.js.map +1 -0
- package/dist/__tests__/core-agent-workflow-context.test.d.ts +2 -0
- package/dist/__tests__/core-agent-workflow-context.test.d.ts.map +1 -0
- package/dist/__tests__/core-agent-workflow-context.test.js +139 -0
- package/dist/__tests__/core-agent-workflow-context.test.js.map +1 -0
- package/dist/__tests__/daemon-native-hooks.test.d.ts +2 -0
- package/dist/__tests__/daemon-native-hooks.test.d.ts.map +1 -0
- package/dist/__tests__/daemon-native-hooks.test.js +94 -0
- package/dist/__tests__/daemon-native-hooks.test.js.map +1 -0
- package/dist/__tests__/daemon-reconcile-ask.test.d.ts +2 -0
- package/dist/__tests__/daemon-reconcile-ask.test.d.ts.map +1 -0
- package/dist/__tests__/daemon-reconcile-ask.test.js +100 -0
- package/dist/__tests__/daemon-reconcile-ask.test.js.map +1 -0
- package/dist/__tests__/daemon-runner-status.test.d.ts +2 -0
- package/dist/__tests__/daemon-runner-status.test.d.ts.map +1 -0
- package/dist/__tests__/daemon-runner-status.test.js +102 -0
- package/dist/__tests__/daemon-runner-status.test.js.map +1 -0
- package/dist/__tests__/daemon-socket.integration.test.d.ts +2 -0
- package/dist/__tests__/daemon-socket.integration.test.d.ts.map +1 -0
- package/dist/__tests__/daemon-socket.integration.test.js +435 -0
- package/dist/__tests__/daemon-socket.integration.test.js.map +1 -0
- package/dist/__tests__/daemon.test.d.ts +2 -0
- package/dist/__tests__/daemon.test.d.ts.map +1 -0
- package/dist/__tests__/daemon.test.js +4884 -0
- package/dist/__tests__/daemon.test.js.map +1 -0
- package/dist/__tests__/ensure-shared-checkout-branch.test.d.ts +2 -0
- package/dist/__tests__/ensure-shared-checkout-branch.test.d.ts.map +1 -0
- package/dist/__tests__/ensure-shared-checkout-branch.test.js +129 -0
- package/dist/__tests__/ensure-shared-checkout-branch.test.js.map +1 -0
- package/dist/__tests__/event-journal-stress.test.d.ts +2 -0
- package/dist/__tests__/event-journal-stress.test.d.ts.map +1 -0
- package/dist/__tests__/event-journal-stress.test.js +124 -0
- package/dist/__tests__/event-journal-stress.test.js.map +1 -0
- package/dist/__tests__/event-journal.test.d.ts +2 -0
- package/dist/__tests__/event-journal.test.d.ts.map +1 -0
- package/dist/__tests__/event-journal.test.js +264 -0
- package/dist/__tests__/event-journal.test.js.map +1 -0
- package/dist/__tests__/event-outbox-persist-failure.test.d.ts +2 -0
- package/dist/__tests__/event-outbox-persist-failure.test.d.ts.map +1 -0
- package/dist/__tests__/event-outbox-persist-failure.test.js +143 -0
- package/dist/__tests__/event-outbox-persist-failure.test.js.map +1 -0
- package/dist/__tests__/event-outbox.test.d.ts +2 -0
- package/dist/__tests__/event-outbox.test.d.ts.map +1 -0
- package/dist/__tests__/event-outbox.test.js +602 -0
- package/dist/__tests__/event-outbox.test.js.map +1 -0
- package/dist/__tests__/execution-activity-tracker.test.d.ts +2 -0
- package/dist/__tests__/execution-activity-tracker.test.d.ts.map +1 -0
- package/dist/__tests__/execution-activity-tracker.test.js +64 -0
- package/dist/__tests__/execution-activity-tracker.test.js.map +1 -0
- package/dist/__tests__/execution-lease-client.test.d.ts +2 -0
- package/dist/__tests__/execution-lease-client.test.d.ts.map +1 -0
- package/dist/__tests__/execution-lease-client.test.js +274 -0
- package/dist/__tests__/execution-lease-client.test.js.map +1 -0
- package/dist/__tests__/fake-provider-cli.test.d.ts +2 -0
- package/dist/__tests__/fake-provider-cli.test.d.ts.map +1 -0
- package/dist/__tests__/fake-provider-cli.test.js +46 -0
- package/dist/__tests__/fake-provider-cli.test.js.map +1 -0
- package/dist/__tests__/generated-images.test.d.ts +2 -0
- package/dist/__tests__/generated-images.test.d.ts.map +1 -0
- package/dist/__tests__/generated-images.test.js +132 -0
- package/dist/__tests__/generated-images.test.js.map +1 -0
- package/dist/__tests__/helpers/sandbox-outbox.d.ts +3 -0
- package/dist/__tests__/helpers/sandbox-outbox.d.ts.map +1 -0
- package/dist/__tests__/helpers/sandbox-outbox.js +23 -0
- package/dist/__tests__/helpers/sandbox-outbox.js.map +1 -0
- package/dist/__tests__/install-command.test.d.ts +2 -0
- package/dist/__tests__/install-command.test.d.ts.map +1 -0
- package/dist/__tests__/install-command.test.js +185 -0
- package/dist/__tests__/install-command.test.js.map +1 -0
- package/dist/__tests__/integration-cli.test.d.ts +2 -0
- package/dist/__tests__/integration-cli.test.d.ts.map +1 -0
- package/dist/__tests__/integration-cli.test.js +150 -0
- package/dist/__tests__/integration-cli.test.js.map +1 -0
- package/dist/__tests__/lifecycle-contracts.test.d.ts +2 -0
- package/dist/__tests__/lifecycle-contracts.test.d.ts.map +1 -0
- package/dist/__tests__/lifecycle-contracts.test.js +66 -0
- package/dist/__tests__/lifecycle-contracts.test.js.map +1 -0
- package/dist/__tests__/lifecycle-logger.test.d.ts +2 -0
- package/dist/__tests__/lifecycle-logger.test.d.ts.map +1 -0
- package/dist/__tests__/lifecycle-logger.test.js +49 -0
- package/dist/__tests__/lifecycle-logger.test.js.map +1 -0
- package/dist/__tests__/local-daemon-lifecycle.test.d.ts +2 -0
- package/dist/__tests__/local-daemon-lifecycle.test.d.ts.map +1 -0
- package/dist/__tests__/local-daemon-lifecycle.test.js +594 -0
- package/dist/__tests__/local-daemon-lifecycle.test.js.map +1 -0
- package/dist/__tests__/local-git-status.test.d.ts +2 -0
- package/dist/__tests__/local-git-status.test.d.ts.map +1 -0
- package/dist/__tests__/local-git-status.test.js +31 -0
- package/dist/__tests__/local-git-status.test.js.map +1 -0
- package/dist/__tests__/mcp-config-adapters-files.test.d.ts +2 -0
- package/dist/__tests__/mcp-config-adapters-files.test.d.ts.map +1 -0
- package/dist/__tests__/mcp-config-adapters-files.test.js +486 -0
- package/dist/__tests__/mcp-config-adapters-files.test.js.map +1 -0
- package/dist/__tests__/mcp-config-adapters.test.d.ts +2 -0
- package/dist/__tests__/mcp-config-adapters.test.d.ts.map +1 -0
- package/dist/__tests__/mcp-config-adapters.test.js +492 -0
- package/dist/__tests__/mcp-config-adapters.test.js.map +1 -0
- package/dist/__tests__/mcp-sync.test.d.ts +2 -0
- package/dist/__tests__/mcp-sync.test.d.ts.map +1 -0
- package/dist/__tests__/mcp-sync.test.js +21 -0
- package/dist/__tests__/mcp-sync.test.js.map +1 -0
- package/dist/__tests__/model-scan-runner.test.d.ts +2 -0
- package/dist/__tests__/model-scan-runner.test.d.ts.map +1 -0
- package/dist/__tests__/model-scan-runner.test.js +80 -0
- package/dist/__tests__/model-scan-runner.test.js.map +1 -0
- package/dist/__tests__/native-hook-command.test.d.ts +2 -0
- package/dist/__tests__/native-hook-command.test.d.ts.map +1 -0
- package/dist/__tests__/native-hook-command.test.js +386 -0
- package/dist/__tests__/native-hook-command.test.js.map +1 -0
- package/dist/__tests__/native-hook-config.test.d.ts +2 -0
- package/dist/__tests__/native-hook-config.test.d.ts.map +1 -0
- package/dist/__tests__/native-hook-config.test.js +374 -0
- package/dist/__tests__/native-hook-config.test.js.map +1 -0
- package/dist/__tests__/native-hook-drain.test.d.ts +2 -0
- package/dist/__tests__/native-hook-drain.test.d.ts.map +1 -0
- package/dist/__tests__/native-hook-drain.test.js +197 -0
- package/dist/__tests__/native-hook-drain.test.js.map +1 -0
- package/dist/__tests__/native-hook-inbox.test.d.ts +2 -0
- package/dist/__tests__/native-hook-inbox.test.d.ts.map +1 -0
- package/dist/__tests__/native-hook-inbox.test.js +139 -0
- package/dist/__tests__/native-hook-inbox.test.js.map +1 -0
- package/dist/__tests__/native-session.test.d.ts +2 -0
- package/dist/__tests__/native-session.test.d.ts.map +1 -0
- package/dist/__tests__/native-session.test.js +41 -0
- package/dist/__tests__/native-session.test.js.map +1 -0
- package/dist/__tests__/native-stream-outbox.test.d.ts +2 -0
- package/dist/__tests__/native-stream-outbox.test.d.ts.map +1 -0
- package/dist/__tests__/native-stream-outbox.test.js +231 -0
- package/dist/__tests__/native-stream-outbox.test.js.map +1 -0
- package/dist/__tests__/native-stream-platform.test.d.ts +2 -0
- package/dist/__tests__/native-stream-platform.test.d.ts.map +1 -0
- package/dist/__tests__/native-stream-platform.test.js +20 -0
- package/dist/__tests__/native-stream-platform.test.js.map +1 -0
- package/dist/__tests__/native-transcript-cursor.test.d.ts +2 -0
- package/dist/__tests__/native-transcript-cursor.test.d.ts.map +1 -0
- package/dist/__tests__/native-transcript-cursor.test.js +60 -0
- package/dist/__tests__/native-transcript-cursor.test.js.map +1 -0
- package/dist/__tests__/native-transcript-stream.test.d.ts +2 -0
- package/dist/__tests__/native-transcript-stream.test.d.ts.map +1 -0
- package/dist/__tests__/native-transcript-stream.test.js +378 -0
- package/dist/__tests__/native-transcript-stream.test.js.map +1 -0
- package/dist/__tests__/network-diagnostics.test.d.ts +2 -0
- package/dist/__tests__/network-diagnostics.test.d.ts.map +1 -0
- package/dist/__tests__/network-diagnostics.test.js +26 -0
- package/dist/__tests__/network-diagnostics.test.js.map +1 -0
- package/dist/__tests__/observable-map.test.d.ts +2 -0
- package/dist/__tests__/observable-map.test.d.ts.map +1 -0
- package/dist/__tests__/observable-map.test.js +54 -0
- package/dist/__tests__/observable-map.test.js.map +1 -0
- package/dist/__tests__/outbox-baseline.bench.test.d.ts +2 -0
- package/dist/__tests__/outbox-baseline.bench.test.d.ts.map +1 -0
- package/dist/__tests__/outbox-baseline.bench.test.js +108 -0
- package/dist/__tests__/outbox-baseline.bench.test.js.map +1 -0
- package/dist/__tests__/provider-auth-preflight.test.d.ts +2 -0
- package/dist/__tests__/provider-auth-preflight.test.d.ts.map +1 -0
- package/dist/__tests__/provider-auth-preflight.test.js +123 -0
- package/dist/__tests__/provider-auth-preflight.test.js.map +1 -0
- package/dist/__tests__/provider-model-discovery.test.d.ts +2 -0
- package/dist/__tests__/provider-model-discovery.test.d.ts.map +1 -0
- package/dist/__tests__/provider-model-discovery.test.js +1071 -0
- package/dist/__tests__/provider-model-discovery.test.js.map +1 -0
- package/dist/__tests__/resource-diagnostics.test.d.ts +2 -0
- package/dist/__tests__/resource-diagnostics.test.d.ts.map +1 -0
- package/dist/__tests__/resource-diagnostics.test.js +138 -0
- package/dist/__tests__/resource-diagnostics.test.js.map +1 -0
- package/dist/__tests__/resume-fallback-env.test.d.ts +2 -0
- package/dist/__tests__/resume-fallback-env.test.d.ts.map +1 -0
- package/dist/__tests__/resume-fallback-env.test.js +28 -0
- package/dist/__tests__/resume-fallback-env.test.js.map +1 -0
- package/dist/__tests__/run-journal.test.d.ts +2 -0
- package/dist/__tests__/run-journal.test.d.ts.map +1 -0
- package/dist/__tests__/run-journal.test.js +121 -0
- package/dist/__tests__/run-journal.test.js.map +1 -0
- package/dist/__tests__/run-start-gate.test.d.ts +2 -0
- package/dist/__tests__/run-start-gate.test.d.ts.map +1 -0
- package/dist/__tests__/run-start-gate.test.js +18 -0
- package/dist/__tests__/run-start-gate.test.js.map +1 -0
- package/dist/__tests__/runtime-capabilities-sync.test.d.ts +2 -0
- package/dist/__tests__/runtime-capabilities-sync.test.d.ts.map +1 -0
- package/dist/__tests__/runtime-capabilities-sync.test.js +66 -0
- package/dist/__tests__/runtime-capabilities-sync.test.js.map +1 -0
- package/dist/__tests__/runtime-config.test.d.ts +2 -0
- package/dist/__tests__/runtime-config.test.d.ts.map +1 -0
- package/dist/__tests__/runtime-config.test.js +137 -0
- package/dist/__tests__/runtime-config.test.js.map +1 -0
- package/dist/__tests__/runtime-presenter-heartbeat.test.d.ts +2 -0
- package/dist/__tests__/runtime-presenter-heartbeat.test.d.ts.map +1 -0
- package/dist/__tests__/runtime-presenter-heartbeat.test.js +253 -0
- package/dist/__tests__/runtime-presenter-heartbeat.test.js.map +1 -0
- package/dist/__tests__/runtime-registration.test.d.ts +2 -0
- package/dist/__tests__/runtime-registration.test.d.ts.map +1 -0
- package/dist/__tests__/runtime-registration.test.js +109 -0
- package/dist/__tests__/runtime-registration.test.js.map +1 -0
- package/dist/__tests__/sandbox-outbox-storage.test.d.ts +2 -0
- package/dist/__tests__/sandbox-outbox-storage.test.d.ts.map +1 -0
- package/dist/__tests__/sandbox-outbox-storage.test.js +81 -0
- package/dist/__tests__/sandbox-outbox-storage.test.js.map +1 -0
- package/dist/__tests__/sandbox-outbox.test.d.ts +2 -0
- package/dist/__tests__/sandbox-outbox.test.d.ts.map +1 -0
- package/dist/__tests__/sandbox-outbox.test.js +300 -0
- package/dist/__tests__/sandbox-outbox.test.js.map +1 -0
- package/dist/__tests__/sandbox-workflow-context.test.d.ts +2 -0
- package/dist/__tests__/sandbox-workflow-context.test.d.ts.map +1 -0
- package/dist/__tests__/sandbox-workflow-context.test.js +600 -0
- package/dist/__tests__/sandbox-workflow-context.test.js.map +1 -0
- package/dist/__tests__/service-manager-deadline.test.d.ts +2 -0
- package/dist/__tests__/service-manager-deadline.test.d.ts.map +1 -0
- package/dist/__tests__/service-manager-deadline.test.js +36 -0
- package/dist/__tests__/service-manager-deadline.test.js.map +1 -0
- package/dist/__tests__/service-manager.test.d.ts +2 -0
- package/dist/__tests__/service-manager.test.d.ts.map +1 -0
- package/dist/__tests__/service-manager.test.js +769 -0
- package/dist/__tests__/service-manager.test.js.map +1 -0
- package/dist/__tests__/service-stop-ownership.test.d.ts +2 -0
- package/dist/__tests__/service-stop-ownership.test.d.ts.map +1 -0
- package/dist/__tests__/service-stop-ownership.test.js +89 -0
- package/dist/__tests__/service-stop-ownership.test.js.map +1 -0
- package/dist/__tests__/skill-invocation.test.d.ts +2 -0
- package/dist/__tests__/skill-invocation.test.d.ts.map +1 -0
- package/dist/__tests__/skill-invocation.test.js +40 -0
- package/dist/__tests__/skill-invocation.test.js.map +1 -0
- package/dist/__tests__/sleep-inhibitor-real.test.d.ts +2 -0
- package/dist/__tests__/sleep-inhibitor-real.test.d.ts.map +1 -0
- package/dist/__tests__/sleep-inhibitor-real.test.js +68 -0
- package/dist/__tests__/sleep-inhibitor-real.test.js.map +1 -0
- package/dist/__tests__/sleep-inhibitor.test.d.ts +2 -0
- package/dist/__tests__/sleep-inhibitor.test.d.ts.map +1 -0
- package/dist/__tests__/sleep-inhibitor.test.js +236 -0
- package/dist/__tests__/sleep-inhibitor.test.js.map +1 -0
- package/dist/__tests__/status-local-workspace.test.d.ts +2 -0
- package/dist/__tests__/status-local-workspace.test.d.ts.map +1 -0
- package/dist/__tests__/status-local-workspace.test.js +121 -0
- package/dist/__tests__/status-local-workspace.test.js.map +1 -0
- package/dist/__tests__/suspension-detector.test.d.ts +2 -0
- package/dist/__tests__/suspension-detector.test.d.ts.map +1 -0
- package/dist/__tests__/suspension-detector.test.js +112 -0
- package/dist/__tests__/suspension-detector.test.js.map +1 -0
- package/dist/__tests__/web-presenter-parent-events.test.d.ts +2 -0
- package/dist/__tests__/web-presenter-parent-events.test.d.ts.map +1 -0
- package/dist/__tests__/web-presenter-parent-events.test.js +168 -0
- package/dist/__tests__/web-presenter-parent-events.test.js.map +1 -0
- package/dist/__tests__/workspace-probe-concurrency.test.d.ts +2 -0
- package/dist/__tests__/workspace-probe-concurrency.test.d.ts.map +1 -0
- package/dist/__tests__/workspace-probe-concurrency.test.js +54 -0
- package/dist/__tests__/workspace-probe-concurrency.test.js.map +1 -0
- package/dist/__tests__/workspace-relocation.test.d.ts +2 -0
- package/dist/__tests__/workspace-relocation.test.d.ts.map +1 -0
- package/dist/__tests__/workspace-relocation.test.js +66 -0
- package/dist/__tests__/workspace-relocation.test.js.map +1 -0
- package/dist/__tests__/workspace-rpc.test.d.ts +2 -0
- package/dist/__tests__/workspace-rpc.test.d.ts.map +1 -0
- package/dist/__tests__/workspace-rpc.test.js +90 -0
- package/dist/__tests__/workspace-rpc.test.js.map +1 -0
- package/dist/__tests__/workspace-run-lease.test.d.ts +2 -0
- package/dist/__tests__/workspace-run-lease.test.d.ts.map +1 -0
- package/dist/__tests__/workspace-run-lease.test.js +331 -0
- package/dist/__tests__/workspace-run-lease.test.js.map +1 -0
- package/dist/__tests__/ws-client-connection.test.d.ts +2 -0
- package/dist/__tests__/ws-client-connection.test.d.ts.map +1 -0
- package/dist/__tests__/ws-client-connection.test.js +295 -0
- package/dist/__tests__/ws-client-connection.test.js.map +1 -0
- package/dist/__tests__/ws-client-heartbeat-volatile.test.d.ts +2 -0
- package/dist/__tests__/ws-client-heartbeat-volatile.test.d.ts.map +1 -0
- package/dist/__tests__/ws-client-heartbeat-volatile.test.js +63 -0
- package/dist/__tests__/ws-client-heartbeat-volatile.test.js.map +1 -0
- package/dist/__tests__/ws-client-heartbeat.integration.test.d.ts +2 -0
- package/dist/__tests__/ws-client-heartbeat.integration.test.d.ts.map +1 -0
- package/dist/__tests__/ws-client-heartbeat.integration.test.js +236 -0
- package/dist/__tests__/ws-client-heartbeat.integration.test.js.map +1 -0
- package/dist/__tests__/ws-client-user-message-ack.integration.test.d.ts +2 -0
- package/dist/__tests__/ws-client-user-message-ack.integration.test.d.ts.map +1 -0
- package/dist/__tests__/ws-client-user-message-ack.integration.test.js +211 -0
- package/dist/__tests__/ws-client-user-message-ack.integration.test.js.map +1 -0
- package/dist/antigravity-api-key-config.d.ts +2 -0
- package/dist/antigravity-api-key-config.d.ts.map +1 -0
- package/dist/antigravity-api-key-config.js +79 -0
- package/dist/antigravity-api-key-config.js.map +1 -0
- package/dist/binding-switch-git.d.ts +26 -0
- package/dist/binding-switch-git.d.ts.map +1 -0
- package/dist/binding-switch-git.js +871 -0
- package/dist/binding-switch-git.js.map +1 -0
- package/dist/cli-ensure-install.d.ts +34 -0
- package/dist/cli-ensure-install.d.ts.map +1 -0
- package/dist/cli-ensure-install.js +154 -0
- package/dist/cli-ensure-install.js.map +1 -0
- package/dist/cli-executable.d.ts +44 -0
- package/dist/cli-executable.d.ts.map +1 -0
- package/dist/cli-executable.js +435 -0
- package/dist/cli-executable.js.map +1 -0
- package/dist/cli-help.d.ts +11 -0
- package/dist/cli-help.d.ts.map +1 -0
- package/dist/cli-help.js +65 -0
- package/dist/cli-help.js.map +1 -0
- package/dist/computer-readiness.d.ts +41 -0
- package/dist/computer-readiness.d.ts.map +1 -0
- package/dist/computer-readiness.js +191 -0
- package/dist/computer-readiness.js.map +1 -0
- package/dist/core-agent.d.ts +32 -0
- package/dist/core-agent.d.ts.map +1 -0
- package/dist/core-agent.js +331 -0
- package/dist/core-agent.js.map +1 -0
- package/dist/daemon-execute.d.ts +42 -0
- package/dist/daemon-execute.d.ts.map +1 -0
- package/dist/daemon-execute.js +666 -0
- package/dist/daemon-execute.js.map +1 -0
- package/dist/daemon-helpers.d.ts +150 -0
- package/dist/daemon-helpers.d.ts.map +1 -0
- package/dist/daemon-helpers.js +157 -0
- package/dist/daemon-helpers.js.map +1 -0
- package/dist/daemon-local-control.d.ts +208 -0
- package/dist/daemon-local-control.d.ts.map +1 -0
- package/dist/daemon-local-control.js +826 -0
- package/dist/daemon-local-control.js.map +1 -0
- package/dist/daemon-local-http.d.ts +57 -0
- package/dist/daemon-local-http.d.ts.map +1 -0
- package/dist/daemon-local-http.js +375 -0
- package/dist/daemon-local-http.js.map +1 -0
- package/dist/daemon-native-hooks.d.ts +17 -0
- package/dist/daemon-native-hooks.d.ts.map +1 -0
- package/dist/daemon-native-hooks.js +54 -0
- package/dist/daemon-native-hooks.js.map +1 -0
- package/dist/daemon-provider-scan.d.ts +33 -0
- package/dist/daemon-provider-scan.d.ts.map +1 -0
- package/dist/daemon-provider-scan.js +187 -0
- package/dist/daemon-provider-scan.js.map +1 -0
- package/dist/daemon-runner-status.d.ts +164 -0
- package/dist/daemon-runner-status.d.ts.map +1 -0
- package/dist/daemon-runner-status.js +424 -0
- package/dist/daemon-runner-status.js.map +1 -0
- package/dist/daemon-start.d.ts +5 -0
- package/dist/daemon-start.d.ts.map +1 -0
- package/dist/daemon-start.js +1313 -0
- package/dist/daemon-start.js.map +1 -0
- package/dist/daemon-workspace.d.ts +36 -0
- package/dist/daemon-workspace.d.ts.map +1 -0
- package/dist/daemon-workspace.js +154 -0
- package/dist/daemon-workspace.js.map +1 -0
- package/dist/daemon.d.ts +59 -0
- package/dist/daemon.d.ts.map +1 -0
- package/dist/daemon.js +681 -0
- package/dist/daemon.js.map +1 -0
- package/dist/event-journal-crypto.d.ts +14 -0
- package/dist/event-journal-crypto.d.ts.map +1 -0
- package/dist/event-journal-crypto.js +89 -0
- package/dist/event-journal-crypto.js.map +1 -0
- package/dist/event-journal-paths.d.ts +10 -0
- package/dist/event-journal-paths.d.ts.map +1 -0
- package/dist/event-journal-paths.js +29 -0
- package/dist/event-journal-paths.js.map +1 -0
- package/dist/event-journal-recovery.d.ts +83 -0
- package/dist/event-journal-recovery.d.ts.map +1 -0
- package/dist/event-journal-recovery.js +333 -0
- package/dist/event-journal-recovery.js.map +1 -0
- package/dist/event-journal-types.d.ts +54 -0
- package/dist/event-journal-types.d.ts.map +1 -0
- package/dist/event-journal-types.js +10 -0
- package/dist/event-journal-types.js.map +1 -0
- package/dist/event-journal-writer.d.ts +44 -0
- package/dist/event-journal-writer.d.ts.map +1 -0
- package/dist/event-journal-writer.js +182 -0
- package/dist/event-journal-writer.js.map +1 -0
- package/dist/event-outbox.d.ts +113 -0
- package/dist/event-outbox.d.ts.map +1 -0
- package/dist/event-outbox.js +707 -0
- package/dist/event-outbox.js.map +1 -0
- package/dist/execution-activity-tracker.d.ts +43 -0
- package/dist/execution-activity-tracker.d.ts.map +1 -0
- package/dist/execution-activity-tracker.js +116 -0
- package/dist/execution-activity-tracker.js.map +1 -0
- package/dist/execution-lease-client.d.ts +62 -0
- package/dist/execution-lease-client.d.ts.map +1 -0
- package/dist/execution-lease-client.js +271 -0
- package/dist/execution-lease-client.js.map +1 -0
- package/dist/fake-provider-cli.d.ts +13 -0
- package/dist/fake-provider-cli.d.ts.map +1 -0
- package/dist/fake-provider-cli.js +53 -0
- package/dist/fake-provider-cli.js.map +1 -0
- package/dist/generated-images.d.ts +2 -0
- package/dist/generated-images.d.ts.map +1 -0
- package/dist/generated-images.js +2 -0
- package/dist/generated-images.js.map +1 -0
- package/dist/index.cjs +47033 -45514
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +224 -0
- package/dist/index.js.map +1 -0
- package/dist/install-command.d.ts +2 -0
- package/dist/install-command.d.ts.map +1 -0
- package/dist/install-command.js +96 -0
- package/dist/install-command.js.map +1 -0
- package/dist/integration-cli.d.ts +14 -0
- package/dist/integration-cli.d.ts.map +1 -0
- package/dist/integration-cli.js +80 -0
- package/dist/integration-cli.js.map +1 -0
- package/dist/lifecycle-logger.d.ts +25 -0
- package/dist/lifecycle-logger.d.ts.map +1 -0
- package/dist/lifecycle-logger.js +73 -0
- package/dist/lifecycle-logger.js.map +1 -0
- package/dist/local-daemon-lifecycle.d.ts +112 -0
- package/dist/local-daemon-lifecycle.d.ts.map +1 -0
- package/dist/local-daemon-lifecycle.js +433 -0
- package/dist/local-daemon-lifecycle.js.map +1 -0
- package/dist/local-git-status.d.ts +14 -0
- package/dist/local-git-status.d.ts.map +1 -0
- package/dist/local-git-status.js +43 -0
- package/dist/local-git-status.js.map +1 -0
- package/dist/managed-mcp.d.ts +7 -0
- package/dist/managed-mcp.d.ts.map +1 -0
- package/dist/managed-mcp.js +16 -0
- package/dist/managed-mcp.js.map +1 -0
- package/dist/mcp-config-adapters.d.ts +57 -0
- package/dist/mcp-config-adapters.d.ts.map +1 -0
- package/dist/mcp-config-adapters.js +929 -0
- package/dist/mcp-config-adapters.js.map +1 -0
- package/dist/mcp-sync.d.ts +44 -0
- package/dist/mcp-sync.d.ts.map +1 -0
- package/dist/mcp-sync.js +68 -0
- package/dist/mcp-sync.js.map +1 -0
- package/dist/model-scan-runner.d.ts +15 -0
- package/dist/model-scan-runner.d.ts.map +1 -0
- package/dist/model-scan-runner.js +56 -0
- package/dist/model-scan-runner.js.map +1 -0
- package/dist/native-hook-command.d.ts +31 -0
- package/dist/native-hook-command.d.ts.map +1 -0
- package/dist/native-hook-command.js +289 -0
- package/dist/native-hook-command.js.map +1 -0
- package/dist/native-hook-config.d.ts +43 -0
- package/dist/native-hook-config.d.ts.map +1 -0
- package/dist/native-hook-config.js +601 -0
- package/dist/native-hook-config.js.map +1 -0
- package/dist/native-hook-drain.d.ts +34 -0
- package/dist/native-hook-drain.d.ts.map +1 -0
- package/dist/native-hook-drain.js +83 -0
- package/dist/native-hook-drain.js.map +1 -0
- package/dist/native-hook-inbox.d.ts +40 -0
- package/dist/native-hook-inbox.d.ts.map +1 -0
- package/dist/native-hook-inbox.js +217 -0
- package/dist/native-hook-inbox.js.map +1 -0
- package/dist/native-project-config.d.ts +11 -0
- package/dist/native-project-config.d.ts.map +1 -0
- package/dist/native-project-config.js +49 -0
- package/dist/native-project-config.js.map +1 -0
- package/dist/native-session.d.ts +20 -0
- package/dist/native-session.d.ts.map +1 -0
- package/dist/native-session.js +213 -0
- package/dist/native-session.js.map +1 -0
- package/dist/native-stream-journal.d.ts +22 -0
- package/dist/native-stream-journal.d.ts.map +1 -0
- package/dist/native-stream-journal.js +98 -0
- package/dist/native-stream-journal.js.map +1 -0
- package/dist/native-stream-outbox.d.ts +40 -0
- package/dist/native-stream-outbox.d.ts.map +1 -0
- package/dist/native-stream-outbox.js +358 -0
- package/dist/native-stream-outbox.js.map +1 -0
- package/dist/native-stream-platform.d.ts +4 -0
- package/dist/native-stream-platform.d.ts.map +1 -0
- package/dist/native-stream-platform.js +11 -0
- package/dist/native-stream-platform.js.map +1 -0
- package/dist/native-transcript-cursor.d.ts +33 -0
- package/dist/native-transcript-cursor.d.ts.map +1 -0
- package/dist/native-transcript-cursor.js +108 -0
- package/dist/native-transcript-cursor.js.map +1 -0
- package/dist/native-transcript-stream.d.ts +20 -0
- package/dist/native-transcript-stream.d.ts.map +1 -0
- package/dist/native-transcript-stream.js +438 -0
- package/dist/native-transcript-stream.js.map +1 -0
- package/dist/network-diagnostics.d.ts +8 -0
- package/dist/network-diagnostics.d.ts.map +1 -0
- package/dist/network-diagnostics.js +56 -0
- package/dist/network-diagnostics.js.map +1 -0
- package/dist/observable-map.d.ts +13 -0
- package/dist/observable-map.d.ts.map +1 -0
- package/dist/observable-map.js +30 -0
- package/dist/observable-map.js.map +1 -0
- package/dist/provider-auth-preflight.d.ts +19 -0
- package/dist/provider-auth-preflight.d.ts.map +1 -0
- package/dist/provider-auth-preflight.js +107 -0
- package/dist/provider-auth-preflight.js.map +1 -0
- package/dist/provider-model-discovery.d.ts +33 -0
- package/dist/provider-model-discovery.d.ts.map +1 -0
- package/dist/provider-model-discovery.js +731 -0
- package/dist/provider-model-discovery.js.map +1 -0
- package/dist/resource-diagnostics.d.ts +21 -0
- package/dist/resource-diagnostics.d.ts.map +1 -0
- package/dist/resource-diagnostics.js +161 -0
- package/dist/resource-diagnostics.js.map +1 -0
- package/dist/resume-fallback-env.d.ts +3 -0
- package/dist/resume-fallback-env.d.ts.map +1 -0
- package/dist/resume-fallback-env.js +14 -0
- package/dist/resume-fallback-env.js.map +1 -0
- package/dist/run-journal.d.ts +51 -0
- package/dist/run-journal.d.ts.map +1 -0
- package/dist/run-journal.js +193 -0
- package/dist/run-journal.js.map +1 -0
- package/dist/runtime-backends.d.ts +2 -0
- package/dist/runtime-backends.d.ts.map +1 -0
- package/dist/runtime-backends.js +2 -0
- package/dist/runtime-backends.js.map +1 -0
- package/dist/runtime-capabilities-sync.d.ts +40 -0
- package/dist/runtime-capabilities-sync.d.ts.map +1 -0
- package/dist/runtime-capabilities-sync.js +56 -0
- package/dist/runtime-capabilities-sync.js.map +1 -0
- package/dist/runtime-config.d.ts +26 -0
- package/dist/runtime-config.d.ts.map +1 -0
- package/dist/runtime-config.js +170 -0
- package/dist/runtime-config.js.map +1 -0
- package/dist/runtime-presenter.d.ts +81 -0
- package/dist/runtime-presenter.d.ts.map +1 -0
- package/dist/runtime-presenter.js +422 -0
- package/dist/runtime-presenter.js.map +1 -0
- package/dist/runtime-registration.d.ts +40 -0
- package/dist/runtime-registration.d.ts.map +1 -0
- package/dist/runtime-registration.js +143 -0
- package/dist/runtime-registration.js.map +1 -0
- package/dist/sandbox-outbox-storage.d.ts +13 -0
- package/dist/sandbox-outbox-storage.d.ts.map +1 -0
- package/dist/sandbox-outbox-storage.js +98 -0
- package/dist/sandbox-outbox-storage.js.map +1 -0
- package/dist/sandbox-outbox.d.ts +115 -0
- package/dist/sandbox-outbox.d.ts.map +1 -0
- package/dist/sandbox-outbox.js +213 -0
- package/dist/sandbox-outbox.js.map +1 -0
- package/dist/sandbox.d.ts +34 -0
- package/dist/sandbox.d.ts.map +1 -0
- package/dist/sandbox.js +469 -0
- package/dist/sandbox.js.map +1 -0
- package/dist/service-manager.d.ts +113 -0
- package/dist/service-manager.d.ts.map +1 -0
- package/dist/service-manager.js +1065 -0
- package/dist/service-manager.js.map +1 -0
- package/dist/skills/__tests__/local-skill-source.test.d.ts +2 -0
- package/dist/skills/__tests__/local-skill-source.test.d.ts.map +1 -0
- package/dist/skills/__tests__/local-skill-source.test.js +373 -0
- package/dist/skills/__tests__/local-skill-source.test.js.map +1 -0
- package/dist/skills/__tests__/managed-skill-store.test.d.ts +2 -0
- package/dist/skills/__tests__/managed-skill-store.test.d.ts.map +1 -0
- package/dist/skills/__tests__/managed-skill-store.test.js +114 -0
- package/dist/skills/__tests__/managed-skill-store.test.js.map +1 -0
- package/dist/skills/__tests__/runtime-skill-coordinator.test.d.ts +2 -0
- package/dist/skills/__tests__/runtime-skill-coordinator.test.d.ts.map +1 -0
- package/dist/skills/__tests__/runtime-skill-coordinator.test.js +251 -0
- package/dist/skills/__tests__/runtime-skill-coordinator.test.js.map +1 -0
- package/dist/skills/__tests__/runtime-skill-manager.test.d.ts +2 -0
- package/dist/skills/__tests__/runtime-skill-manager.test.d.ts.map +1 -0
- package/dist/skills/__tests__/runtime-skill-manager.test.js +664 -0
- package/dist/skills/__tests__/runtime-skill-manager.test.js.map +1 -0
- package/dist/skills/__tests__/skill-bundle.test.d.ts +2 -0
- package/dist/skills/__tests__/skill-bundle.test.d.ts.map +1 -0
- package/dist/skills/__tests__/skill-bundle.test.js +42 -0
- package/dist/skills/__tests__/skill-bundle.test.js.map +1 -0
- package/dist/skills/__tests__/skill-control-client.test.d.ts +2 -0
- package/dist/skills/__tests__/skill-control-client.test.d.ts.map +1 -0
- package/dist/skills/__tests__/skill-control-client.test.js +49 -0
- package/dist/skills/__tests__/skill-control-client.test.js.map +1 -0
- package/dist/skills/__tests__/skill-source-config.test.d.ts +2 -0
- package/dist/skills/__tests__/skill-source-config.test.d.ts.map +1 -0
- package/dist/skills/__tests__/skill-source-config.test.js +295 -0
- package/dist/skills/__tests__/skill-source-config.test.js.map +1 -0
- package/dist/skills/local-skill-source.d.ts +77 -0
- package/dist/skills/local-skill-source.d.ts.map +1 -0
- package/dist/skills/local-skill-source.js +660 -0
- package/dist/skills/local-skill-source.js.map +1 -0
- package/dist/skills/managed-skill-store.d.ts +44 -0
- package/dist/skills/managed-skill-store.d.ts.map +1 -0
- package/dist/skills/managed-skill-store.js +160 -0
- package/dist/skills/managed-skill-store.js.map +1 -0
- package/dist/skills/runtime-skill-coordinator.d.ts +35 -0
- package/dist/skills/runtime-skill-coordinator.d.ts.map +1 -0
- package/dist/skills/runtime-skill-coordinator.js +166 -0
- package/dist/skills/runtime-skill-coordinator.js.map +1 -0
- package/dist/skills/runtime-skill-manager.d.ts +89 -0
- package/dist/skills/runtime-skill-manager.d.ts.map +1 -0
- package/dist/skills/runtime-skill-manager.js +934 -0
- package/dist/skills/runtime-skill-manager.js.map +1 -0
- package/dist/skills/skill-bundle.d.ts +2 -0
- package/dist/skills/skill-bundle.d.ts.map +1 -0
- package/dist/skills/skill-bundle.js +2 -0
- package/dist/skills/skill-bundle.js.map +1 -0
- package/dist/skills/skill-cli.d.ts +2 -0
- package/dist/skills/skill-cli.d.ts.map +1 -0
- package/dist/skills/skill-cli.js +81 -0
- package/dist/skills/skill-cli.js.map +1 -0
- package/dist/skills/skill-control-client.d.ts +20 -0
- package/dist/skills/skill-control-client.d.ts.map +1 -0
- package/dist/skills/skill-control-client.js +56 -0
- package/dist/skills/skill-control-client.js.map +1 -0
- package/dist/skills/skill-invocation.d.ts +10 -0
- package/dist/skills/skill-invocation.d.ts.map +1 -0
- package/dist/skills/skill-invocation.js +24 -0
- package/dist/skills/skill-invocation.js.map +1 -0
- package/dist/sleep-inhibitor.d.ts +32 -0
- package/dist/sleep-inhibitor.d.ts.map +1 -0
- package/dist/sleep-inhibitor.js +297 -0
- package/dist/sleep-inhibitor.js.map +1 -0
- package/dist/suspension-detector.d.ts +24 -0
- package/dist/suspension-detector.d.ts.map +1 -0
- package/dist/suspension-detector.js +59 -0
- package/dist/suspension-detector.js.map +1 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +2 -0
- package/dist/version.js.map +1 -0
- package/dist/web-presenter.d.ts +52 -0
- package/dist/web-presenter.d.ts.map +1 -0
- package/dist/web-presenter.js +264 -0
- package/dist/web-presenter.js.map +1 -0
- package/dist/workspace-relocation.d.ts +22 -0
- package/dist/workspace-relocation.d.ts.map +1 -0
- package/dist/workspace-relocation.js +90 -0
- package/dist/workspace-relocation.js.map +1 -0
- package/dist/workspace-rpc.d.ts +2 -0
- package/dist/workspace-rpc.d.ts.map +1 -0
- package/dist/workspace-rpc.js +15 -0
- package/dist/workspace-rpc.js.map +1 -0
- package/dist/workspace-run-lease.d.ts +116 -0
- package/dist/workspace-run-lease.d.ts.map +1 -0
- package/dist/workspace-run-lease.js +320 -0
- package/dist/workspace-run-lease.js.map +1 -0
- package/dist/ws-client.d.ts +168 -0
- package/dist/ws-client.d.ts.map +1 -0
- package/dist/ws-client.js +440 -0
- package/dist/ws-client.js.map +1 -0
- package/package.json +4 -3
|
@@ -0,0 +1,435 @@
|
|
|
1
|
+
import { execSync, spawn, spawnSync } from "node:child_process";
|
|
2
|
+
import { accessSync, constants, existsSync } from "node:fs";
|
|
3
|
+
import { createRequire } from "node:module";
|
|
4
|
+
import { arch, homedir, platform } from "node:os";
|
|
5
|
+
import { basename, dirname, join } from "node:path";
|
|
6
|
+
import { findSandboxRuntimeDefinition, SANDBOX_RUNTIME_DEFINITIONS, } from "@alan-ai/sandbox-runtime-spec";
|
|
7
|
+
export const DISCOVERABLE_PROVIDER_KINDS = SANDBOX_RUNTIME_DEFINITIONS.map((runtime) => runtime.providerKind);
|
|
8
|
+
const CLI_COMMAND_ALIASES = Object.fromEntries(SANDBOX_RUNTIME_DEFINITIONS.filter((runtime) => runtime.commandAliases.length > 0).map((runtime) => [runtime.command, runtime.commandAliases]));
|
|
9
|
+
const resolvedCliCache = new Map();
|
|
10
|
+
/**
|
|
11
|
+
* Negative resolutions expire quickly. Fresh sandboxes install provider CLIs
|
|
12
|
+
* DEFERRED (~40-90s after the daemon starts), so an early probe (startup
|
|
13
|
+
* provider/model discovery) that misses must not poison the cache for the
|
|
14
|
+
* daemon's lifetime — a permanent null here made every later run fail with
|
|
15
|
+
* "CLI command not found" even after the binary landed on disk.
|
|
16
|
+
*/
|
|
17
|
+
const NEGATIVE_RESOLUTION_TTL_MS = 15_000;
|
|
18
|
+
const negativeResolutionExpiry = new Map();
|
|
19
|
+
let cachedLoginShellEnv = null;
|
|
20
|
+
export const MAX_CLI_PROBE_OUTPUT_CHARS = 256 * 1024;
|
|
21
|
+
function appendCliProbeOutput(current, chunk, limit) {
|
|
22
|
+
if (current.length >= limit)
|
|
23
|
+
return current;
|
|
24
|
+
return current + chunk.slice(0, limit - current.length);
|
|
25
|
+
}
|
|
26
|
+
function parseEnvOutput(output) {
|
|
27
|
+
const loginEnv = {};
|
|
28
|
+
for (const line of output.split("\n")) {
|
|
29
|
+
if (!line.trim())
|
|
30
|
+
continue;
|
|
31
|
+
const eqIdx = line.indexOf("=");
|
|
32
|
+
if (eqIdx <= 0)
|
|
33
|
+
continue;
|
|
34
|
+
const key = line.slice(0, eqIdx);
|
|
35
|
+
if (/\s/.test(key))
|
|
36
|
+
continue;
|
|
37
|
+
loginEnv[key] = line.slice(eqIdx + 1);
|
|
38
|
+
}
|
|
39
|
+
if (!loginEnv.HOME)
|
|
40
|
+
loginEnv.HOME = process.env.HOME ?? homedir();
|
|
41
|
+
if (!loginEnv.SHELL)
|
|
42
|
+
loginEnv.SHELL = process.env.SHELL ?? "/bin/zsh";
|
|
43
|
+
return loginEnv;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Load the user's login-shell environment (nvm/fnm/volta paths, etc.).
|
|
47
|
+
* Electron and other GUI parents often launch the daemon with a sparse PATH.
|
|
48
|
+
*/
|
|
49
|
+
function loadLoginShellEnvironment() {
|
|
50
|
+
if (cachedLoginShellEnv)
|
|
51
|
+
return cachedLoginShellEnv;
|
|
52
|
+
if (platform() === "win32") {
|
|
53
|
+
cachedLoginShellEnv = process.env;
|
|
54
|
+
return cachedLoginShellEnv;
|
|
55
|
+
}
|
|
56
|
+
try {
|
|
57
|
+
const shell = (process.env.SHELL || "/bin/bash").replace(/'/g, "'\\''");
|
|
58
|
+
const envOutput = execSync(`'${shell}' -ilc 'env'`, {
|
|
59
|
+
encoding: "utf8",
|
|
60
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
61
|
+
timeout: 5000,
|
|
62
|
+
});
|
|
63
|
+
cachedLoginShellEnv = parseEnvOutput(envOutput);
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
cachedLoginShellEnv = process.env;
|
|
67
|
+
}
|
|
68
|
+
return cachedLoginShellEnv;
|
|
69
|
+
}
|
|
70
|
+
export function clearLoginShellEnvironmentCache() {
|
|
71
|
+
cachedLoginShellEnv = null;
|
|
72
|
+
resolvedCliCache.clear();
|
|
73
|
+
negativeResolutionExpiry.clear();
|
|
74
|
+
}
|
|
75
|
+
export function getDaemonCliEnvironment() {
|
|
76
|
+
const base = platform() === "win32" ? process.env : loadLoginShellEnvironment();
|
|
77
|
+
return augmentCliPath(base);
|
|
78
|
+
}
|
|
79
|
+
function cacheResolvedCli(command, resolvedPath) {
|
|
80
|
+
resolvedCliCache.set(command, resolvedPath);
|
|
81
|
+
if (resolvedPath === null) {
|
|
82
|
+
negativeResolutionExpiry.set(command, Date.now() + NEGATIVE_RESOLUTION_TTL_MS);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
negativeResolutionExpiry.delete(command);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
function cliResolutionCacheKey(command, env) {
|
|
89
|
+
return [command, env.PATH ?? "", env.HOME ?? env.USERPROFILE ?? "", env.PATHEXT ?? ""].join("\0");
|
|
90
|
+
}
|
|
91
|
+
function getCachedResolvedCli(command) {
|
|
92
|
+
const cached = resolvedCliCache.get(command);
|
|
93
|
+
if (cached === null) {
|
|
94
|
+
const expiresAt = negativeResolutionExpiry.get(command);
|
|
95
|
+
if (expiresAt === undefined || Date.now() >= expiresAt) {
|
|
96
|
+
// Expired (or legacy) negative entry — force a fresh on-disk lookup.
|
|
97
|
+
resolvedCliCache.delete(command);
|
|
98
|
+
negativeResolutionExpiry.delete(command);
|
|
99
|
+
return undefined;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return cached;
|
|
103
|
+
}
|
|
104
|
+
function resolveViaWhere(command, env) {
|
|
105
|
+
if (platform() !== "win32")
|
|
106
|
+
return null;
|
|
107
|
+
const whereExe = join(env.SystemRoot ?? process.env.SystemRoot ?? "C:\\Windows", "System32", "where.exe");
|
|
108
|
+
if (!existsSync(whereExe))
|
|
109
|
+
return null;
|
|
110
|
+
const result = spawnSync(whereExe, [command], {
|
|
111
|
+
encoding: "utf8",
|
|
112
|
+
env,
|
|
113
|
+
windowsHide: true,
|
|
114
|
+
timeout: 3000,
|
|
115
|
+
});
|
|
116
|
+
// Incomplete mocks (and rare spawnSync edge cases) can return undefined.
|
|
117
|
+
if (!result || result.error || result.status !== 0)
|
|
118
|
+
return null;
|
|
119
|
+
for (const line of (result.stdout ?? "").split(/\r?\n/)) {
|
|
120
|
+
const trimmed = line.trim();
|
|
121
|
+
if (!trimmed)
|
|
122
|
+
continue;
|
|
123
|
+
if (isRunnableFile(trimmed))
|
|
124
|
+
return trimmed;
|
|
125
|
+
}
|
|
126
|
+
return null;
|
|
127
|
+
}
|
|
128
|
+
export function runCliVersionProbe(executable, env, args = ["--version"], timeoutMs = 3000) {
|
|
129
|
+
const isWin = platform() === "win32";
|
|
130
|
+
if (isWin && /\.(cmd|bat)$/i.test(executable)) {
|
|
131
|
+
const comSpec = env.ComSpec ?? process.env.ComSpec ?? "cmd.exe";
|
|
132
|
+
return spawnSync(comSpec, ["/d", "/s", "/c", executable, ...args], {
|
|
133
|
+
encoding: "utf8",
|
|
134
|
+
timeout: timeoutMs,
|
|
135
|
+
env,
|
|
136
|
+
windowsHide: true,
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
const useShell = isWin && !/[\\/]/.test(executable);
|
|
140
|
+
return spawnSync(executable, args, {
|
|
141
|
+
encoding: "utf8",
|
|
142
|
+
timeout: timeoutMs,
|
|
143
|
+
env,
|
|
144
|
+
shell: useShell,
|
|
145
|
+
windowsHide: isWin ? true : undefined,
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
export function runCliProbeAsync(executable, env, args = ["--version"], timeoutMs = 3000, spawnOptions) {
|
|
149
|
+
return new Promise((resolve) => {
|
|
150
|
+
const isWin = platform() === "win32";
|
|
151
|
+
let command = executable;
|
|
152
|
+
let commandArgs = args;
|
|
153
|
+
if (isWin && /\.(cmd|bat)$/i.test(executable)) {
|
|
154
|
+
command = env.ComSpec ?? process.env.ComSpec ?? "cmd.exe";
|
|
155
|
+
commandArgs = ["/d", "/s", "/c", executable, ...args];
|
|
156
|
+
}
|
|
157
|
+
const useShell = isWin && command === executable && !/[\\/]/.test(executable);
|
|
158
|
+
const closeStdin = spawnOptions?.closeStdin === true;
|
|
159
|
+
const maxOutputChars = spawnOptions?.maxOutputChars ?? MAX_CLI_PROBE_OUTPUT_CHARS;
|
|
160
|
+
let child;
|
|
161
|
+
try {
|
|
162
|
+
child = spawn(command, commandArgs, {
|
|
163
|
+
env,
|
|
164
|
+
shell: useShell,
|
|
165
|
+
windowsHide: isWin ? true : undefined,
|
|
166
|
+
timeout: timeoutMs,
|
|
167
|
+
stdio: closeStdin ? ["pipe", "pipe", "pipe"] : undefined,
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
catch (error) {
|
|
171
|
+
resolve({ status: null, stdout: "", stderr: "", error: error });
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
if (closeStdin) {
|
|
175
|
+
child.stdin?.end();
|
|
176
|
+
}
|
|
177
|
+
let stdout = "";
|
|
178
|
+
let stderr = "";
|
|
179
|
+
child.stdout?.setEncoding("utf8").on("data", (chunk) => {
|
|
180
|
+
stdout = appendCliProbeOutput(stdout, chunk, maxOutputChars);
|
|
181
|
+
});
|
|
182
|
+
child.stderr?.setEncoding("utf8").on("data", (chunk) => {
|
|
183
|
+
stderr = appendCliProbeOutput(stderr, chunk, MAX_CLI_PROBE_OUTPUT_CHARS);
|
|
184
|
+
});
|
|
185
|
+
child.once("error", (error) => resolve({ status: null, stdout, stderr, error }));
|
|
186
|
+
child.once("close", (status, signal) => resolve({ status, stdout, stderr, signal: signal ?? null }));
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
export function runCliVersionProbeAsync(executable, env, args = ["--version"], timeoutMs = 3000) {
|
|
190
|
+
return runCliProbeAsync(executable, env, args, timeoutMs);
|
|
191
|
+
}
|
|
192
|
+
function pathSeparator() {
|
|
193
|
+
return platform() === "win32" ? ";" : ":";
|
|
194
|
+
}
|
|
195
|
+
function splitPath(pathValue) {
|
|
196
|
+
if (!pathValue)
|
|
197
|
+
return [];
|
|
198
|
+
return pathValue.split(pathSeparator()).filter(Boolean);
|
|
199
|
+
}
|
|
200
|
+
function isRunnableFile(path) {
|
|
201
|
+
if (!existsSync(path))
|
|
202
|
+
return false;
|
|
203
|
+
if (platform() === "win32")
|
|
204
|
+
return true;
|
|
205
|
+
try {
|
|
206
|
+
accessSync(path, constants.X_OK);
|
|
207
|
+
return true;
|
|
208
|
+
}
|
|
209
|
+
catch {
|
|
210
|
+
return false;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
function windowsCommandCandidates(command, pathExt) {
|
|
214
|
+
const trimmed = command.trim();
|
|
215
|
+
if (!trimmed)
|
|
216
|
+
return [];
|
|
217
|
+
const hasExtension = /\.[a-z0-9]+$/i.test(trimmed);
|
|
218
|
+
if (hasExtension)
|
|
219
|
+
return [trimmed];
|
|
220
|
+
const extensions = pathExt
|
|
221
|
+
.split(";")
|
|
222
|
+
.map((ext) => ext.trim())
|
|
223
|
+
.filter(Boolean);
|
|
224
|
+
return extensions.map((ext) => `${trimmed}${ext}`);
|
|
225
|
+
}
|
|
226
|
+
const WINDOWS_CODEX_NATIVE_TARGETS = {
|
|
227
|
+
x64: {
|
|
228
|
+
packageName: "@openai/codex-win32-x64",
|
|
229
|
+
targetTriple: "x86_64-pc-windows-msvc",
|
|
230
|
+
},
|
|
231
|
+
arm64: {
|
|
232
|
+
packageName: "@openai/codex-win32-arm64",
|
|
233
|
+
targetTriple: "aarch64-pc-windows-msvc",
|
|
234
|
+
},
|
|
235
|
+
};
|
|
236
|
+
/**
|
|
237
|
+
* npm exposes Codex on Windows through a `.cmd` shim (and an extensionless
|
|
238
|
+
* POSIX wrapper), but the package ultimately launches a native `codex.exe`.
|
|
239
|
+
* Resolve that same executable so paths such as `C:\Program Files\nodejs`
|
|
240
|
+
* never pass through cmd.exe. Standalone installs and unknown/custom wrappers
|
|
241
|
+
* are returned unchanged.
|
|
242
|
+
*/
|
|
243
|
+
function resolveWindowsCodexNativeExecutable(executable) {
|
|
244
|
+
if (platform() !== "win32" ||
|
|
245
|
+
/\.exe$/i.test(executable) ||
|
|
246
|
+
basename(executable).toLowerCase() !== "codex.cmd") {
|
|
247
|
+
return executable;
|
|
248
|
+
}
|
|
249
|
+
const target = WINDOWS_CODEX_NATIVE_TARGETS[arch()];
|
|
250
|
+
if (!target)
|
|
251
|
+
return executable;
|
|
252
|
+
const shimDir = dirname(executable);
|
|
253
|
+
const entrypoints = [
|
|
254
|
+
join(shimDir, "node_modules", "@openai", "codex", "bin", "codex.js"),
|
|
255
|
+
join(shimDir, "..", "@openai", "codex", "bin", "codex.js"),
|
|
256
|
+
];
|
|
257
|
+
for (const entrypoint of entrypoints) {
|
|
258
|
+
if (!existsSync(entrypoint))
|
|
259
|
+
continue;
|
|
260
|
+
const nativeCandidates = [];
|
|
261
|
+
try {
|
|
262
|
+
const packageJson = createRequire(entrypoint).resolve(`${target.packageName}/package.json`);
|
|
263
|
+
nativeCandidates.push(join(dirname(packageJson), "vendor", target.targetTriple, "bin", "codex.exe"));
|
|
264
|
+
}
|
|
265
|
+
catch {
|
|
266
|
+
// Older packages may bundle the vendor directory directly.
|
|
267
|
+
}
|
|
268
|
+
nativeCandidates.push(join(dirname(entrypoint), "..", "vendor", target.targetTriple, "bin", "codex.exe"));
|
|
269
|
+
const nativeExecutable = nativeCandidates.find(isRunnableFile);
|
|
270
|
+
if (nativeExecutable)
|
|
271
|
+
return nativeExecutable;
|
|
272
|
+
}
|
|
273
|
+
return executable;
|
|
274
|
+
}
|
|
275
|
+
export function augmentCliPath(env, includeSystemPaths = true) {
|
|
276
|
+
const home = env.HOME || env.USERPROFILE || homedir();
|
|
277
|
+
const isWin = platform() === "win32";
|
|
278
|
+
const windowsLocalAppData = env.LOCALAPPDATA || join(home, "AppData", "Local");
|
|
279
|
+
const userPaths = isWin
|
|
280
|
+
? [
|
|
281
|
+
join(home, "AppData", "Roaming", "npm"),
|
|
282
|
+
join(windowsLocalAppData, "Programs", "OpenAI", "Codex", "bin"),
|
|
283
|
+
join(windowsLocalAppData, "Programs", "Microsoft", "WindowsApps"),
|
|
284
|
+
join(home, ".local", "bin"),
|
|
285
|
+
]
|
|
286
|
+
: [
|
|
287
|
+
join(home, ".local", "bin"),
|
|
288
|
+
join(home, ".local", "node", "bin"),
|
|
289
|
+
join(home, ".bun", "bin"),
|
|
290
|
+
join(home, ".cargo", "bin"),
|
|
291
|
+
];
|
|
292
|
+
const systemPaths = isWin
|
|
293
|
+
? ["C:\\Program Files\\nodejs", "C:\\Program Files\\Git\\cmd"]
|
|
294
|
+
: ["/opt/homebrew/bin", "/usr/local/bin"];
|
|
295
|
+
const extraPaths = includeSystemPaths ? [...userPaths, ...systemPaths] : userPaths;
|
|
296
|
+
const basePath = env.PATH ?? "";
|
|
297
|
+
const existing = new Set(splitPath(basePath));
|
|
298
|
+
const missing = extraPaths.filter((dir) => !existing.has(dir));
|
|
299
|
+
if (missing.length === 0)
|
|
300
|
+
return env;
|
|
301
|
+
return {
|
|
302
|
+
...env,
|
|
303
|
+
PATH: missing.length > 0
|
|
304
|
+
? `${missing.join(pathSeparator())}${pathSeparator()}${basePath}`
|
|
305
|
+
: basePath,
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
export function resolveCliExecutable(command, env) {
|
|
309
|
+
const trimmed = command.trim();
|
|
310
|
+
if (!trimmed)
|
|
311
|
+
return null;
|
|
312
|
+
// A supplied environment is an execution boundary. Keep its PATH isolated
|
|
313
|
+
// from host-wide install locations while still checking the caller's local
|
|
314
|
+
// CLI directories; the daemon's own environment is already augmented with
|
|
315
|
+
// the usual system locations by getDaemonCliEnvironment().
|
|
316
|
+
const enriched = augmentCliPath(env ?? getDaemonCliEnvironment(), env === undefined);
|
|
317
|
+
const cacheKey = cliResolutionCacheKey(trimmed, enriched);
|
|
318
|
+
const cached = getCachedResolvedCli(cacheKey);
|
|
319
|
+
if (cached === null)
|
|
320
|
+
return null;
|
|
321
|
+
if (cached && isRunnableFile(cached))
|
|
322
|
+
return cached;
|
|
323
|
+
if ((trimmed.includes("/") || trimmed.includes("\\")) && isRunnableFile(trimmed)) {
|
|
324
|
+
cacheResolvedCli(cacheKey, trimmed);
|
|
325
|
+
return trimmed;
|
|
326
|
+
}
|
|
327
|
+
const isWin = platform() === "win32";
|
|
328
|
+
const pathExt = enriched.PATHEXT ?? (isWin ? ".EXE;.CMD;.BAT;.COM" : "");
|
|
329
|
+
const commandNames = [trimmed, ...(CLI_COMMAND_ALIASES[trimmed] ?? [])];
|
|
330
|
+
const names = commandNames.flatMap((name) => isWin ? windowsCommandCandidates(name, pathExt) : [name]);
|
|
331
|
+
const candidates = [];
|
|
332
|
+
for (const name of names) {
|
|
333
|
+
if (name.includes("/") || name.includes("\\")) {
|
|
334
|
+
candidates.push(name);
|
|
335
|
+
continue;
|
|
336
|
+
}
|
|
337
|
+
for (const dir of splitPath(enriched.PATH)) {
|
|
338
|
+
candidates.push(join(dir, name));
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
const seen = new Set();
|
|
342
|
+
for (const candidate of candidates) {
|
|
343
|
+
if (seen.has(candidate))
|
|
344
|
+
continue;
|
|
345
|
+
seen.add(candidate);
|
|
346
|
+
if (isRunnableFile(candidate)) {
|
|
347
|
+
cacheResolvedCli(cacheKey, candidate);
|
|
348
|
+
return candidate;
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
const viaWhere = resolveViaWhere(trimmed, enriched);
|
|
352
|
+
if (viaWhere) {
|
|
353
|
+
cacheResolvedCli(cacheKey, viaWhere);
|
|
354
|
+
return viaWhere;
|
|
355
|
+
}
|
|
356
|
+
cacheResolvedCli(cacheKey, null);
|
|
357
|
+
return null;
|
|
358
|
+
}
|
|
359
|
+
export function resolveProviderCliCommand(provider, env) {
|
|
360
|
+
const spec = findSandboxRuntimeDefinition(provider);
|
|
361
|
+
if (!spec)
|
|
362
|
+
return null;
|
|
363
|
+
const cliEnv = env ?? getDaemonCliEnvironment();
|
|
364
|
+
const override = spec.envVars
|
|
365
|
+
.map((name) => process.env[name]?.trim() || cliEnv[name]?.trim())
|
|
366
|
+
.find(Boolean);
|
|
367
|
+
if (override) {
|
|
368
|
+
const resolved = resolveCliExecutable(override, cliEnv) ?? (isRunnableFile(override) ? override : null);
|
|
369
|
+
return resolved && spec.command === "codex"
|
|
370
|
+
? resolveWindowsCodexNativeExecutable(resolved)
|
|
371
|
+
: resolved;
|
|
372
|
+
}
|
|
373
|
+
const resolved = resolveCliExecutable(spec.command, cliEnv);
|
|
374
|
+
return resolved && spec.command === "codex"
|
|
375
|
+
? resolveWindowsCodexNativeExecutable(resolved)
|
|
376
|
+
: resolved;
|
|
377
|
+
}
|
|
378
|
+
export function resolveBackendRuntimeCommand(backendKind, env) {
|
|
379
|
+
if (!backendKind)
|
|
380
|
+
return undefined;
|
|
381
|
+
const spec = findSandboxRuntimeDefinition(backendKind);
|
|
382
|
+
if (!spec)
|
|
383
|
+
return undefined;
|
|
384
|
+
const cliEnv = env ?? getDaemonCliEnvironment();
|
|
385
|
+
const envOverride = spec.envVars.map((name) => cliEnv[name]?.trim()).find(Boolean);
|
|
386
|
+
const resolved = resolveCliExecutable(envOverride?.trim() || spec.command, cliEnv);
|
|
387
|
+
if (!resolved)
|
|
388
|
+
return undefined;
|
|
389
|
+
return spec.command === "codex" ? resolveWindowsCodexNativeExecutable(resolved) : resolved;
|
|
390
|
+
}
|
|
391
|
+
/**
|
|
392
|
+
* Drop a command's cached resolution so the next resolve re-discovers it from
|
|
393
|
+
* disk. `resolveCliExecutable` already re-checks the cached path with
|
|
394
|
+
* `isRunnableFile`, so this is for the case a cached path passes that check yet
|
|
395
|
+
* still fails to spawn (e.g. a stale shim, or the file vanished between the
|
|
396
|
+
* check and the spawn).
|
|
397
|
+
*/
|
|
398
|
+
export function invalidateResolvedCli(command) {
|
|
399
|
+
const trimmed = command.trim();
|
|
400
|
+
if (trimmed) {
|
|
401
|
+
const prefix = `${trimmed}\0`;
|
|
402
|
+
for (const cacheKey of resolvedCliCache.keys()) {
|
|
403
|
+
if (cacheKey === trimmed || cacheKey.startsWith(prefix))
|
|
404
|
+
resolvedCliCache.delete(cacheKey);
|
|
405
|
+
}
|
|
406
|
+
for (const cacheKey of negativeResolutionExpiry.keys()) {
|
|
407
|
+
if (cacheKey === trimmed || cacheKey.startsWith(prefix)) {
|
|
408
|
+
negativeResolutionExpiry.delete(cacheKey);
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
/**
|
|
414
|
+
* Force a fresh resolution of a backend's CLI executable, discarding any cached
|
|
415
|
+
* path first. Invoked when a spawn of the previously-resolved path fails ENOENT
|
|
416
|
+
* (the CLI was moved/reinstalled after the daemon cached it) so the run can
|
|
417
|
+
* retry once against the current on-disk location instead of failing outright.
|
|
418
|
+
*/
|
|
419
|
+
export function revalidateBackendRuntimeCommand(backendKind, env) {
|
|
420
|
+
if (!backendKind)
|
|
421
|
+
return undefined;
|
|
422
|
+
const spec = findSandboxRuntimeDefinition(backendKind);
|
|
423
|
+
if (!spec)
|
|
424
|
+
return undefined;
|
|
425
|
+
const cliEnv = env ?? getDaemonCliEnvironment();
|
|
426
|
+
// Drop both the bare-command cache entry and any env-override key so the
|
|
427
|
+
// re-resolution below cannot return the same stale hit (or a poisoned,
|
|
428
|
+
// still-unexpired negative entry).
|
|
429
|
+
invalidateResolvedCli(spec.command);
|
|
430
|
+
const envOverride = spec.envVars.map((name) => cliEnv[name]?.trim()).find(Boolean);
|
|
431
|
+
if (envOverride)
|
|
432
|
+
invalidateResolvedCli(envOverride);
|
|
433
|
+
return resolveBackendRuntimeCommand(backendKind, cliEnv);
|
|
434
|
+
}
|
|
435
|
+
//# sourceMappingURL=cli-executable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-executable.js","sourceRoot":"","sources":["../src/cli-executable.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const HELP_TEXT = "Alan agent CLI\n\nUsage:\n alan-agent <command> [options]\n\nCommands:\n install Login/setup, install the daemon service, MCP, and supported hooks\n setup Register this computer with a setup token from Alan\n login Register this computer through browser authorization\n daemon Start the durable runtime daemon\n service Install, uninstall, or inspect the per-user daemon service\n integrations Reconcile, inspect, or uninstall Alan CLI integrations\n hook Internal: durably spool a native CLI hook event (fail-open)\n stop Stop the local daemon (or active runs only via the local API /stop)\n recover Redial and safely restart a stuck local daemon connection\n status Show local runtime configuration without secrets\n doctor Check local CLI capabilities\n scan-models Probe installed agent CLIs and print discovered models\n skills Scan, publish, or reconcile complete Agent Skill packages\n logout Remove local runtime configuration\n token Rotate or revoke the configured runtime token\n run-session Internal: run one ephemeral sandbox/session from ALAN_* env vars\n\nCommon flows:\n alan-agent install\n alan-agent install --setup-token <token>\n alan-agent login\n alan-agent login --cancel\n alan-agent setup --setup-token <token>\n alan-agent setup --setup-token <token> --scope user\n alan-agent service install\n alan-agent integrations reconcile\n alan-agent integrations reconcile --mcp-only\n alan-agent integrations status\n alan-agent integrations capabilities\n alan-agent integrations uninstall\n alan-agent stop\n\nLocal development:\n alan-agent login --profile local\n alan-agent setup --profile local --setup-token <token>\n";
|
|
2
|
+
export declare function hasRunSessionEnv(env: NodeJS.ProcessEnv): boolean;
|
|
3
|
+
export declare function resolveInstallConfigurationMode(args: string[], configured: {
|
|
4
|
+
runtimeId?: string;
|
|
5
|
+
runtimeToken?: string;
|
|
6
|
+
}): "setup" | "login" | "reuse";
|
|
7
|
+
export declare function resolveCommand(args: string[], env: NodeJS.ProcessEnv): {
|
|
8
|
+
command: string;
|
|
9
|
+
commandArgs: string[];
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=cli-help.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-help.d.ts","sourceRoot":"","sources":["../src/cli-help.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,stDAyCrB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAQhE;AAED,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,MAAM,EAAE,EACd,UAAU,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GACxD,OAAO,GAAG,OAAO,GAAG,OAAO,CAG7B;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,CAS5C"}
|
package/dist/cli-help.js
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
export const HELP_TEXT = `Alan agent CLI
|
|
2
|
+
|
|
3
|
+
Usage:
|
|
4
|
+
alan-agent <command> [options]
|
|
5
|
+
|
|
6
|
+
Commands:
|
|
7
|
+
install Login/setup, install the daemon service, MCP, and supported hooks
|
|
8
|
+
setup Register this computer with a setup token from Alan
|
|
9
|
+
login Register this computer through browser authorization
|
|
10
|
+
daemon Start the durable runtime daemon
|
|
11
|
+
service Install, uninstall, or inspect the per-user daemon service
|
|
12
|
+
integrations Reconcile, inspect, or uninstall Alan CLI integrations
|
|
13
|
+
hook Internal: durably spool a native CLI hook event (fail-open)
|
|
14
|
+
stop Stop the local daemon (or active runs only via the local API /stop)
|
|
15
|
+
recover Redial and safely restart a stuck local daemon connection
|
|
16
|
+
status Show local runtime configuration without secrets
|
|
17
|
+
doctor Check local CLI capabilities
|
|
18
|
+
scan-models Probe installed agent CLIs and print discovered models
|
|
19
|
+
skills Scan, publish, or reconcile complete Agent Skill packages
|
|
20
|
+
logout Remove local runtime configuration
|
|
21
|
+
token Rotate or revoke the configured runtime token
|
|
22
|
+
run-session Internal: run one ephemeral sandbox/session from ALAN_* env vars
|
|
23
|
+
|
|
24
|
+
Common flows:
|
|
25
|
+
alan-agent install
|
|
26
|
+
alan-agent install --setup-token <token>
|
|
27
|
+
alan-agent login
|
|
28
|
+
alan-agent login --cancel
|
|
29
|
+
alan-agent setup --setup-token <token>
|
|
30
|
+
alan-agent setup --setup-token <token> --scope user
|
|
31
|
+
alan-agent service install
|
|
32
|
+
alan-agent integrations reconcile
|
|
33
|
+
alan-agent integrations reconcile --mcp-only
|
|
34
|
+
alan-agent integrations status
|
|
35
|
+
alan-agent integrations capabilities
|
|
36
|
+
alan-agent integrations uninstall
|
|
37
|
+
alan-agent stop
|
|
38
|
+
|
|
39
|
+
Local development:
|
|
40
|
+
alan-agent login --profile local
|
|
41
|
+
alan-agent setup --profile local --setup-token <token>
|
|
42
|
+
`;
|
|
43
|
+
export function hasRunSessionEnv(env) {
|
|
44
|
+
return Boolean(env.ALAN_WS_URL &&
|
|
45
|
+
env.ALAN_SESSION_ID &&
|
|
46
|
+
env.ALAN_TASK_ID &&
|
|
47
|
+
env.ALAN_SESSION_TOKEN &&
|
|
48
|
+
env.ALAN_TASK !== undefined);
|
|
49
|
+
}
|
|
50
|
+
export function resolveInstallConfigurationMode(args, configured) {
|
|
51
|
+
if (args.includes("--setup-token"))
|
|
52
|
+
return "setup";
|
|
53
|
+
return configured.runtimeId && configured.runtimeToken ? "reuse" : "login";
|
|
54
|
+
}
|
|
55
|
+
export function resolveCommand(args, env) {
|
|
56
|
+
const [command, ...commandArgs] = args;
|
|
57
|
+
if (!command) {
|
|
58
|
+
return { command: hasRunSessionEnv(env) ? "run-session" : "help", commandArgs: [] };
|
|
59
|
+
}
|
|
60
|
+
if (command === "help" || command === "--help" || command === "-h") {
|
|
61
|
+
return { command: "help", commandArgs };
|
|
62
|
+
}
|
|
63
|
+
return { command, commandArgs };
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=cli-help.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-help.js","sourceRoot":"","sources":["../src/cli-help.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCxB,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,GAAsB;IACrD,OAAO,OAAO,CACZ,GAAG,CAAC,WAAW;QACb,GAAG,CAAC,eAAe;QACnB,GAAG,CAAC,YAAY;QAChB,GAAG,CAAC,kBAAkB;QACtB,GAAG,CAAC,SAAS,KAAK,SAAS,CAC9B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,IAAc,EACd,UAAyD;IAEzD,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;QAAE,OAAO,OAAO,CAAC;IACnD,OAAO,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,IAAc,EACd,GAAsB;IAEtB,MAAM,CAAC,OAAO,EAAE,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC;IACvC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IACtF,CAAC;IACD,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACnE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAC1C,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { AgentEndpointProfile, ComputerReadinessCheck, RuntimeDaemonUiActionDescriptor } from "@alan-ai/shared/runtime-runner-status";
|
|
2
|
+
export interface BuildComputerReadinessInput {
|
|
3
|
+
nowMs?: number;
|
|
4
|
+
runtimeId: string;
|
|
5
|
+
endpointProfile: AgentEndpointProfile;
|
|
6
|
+
configPath: string;
|
|
7
|
+
configEndpointProfile?: AgentEndpointProfile | "custom";
|
|
8
|
+
endpointMismatchDetail?: string | null;
|
|
9
|
+
connected: boolean;
|
|
10
|
+
localApiHealthy: boolean;
|
|
11
|
+
runtimeAuthValid: boolean;
|
|
12
|
+
workspacePath?: string | null;
|
|
13
|
+
providerAvailable?: boolean;
|
|
14
|
+
protocolCompatible?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export type WorkspaceReadinessCode = "workspace_missing" | "workspace_permission_denied" | "workspace_volume_unavailable";
|
|
17
|
+
export interface WorkspaceReadinessResult {
|
|
18
|
+
ready: boolean;
|
|
19
|
+
code?: WorkspaceReadinessCode;
|
|
20
|
+
message: string;
|
|
21
|
+
action: RuntimeDaemonUiActionDescriptor | null;
|
|
22
|
+
}
|
|
23
|
+
export declare class WorkspaceAccessTracker {
|
|
24
|
+
private readonly inspect;
|
|
25
|
+
private issue;
|
|
26
|
+
constructor(inspect?: (path: string) => WorkspaceReadinessResult);
|
|
27
|
+
track(path: string, readiness: WorkspaceReadinessResult): void;
|
|
28
|
+
recheck(): WorkspaceReadinessResult | null;
|
|
29
|
+
recoveryPath(): string | null;
|
|
30
|
+
currentReadiness(): WorkspaceReadinessResult | null;
|
|
31
|
+
}
|
|
32
|
+
export interface WorkspaceFsProbe {
|
|
33
|
+
stat(path: string): {
|
|
34
|
+
isDirectory(): boolean;
|
|
35
|
+
};
|
|
36
|
+
access(path: string, mode: number): void;
|
|
37
|
+
exists(path: string): boolean;
|
|
38
|
+
}
|
|
39
|
+
export declare function inspectWorkspaceReadiness(workspacePath: string | null | undefined, probe?: WorkspaceFsProbe): WorkspaceReadinessResult;
|
|
40
|
+
export declare function buildComputerReadiness(input: BuildComputerReadinessInput): ComputerReadinessCheck[];
|
|
41
|
+
//# sourceMappingURL=computer-readiness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computer-readiness.d.ts","sourceRoot":"","sources":["../src/computer-readiness.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACtB,+BAA+B,EAChC,MAAM,uCAAuC,CAAC;AAG/C,MAAM,WAAW,2BAA2B;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,oBAAoB,CAAC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,CAAC,EAAE,oBAAoB,GAAG,QAAQ,CAAC;IACxD,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,MAAM,sBAAsB,GAC9B,mBAAmB,GACnB,6BAA6B,GAC7B,8BAA8B,CAAC;AAEnC,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,sBAAsB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,+BAA+B,GAAG,IAAI,CAAC;CAChD;AAED,qBAAa,sBAAsB;IAI/B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAH1B,OAAO,CAAC,KAAK,CAAsE;gBAGhE,OAAO,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,wBACX;IAGnC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,wBAAwB,GAAG,IAAI;IAQ9D,OAAO,IAAI,wBAAwB,GAAG,IAAI;IAW1C,YAAY,IAAI,MAAM,GAAG,IAAI;IAI7B,gBAAgB,IAAI,wBAAwB,GAAG,IAAI;CAGpD;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,WAAW,IAAI,OAAO,CAAA;KAAE,CAAC;IAC/C,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B;AA2DD,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACxC,KAAK,GAAE,gBAA0C,GAChD,wBAAwB,CA8B1B;AAsBD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,2BAA2B,GACjC,sBAAsB,EAAE,CAuH1B"}
|