@cuna_labs/cli 0.1.0
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 +201 -0
- package/NOTICE +9 -0
- package/README.md +169 -0
- package/THIRD_PARTY_NOTICES.md +29 -0
- package/dist/api/capability-evidence.d.ts +19 -0
- package/dist/api/capability-evidence.d.ts.map +1 -0
- package/dist/api/capability-evidence.js +38 -0
- package/dist/api/capability-evidence.js.map +1 -0
- package/dist/api/client.d.ts +167 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/api/client.js +937 -0
- package/dist/api/client.js.map +1 -0
- package/dist/api/contracts.d.ts +345 -0
- package/dist/api/contracts.d.ts.map +1 -0
- package/dist/api/contracts.js +976 -0
- package/dist/api/contracts.js.map +1 -0
- package/dist/api/execution-workspaces.d.ts +17 -0
- package/dist/api/execution-workspaces.d.ts.map +1 -0
- package/dist/api/execution-workspaces.js +46 -0
- package/dist/api/execution-workspaces.js.map +1 -0
- package/dist/api/http.d.ts +76 -0
- package/dist/api/http.d.ts.map +1 -0
- package/dist/api/http.js +838 -0
- package/dist/api/http.js.map +1 -0
- package/dist/api/managed-executions.d.ts +37 -0
- package/dist/api/managed-executions.d.ts.map +1 -0
- package/dist/api/managed-executions.js +80 -0
- package/dist/api/managed-executions.js.map +1 -0
- package/dist/api/observer-v2-schema.d.ts +206 -0
- package/dist/api/observer-v2-schema.d.ts.map +1 -0
- package/dist/api/observer-v2-schema.js +264 -0
- package/dist/api/observer-v2-schema.js.map +1 -0
- package/dist/api/observer-v2.d.ts +33 -0
- package/dist/api/observer-v2.d.ts.map +1 -0
- package/dist/api/observer-v2.js +60 -0
- package/dist/api/observer-v2.js.map +1 -0
- package/dist/api/owner-observe-grants-v2-schema.d.ts +678 -0
- package/dist/api/owner-observe-grants-v2-schema.d.ts.map +1 -0
- package/dist/api/owner-observe-grants-v2-schema.js +887 -0
- package/dist/api/owner-observe-grants-v2-schema.js.map +1 -0
- package/dist/api/owner-observe-grants-v2.d.ts +268 -0
- package/dist/api/owner-observe-grants-v2.d.ts.map +1 -0
- package/dist/api/owner-observe-grants-v2.js +604 -0
- package/dist/api/owner-observe-grants-v2.js.map +1 -0
- package/dist/api/provider-v2-schema.d.ts +293 -0
- package/dist/api/provider-v2-schema.d.ts.map +1 -0
- package/dist/api/provider-v2-schema.js +381 -0
- package/dist/api/provider-v2-schema.js.map +1 -0
- package/dist/api/provider-v2.d.ts +55 -0
- package/dist/api/provider-v2.d.ts.map +1 -0
- package/dist/api/provider-v2.js +54 -0
- package/dist/api/provider-v2.js.map +1 -0
- package/dist/api/remote-workspace.d.ts +29 -0
- package/dist/api/remote-workspace.d.ts.map +1 -0
- package/dist/api/remote-workspace.js +62 -0
- package/dist/api/remote-workspace.js.map +1 -0
- package/dist/api/supervisor-live-update.d.ts +248 -0
- package/dist/api/supervisor-live-update.d.ts.map +1 -0
- package/dist/api/supervisor-live-update.js +434 -0
- package/dist/api/supervisor-live-update.js.map +1 -0
- package/dist/api/terminal-reason.d.ts +5 -0
- package/dist/api/terminal-reason.d.ts.map +1 -0
- package/dist/api/terminal-reason.js +12 -0
- package/dist/api/terminal-reason.js.map +1 -0
- package/dist/auth/browser-handoff.d.ts +59 -0
- package/dist/auth/browser-handoff.d.ts.map +1 -0
- package/dist/auth/browser-handoff.js +33 -0
- package/dist/auth/browser-handoff.js.map +1 -0
- package/dist/auth/browser.d.ts +11 -0
- package/dist/auth/browser.d.ts.map +1 -0
- package/dist/auth/browser.js +47 -0
- package/dist/auth/browser.js.map +1 -0
- package/dist/auth/human-client.d.ts +39 -0
- package/dist/auth/human-client.d.ts.map +1 -0
- package/dist/auth/human-client.js +66 -0
- package/dist/auth/human-client.js.map +1 -0
- package/dist/auth/human-contracts.d.ts +52 -0
- package/dist/auth/human-contracts.d.ts.map +1 -0
- package/dist/auth/human-contracts.js +229 -0
- package/dist/auth/human-contracts.js.map +1 -0
- package/dist/auth/human-session.d.ts +48 -0
- package/dist/auth/human-session.d.ts.map +1 -0
- package/dist/auth/human-session.js +902 -0
- package/dist/auth/human-session.js.map +1 -0
- package/dist/auth/onboarding-state.d.ts +31 -0
- package/dist/auth/onboarding-state.d.ts.map +1 -0
- package/dist/auth/onboarding-state.js +52 -0
- package/dist/auth/onboarding-state.js.map +1 -0
- package/dist/auth/pkce.d.ts +15 -0
- package/dist/auth/pkce.d.ts.map +1 -0
- package/dist/auth/pkce.js +19 -0
- package/dist/auth/pkce.js.map +1 -0
- package/dist/bin/cuna.d.ts +3 -0
- package/dist/bin/cuna.d.ts.map +1 -0
- package/dist/bin/cuna.js +4 -0
- package/dist/bin/cuna.js.map +1 -0
- package/dist/build-identity.d.ts +20 -0
- package/dist/build-identity.d.ts.map +1 -0
- package/dist/build-identity.js +77 -0
- package/dist/build-identity.js.map +1 -0
- package/dist/cli/command-help.d.ts +9 -0
- package/dist/cli/command-help.d.ts.map +1 -0
- package/dist/cli/command-help.js +324 -0
- package/dist/cli/command-help.js.map +1 -0
- package/dist/cli/help.d.ts +40 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/help.js +256 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/output.d.ts +28 -0
- package/dist/cli/output.d.ts.map +1 -0
- package/dist/cli/output.js +95 -0
- package/dist/cli/output.js.map +1 -0
- package/dist/cli/parser.d.ts +65 -0
- package/dist/cli/parser.d.ts.map +1 -0
- package/dist/cli/parser.js +294 -0
- package/dist/cli/parser.js.map +1 -0
- package/dist/cli/process-entrypoint.d.ts +18 -0
- package/dist/cli/process-entrypoint.d.ts.map +1 -0
- package/dist/cli/process-entrypoint.js +26 -0
- package/dist/cli/process-entrypoint.js.map +1 -0
- package/dist/cli/run.d.ts +114 -0
- package/dist/cli/run.d.ts.map +1 -0
- package/dist/cli/run.js +1969 -0
- package/dist/cli/run.js.map +1 -0
- package/dist/commands/commands.d.ts +74 -0
- package/dist/commands/commands.d.ts.map +1 -0
- package/dist/commands/commands.js +2814 -0
- package/dist/commands/commands.js.map +1 -0
- package/dist/config/config.d.ts +86 -0
- package/dist/config/config.d.ts.map +1 -0
- package/dist/config/config.js +323 -0
- package/dist/config/config.js.map +1 -0
- package/dist/config/infra-contract-witness.d.ts +29 -0
- package/dist/config/infra-contract-witness.d.ts.map +1 -0
- package/dist/config/infra-contract-witness.js +30 -0
- package/dist/config/infra-contract-witness.js.map +1 -0
- package/dist/core/browser-url.d.ts +2 -0
- package/dist/core/browser-url.d.ts.map +1 -0
- package/dist/core/browser-url.js +20 -0
- package/dist/core/browser-url.js.map +1 -0
- package/dist/core/deployed-wire-compatibility.d.ts +15 -0
- package/dist/core/deployed-wire-compatibility.d.ts.map +1 -0
- package/dist/core/deployed-wire-compatibility.js +15 -0
- package/dist/core/deployed-wire-compatibility.js.map +1 -0
- package/dist/core/errors.d.ts +59 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +82 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/exit-codes.d.ts +68 -0
- package/dist/core/exit-codes.d.ts.map +1 -0
- package/dist/core/exit-codes.js +84 -0
- package/dist/core/exit-codes.js.map +1 -0
- package/dist/core/instant.d.ts +60 -0
- package/dist/core/instant.d.ts.map +1 -0
- package/dist/core/instant.js +90 -0
- package/dist/core/instant.js.map +1 -0
- package/dist/core/namespace.d.ts +171 -0
- package/dist/core/namespace.d.ts.map +1 -0
- package/dist/core/namespace.js +227 -0
- package/dist/core/namespace.js.map +1 -0
- package/dist/core/observation-budget.d.ts +185 -0
- package/dist/core/observation-budget.d.ts.map +1 -0
- package/dist/core/observation-budget.js +209 -0
- package/dist/core/observation-budget.js.map +1 -0
- package/dist/core/product-web.d.ts +81 -0
- package/dist/core/product-web.d.ts.map +1 -0
- package/dist/core/product-web.js +87 -0
- package/dist/core/product-web.js.map +1 -0
- package/dist/core/validation.d.ts +90 -0
- package/dist/core/validation.d.ts.map +1 -0
- package/dist/core/validation.js +199 -0
- package/dist/core/validation.js.map +1 -0
- package/dist/credentials/contracts.d.ts +82 -0
- package/dist/credentials/contracts.d.ts.map +1 -0
- package/dist/credentials/contracts.js +2 -0
- package/dist/credentials/contracts.js.map +1 -0
- package/dist/credentials/errors.d.ts +19 -0
- package/dist/credentials/errors.d.ts.map +1 -0
- package/dist/credentials/errors.js +16 -0
- package/dist/credentials/errors.js.map +1 -0
- package/dist/credentials/index.d.ts +6 -0
- package/dist/credentials/index.d.ts.map +1 -0
- package/dist/credentials/index.js +6 -0
- package/dist/credentials/index.js.map +1 -0
- package/dist/credentials/local-session.d.ts +101 -0
- package/dist/credentials/local-session.d.ts.map +1 -0
- package/dist/credentials/local-session.js +839 -0
- package/dist/credentials/local-session.js.map +1 -0
- package/dist/credentials/secret-material.d.ts +17 -0
- package/dist/credentials/secret-material.d.ts.map +1 -0
- package/dist/credentials/secret-material.js +49 -0
- package/dist/credentials/secret-material.js.map +1 -0
- package/dist/credentials/vault.d.ts +41 -0
- package/dist/credentials/vault.d.ts.map +1 -0
- package/dist/credentials/vault.js +719 -0
- package/dist/credentials/vault.js.map +1 -0
- package/dist/daemon/endpoint.d.ts +29 -0
- package/dist/daemon/endpoint.d.ts.map +1 -0
- package/dist/daemon/endpoint.js +66 -0
- package/dist/daemon/endpoint.js.map +1 -0
- package/dist/daemon/journal.d.ts +62 -0
- package/dist/daemon/journal.d.ts.map +1 -0
- package/dist/daemon/journal.js +299 -0
- package/dist/daemon/journal.js.map +1 -0
- package/dist/daemon/lease.d.ts +25 -0
- package/dist/daemon/lease.d.ts.map +1 -0
- package/dist/daemon/lease.js +94 -0
- package/dist/daemon/lease.js.map +1 -0
- package/dist/daemon/lifecycle.d.ts +14 -0
- package/dist/daemon/lifecycle.d.ts.map +1 -0
- package/dist/daemon/lifecycle.js +29 -0
- package/dist/daemon/lifecycle.js.map +1 -0
- package/dist/daemon/protocol.d.ts +65 -0
- package/dist/daemon/protocol.d.ts.map +1 -0
- package/dist/daemon/protocol.js +194 -0
- package/dist/daemon/protocol.js.map +1 -0
- package/dist/daemon/supervisor.d.ts +29 -0
- package/dist/daemon/supervisor.d.ts.map +1 -0
- package/dist/daemon/supervisor.js +87 -0
- package/dist/daemon/supervisor.js.map +1 -0
- package/dist/daemon/views.d.ts +31 -0
- package/dist/daemon/views.d.ts.map +1 -0
- package/dist/daemon/views.js +86 -0
- package/dist/daemon/views.js.map +1 -0
- package/dist/index.d.ts +38 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +38 -0
- package/dist/index.js.map +1 -0
- package/dist/journey/api-effects.d.ts +59 -0
- package/dist/journey/api-effects.d.ts.map +1 -0
- package/dist/journey/api-effects.js +386 -0
- package/dist/journey/api-effects.js.map +1 -0
- package/dist/journey/derived-identity.d.ts +91 -0
- package/dist/journey/derived-identity.d.ts.map +1 -0
- package/dist/journey/derived-identity.js +123 -0
- package/dist/journey/derived-identity.js.map +1 -0
- package/dist/journey/index.d.ts +6 -0
- package/dist/journey/index.d.ts.map +1 -0
- package/dist/journey/index.js +6 -0
- package/dist/journey/index.js.map +1 -0
- package/dist/journey/intent.d.ts +36 -0
- package/dist/journey/intent.d.ts.map +1 -0
- package/dist/journey/intent.js +191 -0
- package/dist/journey/intent.js.map +1 -0
- package/dist/journey/orchestrator.d.ts +140 -0
- package/dist/journey/orchestrator.d.ts.map +1 -0
- package/dist/journey/orchestrator.js +415 -0
- package/dist/journey/orchestrator.js.map +1 -0
- package/dist/journey/provider-launch-intent.d.ts +12 -0
- package/dist/journey/provider-launch-intent.d.ts.map +1 -0
- package/dist/journey/provider-launch-intent.js +40 -0
- package/dist/journey/provider-launch-intent.js.map +1 -0
- package/dist/journey/remote-workspace.d.ts +34 -0
- package/dist/journey/remote-workspace.d.ts.map +1 -0
- package/dist/journey/remote-workspace.js +91 -0
- package/dist/journey/remote-workspace.js.map +1 -0
- package/dist/journey/root-entry.d.ts +56 -0
- package/dist/journey/root-entry.d.ts.map +1 -0
- package/dist/journey/root-entry.js +19 -0
- package/dist/journey/root-entry.js.map +1 -0
- package/dist/journey/selection.d.ts +165 -0
- package/dist/journey/selection.d.ts.map +1 -0
- package/dist/journey/selection.js +565 -0
- package/dist/journey/selection.js.map +1 -0
- package/dist/journey/session-failure.d.ts +4 -0
- package/dist/journey/session-failure.d.ts.map +1 -0
- package/dist/journey/session-failure.js +28 -0
- package/dist/journey/session-failure.js.map +1 -0
- package/dist/journey/workspace-effects.d.ts +30 -0
- package/dist/journey/workspace-effects.d.ts.map +1 -0
- package/dist/journey/workspace-effects.js +348 -0
- package/dist/journey/workspace-effects.js.map +1 -0
- package/dist/local-actions/broker.d.ts +32 -0
- package/dist/local-actions/broker.d.ts.map +1 -0
- package/dist/local-actions/broker.js +400 -0
- package/dist/local-actions/broker.js.map +1 -0
- package/dist/local-actions/browser-action.d.ts +78 -0
- package/dist/local-actions/browser-action.d.ts.map +1 -0
- package/dist/local-actions/browser-action.js +307 -0
- package/dist/local-actions/browser-action.js.map +1 -0
- package/dist/local-actions/callback-relay.d.ts +45 -0
- package/dist/local-actions/callback-relay.d.ts.map +1 -0
- package/dist/local-actions/callback-relay.js +265 -0
- package/dist/local-actions/callback-relay.js.map +1 -0
- package/dist/local-actions/clipboard.d.ts +3 -0
- package/dist/local-actions/clipboard.d.ts.map +1 -0
- package/dist/local-actions/clipboard.js +18 -0
- package/dist/local-actions/clipboard.js.map +1 -0
- package/dist/local-actions/contracts.d.ts +63 -0
- package/dist/local-actions/contracts.d.ts.map +1 -0
- package/dist/local-actions/contracts.js +18 -0
- package/dist/local-actions/contracts.js.map +1 -0
- package/dist/local-actions/desktop-presentation.d.ts +141 -0
- package/dist/local-actions/desktop-presentation.d.ts.map +1 -0
- package/dist/local-actions/desktop-presentation.js +253 -0
- package/dist/local-actions/desktop-presentation.js.map +1 -0
- package/dist/local-actions/device-selection.d.ts +43 -0
- package/dist/local-actions/device-selection.d.ts.map +1 -0
- package/dist/local-actions/device-selection.js +154 -0
- package/dist/local-actions/device-selection.js.map +1 -0
- package/dist/local-actions/executor.d.ts +49 -0
- package/dist/local-actions/executor.d.ts.map +1 -0
- package/dist/local-actions/executor.js +329 -0
- package/dist/local-actions/executor.js.map +1 -0
- package/dist/local-actions/file-transfers.d.ts +141 -0
- package/dist/local-actions/file-transfers.d.ts.map +1 -0
- package/dist/local-actions/file-transfers.js +446 -0
- package/dist/local-actions/file-transfers.js.map +1 -0
- package/dist/local-actions/foreground-notifications.d.ts +45 -0
- package/dist/local-actions/foreground-notifications.d.ts.map +1 -0
- package/dist/local-actions/foreground-notifications.js +163 -0
- package/dist/local-actions/foreground-notifications.js.map +1 -0
- package/dist/local-actions/git-signing.d.ts +39 -0
- package/dist/local-actions/git-signing.d.ts.map +1 -0
- package/dist/local-actions/git-signing.js +135 -0
- package/dist/local-actions/git-signing.js.map +1 -0
- package/dist/local-actions/index.d.ts +19 -0
- package/dist/local-actions/index.d.ts.map +1 -0
- package/dist/local-actions/index.js +19 -0
- package/dist/local-actions/index.js.map +1 -0
- package/dist/local-actions/local-service-actions.d.ts +87 -0
- package/dist/local-actions/local-service-actions.d.ts.map +1 -0
- package/dist/local-actions/local-service-actions.js +347 -0
- package/dist/local-actions/local-service-actions.js.map +1 -0
- package/dist/local-actions/loopback.d.ts +5 -0
- package/dist/local-actions/loopback.d.ts.map +1 -0
- package/dist/local-actions/loopback.js +15 -0
- package/dist/local-actions/loopback.js.map +1 -0
- package/dist/local-actions/policy-store.d.ts +7 -0
- package/dist/local-actions/policy-store.d.ts.map +1 -0
- package/dist/local-actions/policy-store.js +70 -0
- package/dist/local-actions/policy-store.js.map +1 -0
- package/dist/local-actions/policy.d.ts +21 -0
- package/dist/local-actions/policy.d.ts.map +1 -0
- package/dist/local-actions/policy.js +43 -0
- package/dist/local-actions/policy.js.map +1 -0
- package/dist/local-actions/private-port-forward.d.ts +36 -0
- package/dist/local-actions/private-port-forward.d.ts.map +1 -0
- package/dist/local-actions/private-port-forward.js +154 -0
- package/dist/local-actions/private-port-forward.js.map +1 -0
- package/dist/local-actions/provider-mcp-config.d.ts +101 -0
- package/dist/local-actions/provider-mcp-config.d.ts.map +1 -0
- package/dist/local-actions/provider-mcp-config.js +166 -0
- package/dist/local-actions/provider-mcp-config.js.map +1 -0
- package/dist/local-actions/providers.d.ts +12 -0
- package/dist/local-actions/providers.d.ts.map +1 -0
- package/dist/local-actions/providers.js +42 -0
- package/dist/local-actions/providers.js.map +1 -0
- package/dist/local-actions/schemas.d.ts +4 -0
- package/dist/local-actions/schemas.d.ts.map +1 -0
- package/dist/local-actions/schemas.js +314 -0
- package/dist/local-actions/schemas.js.map +1 -0
- package/dist/local-actions/sensitive-consent.d.ts +32 -0
- package/dist/local-actions/sensitive-consent.d.ts.map +1 -0
- package/dist/local-actions/sensitive-consent.js +47 -0
- package/dist/local-actions/sensitive-consent.js.map +1 -0
- package/dist/machines/command-launch.d.ts +17 -0
- package/dist/machines/command-launch.d.ts.map +1 -0
- package/dist/machines/command-launch.js +52 -0
- package/dist/machines/command-launch.js.map +1 -0
- package/dist/machines/execution-receipt.d.ts +18 -0
- package/dist/machines/execution-receipt.d.ts.map +1 -0
- package/dist/machines/execution-receipt.js +87 -0
- package/dist/machines/execution-receipt.js.map +1 -0
- package/dist/machines/executions-screen.d.ts +6 -0
- package/dist/machines/executions-screen.d.ts.map +1 -0
- package/dist/machines/executions-screen.js +410 -0
- package/dist/machines/executions-screen.js.map +1 -0
- package/dist/machines/explorer.d.ts +75 -0
- package/dist/machines/explorer.d.ts.map +1 -0
- package/dist/machines/explorer.js +1726 -0
- package/dist/machines/explorer.js.map +1 -0
- package/dist/machines/live-supervisor-update.d.ts +325 -0
- package/dist/machines/live-supervisor-update.d.ts.map +1 -0
- package/dist/machines/live-supervisor-update.js +513 -0
- package/dist/machines/live-supervisor-update.js.map +1 -0
- package/dist/machines/machine-first.d.ts +123 -0
- package/dist/machines/machine-first.d.ts.map +1 -0
- package/dist/machines/machine-first.js +119 -0
- package/dist/machines/machine-first.js.map +1 -0
- package/dist/machines/opencode-supervisor.d.ts +51 -0
- package/dist/machines/opencode-supervisor.d.ts.map +1 -0
- package/dist/machines/opencode-supervisor.js +124 -0
- package/dist/machines/opencode-supervisor.js.map +1 -0
- package/dist/machines/pagination.d.ts +4 -0
- package/dist/machines/pagination.d.ts.map +1 -0
- package/dist/machines/pagination.js +7 -0
- package/dist/machines/pagination.js.map +1 -0
- package/dist/machines/provider-availability.d.ts +42 -0
- package/dist/machines/provider-availability.d.ts.map +1 -0
- package/dist/machines/provider-availability.js +82 -0
- package/dist/machines/provider-availability.js.map +1 -0
- package/dist/machines/provider-screen.d.ts +12 -0
- package/dist/machines/provider-screen.d.ts.map +1 -0
- package/dist/machines/provider-screen.js +129 -0
- package/dist/machines/provider-screen.js.map +1 -0
- package/dist/machines/session-actionability.d.ts +86 -0
- package/dist/machines/session-actionability.d.ts.map +1 -0
- package/dist/machines/session-actionability.js +125 -0
- package/dist/machines/session-actionability.js.map +1 -0
- package/dist/machines/session-visibility.d.ts +139 -0
- package/dist/machines/session-visibility.d.ts.map +1 -0
- package/dist/machines/session-visibility.js +109 -0
- package/dist/machines/session-visibility.js.map +1 -0
- package/dist/platform/adapter.d.ts +62 -0
- package/dist/platform/adapter.d.ts.map +1 -0
- package/dist/platform/adapter.js +240 -0
- package/dist/platform/adapter.js.map +1 -0
- package/dist/platform/support.d.ts +12 -0
- package/dist/platform/support.d.ts.map +1 -0
- package/dist/platform/support.js +25 -0
- package/dist/platform/support.js.map +1 -0
- package/dist/pty/contracts.d.ts +45 -0
- package/dist/pty/contracts.d.ts.map +1 -0
- package/dist/pty/contracts.js +2 -0
- package/dist/pty/contracts.js.map +1 -0
- package/dist/pty/evidence-gate.d.ts +14 -0
- package/dist/pty/evidence-gate.d.ts.map +1 -0
- package/dist/pty/evidence-gate.js +35 -0
- package/dist/pty/evidence-gate.js.map +1 -0
- package/dist/pty/index.d.ts +5 -0
- package/dist/pty/index.d.ts.map +1 -0
- package/dist/pty/index.js +5 -0
- package/dist/pty/index.js.map +1 -0
- package/dist/pty/node-host-terminal.d.ts +14 -0
- package/dist/pty/node-host-terminal.d.ts.map +1 -0
- package/dist/pty/node-host-terminal.js +173 -0
- package/dist/pty/node-host-terminal.js.map +1 -0
- package/dist/pty/node-process.d.ts +26 -0
- package/dist/pty/node-process.d.ts.map +1 -0
- package/dist/pty/node-process.js +102 -0
- package/dist/pty/node-process.js.map +1 -0
- package/dist/runtime/api-terminal-control-plane.d.ts +7 -0
- package/dist/runtime/api-terminal-control-plane.d.ts.map +1 -0
- package/dist/runtime/api-terminal-control-plane.js +95 -0
- package/dist/runtime/api-terminal-control-plane.js.map +1 -0
- package/dist/runtime/backoff.d.ts +17 -0
- package/dist/runtime/backoff.d.ts.map +1 -0
- package/dist/runtime/backoff.js +61 -0
- package/dist/runtime/backoff.js.map +1 -0
- package/dist/runtime/boundary.d.ts +171 -0
- package/dist/runtime/boundary.d.ts.map +1 -0
- package/dist/runtime/boundary.js +1858 -0
- package/dist/runtime/boundary.js.map +1 -0
- package/dist/runtime/capability-gate.d.ts +25 -0
- package/dist/runtime/capability-gate.d.ts.map +1 -0
- package/dist/runtime/capability-gate.js +77 -0
- package/dist/runtime/capability-gate.js.map +1 -0
- package/dist/runtime/contracts.d.ts +25 -0
- package/dist/runtime/contracts.d.ts.map +1 -0
- package/dist/runtime/contracts.js +66 -0
- package/dist/runtime/contracts.js.map +1 -0
- package/dist/runtime/errors.d.ts +20 -0
- package/dist/runtime/errors.d.ts.map +1 -0
- package/dist/runtime/errors.js +22 -0
- package/dist/runtime/errors.js.map +1 -0
- package/dist/runtime/index.d.ts +9 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +9 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/node-foreground-session.d.ts +50 -0
- package/dist/runtime/node-foreground-session.d.ts.map +1 -0
- package/dist/runtime/node-foreground-session.js +431 -0
- package/dist/runtime/node-foreground-session.js.map +1 -0
- package/dist/runtime/node-websocket-connector.d.ts +6 -0
- package/dist/runtime/node-websocket-connector.d.ts.map +1 -0
- package/dist/runtime/node-websocket-connector.js +344 -0
- package/dist/runtime/node-websocket-connector.js.map +1 -0
- package/dist/runtime/observer-screen.d.ts +6 -0
- package/dist/runtime/observer-screen.d.ts.map +1 -0
- package/dist/runtime/observer-screen.js +144 -0
- package/dist/runtime/observer-screen.js.map +1 -0
- package/dist/runtime/owner-grant-operations.d.ts +136 -0
- package/dist/runtime/owner-grant-operations.d.ts.map +1 -0
- package/dist/runtime/owner-grant-operations.js +216 -0
- package/dist/runtime/owner-grant-operations.js.map +1 -0
- package/dist/runtime/owner-grants-screen.d.ts +40 -0
- package/dist/runtime/owner-grants-screen.d.ts.map +1 -0
- package/dist/runtime/owner-grants-screen.js +987 -0
- package/dist/runtime/owner-grants-screen.js.map +1 -0
- package/dist/runtime/terminal-transport.d.ts +85 -0
- package/dist/runtime/terminal-transport.d.ts.map +1 -0
- package/dist/runtime/terminal-transport.js +152 -0
- package/dist/runtime/terminal-transport.js.map +1 -0
- package/dist/sync/continuous-sync-supervisor.d.ts +107 -0
- package/dist/sync/continuous-sync-supervisor.d.ts.map +1 -0
- package/dist/sync/continuous-sync-supervisor.js +1117 -0
- package/dist/sync/continuous-sync-supervisor.js.map +1 -0
- package/dist/sync/index.d.ts +9 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +9 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/journal.d.ts +57 -0
- package/dist/sync/journal.d.ts.map +1 -0
- package/dist/sync/journal.js +685 -0
- package/dist/sync/journal.js.map +1 -0
- package/dist/sync/revisions.d.ts +118 -0
- package/dist/sync/revisions.d.ts.map +1 -0
- package/dist/sync/revisions.js +364 -0
- package/dist/sync/revisions.js.map +1 -0
- package/dist/sync/supervisor.d.ts +107 -0
- package/dist/sync/supervisor.d.ts.map +1 -0
- package/dist/sync/supervisor.js +246 -0
- package/dist/sync/supervisor.js.map +1 -0
- package/dist/sync/workspace-sync-client.d.ts +18 -0
- package/dist/sync/workspace-sync-client.d.ts.map +1 -0
- package/dist/sync/workspace-sync-client.js +150 -0
- package/dist/sync/workspace-sync-client.js.map +1 -0
- package/dist/sync/workspace-sync-coordinator.d.ts +76 -0
- package/dist/sync/workspace-sync-coordinator.d.ts.map +1 -0
- package/dist/sync/workspace-sync-coordinator.js +621 -0
- package/dist/sync/workspace-sync-coordinator.js.map +1 -0
- package/dist/sync/workspace-sync-product-service.d.ts +79 -0
- package/dist/sync/workspace-sync-product-service.d.ts.map +1 -0
- package/dist/sync/workspace-sync-product-service.js +398 -0
- package/dist/sync/workspace-sync-product-service.js.map +1 -0
- package/dist/sync/workspace-sync-protocol.d.ts +145 -0
- package/dist/sync/workspace-sync-protocol.d.ts.map +1 -0
- package/dist/sync/workspace-sync-protocol.js +347 -0
- package/dist/sync/workspace-sync-protocol.js.map +1 -0
- package/dist/terminal/appbar.d.ts +40 -0
- package/dist/terminal/appbar.d.ts.map +1 -0
- package/dist/terminal/appbar.js +55 -0
- package/dist/terminal/appbar.js.map +1 -0
- package/dist/terminal/cell-width.d.ts +3 -0
- package/dist/terminal/cell-width.d.ts.map +1 -0
- package/dist/terminal/cell-width.js +53 -0
- package/dist/terminal/cell-width.js.map +1 -0
- package/dist/terminal/codec.d.ts +107 -0
- package/dist/terminal/codec.d.ts.map +1 -0
- package/dist/terminal/codec.js +538 -0
- package/dist/terminal/codec.js.map +1 -0
- package/dist/terminal/foreground.d.ts +135 -0
- package/dist/terminal/foreground.d.ts.map +1 -0
- package/dist/terminal/foreground.js +2097 -0
- package/dist/terminal/foreground.js.map +1 -0
- package/dist/terminal/generated/terminal-wire-v1.d.ts +26 -0
- package/dist/terminal/generated/terminal-wire-v1.d.ts.map +1 -0
- package/dist/terminal/generated/terminal-wire-v1.js +27 -0
- package/dist/terminal/generated/terminal-wire-v1.js.map +1 -0
- package/dist/terminal/mode.d.ts +33 -0
- package/dist/terminal/mode.d.ts.map +1 -0
- package/dist/terminal/mode.js +99 -0
- package/dist/terminal/mode.js.map +1 -0
- package/dist/terminal/passthrough.d.ts +47 -0
- package/dist/terminal/passthrough.d.ts.map +1 -0
- package/dist/terminal/passthrough.js +666 -0
- package/dist/terminal/passthrough.js.map +1 -0
- package/dist/terminal/resume.d.ts +58 -0
- package/dist/terminal/resume.d.ts.map +1 -0
- package/dist/terminal/resume.js +185 -0
- package/dist/terminal/resume.js.map +1 -0
- package/dist/terminal/viewport.d.ts +93 -0
- package/dist/terminal/viewport.d.ts.map +1 -0
- package/dist/terminal/viewport.js +266 -0
- package/dist/terminal/viewport.js.map +1 -0
- package/dist/terminal/workbench.d.ts +32 -0
- package/dist/terminal/workbench.d.ts.map +1 -0
- package/dist/terminal/workbench.js +316 -0
- package/dist/terminal/workbench.js.map +1 -0
- package/dist/terminal/xterm-vte.d.ts +49 -0
- package/dist/terminal/xterm-vte.d.ts.map +1 -0
- package/dist/terminal/xterm-vte.js +602 -0
- package/dist/terminal/xterm-vte.js.map +1 -0
- package/dist/version.d.ts +3 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +3 -0
- package/dist/version.js.map +1 -0
- package/dist/workspace/binding-path.d.ts +17 -0
- package/dist/workspace/binding-path.d.ts.map +1 -0
- package/dist/workspace/binding-path.js +91 -0
- package/dist/workspace/binding-path.js.map +1 -0
- package/dist/workspace/binding-store.d.ts +107 -0
- package/dist/workspace/binding-store.d.ts.map +1 -0
- package/dist/workspace/binding-store.js +783 -0
- package/dist/workspace/binding-store.js.map +1 -0
- package/dist/workspace/binding.d.ts +35 -0
- package/dist/workspace/binding.d.ts.map +1 -0
- package/dist/workspace/binding.js +70 -0
- package/dist/workspace/binding.js.map +1 -0
- package/dist/workspace/errors.d.ts +4 -0
- package/dist/workspace/errors.d.ts.map +1 -0
- package/dist/workspace/errors.js +19 -0
- package/dist/workspace/errors.js.map +1 -0
- package/dist/workspace/exclusion.d.ts +21 -0
- package/dist/workspace/exclusion.d.ts.map +1 -0
- package/dist/workspace/exclusion.js +243 -0
- package/dist/workspace/exclusion.js.map +1 -0
- package/dist/workspace/index.d.ts +8 -0
- package/dist/workspace/index.d.ts.map +1 -0
- package/dist/workspace/index.js +8 -0
- package/dist/workspace/index.js.map +1 -0
- package/dist/workspace/lifecycle.d.ts +56 -0
- package/dist/workspace/lifecycle.d.ts.map +1 -0
- package/dist/workspace/lifecycle.js +94 -0
- package/dist/workspace/lifecycle.js.map +1 -0
- package/dist/workspace/manifest.d.ts +47 -0
- package/dist/workspace/manifest.d.ts.map +1 -0
- package/dist/workspace/manifest.js +243 -0
- package/dist/workspace/manifest.js.map +1 -0
- package/dist/workspace/paths.d.ts +14 -0
- package/dist/workspace/paths.d.ts.map +1 -0
- package/dist/workspace/paths.js +67 -0
- package/dist/workspace/paths.js.map +1 -0
- package/dist/workspace/schema.d.ts +15 -0
- package/dist/workspace/schema.d.ts.map +1 -0
- package/dist/workspace/schema.js +33 -0
- package/dist/workspace/schema.js.map +1 -0
- package/dist/workspace/selection-screen.d.ts +4 -0
- package/dist/workspace/selection-screen.d.ts.map +1 -0
- package/dist/workspace/selection-screen.js +216 -0
- package/dist/workspace/selection-screen.js.map +1 -0
- package/dist/workspace/selection-service.d.ts +16 -0
- package/dist/workspace/selection-service.d.ts.map +1 -0
- package/dist/workspace/selection-service.js +65 -0
- package/dist/workspace/selection-service.js.map +1 -0
- package/node_modules/@xterm/headless/README.md +31 -0
- package/node_modules/@xterm/headless/lib-headless/xterm-headless.js +2 -0
- package/node_modules/@xterm/headless/lib-headless/xterm-headless.js.map +1 -0
- package/node_modules/@xterm/headless/lib-headless/xterm-headless.mjs +46 -0
- package/node_modules/@xterm/headless/lib-headless/xterm-headless.mjs.map +7 -0
- package/node_modules/@xterm/headless/package.json +29 -0
- package/node_modules/@xterm/headless/typings/xterm-headless.d.ts +1385 -0
- package/package.json +75 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"machine-first.d.ts","sourceRoot":"","sources":["../../src/machines/machine-first.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { machineProviderAvailability } from "./provider-availability.js";
|
|
2
|
+
import { classifySessionActionability } from "./session-actionability.js";
|
|
3
|
+
export const INITIAL_MACHINE_FIRST_STATE = Object.freeze({
|
|
4
|
+
screen: Object.freeze({ kind: "machines" }),
|
|
5
|
+
selectedIndex: 0,
|
|
6
|
+
quit: false,
|
|
7
|
+
});
|
|
8
|
+
export function reduceMachineFirstNavigation(state, event) {
|
|
9
|
+
switch (event.type) {
|
|
10
|
+
case "move":
|
|
11
|
+
return Object.freeze({
|
|
12
|
+
...state,
|
|
13
|
+
selectedIndex: Math.min(Math.max(0, event.itemCount - 1), Math.max(0, state.selectedIndex + event.delta)),
|
|
14
|
+
});
|
|
15
|
+
case "open-machine":
|
|
16
|
+
return Object.freeze({ screen: Object.freeze({ kind: "machine", machineId: event.machineId }), selectedIndex: 0, quit: false });
|
|
17
|
+
case "open-provider":
|
|
18
|
+
return Object.freeze({
|
|
19
|
+
screen: Object.freeze({ kind: "provider", machineId: event.machineId, provider: event.provider }),
|
|
20
|
+
selectedIndex: 0,
|
|
21
|
+
quit: false,
|
|
22
|
+
});
|
|
23
|
+
case "open-new-machine":
|
|
24
|
+
return Object.freeze({ screen: Object.freeze({ kind: "new-machine" }), selectedIndex: 0, quit: false });
|
|
25
|
+
case "choose-new-machine-provider":
|
|
26
|
+
return Object.freeze({
|
|
27
|
+
screen: Object.freeze({ kind: "new-machine-name", provider: event.provider }),
|
|
28
|
+
selectedIndex: 0,
|
|
29
|
+
quit: false,
|
|
30
|
+
});
|
|
31
|
+
case "back":
|
|
32
|
+
if (state.screen.kind === "provider") {
|
|
33
|
+
return Object.freeze({ screen: Object.freeze({ kind: "machine", machineId: state.screen.machineId }), selectedIndex: 0, quit: false });
|
|
34
|
+
}
|
|
35
|
+
if (state.screen.kind === "new-machine-name") {
|
|
36
|
+
return Object.freeze({ screen: Object.freeze({ kind: "new-machine" }), selectedIndex: 0, quit: false });
|
|
37
|
+
}
|
|
38
|
+
if (state.screen.kind === "machine" || state.screen.kind === "new-machine")
|
|
39
|
+
return INITIAL_MACHINE_FIRST_STATE;
|
|
40
|
+
return state;
|
|
41
|
+
case "quit": return Object.freeze({ ...state, quit: true });
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export function resolveMachineContextActions(machine, options = {}) {
|
|
45
|
+
const provider = machineProviderAvailability(machine);
|
|
46
|
+
const remove = Object.freeze({ kind: "delete", label: "Delete", machineId: machine.id });
|
|
47
|
+
if (machine.state === "stopped") {
|
|
48
|
+
return Object.freeze([
|
|
49
|
+
...(options.opencodeSupervisorRepairRequired === true
|
|
50
|
+
? [Object.freeze({ kind: "update-supervisor", label: "Update terminal supervisor", machineId: machine.id })]
|
|
51
|
+
: []),
|
|
52
|
+
Object.freeze({ kind: "start", label: "Start", machineId: machine.id }),
|
|
53
|
+
remove,
|
|
54
|
+
]);
|
|
55
|
+
}
|
|
56
|
+
if (machine.state === "paused") {
|
|
57
|
+
return Object.freeze([
|
|
58
|
+
...(options.opencodeSupervisorRepairRequired === true
|
|
59
|
+
? [Object.freeze({ kind: "supervisor-blocked", label: "OpenCode needs a terminal update", machineId: machine.id })]
|
|
60
|
+
: []),
|
|
61
|
+
Object.freeze({ kind: "start", label: "Start", machineId: machine.id }),
|
|
62
|
+
remove,
|
|
63
|
+
]);
|
|
64
|
+
}
|
|
65
|
+
if (machine.state === "creating" && machine.createOperation?.machineId === machine.id
|
|
66
|
+
&& ["in_progress", "unknown", "provider_succeeded"].includes(machine.createOperation.state)) {
|
|
67
|
+
return Object.freeze([Object.freeze({ kind: "recover", label: "Recover creation", machineId: machine.id }), remove]);
|
|
68
|
+
}
|
|
69
|
+
// `error`, `creating`, `deleted`, or any state this client does not know:
|
|
70
|
+
// no transition is offered, but the console's Delete still is.
|
|
71
|
+
if (machine.state !== "running")
|
|
72
|
+
return Object.freeze([remove]);
|
|
73
|
+
return Object.freeze([
|
|
74
|
+
...(options.opencodeSupervisorRepairRequired === true
|
|
75
|
+
? [Object.freeze({ kind: "supervisor-blocked", label: "OpenCode needs a terminal update", machineId: machine.id })]
|
|
76
|
+
: []),
|
|
77
|
+
...(provider.actionable && provider.agent !== undefined && options.hasSessions !== false
|
|
78
|
+
? [Object.freeze({
|
|
79
|
+
kind: "provider",
|
|
80
|
+
label: provider.displayName,
|
|
81
|
+
machineId: machine.id,
|
|
82
|
+
provider: provider.agent,
|
|
83
|
+
})]
|
|
84
|
+
: []),
|
|
85
|
+
...(provider.actionable && provider.agent !== undefined && options.canCreateSession === true
|
|
86
|
+
? [Object.freeze({
|
|
87
|
+
kind: "new-session",
|
|
88
|
+
label: `New ${provider.displayName} session`,
|
|
89
|
+
machineId: machine.id,
|
|
90
|
+
provider: provider.agent,
|
|
91
|
+
})]
|
|
92
|
+
: []),
|
|
93
|
+
Object.freeze({ kind: "stop", label: "Stop", machineId: machine.id }),
|
|
94
|
+
remove,
|
|
95
|
+
]);
|
|
96
|
+
}
|
|
97
|
+
export function resolveProviderContextActions(input) {
|
|
98
|
+
const availability = machineProviderAvailability(input.machine);
|
|
99
|
+
if (input.machine.state !== "running" || !availability.actionable || availability.agent !== input.provider)
|
|
100
|
+
return Object.freeze([]);
|
|
101
|
+
const sessions = input.sessions
|
|
102
|
+
.filter((session) => session.agent === input.provider)
|
|
103
|
+
.filter((session) => classifySessionActionability({ session, machine: input.machine, now: input.now }).recoveryAction !== "none")
|
|
104
|
+
.map((session) => Object.freeze({ kind: "session", label: session.name, session }));
|
|
105
|
+
return Object.freeze(sessions);
|
|
106
|
+
}
|
|
107
|
+
export function shouldShowRemoteWaitProgress(elapsedMs) {
|
|
108
|
+
return elapsedMs >= 100;
|
|
109
|
+
}
|
|
110
|
+
export function canAutoContinueMachineFirst(input) {
|
|
111
|
+
// Deliberately retain the public helper as a fail-closed compatibility seam,
|
|
112
|
+
// but never use uniqueness or elapsed time as consent to attach a remote
|
|
113
|
+
// AgentSession. A person must select the exact session in its provider
|
|
114
|
+
// context. Keeping this false also prevents a future caller from reviving
|
|
115
|
+
// the former three-second auto-continue behaviour by accident.
|
|
116
|
+
void input;
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=machine-first.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"machine-first.js","sourceRoot":"","sources":["../../src/machines/machine-first.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { CunaError, type SafeErrorDetails } from "../core/errors.js";
|
|
2
|
+
export declare function isOpenCodeSupervisorUpgradeReason(value: unknown): boolean;
|
|
3
|
+
/** Only these provider-specific reasons authorize the explicit Machine repair. */
|
|
4
|
+
export declare function isOpenCodeSupervisorRepairReason(value: unknown): boolean;
|
|
5
|
+
/**
|
|
6
|
+
* A legacy supervisor is a durable, explicit upgrade prerequisite. Keep this
|
|
7
|
+
* narrower than `isOpenCodeSupervisorRepairReason`: an unannounced
|
|
8
|
+
* supervisor reports the same broad family of condition, but it is a
|
|
9
|
+
* retryable heartbeat wait rather than evidence that a person should restart
|
|
10
|
+
* anything.
|
|
11
|
+
*/
|
|
12
|
+
export declare function isOpenCodeSupervisorUpgradeRequiredReason(value: unknown): boolean;
|
|
13
|
+
/** A compatible supervisor has not yet advertised its protocol heartbeat. */
|
|
14
|
+
export declare function isOpenCodeSupervisorProtocolUnavailableReason(value: unknown): boolean;
|
|
15
|
+
export declare function isOpenCodeRuntimeUnverifiedReason(value: unknown): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Capability discovery happens before the AgentSession create dispatch. The
|
|
18
|
+
* exact capability ID and reason prove that no create request was sent.
|
|
19
|
+
*/
|
|
20
|
+
export declare function isOpenCodeSupervisorUpgradeCapabilityRejection(error: unknown): error is CunaError;
|
|
21
|
+
/**
|
|
22
|
+
* Runtime verification is a temporary create fence, not evidence that a
|
|
23
|
+
* create was accepted. Keep it provider-scoped so another agent's temporary
|
|
24
|
+
* capability result cannot be presented as an OpenCode status.
|
|
25
|
+
*/
|
|
26
|
+
export declare function isOpenCodeRuntimeUnverifiedCapabilityRejection(error: unknown): error is CunaError;
|
|
27
|
+
/**
|
|
28
|
+
* The explicit Machine action has no selected provider argument, so it must
|
|
29
|
+
* not reinterpret the provider-neutral supervisor reason as OpenCode intent.
|
|
30
|
+
* Only the OpenCode-specific capability refusal makes the action available.
|
|
31
|
+
*/
|
|
32
|
+
export declare function isOpenCodeSupervisorRepairCapabilityRejection(error: unknown): error is CunaError;
|
|
33
|
+
export declare function openCodeSupervisorUpgradeRequired(input?: Readonly<{
|
|
34
|
+
readonly details?: SafeErrorDetails;
|
|
35
|
+
/** A locally known, canonical Machine ID. Never interpolate untrusted text into a shell hint. */
|
|
36
|
+
readonly machineId?: string;
|
|
37
|
+
readonly retryable?: boolean;
|
|
38
|
+
readonly cause?: unknown;
|
|
39
|
+
}>): CunaError;
|
|
40
|
+
/**
|
|
41
|
+
* `requireCapability` runs before dispatching AgentSession creation. This
|
|
42
|
+
* specialised result preserves that fact and gives the foreground journey a
|
|
43
|
+
* truthful transient next step instead of a generic capability failure.
|
|
44
|
+
*/
|
|
45
|
+
export declare function openCodeRuntimeUnverified(input?: Readonly<{
|
|
46
|
+
readonly details?: SafeErrorDetails;
|
|
47
|
+
/** A locally known, canonical Machine ID. Never interpolate untrusted text into a shell hint. */
|
|
48
|
+
readonly machineId?: string;
|
|
49
|
+
readonly cause?: unknown;
|
|
50
|
+
}>): CunaError;
|
|
51
|
+
//# sourceMappingURL=opencode-supervisor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-supervisor.d.ts","sourceRoot":"","sources":["../../src/machines/opencode-supervisor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAET,KAAK,gBAAgB,EACtB,MAAM,mBAAmB,CAAC;AAiB3B,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEzE;AAED,kFAAkF;AAClF,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAExE;AAED;;;;;;GAMG;AACH,wBAAgB,yCAAyC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEjF;AAED,6EAA6E;AAC7E,wBAAgB,6CAA6C,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAErF;AAED,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEzE;AAED;;;GAGG;AACH,wBAAgB,8CAA8C,CAC5D,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,SAAS,CAKpB;AAED;;;;GAIG;AACH,wBAAgB,8CAA8C,CAC5D,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,SAAS,CAKpB;AAED;;;;GAIG;AACH,wBAAgB,6CAA6C,CAC3D,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,SAAS,CAKpB;AAED,wBAAgB,iCAAiC,CAAC,KAAK,GAAE,QAAQ,CAAC;IAChE,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IACpC,iGAAiG;IACjG,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAM,GAAG,SAAS,CAyBlB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,GAAE,QAAQ,CAAC;IACxD,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IACpC,iGAAiG;IACjG,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAM,GAAG,SAAS,CAkBlB"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { CunaError, EXIT_CODES, } from "../core/errors.js";
|
|
2
|
+
const OPENCODE_SUPERVISOR_REPAIR_REASONS = new Set([
|
|
3
|
+
"opencode_supervisor_upgrade_required",
|
|
4
|
+
"opencode_supervisor_protocol_unavailable",
|
|
5
|
+
]);
|
|
6
|
+
const OPENCODE_RUNTIME_UNVERIFIED_REASON = "opencode_runtime_unverified";
|
|
7
|
+
const OPENCODE_SUPERVISOR_UPGRADE_REASONS = new Set([
|
|
8
|
+
...OPENCODE_SUPERVISOR_REPAIR_REASONS,
|
|
9
|
+
// A legacy supervisor can return this provider-neutral spelling. Callers
|
|
10
|
+
// must also fence it to an OpenCode create intent before showing
|
|
11
|
+
// OpenCode-specific copy.
|
|
12
|
+
"supervisor_upgrade_required",
|
|
13
|
+
]);
|
|
14
|
+
const CANONICAL_MACHINE_ID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/u;
|
|
15
|
+
export function isOpenCodeSupervisorUpgradeReason(value) {
|
|
16
|
+
return typeof value === "string" && OPENCODE_SUPERVISOR_UPGRADE_REASONS.has(value);
|
|
17
|
+
}
|
|
18
|
+
/** Only these provider-specific reasons authorize the explicit Machine repair. */
|
|
19
|
+
export function isOpenCodeSupervisorRepairReason(value) {
|
|
20
|
+
return typeof value === "string" && OPENCODE_SUPERVISOR_REPAIR_REASONS.has(value);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* A legacy supervisor is a durable, explicit upgrade prerequisite. Keep this
|
|
24
|
+
* narrower than `isOpenCodeSupervisorRepairReason`: an unannounced
|
|
25
|
+
* supervisor reports the same broad family of condition, but it is a
|
|
26
|
+
* retryable heartbeat wait rather than evidence that a person should restart
|
|
27
|
+
* anything.
|
|
28
|
+
*/
|
|
29
|
+
export function isOpenCodeSupervisorUpgradeRequiredReason(value) {
|
|
30
|
+
return value === "opencode_supervisor_upgrade_required";
|
|
31
|
+
}
|
|
32
|
+
/** A compatible supervisor has not yet advertised its protocol heartbeat. */
|
|
33
|
+
export function isOpenCodeSupervisorProtocolUnavailableReason(value) {
|
|
34
|
+
return value === "opencode_supervisor_protocol_unavailable";
|
|
35
|
+
}
|
|
36
|
+
export function isOpenCodeRuntimeUnverifiedReason(value) {
|
|
37
|
+
return value === OPENCODE_RUNTIME_UNVERIFIED_REASON;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Capability discovery happens before the AgentSession create dispatch. The
|
|
41
|
+
* exact capability ID and reason prove that no create request was sent.
|
|
42
|
+
*/
|
|
43
|
+
export function isOpenCodeSupervisorUpgradeCapabilityRejection(error) {
|
|
44
|
+
if (!(error instanceof CunaError))
|
|
45
|
+
return false;
|
|
46
|
+
const details = error.details;
|
|
47
|
+
return details?.capability_id === "agent_sessions.create" &&
|
|
48
|
+
isOpenCodeSupervisorUpgradeReason(details.reason ?? details.reason_code);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Runtime verification is a temporary create fence, not evidence that a
|
|
52
|
+
* create was accepted. Keep it provider-scoped so another agent's temporary
|
|
53
|
+
* capability result cannot be presented as an OpenCode status.
|
|
54
|
+
*/
|
|
55
|
+
export function isOpenCodeRuntimeUnverifiedCapabilityRejection(error) {
|
|
56
|
+
if (!(error instanceof CunaError))
|
|
57
|
+
return false;
|
|
58
|
+
const details = error.details;
|
|
59
|
+
return details?.capability_id === "agent_sessions.create" &&
|
|
60
|
+
isOpenCodeRuntimeUnverifiedReason(details.reason ?? details.reason_code);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* The explicit Machine action has no selected provider argument, so it must
|
|
64
|
+
* not reinterpret the provider-neutral supervisor reason as OpenCode intent.
|
|
65
|
+
* Only the OpenCode-specific capability refusal makes the action available.
|
|
66
|
+
*/
|
|
67
|
+
export function isOpenCodeSupervisorRepairCapabilityRejection(error) {
|
|
68
|
+
if (!(error instanceof CunaError))
|
|
69
|
+
return false;
|
|
70
|
+
const details = error.details;
|
|
71
|
+
return details?.capability_id === "agent_sessions.create" &&
|
|
72
|
+
isOpenCodeSupervisorRepairReason(details.reason ?? details.reason_code);
|
|
73
|
+
}
|
|
74
|
+
export function openCodeSupervisorUpgradeRequired(input = {}) {
|
|
75
|
+
const reason = input.details?.reason ?? input.details?.reason_code;
|
|
76
|
+
const protocolUnavailable = reason === "opencode_supervisor_protocol_unavailable";
|
|
77
|
+
const machineId = input.machineId !== undefined && CANONICAL_MACHINE_ID.test(input.machineId)
|
|
78
|
+
? input.machineId
|
|
79
|
+
: undefined;
|
|
80
|
+
const repair = machineId === undefined
|
|
81
|
+
? "Open `cuna machines` to inspect this Machine. When you decide to stop it yourself, select Update terminal supervisor and confirm it."
|
|
82
|
+
: `When you decide to stop this Machine yourself, run \`cuna machines update-supervisor ${machineId} --yes\`, or open \`cuna machines\` and select Update terminal supervisor. That command refuses to stop the Machine and preserves server blockers for active AgentSessions.`;
|
|
83
|
+
const protection = "No OpenCode AgentSession was created. Cuna will not stop the Machine or terminate sessions for you, including existing AgentSessions.";
|
|
84
|
+
return new CunaError({
|
|
85
|
+
code: "cuna.agent.opencode_supervisor_upgrade_required",
|
|
86
|
+
message: protocolUnavailable
|
|
87
|
+
? "OpenCode cannot start because this Machine's terminal supervisor does not provide the required protocol."
|
|
88
|
+
: "OpenCode cannot start until this Machine's terminal supervisor is updated.",
|
|
89
|
+
exitCode: EXIT_CODES.unsupported,
|
|
90
|
+
hint: protocolUnavailable
|
|
91
|
+
? `${protection} This Machine's current terminal supervisor cannot provide the OpenCode protocol. ${repair} When the update completes, retry OpenCode.`
|
|
92
|
+
: `${protection} ${repair} When the update completes, retry OpenCode.`,
|
|
93
|
+
retryable: input.retryable ?? false,
|
|
94
|
+
...(input.details === undefined && machineId === undefined
|
|
95
|
+
? {}
|
|
96
|
+
: { details: Object.freeze({ ...input.details, ...(machineId === undefined ? {} : { machine_id: machineId }) }) }),
|
|
97
|
+
...(input.cause === undefined ? {} : { cause: input.cause }),
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* `requireCapability` runs before dispatching AgentSession creation. This
|
|
102
|
+
* specialised result preserves that fact and gives the foreground journey a
|
|
103
|
+
* truthful transient next step instead of a generic capability failure.
|
|
104
|
+
*/
|
|
105
|
+
export function openCodeRuntimeUnverified(input = {}) {
|
|
106
|
+
const machineId = input.machineId !== undefined && CANONICAL_MACHINE_ID.test(input.machineId)
|
|
107
|
+
? input.machineId
|
|
108
|
+
: undefined;
|
|
109
|
+
const retry = machineId === undefined
|
|
110
|
+
? "If the Machine is stopped, start it. Otherwise keep it running and retry OpenCode once it reports ready."
|
|
111
|
+
: `If this Machine is stopped, start it. Otherwise keep it running and retry OpenCode once it reports ready. You can inspect it with \`cuna machines\` or \`cuna capabilities --scope machine --resource-id ${machineId}\`.`;
|
|
112
|
+
return new CunaError({
|
|
113
|
+
code: "cuna.agent.opencode_runtime_unverified",
|
|
114
|
+
message: "Cuna is still checking that OpenCode is ready on this Machine.",
|
|
115
|
+
exitCode: EXIT_CODES.network,
|
|
116
|
+
hint: `No OpenCode AgentSession was created. ${retry} Cuna will not create another Machine or change this Machine automatically.`,
|
|
117
|
+
retryable: true,
|
|
118
|
+
...(input.details === undefined && machineId === undefined
|
|
119
|
+
? {}
|
|
120
|
+
: { details: Object.freeze({ ...input.details, ...(machineId === undefined ? {} : { machine_id: machineId }) }) }),
|
|
121
|
+
...(input.cause === undefined ? {} : { cause: input.cause }),
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=opencode-supervisor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-supervisor.js","sourceRoot":"","sources":["../../src/machines/opencode-supervisor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../src/machines/pagination.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,wBAAsB,eAAe,CACnC,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,SAAS,OAAO,EAAE,CAAC,CAK7B"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export async function listAllMachines(client, signal) {
|
|
2
|
+
// The public Machine contract is one unpaginated GET /v1/sessions. Do not
|
|
3
|
+
// invent AgentSession-style query parameters: app-website and the vendored
|
|
4
|
+
// OpenAPI both use the naked route.
|
|
5
|
+
return (await client.listMachines(signal)).items;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=pagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/machines/pagination.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAqB,EACrB,MAAoB;IAEpB,0EAA0E;IAC1E,2EAA2E;IAC3E,oCAAoC;IACpC,OAAO,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { AgentKind, Machine } from "../api/contracts.js";
|
|
2
|
+
export type ActionableProvider = "claude-code" | "codex" | "opencode";
|
|
3
|
+
export type ProviderUsability = "declared-installed" | "unavailable";
|
|
4
|
+
export interface MachineProviderAvailability {
|
|
5
|
+
readonly machineId: string;
|
|
6
|
+
readonly declaredId?: string;
|
|
7
|
+
readonly agent?: AgentKind;
|
|
8
|
+
readonly displayName: string;
|
|
9
|
+
readonly usability: ProviderUsability;
|
|
10
|
+
readonly actionable: boolean;
|
|
11
|
+
readonly reasonCode?: "provider_not_observed" | "provider_not_supported_by_cli" | "provider_not_publicly_supported";
|
|
12
|
+
readonly observationVersion?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Until the producer exposes an observed installed-provider collection,
|
|
16
|
+
* `machine.agent` is the sole provider inventory. Never infer a different
|
|
17
|
+
* provider from sessions, capabilities, or a display fallback.
|
|
18
|
+
*/
|
|
19
|
+
export declare function machineProviderAvailability(machine: Pick<Machine, "id" | "agent" | "updatedAt">): MachineProviderAvailability;
|
|
20
|
+
/**
|
|
21
|
+
* The provider verdict a person acts on, not the declaration they cannot act on.
|
|
22
|
+
*
|
|
23
|
+
* `usability` and `actionable` are independent by construction above: a machine
|
|
24
|
+
* declaring a provider this CLI cannot drive comes back
|
|
25
|
+
* `usability: "declared-installed"` WITH `actionable: false` and a reason code.
|
|
26
|
+
* The human renderings printed the first field alone, so
|
|
27
|
+
* `Unknown (foo) declared-installed` read as installed and usable on exactly
|
|
28
|
+
* the machines where `agent-sessions create` fails closed with
|
|
29
|
+
* `cuna.agent.provider_not_installed`. One word decides whether the next
|
|
30
|
+
* command can run, so that is the word; the reason follows only when the
|
|
31
|
+
* answer is no.
|
|
32
|
+
*
|
|
33
|
+
* It lives here, beside the two fields it reconciles, so that every surface
|
|
34
|
+
* reaches one verdict instead of deriving its own. `machines` and
|
|
35
|
+
* `machines list` use it; the TUI explorer at `explorer.ts` still prints raw
|
|
36
|
+
* `usability` and carries the same defect until it adopts this.
|
|
37
|
+
*/
|
|
38
|
+
export declare function providerVerdict(provider: MachineProviderAvailability): string;
|
|
39
|
+
export declare function providerDisplayName(provider: string): string;
|
|
40
|
+
export declare function providerAuthLabel(provider: string): string;
|
|
41
|
+
export declare function machineSupportsProvider(machine: Pick<Machine, "id" | "agent" | "updatedAt">, requested: AgentKind): boolean;
|
|
42
|
+
//# sourceMappingURL=provider-availability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-availability.d.ts","sourceRoot":"","sources":["../../src/machines/provider-availability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9D,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG,OAAO,GAAG,UAAU,CAAC;AACtE,MAAM,MAAM,iBAAiB,GAAG,oBAAoB,GAAG,aAAa,CAAC;AAErE,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,uBAAuB,GAAG,+BAA+B,GAAG,iCAAiC,CAAC;IACpH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AASD;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,OAAO,GAAG,WAAW,CAAC,GAAG,2BAA2B,CA2B7H;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,2BAA2B,GAAG,MAAM,CAI7E;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG5D;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,OAAO,GAAG,WAAW,CAAC,EACpD,SAAS,EAAE,SAAS,GACnB,OAAO,CAGT"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
const DISPLAY_NAMES = Object.freeze({
|
|
2
|
+
"claude-code": "Claude",
|
|
3
|
+
codex: "Codex",
|
|
4
|
+
openclaw: "OpenClaw",
|
|
5
|
+
opencode: "OpenCode",
|
|
6
|
+
});
|
|
7
|
+
/**
|
|
8
|
+
* Until the producer exposes an observed installed-provider collection,
|
|
9
|
+
* `machine.agent` is the sole provider inventory. Never infer a different
|
|
10
|
+
* provider from sessions, capabilities, or a display fallback.
|
|
11
|
+
*/
|
|
12
|
+
export function machineProviderAvailability(machine) {
|
|
13
|
+
const declaredId = machine.agent?.trim();
|
|
14
|
+
const agent = normalizeKnownProvider(declaredId);
|
|
15
|
+
if (agent === undefined) {
|
|
16
|
+
return Object.freeze({
|
|
17
|
+
machineId: machine.id,
|
|
18
|
+
...(declaredId === undefined || declaredId.length === 0 ? {} : { declaredId }),
|
|
19
|
+
displayName: declaredId === undefined || declaredId.length === 0 ? "Unknown" : `Unknown (${declaredId})`,
|
|
20
|
+
usability: declaredId === undefined || declaredId.length === 0 ? "unavailable" : "declared-installed",
|
|
21
|
+
actionable: false,
|
|
22
|
+
reasonCode: declaredId === undefined || declaredId.length === 0
|
|
23
|
+
? "provider_not_observed"
|
|
24
|
+
: "provider_not_supported_by_cli",
|
|
25
|
+
...(machine.updatedAt === undefined ? {} : { observationVersion: machine.updatedAt }),
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
const actionable = agent === "claude-code" || agent === "codex" || agent === "opencode";
|
|
29
|
+
return Object.freeze({
|
|
30
|
+
machineId: machine.id,
|
|
31
|
+
declaredId: declaredId,
|
|
32
|
+
agent,
|
|
33
|
+
displayName: DISPLAY_NAMES[agent],
|
|
34
|
+
usability: actionable ? "declared-installed" : "unavailable",
|
|
35
|
+
actionable,
|
|
36
|
+
...(actionable ? {} : { reasonCode: "provider_not_publicly_supported" }),
|
|
37
|
+
...(machine.updatedAt === undefined ? {} : { observationVersion: machine.updatedAt }),
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The provider verdict a person acts on, not the declaration they cannot act on.
|
|
42
|
+
*
|
|
43
|
+
* `usability` and `actionable` are independent by construction above: a machine
|
|
44
|
+
* declaring a provider this CLI cannot drive comes back
|
|
45
|
+
* `usability: "declared-installed"` WITH `actionable: false` and a reason code.
|
|
46
|
+
* The human renderings printed the first field alone, so
|
|
47
|
+
* `Unknown (foo) declared-installed` read as installed and usable on exactly
|
|
48
|
+
* the machines where `agent-sessions create` fails closed with
|
|
49
|
+
* `cuna.agent.provider_not_installed`. One word decides whether the next
|
|
50
|
+
* command can run, so that is the word; the reason follows only when the
|
|
51
|
+
* answer is no.
|
|
52
|
+
*
|
|
53
|
+
* It lives here, beside the two fields it reconciles, so that every surface
|
|
54
|
+
* reaches one verdict instead of deriving its own. `machines` and
|
|
55
|
+
* `machines list` use it; the TUI explorer at `explorer.ts` still prints raw
|
|
56
|
+
* `usability` and carries the same defect until it adopts this.
|
|
57
|
+
*/
|
|
58
|
+
export function providerVerdict(provider) {
|
|
59
|
+
return provider.actionable
|
|
60
|
+
? "ready"
|
|
61
|
+
: `unusable — ${provider.reasonCode ?? "provider_unusable"}`;
|
|
62
|
+
}
|
|
63
|
+
export function providerDisplayName(provider) {
|
|
64
|
+
const normalized = normalizeKnownProvider(provider);
|
|
65
|
+
return normalized === undefined ? `Unknown (${provider})` : DISPLAY_NAMES[normalized];
|
|
66
|
+
}
|
|
67
|
+
export function providerAuthLabel(provider) {
|
|
68
|
+
return `${providerDisplayName(provider)} auth`;
|
|
69
|
+
}
|
|
70
|
+
export function machineSupportsProvider(machine, requested) {
|
|
71
|
+
const availability = machineProviderAvailability(machine);
|
|
72
|
+
return availability.actionable && availability.agent === requested;
|
|
73
|
+
}
|
|
74
|
+
function normalizeKnownProvider(provider) {
|
|
75
|
+
if (provider === "claude")
|
|
76
|
+
return "claude-code";
|
|
77
|
+
if (provider === "claude-code" || provider === "codex" || provider === "openclaw" || provider === "opencode") {
|
|
78
|
+
return provider;
|
|
79
|
+
}
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=provider-availability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-availability.js","sourceRoot":"","sources":["../../src/machines/provider-availability.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { CunaApiClient } from '../api/client.js';
|
|
2
|
+
import type { ProviderAgent, ProviderPreset } from '../api/provider-v2.js';
|
|
3
|
+
import type { ForegroundTerminalHost } from '../terminal/foreground.js';
|
|
4
|
+
/** One explicit pull; expiry repaints locally and never polls the provider. */
|
|
5
|
+
export declare function runProviderScreen(client: CunaApiClient, mode: {
|
|
6
|
+
kind: 'preset';
|
|
7
|
+
agent: ProviderAgent;
|
|
8
|
+
} | {
|
|
9
|
+
kind: 'check';
|
|
10
|
+
sessionId: string;
|
|
11
|
+
}, host?: ForegroundTerminalHost, signal?: AbortSignal): Promise<ProviderPreset | undefined>;
|
|
12
|
+
//# sourceMappingURL=provider-screen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-screen.d.ts","sourceRoot":"","sources":["../../src/machines/provider-screen.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAuB,MAAM,uBAAuB,CAAC;AAEhG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAIxE,+EAA+E;AAC/E,wBAAsB,iBAAiB,CAAC,MAAM,EAAC,aAAa,EAAE,IAAI,EAAC;IAAC,IAAI,EAAC,QAAQ,CAAC;IAAA,KAAK,EAAC,aAAa,CAAA;CAAC,GAAC;IAAC,IAAI,EAAC,OAAO,CAAC;IAAA,SAAS,EAAC,MAAM,CAAA;CAAC,EAAE,IAAI,GAAC,sBAAyD,EAAE,MAAM,CAAC,EAAC,WAAW,GAAE,OAAO,CAAC,cAAc,GAAC,SAAS,CAAC,CAa7P"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { createNodeForegroundTerminalHost } from '../pty/node-host-terminal.js';
|
|
2
|
+
import { sanitizeHumanTerminalOutput } from '../cli/output.js';
|
|
3
|
+
import { truncateTerminalLine } from '../terminal/cell-width.js';
|
|
4
|
+
/** One explicit pull; expiry repaints locally and never polls the provider. */
|
|
5
|
+
export async function runProviderScreen(client, mode, host = createNodeForegroundTerminalHost(), signal) {
|
|
6
|
+
const lease = await host.acquire('rich');
|
|
7
|
+
const abort = new AbortController();
|
|
8
|
+
let closed = false, busy = false, index = 0, notice = '', items = [], observation;
|
|
9
|
+
let timer;
|
|
10
|
+
let writes = Promise.resolve();
|
|
11
|
+
let resolve;
|
|
12
|
+
const done = new Promise(r => { resolve = r; });
|
|
13
|
+
const close = (value) => { if (closed)
|
|
14
|
+
return; closed = true; abort.abort(); resolve(value); };
|
|
15
|
+
const render = () => {
|
|
16
|
+
if (closed)
|
|
17
|
+
return;
|
|
18
|
+
const size = host.dimensions();
|
|
19
|
+
const lines = mode.kind === 'preset' ? [` New ${mode.agent} session - select profile`, ...items.map((p, i) => `${i === index ? ' >' : ' '} ${p.label}`), mode.agent === 'opencode' ? ' Connect your provider and select this model in OpenCode after launch.' : ' Native interactive login; provider observation is unavailable.', ' Enter selects / r refresh / Esc or q returns'] : [' Check provider and model'];
|
|
20
|
+
if (mode.kind === 'check') {
|
|
21
|
+
if (observation?.state === 'observed' && observation.observed_at_ms <= Date.now() && observation.valid_until_ms > Date.now())
|
|
22
|
+
lines.push(` Provider: ${observation.provider.upstream_provider}`, ` Model: ${observation.provider.model}`, ` Agent version: ${observation.provider.agent_version}`, ` Expires: ${new Date(observation.valid_until_ms).toISOString()}`);
|
|
23
|
+
else
|
|
24
|
+
lines.push(' Provider and model unavailable.');
|
|
25
|
+
lines.push(' r Check provider / Esc or q returns');
|
|
26
|
+
}
|
|
27
|
+
if (busy)
|
|
28
|
+
lines.push(' Reading server state...');
|
|
29
|
+
if (notice)
|
|
30
|
+
lines.push(notice);
|
|
31
|
+
const frame = '\x1b[H\x1b[2J' + lines.slice(0, Math.max(1, size.rows - 1)).map(l => truncateTerminalLine(sanitizeHumanTerminalOutput(l), size.columns)).join('\r\n');
|
|
32
|
+
writes = writes.then(() => closed ? undefined : host.write(new TextEncoder().encode(frame))).catch(() => close());
|
|
33
|
+
};
|
|
34
|
+
const load = async () => { if (busy || closed)
|
|
35
|
+
return; busy = true; observation = undefined; notice = ''; if (timer)
|
|
36
|
+
clearTimeout(timer); render(); try {
|
|
37
|
+
if (mode.kind === 'preset') {
|
|
38
|
+
items = (await client.getProviderPresetsV2(abort.signal)).filter(p => p.agent === mode.agent);
|
|
39
|
+
index = 0;
|
|
40
|
+
if (!items.length)
|
|
41
|
+
notice = ' No matching profiles are available for this agent.';
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
const session = await client.getAgentSession(mode.sessionId, abort.signal);
|
|
45
|
+
if (!session.processEpoch)
|
|
46
|
+
throw Error('scope');
|
|
47
|
+
const result = await client.checkProviderV2(session.id, session.processEpoch, abort.signal);
|
|
48
|
+
const current = await client.getAgentSession(session.id, abort.signal);
|
|
49
|
+
if (current.processEpoch !== session.processEpoch || current.desiredState !== 'running' || !['ready', 'running'].includes(current.processState))
|
|
50
|
+
throw Error('scope');
|
|
51
|
+
abort.signal.throwIfAborted();
|
|
52
|
+
observation = result;
|
|
53
|
+
if (result.state === 'observed')
|
|
54
|
+
timer = setTimeout(() => { observation = undefined; notice = ' Observation expired. Press r to check again.'; render(); }, Math.max(0, result.valid_until_ms - Date.now()));
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
items = [];
|
|
59
|
+
observation = undefined;
|
|
60
|
+
notice = ' Provider information unavailable. Press r to try again.';
|
|
61
|
+
}
|
|
62
|
+
finally {
|
|
63
|
+
busy = false;
|
|
64
|
+
render();
|
|
65
|
+
} };
|
|
66
|
+
let sequence = '';
|
|
67
|
+
let paste = false;
|
|
68
|
+
const input = host.onInput(bytes => { for (const byte of bytes) {
|
|
69
|
+
if (sequence) {
|
|
70
|
+
sequence += String.fromCharCode(byte);
|
|
71
|
+
if (sequence === '\x1b[200~') {
|
|
72
|
+
paste = true;
|
|
73
|
+
sequence = '';
|
|
74
|
+
}
|
|
75
|
+
else if (sequence === '\x1b[201~') {
|
|
76
|
+
paste = false;
|
|
77
|
+
sequence = '';
|
|
78
|
+
}
|
|
79
|
+
else if (sequence === '\x1b[A' || sequence === '\x1b[B') {
|
|
80
|
+
if (!paste && !busy) {
|
|
81
|
+
index = Math.max(0, Math.min(items.length - 1, index + (sequence.endsWith('A') ? -1 : 1)));
|
|
82
|
+
render();
|
|
83
|
+
}
|
|
84
|
+
sequence = '';
|
|
85
|
+
}
|
|
86
|
+
else if (sequence.length > 8)
|
|
87
|
+
sequence = '';
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
if (byte === 27) {
|
|
91
|
+
sequence = '\x1b';
|
|
92
|
+
setTimeout(() => { if (sequence === '\x1b') {
|
|
93
|
+
sequence = '';
|
|
94
|
+
close();
|
|
95
|
+
} }, 50);
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
if (paste)
|
|
99
|
+
continue;
|
|
100
|
+
if (byte === 3 || byte === 113) {
|
|
101
|
+
close();
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
if (byte === 114)
|
|
105
|
+
void load();
|
|
106
|
+
if ((byte === 13 || byte === 10) && !busy && mode.kind === 'preset' && items[index])
|
|
107
|
+
close(items[index]);
|
|
108
|
+
} });
|
|
109
|
+
const resize = host.onResize(render);
|
|
110
|
+
const onAbort = () => close();
|
|
111
|
+
signal?.addEventListener('abort', onAbort, { once: true });
|
|
112
|
+
if (signal?.aborted)
|
|
113
|
+
close();
|
|
114
|
+
else
|
|
115
|
+
void load();
|
|
116
|
+
try {
|
|
117
|
+
return await done;
|
|
118
|
+
}
|
|
119
|
+
finally {
|
|
120
|
+
input();
|
|
121
|
+
resize();
|
|
122
|
+
signal?.removeEventListener('abort', onAbort);
|
|
123
|
+
if (timer)
|
|
124
|
+
clearTimeout(timer);
|
|
125
|
+
await writes;
|
|
126
|
+
await lease.restore();
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=provider-screen.js.map
|