@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,45 @@
|
|
|
1
|
+
export type NotificationCategory = "action_required" | "task_complete" | "task_failed";
|
|
2
|
+
export interface NotificationShowArgs {
|
|
3
|
+
readonly category: NotificationCategory;
|
|
4
|
+
readonly title: string;
|
|
5
|
+
readonly body: string;
|
|
6
|
+
readonly focusRequestId: string;
|
|
7
|
+
}
|
|
8
|
+
export interface ForegroundNotificationHandle {
|
|
9
|
+
dismiss(): void | Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
export interface ForegroundNotificationPresenter {
|
|
12
|
+
show(input: {
|
|
13
|
+
readonly brand: "Cuna";
|
|
14
|
+
readonly category: NotificationCategory;
|
|
15
|
+
readonly title: string;
|
|
16
|
+
readonly body: string;
|
|
17
|
+
readonly actionLabel: "Open in Cuna";
|
|
18
|
+
readonly onFocus: () => void;
|
|
19
|
+
readonly signal: AbortSignal;
|
|
20
|
+
}): Promise<ForegroundNotificationHandle>;
|
|
21
|
+
}
|
|
22
|
+
export interface ForegroundNotificationActionsOptions {
|
|
23
|
+
readonly agentSessionId: string;
|
|
24
|
+
readonly isForegroundAlive: () => boolean;
|
|
25
|
+
readonly focusRequest: (requestId: string) => void;
|
|
26
|
+
readonly presenter: ForegroundNotificationPresenter;
|
|
27
|
+
readonly now?: () => number;
|
|
28
|
+
}
|
|
29
|
+
export type NotificationReceipt = Readonly<{
|
|
30
|
+
outcome: "shown" | "rate_limited";
|
|
31
|
+
}>;
|
|
32
|
+
export declare class ForegroundNotificationError extends Error {
|
|
33
|
+
readonly code: string;
|
|
34
|
+
constructor(code: string);
|
|
35
|
+
}
|
|
36
|
+
export declare class ForegroundNotificationActions {
|
|
37
|
+
#private;
|
|
38
|
+
constructor(options: ForegroundNotificationActionsOptions);
|
|
39
|
+
show(args: NotificationShowArgs, agentSessionId: string): Promise<NotificationReceipt>;
|
|
40
|
+
close(): Promise<void>;
|
|
41
|
+
}
|
|
42
|
+
export declare const NOTIFICATION_DEDUP_WINDOW_MS = 60000;
|
|
43
|
+
export declare const NOTIFICATION_REFILL_INTERVAL_MS = 10000;
|
|
44
|
+
export declare const NOTIFICATION_BURST_CAPACITY = 3;
|
|
45
|
+
//# sourceMappingURL=foreground-notifications.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"foreground-notifications.d.ts","sourceRoot":"","sources":["../../src/local-actions/foreground-notifications.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,GAAG,eAAe,GAAG,aAAa,CAAC;AAEvF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,+BAA+B;IAC9C,IAAI,CAAC,KAAK,EAAE;QACV,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;QACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;QACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;QAC7B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;KAC9B,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,oCAAoC;IACnD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,OAAO,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,QAAQ,CAAC,SAAS,EAAE,+BAA+B,CAAC;IACpD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IAAE,OAAO,EAAE,OAAO,GAAG,cAAc,CAAA;CAAE,CAAC,CAAC;AAElF,qBAAa,2BAA4B,SAAQ,KAAK;aACjB,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM;CAIhD;AAED,qBAAa,6BAA6B;;gBAYrB,OAAO,EAAE,oCAAoC;IAOnD,IAAI,CAAC,IAAI,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAyCtF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CA8BpC;AAiDD,eAAO,MAAM,4BAA4B,QAAkB,CAAC;AAC5D,eAAO,MAAM,+BAA+B,QAAqB,CAAC;AAClE,eAAO,MAAM,2BAA2B,IAAiB,CAAC"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
const IDENTIFIER = /^[A-Za-z0-9._:@/-]{1,256}$/u;
|
|
2
|
+
const DEDUP_WINDOW_MS = 60_000;
|
|
3
|
+
const REFILL_INTERVAL_MS = 10_000;
|
|
4
|
+
const BURST_CAPACITY = 3;
|
|
5
|
+
export class ForegroundNotificationError extends Error {
|
|
6
|
+
code;
|
|
7
|
+
constructor(code) {
|
|
8
|
+
super(`Cuna foreground notification failed: ${code}.`);
|
|
9
|
+
this.code = code;
|
|
10
|
+
this.name = "ForegroundNotificationError";
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export class ForegroundNotificationActions {
|
|
14
|
+
#options;
|
|
15
|
+
#now;
|
|
16
|
+
#controller = new AbortController();
|
|
17
|
+
#handles = new Set();
|
|
18
|
+
#pendingPresentations = new Set();
|
|
19
|
+
#pendingDismissals = new Set();
|
|
20
|
+
#dedup = new Map();
|
|
21
|
+
#closed = false;
|
|
22
|
+
#tokens = BURST_CAPACITY;
|
|
23
|
+
#lastRefill;
|
|
24
|
+
constructor(options) {
|
|
25
|
+
if (!IDENTIFIER.test(options.agentSessionId))
|
|
26
|
+
throw new ForegroundNotificationError("session_invalid");
|
|
27
|
+
this.#options = options;
|
|
28
|
+
this.#now = options.now ?? Date.now;
|
|
29
|
+
this.#lastRefill = this.#now();
|
|
30
|
+
}
|
|
31
|
+
async show(args, agentSessionId) {
|
|
32
|
+
this.#assertAlive(agentSessionId);
|
|
33
|
+
const sanitized = sanitizeNotification(args);
|
|
34
|
+
const now = this.#now();
|
|
35
|
+
this.#discardExpiredDedup(now);
|
|
36
|
+
const key = `${agentSessionId}\0${sanitized.category}\0${sanitized.focusRequestId}`;
|
|
37
|
+
if ((this.#dedup.get(key) ?? Number.NEGATIVE_INFINITY) + DEDUP_WINDOW_MS > now) {
|
|
38
|
+
return Object.freeze({ outcome: "rate_limited" });
|
|
39
|
+
}
|
|
40
|
+
this.#refill(now);
|
|
41
|
+
if (this.#tokens < 1)
|
|
42
|
+
return Object.freeze({ outcome: "rate_limited" });
|
|
43
|
+
this.#tokens -= 1;
|
|
44
|
+
this.#dedup.set(key, now);
|
|
45
|
+
const presentation = this.#options.presenter.show({
|
|
46
|
+
brand: "Cuna",
|
|
47
|
+
category: sanitized.category,
|
|
48
|
+
title: sanitized.title,
|
|
49
|
+
body: sanitized.body,
|
|
50
|
+
actionLabel: "Open in Cuna",
|
|
51
|
+
onFocus: () => {
|
|
52
|
+
if (!this.#closed && this.#options.isForegroundAlive())
|
|
53
|
+
this.#options.focusRequest(sanitized.focusRequestId);
|
|
54
|
+
},
|
|
55
|
+
signal: this.#controller.signal,
|
|
56
|
+
});
|
|
57
|
+
this.#pendingPresentations.add(presentation);
|
|
58
|
+
let handle;
|
|
59
|
+
try {
|
|
60
|
+
handle = await presentation;
|
|
61
|
+
}
|
|
62
|
+
finally {
|
|
63
|
+
this.#pendingPresentations.delete(presentation);
|
|
64
|
+
}
|
|
65
|
+
if (this.#closed || !this.#options.isForegroundAlive()) {
|
|
66
|
+
const dismissal = Promise.resolve(handle.dismiss()).then(() => undefined, () => undefined);
|
|
67
|
+
this.#pendingDismissals.add(dismissal);
|
|
68
|
+
try {
|
|
69
|
+
await dismissal;
|
|
70
|
+
}
|
|
71
|
+
finally {
|
|
72
|
+
this.#pendingDismissals.delete(dismissal);
|
|
73
|
+
}
|
|
74
|
+
throw new ForegroundNotificationError("foreground_closed");
|
|
75
|
+
}
|
|
76
|
+
this.#handles.add(handle);
|
|
77
|
+
return Object.freeze({ outcome: "shown" });
|
|
78
|
+
}
|
|
79
|
+
async close() {
|
|
80
|
+
if (this.#closed)
|
|
81
|
+
return;
|
|
82
|
+
this.#closed = true;
|
|
83
|
+
this.#controller.abort();
|
|
84
|
+
await Promise.allSettled(this.#pendingPresentations);
|
|
85
|
+
await Promise.allSettled(this.#pendingDismissals);
|
|
86
|
+
const handles = [...this.#handles];
|
|
87
|
+
this.#handles.clear();
|
|
88
|
+
this.#dedup.clear();
|
|
89
|
+
await Promise.allSettled(handles.map(async (handle) => handle.dismiss()));
|
|
90
|
+
}
|
|
91
|
+
#assertAlive(agentSessionId) {
|
|
92
|
+
if (agentSessionId !== this.#options.agentSessionId)
|
|
93
|
+
throw new ForegroundNotificationError("session_mismatch");
|
|
94
|
+
if (this.#closed || !this.#options.isForegroundAlive())
|
|
95
|
+
throw new ForegroundNotificationError("foreground_closed");
|
|
96
|
+
}
|
|
97
|
+
#discardExpiredDedup(now) {
|
|
98
|
+
for (const [key, createdAt] of this.#dedup) {
|
|
99
|
+
if (createdAt + DEDUP_WINDOW_MS <= now)
|
|
100
|
+
this.#dedup.delete(key);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
#refill(now) {
|
|
104
|
+
const elapsed = now - this.#lastRefill;
|
|
105
|
+
if (elapsed < REFILL_INTERVAL_MS)
|
|
106
|
+
return;
|
|
107
|
+
const recovered = Math.floor(elapsed / REFILL_INTERVAL_MS);
|
|
108
|
+
this.#tokens = Math.min(BURST_CAPACITY, this.#tokens + recovered);
|
|
109
|
+
this.#lastRefill += recovered * REFILL_INTERVAL_MS;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
function sanitizeNotification(args) {
|
|
113
|
+
const keys = Object.keys(args);
|
|
114
|
+
if (keys.length !== 4 || keys.some((key) => !["category", "title", "body", "focusRequestId"].includes(key)))
|
|
115
|
+
invalid();
|
|
116
|
+
if (args.category !== "action_required" && args.category !== "task_complete" && args.category !== "task_failed")
|
|
117
|
+
invalid();
|
|
118
|
+
if (!IDENTIFIER.test(args.focusRequestId))
|
|
119
|
+
invalid();
|
|
120
|
+
const title = sanitizeText(args.title, 80);
|
|
121
|
+
const body = sanitizeText(args.body, 240);
|
|
122
|
+
if (title.length === 0 || body.length === 0)
|
|
123
|
+
invalid();
|
|
124
|
+
return Object.freeze({ category: args.category, title, body, focusRequestId: args.focusRequestId });
|
|
125
|
+
}
|
|
126
|
+
function sanitizeText(value, maximumBytes) {
|
|
127
|
+
if (typeof value !== "string" || Buffer.byteLength(value, "utf8") > maximumBytes)
|
|
128
|
+
invalid();
|
|
129
|
+
return [...stripAnsiControlSequences(value)]
|
|
130
|
+
.map((character) => unsafePresentationCodePoint(character.codePointAt(0)) ? " " : character)
|
|
131
|
+
.join("")
|
|
132
|
+
.replace(/\s+/gu, " ")
|
|
133
|
+
.trim();
|
|
134
|
+
}
|
|
135
|
+
function stripAnsiControlSequences(value) {
|
|
136
|
+
let output = "";
|
|
137
|
+
for (let index = 0; index < value.length; index += 1) {
|
|
138
|
+
if (value.codePointAt(index) !== 0x1b || value[index + 1] !== "[") {
|
|
139
|
+
output += value[index];
|
|
140
|
+
continue;
|
|
141
|
+
}
|
|
142
|
+
let cursor = index + 2;
|
|
143
|
+
while (cursor < value.length) {
|
|
144
|
+
const point = value.codePointAt(cursor);
|
|
145
|
+
cursor += 1;
|
|
146
|
+
if (point >= 0x40 && point <= 0x7e)
|
|
147
|
+
break;
|
|
148
|
+
}
|
|
149
|
+
index = cursor - 1;
|
|
150
|
+
}
|
|
151
|
+
return output;
|
|
152
|
+
}
|
|
153
|
+
function unsafePresentationCodePoint(point) {
|
|
154
|
+
return point <= 0x1f || (point >= 0x7f && point <= 0x9f) ||
|
|
155
|
+
(point >= 0x202a && point <= 0x202e) || (point >= 0x2066 && point <= 0x2069);
|
|
156
|
+
}
|
|
157
|
+
function invalid() {
|
|
158
|
+
throw new ForegroundNotificationError("request_invalid");
|
|
159
|
+
}
|
|
160
|
+
export const NOTIFICATION_DEDUP_WINDOW_MS = DEDUP_WINDOW_MS;
|
|
161
|
+
export const NOTIFICATION_REFILL_INTERVAL_MS = REFILL_INTERVAL_MS;
|
|
162
|
+
export const NOTIFICATION_BURST_CAPACITY = BURST_CAPACITY;
|
|
163
|
+
//# sourceMappingURL=foreground-notifications.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"foreground-notifications.js","sourceRoot":"","sources":["../../src/local-actions/foreground-notifications.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { type PerOperationConsent, type SensitiveOperationContext } from "./sensitive-consent.js";
|
|
2
|
+
export interface GitSignArgs {
|
|
3
|
+
readonly objectType: "commit" | "tag";
|
|
4
|
+
readonly canonicalPayloadBase64url: string;
|
|
5
|
+
readonly decodedLength: number;
|
|
6
|
+
readonly payloadSha256: `sha256:${string}`;
|
|
7
|
+
readonly keySelectorId: string;
|
|
8
|
+
}
|
|
9
|
+
export interface GitSignResult {
|
|
10
|
+
readonly signatureBase64url: string;
|
|
11
|
+
readonly decodedLength: number;
|
|
12
|
+
readonly signatureSha256: `sha256:${string}`;
|
|
13
|
+
readonly algorithm: string;
|
|
14
|
+
readonly publicKeyFingerprint: string;
|
|
15
|
+
}
|
|
16
|
+
export interface GitSigningKey {
|
|
17
|
+
readonly selectorId: string;
|
|
18
|
+
readonly algorithm: string;
|
|
19
|
+
readonly publicKeyFingerprint: string;
|
|
20
|
+
signCanonicalPayload(payload: Uint8Array, signal?: AbortSignal): Promise<Uint8Array>;
|
|
21
|
+
verifyCanonicalPayload(payload: Uint8Array, signature: Uint8Array, signal?: AbortSignal): Promise<boolean>;
|
|
22
|
+
}
|
|
23
|
+
export interface GitSigningKeyRegistry {
|
|
24
|
+
resolve(selectorId: string, signal?: AbortSignal): Promise<GitSigningKey | null>;
|
|
25
|
+
}
|
|
26
|
+
export interface GitSigningActionsOptions {
|
|
27
|
+
readonly keys: GitSigningKeyRegistry;
|
|
28
|
+
readonly consent: PerOperationConsent;
|
|
29
|
+
}
|
|
30
|
+
export declare class GitSigningActions {
|
|
31
|
+
#private;
|
|
32
|
+
constructor(options: GitSigningActionsOptions);
|
|
33
|
+
sign(args: GitSignArgs, context: SensitiveOperationContext, signal?: AbortSignal): Promise<GitSignResult>;
|
|
34
|
+
}
|
|
35
|
+
export declare class GitSigningError extends Error {
|
|
36
|
+
readonly code: string;
|
|
37
|
+
constructor(code: string, options?: ErrorOptions);
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=git-signing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-signing.d.ts","sourceRoot":"","sources":["../../src/local-actions/git-signing.ts"],"names":[],"mappings":"AAEA,OAAO,EAOL,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC/B,MAAM,wBAAwB,CAAC;AAMhC,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,UAAU,EAAE,QAAQ,GAAG,KAAK,CAAC;IACtC,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,UAAU,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,UAAU,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACvC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,oBAAoB,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACrF,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5G;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;CAClF;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;CACvC;AAED,qBAAa,iBAAiB;;gBAIhB,OAAO,EAAE,wBAAwB;IAIvC,IAAI,CACR,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,yBAAyB,EAClC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,aAAa,CAAC;CA+C1B;AAED,qBAAa,eAAgB,SAAQ,KAAK;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAI1D"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { createHash, timingSafeEqual } from "node:crypto";
|
|
2
|
+
import { SensitiveAuthorityError, assertSensitiveAuthority, identifier, requireConsentOnce, throwIfAborted, validateSensitiveContext, } from "./sensitive-consent.js";
|
|
3
|
+
const MAX_GIT_PAYLOAD_BYTES = 65_536;
|
|
4
|
+
const SHA256 = /^sha256:[0-9a-f]{64}$/u;
|
|
5
|
+
const SAFE_LABEL = /^[\x21-\x7e]{1,256}$/u;
|
|
6
|
+
export class GitSigningActions {
|
|
7
|
+
#options;
|
|
8
|
+
#busySelectors = new Set();
|
|
9
|
+
constructor(options) {
|
|
10
|
+
this.#options = options;
|
|
11
|
+
}
|
|
12
|
+
async sign(args, context, signal) {
|
|
13
|
+
validateSensitiveContext(context);
|
|
14
|
+
const payload = decodeGitPayload(args);
|
|
15
|
+
assertCanonicalGitPayload(args.objectType, payload);
|
|
16
|
+
await assertSensitiveAuthority(context, signal);
|
|
17
|
+
const key = await this.#options.keys.resolve(args.keySelectorId, signal);
|
|
18
|
+
if (key === null || key.selectorId !== args.keySelectorId)
|
|
19
|
+
throw new GitSigningError("key_selector_unknown");
|
|
20
|
+
validateKeyDescriptor(key);
|
|
21
|
+
if (this.#busySelectors.has(key.selectorId))
|
|
22
|
+
throw new GitSigningError("signer_busy");
|
|
23
|
+
this.#busySelectors.add(key.selectorId);
|
|
24
|
+
try {
|
|
25
|
+
await requireConsentOnce(this.#options.consent, context, {
|
|
26
|
+
action: "git.sign",
|
|
27
|
+
operationDigest: args.payloadSha256,
|
|
28
|
+
summary: `Sign ${args.objectType} ${args.payloadSha256.slice(0, 23)} with ${key.selectorId}`,
|
|
29
|
+
}, signal).catch(normalizeAuthorityError);
|
|
30
|
+
// Decode and validate again after the consent boundary. The signer never
|
|
31
|
+
// sees bytes that differ from the digest shown to the user.
|
|
32
|
+
const revalidated = decodeGitPayload(args);
|
|
33
|
+
assertCanonicalGitPayload(args.objectType, revalidated);
|
|
34
|
+
if (payload.byteLength !== revalidated.byteLength || !timingSafeEqual(payload, revalidated)) {
|
|
35
|
+
throw new GitSigningError("payload_changed");
|
|
36
|
+
}
|
|
37
|
+
await assertSensitiveAuthority(context, signal).catch(normalizeAuthorityError);
|
|
38
|
+
throwIfAborted(signal);
|
|
39
|
+
const signature = Buffer.from(await key.signCanonicalPayload(Buffer.from(revalidated), signal));
|
|
40
|
+
if (signature.byteLength < 1 || signature.byteLength > MAX_GIT_PAYLOAD_BYTES) {
|
|
41
|
+
throw new GitSigningError("signature_invalid");
|
|
42
|
+
}
|
|
43
|
+
await assertSensitiveAuthority(context, signal).catch(normalizeAuthorityError);
|
|
44
|
+
if (!await key.verifyCanonicalPayload(Buffer.from(revalidated), Buffer.from(signature), signal)) {
|
|
45
|
+
throw new GitSigningError("signature_verification_failed");
|
|
46
|
+
}
|
|
47
|
+
const encoded = signature.toString("base64url");
|
|
48
|
+
return Object.freeze({
|
|
49
|
+
signatureBase64url: encoded,
|
|
50
|
+
decodedLength: signature.byteLength,
|
|
51
|
+
signatureSha256: digest(signature),
|
|
52
|
+
algorithm: key.algorithm,
|
|
53
|
+
publicKeyFingerprint: key.publicKeyFingerprint,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
finally {
|
|
57
|
+
this.#busySelectors.delete(key.selectorId);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
export class GitSigningError extends Error {
|
|
62
|
+
code;
|
|
63
|
+
constructor(code, options) {
|
|
64
|
+
super(`Cuna Git signing failed: ${code}.`, options);
|
|
65
|
+
this.code = code;
|
|
66
|
+
this.name = "GitSigningError";
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
function decodeGitPayload(args) {
|
|
70
|
+
if ((args.objectType !== "commit" && args.objectType !== "tag") || !identifier(args.keySelectorId) ||
|
|
71
|
+
!Number.isSafeInteger(args.decodedLength) || args.decodedLength < 1 || args.decodedLength > MAX_GIT_PAYLOAD_BYTES ||
|
|
72
|
+
!SHA256.test(args.payloadSha256) || !/^[A-Za-z0-9_-]+$/u.test(args.canonicalPayloadBase64url) ||
|
|
73
|
+
args.canonicalPayloadBase64url.length > Math.ceil(MAX_GIT_PAYLOAD_BYTES * 4 / 3) + 2) {
|
|
74
|
+
throw new GitSigningError("payload_invalid");
|
|
75
|
+
}
|
|
76
|
+
const payload = Buffer.from(args.canonicalPayloadBase64url, "base64url");
|
|
77
|
+
if (payload.byteLength !== args.decodedLength || payload.toString("base64url") !== args.canonicalPayloadBase64url ||
|
|
78
|
+
digest(payload) !== args.payloadSha256)
|
|
79
|
+
throw new GitSigningError("payload_integrity_mismatch");
|
|
80
|
+
return payload;
|
|
81
|
+
}
|
|
82
|
+
function assertCanonicalGitPayload(objectType, payload) {
|
|
83
|
+
let text;
|
|
84
|
+
try {
|
|
85
|
+
text = new TextDecoder("utf-8", { fatal: true }).decode(payload);
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
throw new GitSigningError("payload_not_utf8");
|
|
89
|
+
}
|
|
90
|
+
if (text.includes("\0") || text.includes("\r") || !text.endsWith("\n"))
|
|
91
|
+
throw new GitSigningError("payload_not_canonical");
|
|
92
|
+
const separator = text.indexOf("\n\n");
|
|
93
|
+
if (separator <= 0)
|
|
94
|
+
throw new GitSigningError("payload_not_canonical");
|
|
95
|
+
const headers = text.slice(0, separator).split("\n");
|
|
96
|
+
if (headers.some((line) => line.startsWith(" ") || !/^[a-z][a-z0-9-]* [^\n]+$/u.test(line))) {
|
|
97
|
+
throw new GitSigningError("payload_not_canonical");
|
|
98
|
+
}
|
|
99
|
+
const names = headers.map((line) => line.slice(0, line.indexOf(" ")));
|
|
100
|
+
if (names.includes("gpgsig") || names.includes("gpgsig-sha256"))
|
|
101
|
+
throw new GitSigningError("payload_already_signed");
|
|
102
|
+
if (objectType === "commit") {
|
|
103
|
+
const tree = headers[0];
|
|
104
|
+
const authorIndex = names.indexOf("author");
|
|
105
|
+
const committerIndex = names.indexOf("committer");
|
|
106
|
+
if (tree === undefined || !/^tree [0-9a-f]{40}(?:[0-9a-f]{24})?$/u.test(tree) ||
|
|
107
|
+
names.filter((name) => name === "tree").length !== 1 || names.filter((name) => name === "author").length !== 1 ||
|
|
108
|
+
names.filter((name) => name === "committer").length !== 1 || authorIndex < 1 || committerIndex !== authorIndex + 1 ||
|
|
109
|
+
names.slice(1, authorIndex).some((name) => name !== "parent") || names.slice(committerIndex + 1).some((name) => name !== "encoding")) {
|
|
110
|
+
throw new GitSigningError("payload_not_canonical_commit");
|
|
111
|
+
}
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
const required = ["object", "type", "tag", "tagger"];
|
|
115
|
+
if (headers.length !== required.length || names.some((name, index) => name !== required[index]) ||
|
|
116
|
+
!/^object [0-9a-f]{40}(?:[0-9a-f]{24})?$/u.test(headers[0]) ||
|
|
117
|
+
!/^type (?:blob|tree|commit|tag)$/u.test(headers[1])) {
|
|
118
|
+
throw new GitSigningError("payload_not_canonical_tag");
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
function validateKeyDescriptor(key) {
|
|
122
|
+
if (!identifier(key.selectorId) || !SAFE_LABEL.test(key.algorithm) || !SAFE_LABEL.test(key.publicKeyFingerprint) ||
|
|
123
|
+
typeof key.signCanonicalPayload !== "function" || typeof key.verifyCanonicalPayload !== "function") {
|
|
124
|
+
throw new GitSigningError("key_descriptor_invalid");
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
function digest(bytes) {
|
|
128
|
+
return `sha256:${createHash("sha256").update(bytes).digest("hex")}`;
|
|
129
|
+
}
|
|
130
|
+
function normalizeAuthorityError(error) {
|
|
131
|
+
if (error instanceof SensitiveAuthorityError)
|
|
132
|
+
throw new GitSigningError(error.code, { cause: error });
|
|
133
|
+
throw error;
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=git-signing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-signing.js","sourceRoot":"","sources":["../../src/local-actions/git-signing.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export { LOCAL_ACTION_PROTOCOL_VERSION, MAX_LOCAL_ACTION_ARGUMENT_BYTES, MAX_LOCAL_ACTION_FUTURE_SKEW_MS, MAX_LOCAL_ACTION_HISTORY, MAX_LOCAL_ACTION_QUEUE, MAX_LOCAL_ACTION_REPLAY_ENTRIES, MAX_LOCAL_ACTION_TTL_MS, sameLocalActionIdentity, type LocalActionArgument, type LocalActionKind, type LocalActionProvider, type LocalActionRequest, type LocalActionResult, type LocalActionSafeReason, type LocalActionSessionIdentity, type LocalActionSnapshot, type LocalActionState, type PolicyDecision, } from "./contracts.js";
|
|
2
|
+
export { LocalActionBroker, LocalActionBrokerError, digestLocalActionArguments, validateRequest, type LocalActionBrokerOptions, } from "./broker.js";
|
|
3
|
+
export { LocalActionPolicyEvaluator, type LocalActionPolicyInput, type LocalActionPolicyRule, } from "./policy.js";
|
|
4
|
+
export { LOCAL_ACTION_PROVIDERS, providerAllowsLocalAction, type LocalActionProviderDescriptor, type ProviderAuthTopology, } from "./providers.js";
|
|
5
|
+
export { CUNA_AGENT_SESSION_MCP_COMMAND, CUNA_AGENT_SESSION_MCP_SERVER, ProviderMcpConfigurationError, buildClaudeMcpLaunchPlan, buildCodexMcpLaunchPlan, buildOpenCodeMcpLaunchPlan, buildProviderMcpLaunchPlan, describeOpenCodeMcpContract, type ClaudeMcpLaunchPlan, type CodexMcpLaunchPlan, type EphemeralMcpCleanupContract, type EphemeralMcpConfigTarget, type OpenCodeMcpLaunchPlan, type ProviderMcpLaunchPlan, type RemoteMcpSessionBinding, } from "./provider-mcp-config.js";
|
|
6
|
+
export { validateLocalActionArguments, validateLocalActionResult } from "./schemas.js";
|
|
7
|
+
export { LOCAL_ACTION_POLICY_FILE, MAX_LOCAL_ACTION_POLICY_BYTES, loadLocalActionDevicePolicy, parseLocalActionDevicePolicy, } from "./policy-store.js";
|
|
8
|
+
export { CallbackRelayError, startCallbackRelay, type AcceptedProviderCallback, type CallbackRelayHandle, type CallbackRelayOptions, type CallbackRelayProvider, type CallbackRelayReceipt, type CallbackRelayServerFactory, } from "./callback-relay.js";
|
|
9
|
+
export { PrivatePortForwardError, startPrivatePortForward, type PrivateForwardConnector, type PrivateForwardTarget, type PrivatePortForwardHandle, type PrivatePortForwardOptions, } from "./private-port-forward.js";
|
|
10
|
+
export { assertLoopbackHost, assertPort, isLoopbackPeer, type LoopbackHost } from "./loopback.js";
|
|
11
|
+
export { DesktopPresentationActions, DesktopPresentationError, createNodeEditorProcessLauncher, renderEditorCommand, type DesktopOpenReceipt, type DesktopPresentationActionsOptions, type DiffOpenArgs, type EditorConnectionDescriptor, type EditorConnectionDescriptorResolver, type EditorId, type EditorInstallationResolver, type EditorLaunchCommand, type EditorOpenArgs, type EditorOpenReceipt, type EditorProcessLauncher, type LivePrivateForward, type PresentationBinding, type PreviewOpenArgs, type PreviewPresentation, type StaticDesktopPresenter, type VerifiedEditorInstallation, type VerifiedPresentationSourceResolver, type VerifiedPreviewArtifact, } from "./desktop-presentation.js";
|
|
12
|
+
export { ForegroundNotificationActions, ForegroundNotificationError, NOTIFICATION_BURST_CAPACITY, NOTIFICATION_DEDUP_WINDOW_MS, NOTIFICATION_REFILL_INTERVAL_MS, type ForegroundNotificationActionsOptions, type ForegroundNotificationHandle, type ForegroundNotificationPresenter, type NotificationCategory, type NotificationReceipt, type NotificationShowArgs, } from "./foreground-notifications.js";
|
|
13
|
+
export { CUNA_TRANSFER_ROOT, CUNA_TRANSFER_STAGING_ROOT, MAX_TRANSFER_BYTES, MAX_TRANSFER_FILES, FileTransferActions, FileTransferError, NodePosixFileTransferStore, type ArtifactSaveArgs, type ArtifactSaveReceipt, type AttachmentImportReceipt, type FileSelectionReceipt, type FileSelectArgs, type FileTransferActionsOptions, type FileTransferBinding, type FileTransferStore, type HumanFilePicker, type SelectedFileSnapshot, type SynchronizedArtifact, type SynchronizedArtifactResolver, } from "./file-transfers.js";
|
|
14
|
+
export { SensitiveAuthorityError, assertSensitiveAuthority, requireConsentOnce, type PerOperationConsent, type SensitiveConsentPrompt, type SensitiveLocalActionKind, type SensitiveOperationContext, } from "./sensitive-consent.js";
|
|
15
|
+
export { GitSigningActions, GitSigningError, type GitSignArgs, type GitSignResult, type GitSigningActionsOptions, type GitSigningKey, type GitSigningKeyRegistry, } from "./git-signing.js";
|
|
16
|
+
export { LocalServiceActions, LocalServiceError, LocalServiceTransportError, createNodeLoopbackServiceTransport, type LocalServiceActionsOptions, type LocalServiceArgs, type LocalServiceBodyEncoding, type LocalServiceOperationRegistration, type LocalServiceRegistration, type LocalServiceResult, type LocalServiceSchemaRegistry, type LocalServiceTransport, type LocalServiceTransportRequest, type LocalServiceTransportResponse, } from "./local-service-actions.js";
|
|
17
|
+
export { DeviceSelectionActions, DeviceSelectionError, type DeviceClass, type DeviceMetadataField, type DeviceSelectArgs, type DeviceSelectionActionsOptions, type DeviceSelectionResult, type HumanDeviceSelector, type HumanSelectedDevice, } from "./device-selection.js";
|
|
18
|
+
export { LocalActionExecutor, LocalActionExecutorError, type LocalActionAdapter, type LocalActionAdapterContext, type LocalActionAdapterOutcome, type LocalActionAdapterRegistration, type LocalActionExecutionAuthority, type LocalActionExecutorOptions, } from "./executor.js";
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/local-actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,+BAA+B,EAC/B,+BAA+B,EAC/B,wBAAwB,EACxB,sBAAsB,EACtB,+BAA+B,EAC/B,uBAAuB,EACvB,uBAAuB,EACvB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,cAAc,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,0BAA0B,EAC1B,eAAe,EACf,KAAK,wBAAwB,GAC9B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,0BAA0B,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,GAC3B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,KAAK,6BAA6B,EAClC,KAAK,oBAAoB,GAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,8BAA8B,EAC9B,6BAA6B,EAC7B,6BAA6B,EAC7B,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC1B,0BAA0B,EAC1B,2BAA2B,EAC3B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,GAC7B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,4BAA4B,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACvF,OAAO,EACL,wBAAwB,EACxB,6BAA6B,EAC7B,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,GAChC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,GAC/B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAClG,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,+BAA+B,EAC/B,mBAAmB,EACnB,KAAK,kBAAkB,EACvB,KAAK,iCAAiC,EACtC,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAC/B,KAAK,kCAAkC,EACvC,KAAK,QAAQ,EACb,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,kCAAkC,EACvC,KAAK,uBAAuB,GAC7B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC5B,+BAA+B,EAC/B,KAAK,oCAAoC,EACzC,KAAK,4BAA4B,EACjC,KAAK,+BAA+B,EACpC,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,0BAA0B,EAC1B,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,GAClC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,GAC/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAClB,KAAK,qBAAqB,GAC3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,0BAA0B,EAC1B,kCAAkC,EAClC,KAAK,0BAA0B,EAC/B,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,iCAAiC,EACtC,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,qBAAqB,EAC1B,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,GACnC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,6BAA6B,EAClC,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,GACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EAC9B,KAAK,8BAA8B,EACnC,KAAK,6BAA6B,EAClC,KAAK,0BAA0B,GAChC,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export { LOCAL_ACTION_PROTOCOL_VERSION, MAX_LOCAL_ACTION_ARGUMENT_BYTES, MAX_LOCAL_ACTION_FUTURE_SKEW_MS, MAX_LOCAL_ACTION_HISTORY, MAX_LOCAL_ACTION_QUEUE, MAX_LOCAL_ACTION_REPLAY_ENTRIES, MAX_LOCAL_ACTION_TTL_MS, sameLocalActionIdentity, } from "./contracts.js";
|
|
2
|
+
export { LocalActionBroker, LocalActionBrokerError, digestLocalActionArguments, validateRequest, } from "./broker.js";
|
|
3
|
+
export { LocalActionPolicyEvaluator, } from "./policy.js";
|
|
4
|
+
export { LOCAL_ACTION_PROVIDERS, providerAllowsLocalAction, } from "./providers.js";
|
|
5
|
+
export { CUNA_AGENT_SESSION_MCP_COMMAND, CUNA_AGENT_SESSION_MCP_SERVER, ProviderMcpConfigurationError, buildClaudeMcpLaunchPlan, buildCodexMcpLaunchPlan, buildOpenCodeMcpLaunchPlan, buildProviderMcpLaunchPlan, describeOpenCodeMcpContract, } from "./provider-mcp-config.js";
|
|
6
|
+
export { validateLocalActionArguments, validateLocalActionResult } from "./schemas.js";
|
|
7
|
+
export { LOCAL_ACTION_POLICY_FILE, MAX_LOCAL_ACTION_POLICY_BYTES, loadLocalActionDevicePolicy, parseLocalActionDevicePolicy, } from "./policy-store.js";
|
|
8
|
+
export { CallbackRelayError, startCallbackRelay, } from "./callback-relay.js";
|
|
9
|
+
export { PrivatePortForwardError, startPrivatePortForward, } from "./private-port-forward.js";
|
|
10
|
+
export { assertLoopbackHost, assertPort, isLoopbackPeer } from "./loopback.js";
|
|
11
|
+
export { DesktopPresentationActions, DesktopPresentationError, createNodeEditorProcessLauncher, renderEditorCommand, } from "./desktop-presentation.js";
|
|
12
|
+
export { ForegroundNotificationActions, ForegroundNotificationError, NOTIFICATION_BURST_CAPACITY, NOTIFICATION_DEDUP_WINDOW_MS, NOTIFICATION_REFILL_INTERVAL_MS, } from "./foreground-notifications.js";
|
|
13
|
+
export { CUNA_TRANSFER_ROOT, CUNA_TRANSFER_STAGING_ROOT, MAX_TRANSFER_BYTES, MAX_TRANSFER_FILES, FileTransferActions, FileTransferError, NodePosixFileTransferStore, } from "./file-transfers.js";
|
|
14
|
+
export { SensitiveAuthorityError, assertSensitiveAuthority, requireConsentOnce, } from "./sensitive-consent.js";
|
|
15
|
+
export { GitSigningActions, GitSigningError, } from "./git-signing.js";
|
|
16
|
+
export { LocalServiceActions, LocalServiceError, LocalServiceTransportError, createNodeLoopbackServiceTransport, } from "./local-service-actions.js";
|
|
17
|
+
export { DeviceSelectionActions, DeviceSelectionError, } from "./device-selection.js";
|
|
18
|
+
export { LocalActionExecutor, LocalActionExecutorError, } from "./executor.js";
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/local-actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,+BAA+B,EAC/B,+BAA+B,EAC/B,wBAAwB,EACxB,sBAAsB,EACtB,+BAA+B,EAC/B,uBAAuB,EACvB,uBAAuB,GAWxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,0BAA0B,EAC1B,eAAe,GAEhB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,0BAA0B,GAG3B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,sBAAsB,EACtB,yBAAyB,GAG1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,8BAA8B,EAC9B,6BAA6B,EAC7B,6BAA6B,EAC7B,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC1B,0BAA0B,EAC1B,2BAA2B,GAQ5B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,4BAA4B,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACvF,OAAO,EACL,wBAAwB,EACxB,6BAA6B,EAC7B,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GAOnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,uBAAuB,EACvB,uBAAuB,GAKxB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,cAAc,EAAqB,MAAM,eAAe,CAAC;AAClG,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,+BAA+B,EAC/B,mBAAmB,GAoBpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC5B,+BAA+B,GAOhC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,0BAA0B,GAa3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,GAKnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,iBAAiB,EACjB,eAAe,GAMhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,0BAA0B,EAC1B,kCAAkC,GAWnC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,sBAAsB,EACtB,oBAAoB,GAQrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,mBAAmB,EACnB,wBAAwB,GAOzB,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { type LoopbackHost } from "./loopback.js";
|
|
2
|
+
import { type PerOperationConsent, type SensitiveOperationContext } from "./sensitive-consent.js";
|
|
3
|
+
export type LocalServiceBodyEncoding = "canonical_json" | "base64url";
|
|
4
|
+
export interface LocalServiceArgs {
|
|
5
|
+
readonly registrationId: string;
|
|
6
|
+
readonly operationId: string;
|
|
7
|
+
readonly bodyEncoding: LocalServiceBodyEncoding;
|
|
8
|
+
readonly body: unknown;
|
|
9
|
+
readonly decodedLength: number;
|
|
10
|
+
readonly bodySha256: `sha256:${string}`;
|
|
11
|
+
}
|
|
12
|
+
export interface LocalServiceResult {
|
|
13
|
+
readonly outcome: "ok" | "service_error" | "timeout";
|
|
14
|
+
readonly bodyEncoding: LocalServiceBodyEncoding;
|
|
15
|
+
readonly body: unknown;
|
|
16
|
+
readonly decodedLength: number;
|
|
17
|
+
readonly bodySha256: `sha256:${string}`;
|
|
18
|
+
}
|
|
19
|
+
export interface LocalServiceOperationRegistration {
|
|
20
|
+
readonly operationId: string;
|
|
21
|
+
readonly method: string;
|
|
22
|
+
readonly path: string;
|
|
23
|
+
readonly requestEncoding: LocalServiceBodyEncoding;
|
|
24
|
+
readonly responseEncoding: LocalServiceBodyEncoding;
|
|
25
|
+
readonly requestContentType: string;
|
|
26
|
+
readonly responseContentType: string;
|
|
27
|
+
readonly requestSchemaId: string;
|
|
28
|
+
readonly responseSchemaId: string;
|
|
29
|
+
readonly maximumRequestBytes: number;
|
|
30
|
+
readonly maximumResponseBytes: number;
|
|
31
|
+
readonly timeoutMs: number;
|
|
32
|
+
readonly idempotent: boolean;
|
|
33
|
+
}
|
|
34
|
+
export interface LocalServiceRegistration {
|
|
35
|
+
readonly registrationId: string;
|
|
36
|
+
readonly host: LoopbackHost;
|
|
37
|
+
readonly port: number;
|
|
38
|
+
readonly maximumConcurrent: number;
|
|
39
|
+
readonly operations: readonly LocalServiceOperationRegistration[];
|
|
40
|
+
}
|
|
41
|
+
export interface LocalServiceSchemaRegistry {
|
|
42
|
+
validate(schemaId: string, value: unknown): boolean;
|
|
43
|
+
}
|
|
44
|
+
export interface LocalServiceTransportRequest {
|
|
45
|
+
readonly host: LoopbackHost;
|
|
46
|
+
readonly port: number;
|
|
47
|
+
readonly method: string;
|
|
48
|
+
readonly path: string;
|
|
49
|
+
readonly contentType: string;
|
|
50
|
+
readonly body: Uint8Array;
|
|
51
|
+
readonly maximumResponseBytes: number;
|
|
52
|
+
readonly timeoutMs: number;
|
|
53
|
+
readonly signal: AbortSignal;
|
|
54
|
+
}
|
|
55
|
+
export interface LocalServiceTransportResponse {
|
|
56
|
+
readonly statusCode: number;
|
|
57
|
+
readonly contentType: string | null;
|
|
58
|
+
readonly body: Uint8Array;
|
|
59
|
+
readonly remoteAddress: string;
|
|
60
|
+
readonly redirected: boolean;
|
|
61
|
+
}
|
|
62
|
+
export interface LocalServiceTransport {
|
|
63
|
+
request(input: LocalServiceTransportRequest): Promise<LocalServiceTransportResponse>;
|
|
64
|
+
}
|
|
65
|
+
export interface LocalServiceActionsOptions {
|
|
66
|
+
readonly consent: PerOperationConsent;
|
|
67
|
+
readonly schemas: LocalServiceSchemaRegistry;
|
|
68
|
+
readonly transport: LocalServiceTransport;
|
|
69
|
+
}
|
|
70
|
+
export declare class LocalServiceActions {
|
|
71
|
+
#private;
|
|
72
|
+
constructor(options: LocalServiceActionsOptions);
|
|
73
|
+
register(registration: LocalServiceRegistration): void;
|
|
74
|
+
revoke(registrationId: string): void;
|
|
75
|
+
dispose(): void;
|
|
76
|
+
request(args: LocalServiceArgs, context: SensitiveOperationContext, signal?: AbortSignal): Promise<LocalServiceResult>;
|
|
77
|
+
}
|
|
78
|
+
export declare function createNodeLoopbackServiceTransport(): LocalServiceTransport;
|
|
79
|
+
export declare class LocalServiceError extends Error {
|
|
80
|
+
readonly code: string;
|
|
81
|
+
constructor(code: string, options?: ErrorOptions);
|
|
82
|
+
}
|
|
83
|
+
export declare class LocalServiceTransportError extends Error {
|
|
84
|
+
readonly code: string;
|
|
85
|
+
constructor(code: string);
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=local-service-actions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-service-actions.d.ts","sourceRoot":"","sources":["../../src/local-actions/local-service-actions.ts"],"names":[],"mappings":"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"}
|