@tangle-network/braid 0.2.2 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +256 -152
- package/THIRD_PARTY_LICENSES.json +8 -0
- package/THIRD_PARTY_NOTICES.md +5 -3
- package/dist/adapters/analysis/eval-analyst.d.ts.map +1 -1
- package/dist/adapters/analysis/eval-analyst.js +27 -7
- package/dist/adapters/analysis/eval-analyst.js.map +1 -1
- package/dist/adapters/analysis/managed-analysis-runtime.d.ts +3 -1
- package/dist/adapters/analysis/managed-analysis-runtime.d.ts.map +1 -1
- package/dist/adapters/analysis/managed-analysis-runtime.js +10 -2
- package/dist/adapters/analysis/managed-analysis-runtime.js.map +1 -1
- package/dist/adapters/analysis/python-runner.js +3 -3
- package/dist/adapters/analysis/python-runner.js.map +1 -1
- package/dist/adapters/analysis/question-analyst.d.ts +4 -4
- package/dist/adapters/analysis/question-analyst.d.ts.map +1 -1
- package/dist/adapters/analysis/question-analyst.js +192 -10
- package/dist/adapters/analysis/question-analyst.js.map +1 -1
- package/dist/adapters/analysis/runtime-model-owner.d.ts.map +1 -1
- package/dist/adapters/analysis/runtime-model-owner.js +19 -15
- package/dist/adapters/analysis/runtime-model-owner.js.map +1 -1
- package/dist/adapters/analysis/runtime-retained-model-call.d.ts.map +1 -1
- package/dist/adapters/analysis/runtime-retained-model-call.js +20 -8
- package/dist/adapters/analysis/runtime-retained-model-call.js.map +1 -1
- package/dist/adapters/analysis/trace-analysis-adapter.d.ts.map +1 -1
- package/dist/adapters/analysis/trace-analysis-adapter.js +17 -8
- package/dist/adapters/analysis/trace-analysis-adapter.js.map +1 -1
- package/dist/adapters/connections/aws-nitro-root-g1.d.ts +11 -0
- package/dist/adapters/connections/aws-nitro-root-g1.d.ts.map +1 -0
- package/dist/adapters/connections/aws-nitro-root-g1.js +24 -0
- package/dist/adapters/connections/aws-nitro-root-g1.js.map +1 -0
- package/dist/adapters/connections/cli-bridge-model-validation.d.ts +3 -1
- package/dist/adapters/connections/cli-bridge-model-validation.d.ts.map +1 -1
- package/dist/adapters/connections/cli-bridge-model-validation.js +11 -4
- package/dist/adapters/connections/cli-bridge-model-validation.js.map +1 -1
- package/dist/adapters/connections/nitro-confidential-attestation.d.ts +36 -0
- package/dist/adapters/connections/nitro-confidential-attestation.d.ts.map +1 -0
- package/dist/adapters/connections/nitro-confidential-attestation.js +255 -0
- package/dist/adapters/connections/nitro-confidential-attestation.js.map +1 -0
- package/dist/adapters/connections/production-connection-credentials.d.ts +6 -0
- package/dist/adapters/connections/production-connection-credentials.d.ts.map +1 -1
- package/dist/adapters/connections/production-connection-credentials.js +46 -2
- package/dist/adapters/connections/production-connection-credentials.js.map +1 -1
- package/dist/adapters/connections/production-connection-health.d.ts.map +1 -1
- package/dist/adapters/connections/production-connection-health.js +9 -4
- package/dist/adapters/connections/production-connection-health.js.map +1 -1
- package/dist/adapters/connections/production-connection-providers.d.ts +13 -0
- package/dist/adapters/connections/production-connection-providers.d.ts.map +1 -1
- package/dist/adapters/connections/production-connection-providers.js +59 -3
- package/dist/adapters/connections/production-connection-providers.js.map +1 -1
- package/dist/adapters/connections/production-connection-types.d.ts +10 -3
- package/dist/adapters/connections/production-connection-types.d.ts.map +1 -1
- package/dist/adapters/connections/production-connection-types.js.map +1 -1
- package/dist/adapters/connections/production-connections.d.ts +4 -2
- package/dist/adapters/connections/production-connections.d.ts.map +1 -1
- package/dist/adapters/connections/production-connections.js +2 -1
- package/dist/adapters/connections/production-connections.js.map +1 -1
- package/dist/adapters/connections/tangle-router-client.d.ts +20 -0
- package/dist/adapters/connections/tangle-router-client.d.ts.map +1 -0
- package/dist/adapters/connections/tangle-router-client.js +33 -0
- package/dist/adapters/connections/tangle-router-client.js.map +1 -0
- package/dist/adapters/runtime/abortable.d.ts +3 -0
- package/dist/adapters/runtime/abortable.d.ts.map +1 -0
- package/dist/adapters/runtime/abortable.js +12 -0
- package/dist/adapters/runtime/abortable.js.map +1 -0
- package/dist/adapters/runtime/agent-runtime-execution.d.ts +5 -0
- package/dist/adapters/runtime/agent-runtime-execution.d.ts.map +1 -1
- package/dist/adapters/runtime/agent-runtime-execution.js +75 -23
- package/dist/adapters/runtime/agent-runtime-execution.js.map +1 -1
- package/dist/adapters/runtime/cli-bridge-context-transfer.d.ts +13 -0
- package/dist/adapters/runtime/cli-bridge-context-transfer.d.ts.map +1 -0
- package/dist/adapters/runtime/cli-bridge-context-transfer.js +39 -0
- package/dist/adapters/runtime/cli-bridge-context-transfer.js.map +1 -0
- package/dist/adapters/runtime/cli-bridge-retained-execution.d.ts +3 -1
- package/dist/adapters/runtime/cli-bridge-retained-execution.d.ts.map +1 -1
- package/dist/adapters/runtime/cli-bridge-retained-execution.js +4 -0
- package/dist/adapters/runtime/cli-bridge-retained-execution.js.map +1 -1
- package/dist/adapters/runtime/cli-bridge-retained-run.d.ts.map +1 -1
- package/dist/adapters/runtime/cli-bridge-retained-run.js +28 -6
- package/dist/adapters/runtime/cli-bridge-retained-run.js.map +1 -1
- package/dist/adapters/runtime/lazy-execution.d.ts +49 -0
- package/dist/adapters/runtime/lazy-execution.d.ts.map +1 -0
- package/dist/adapters/runtime/lazy-execution.js +111 -0
- package/dist/adapters/runtime/lazy-execution.js.map +1 -0
- package/dist/adapters/runtime/mode-routing-execution.d.ts +27 -3
- package/dist/adapters/runtime/mode-routing-execution.d.ts.map +1 -1
- package/dist/adapters/runtime/mode-routing-execution.js +25 -0
- package/dist/adapters/runtime/mode-routing-execution.js.map +1 -1
- package/dist/adapters/runtime/native-interactive-run-broker.d.ts.map +1 -1
- package/dist/adapters/runtime/native-interactive-run-broker.js +1 -10
- package/dist/adapters/runtime/native-interactive-run-broker.js.map +1 -1
- package/dist/adapters/runtime/prepared-execution.d.ts +2 -2
- package/dist/adapters/runtime/prepared-execution.d.ts.map +1 -1
- package/dist/adapters/runtime/production-backend-common.d.ts +3 -1
- package/dist/adapters/runtime/production-backend-common.d.ts.map +1 -1
- package/dist/adapters/runtime/production-backend-common.js +7 -0
- package/dist/adapters/runtime/production-backend-common.js.map +1 -1
- package/dist/adapters/runtime/production-cli-bridge-backend.d.ts +9 -0
- package/dist/adapters/runtime/production-cli-bridge-backend.d.ts.map +1 -1
- package/dist/adapters/runtime/production-cli-bridge-backend.js +61 -27
- package/dist/adapters/runtime/production-cli-bridge-backend.js.map +1 -1
- package/dist/adapters/runtime/production-tangle-inference-backend.d.ts.map +1 -1
- package/dist/adapters/runtime/production-tangle-inference-backend.js +3 -2
- package/dist/adapters/runtime/production-tangle-inference-backend.js.map +1 -1
- package/dist/adapters/runtime/production-tangle-sandbox-backend.d.ts +8 -2
- package/dist/adapters/runtime/production-tangle-sandbox-backend.d.ts.map +1 -1
- package/dist/adapters/runtime/production-tangle-sandbox-backend.js +78 -12
- package/dist/adapters/runtime/production-tangle-sandbox-backend.js.map +1 -1
- package/dist/adapters/runtime/retained-execution-contract.d.ts +8 -4
- package/dist/adapters/runtime/retained-execution-contract.d.ts.map +1 -1
- package/dist/adapters/runtime/retained-execution-projection.d.ts +5 -5
- package/dist/adapters/runtime/retained-execution-projection.d.ts.map +1 -1
- package/dist/adapters/runtime/retained-execution-projection.js +8 -3
- package/dist/adapters/runtime/retained-execution-projection.js.map +1 -1
- package/dist/adapters/runtime/retained-execution-state.d.ts.map +1 -1
- package/dist/adapters/runtime/retained-execution-state.js +5 -0
- package/dist/adapters/runtime/retained-execution-state.js.map +1 -1
- package/dist/adapters/runtime/retained-execution-stream.d.ts +6 -1
- package/dist/adapters/runtime/retained-execution-stream.d.ts.map +1 -1
- package/dist/adapters/runtime/retained-execution-stream.js +47 -10
- package/dist/adapters/runtime/retained-execution-stream.js.map +1 -1
- package/dist/adapters/runtime/retained-execution.d.ts +24 -0
- package/dist/adapters/runtime/retained-execution.d.ts.map +1 -1
- package/dist/adapters/runtime/retained-execution.js +102 -20
- package/dist/adapters/runtime/retained-execution.js.map +1 -1
- package/dist/adapters/runtime/retained-native-continuation.d.ts +14 -0
- package/dist/adapters/runtime/retained-native-continuation.d.ts.map +1 -0
- package/dist/adapters/runtime/retained-native-continuation.js +110 -0
- package/dist/adapters/runtime/retained-native-continuation.js.map +1 -0
- package/dist/adapters/runtime/supervisor-control.d.ts +39 -11
- package/dist/adapters/runtime/supervisor-control.d.ts.map +1 -1
- package/dist/adapters/runtime/supervisor-control.js +115 -25
- package/dist/adapters/runtime/supervisor-control.js.map +1 -1
- package/dist/adapters/runtime/tangle-retained-execution.d.ts +5 -1
- package/dist/adapters/runtime/tangle-retained-execution.d.ts.map +1 -1
- package/dist/adapters/runtime/tangle-retained-execution.js +8 -1
- package/dist/adapters/runtime/tangle-retained-execution.js.map +1 -1
- package/dist/adapters/runtime/tangle-retained-interactive-contract.d.ts +2 -0
- package/dist/adapters/runtime/tangle-retained-interactive-contract.d.ts.map +1 -1
- package/dist/adapters/runtime/tangle-retained-interactive-contract.js +9 -0
- package/dist/adapters/runtime/tangle-retained-interactive-contract.js.map +1 -1
- package/dist/adapters/runtime/tangle-retained-interactive-execution.d.ts +5 -1
- package/dist/adapters/runtime/tangle-retained-interactive-execution.d.ts.map +1 -1
- package/dist/adapters/runtime/tangle-retained-interactive-execution.js +20 -3
- package/dist/adapters/runtime/tangle-retained-interactive-execution.js.map +1 -1
- package/dist/adapters/runtime/tangle-retained-run.d.ts +4 -2
- package/dist/adapters/runtime/tangle-retained-run.d.ts.map +1 -1
- package/dist/adapters/runtime/tangle-retained-run.js +110 -13
- package/dist/adapters/runtime/tangle-retained-run.js.map +1 -1
- package/dist/adapters/storage/sqlite-crypto.d.ts.map +1 -1
- package/dist/adapters/storage/sqlite-crypto.js +9 -1
- package/dist/adapters/storage/sqlite-crypto.js.map +1 -1
- package/dist/adapters/storage/storage-validation.d.ts +1 -1
- package/dist/adapters/storage/storage-validation.d.ts.map +1 -1
- package/dist/adapters/storage/storage-validation.js +2 -1
- package/dist/adapters/storage/storage-validation.js.map +1 -1
- package/dist/adapters/tui/application-ui-controller.d.ts.map +1 -1
- package/dist/adapters/tui/application-ui-controller.js +38 -5
- package/dist/adapters/tui/application-ui-controller.js.map +1 -1
- package/dist/adapters/tui/ui-capabilities.d.ts +2 -1
- package/dist/adapters/tui/ui-capabilities.d.ts.map +1 -1
- package/dist/adapters/tui/ui-capabilities.js +79 -31
- package/dist/adapters/tui/ui-capabilities.js.map +1 -1
- package/dist/adapters/tui/ui-command-dispatch.d.ts.map +1 -1
- package/dist/adapters/tui/ui-command-dispatch.js +15 -5
- package/dist/adapters/tui/ui-command-dispatch.js.map +1 -1
- package/dist/adapters/tui/ui-conversation-dispatch.d.ts +1 -1
- package/dist/adapters/tui/ui-conversation-dispatch.d.ts.map +1 -1
- package/dist/adapters/tui/ui-conversation-dispatch.js +83 -7
- package/dist/adapters/tui/ui-conversation-dispatch.js.map +1 -1
- package/dist/adapters/tui/ui-core-dispatch.d.ts.map +1 -1
- package/dist/adapters/tui/ui-core-dispatch.js +28 -4
- package/dist/adapters/tui/ui-core-dispatch.js.map +1 -1
- package/dist/adapters/tui/ui-entity-details.d.ts.map +1 -1
- package/dist/adapters/tui/ui-entity-details.js +26 -4
- package/dist/adapters/tui/ui-entity-details.js.map +1 -1
- package/dist/adapters/tui/ui-fixtures.d.ts +1 -1
- package/dist/adapters/tui/ui-fixtures.d.ts.map +1 -1
- package/dist/adapters/tui/ui-fixtures.js +41 -11
- package/dist/adapters/tui/ui-fixtures.js.map +1 -1
- package/dist/adapters/tui/ui-headless-dispatch.d.ts.map +1 -1
- package/dist/adapters/tui/ui-headless-dispatch.js +25 -7
- package/dist/adapters/tui/ui-headless-dispatch.js.map +1 -1
- package/dist/adapters/tui/ui-intelligence-dispatch.d.ts +2 -0
- package/dist/adapters/tui/ui-intelligence-dispatch.d.ts.map +1 -1
- package/dist/adapters/tui/ui-intelligence-dispatch.js +124 -26
- package/dist/adapters/tui/ui-intelligence-dispatch.js.map +1 -1
- package/dist/adapters/tui/ui-projection.d.ts +4 -2
- package/dist/adapters/tui/ui-projection.d.ts.map +1 -1
- package/dist/adapters/tui/ui-projection.js +94 -26
- package/dist/adapters/tui/ui-projection.js.map +1 -1
- package/dist/adapters/tui/ui-semantic-state.d.ts.map +1 -1
- package/dist/adapters/tui/ui-semantic-state.js +78 -21
- package/dist/adapters/tui/ui-semantic-state.js.map +1 -1
- package/dist/adapters/tui/ui-view-model.d.ts +1 -1
- package/dist/adapters/tui/ui-view-model.d.ts.map +1 -1
- package/dist/adapters/tui/ui-view-model.js +48 -6
- package/dist/adapters/tui/ui-view-model.js.map +1 -1
- package/dist/app/analysis-lifecycle.d.ts +3 -1
- package/dist/app/analysis-lifecycle.d.ts.map +1 -1
- package/dist/app/analysis-lifecycle.js +64 -2
- package/dist/app/analysis-lifecycle.js.map +1 -1
- package/dist/app/analysis-service.d.ts.map +1 -1
- package/dist/app/analysis-service.js +3 -2
- package/dist/app/analysis-service.js.map +1 -1
- package/dist/app/analysis-types.d.ts +2 -1
- package/dist/app/analysis-types.d.ts.map +1 -1
- package/dist/app/analysis-types.js.map +1 -1
- package/dist/app/application-interaction-actions.d.ts +6 -1
- package/dist/app/application-interaction-actions.d.ts.map +1 -1
- package/dist/app/application-interaction-actions.js +23 -9
- package/dist/app/application-interaction-actions.js.map +1 -1
- package/dist/app/application-lifecycle.d.ts +1 -0
- package/dist/app/application-lifecycle.d.ts.map +1 -1
- package/dist/app/application-lifecycle.js +2 -1
- package/dist/app/application-lifecycle.js.map +1 -1
- package/dist/app/application-options.d.ts +3 -1
- package/dist/app/application-options.d.ts.map +1 -1
- package/dist/app/application-port-builder.d.ts +1 -0
- package/dist/app/application-port-builder.d.ts.map +1 -1
- package/dist/app/application-port-builder.js +10 -1
- package/dist/app/application-port-builder.js.map +1 -1
- package/dist/app/application-port-runtime.d.ts +1 -0
- package/dist/app/application-port-runtime.d.ts.map +1 -1
- package/dist/app/application-port-runtime.js +1 -0
- package/dist/app/application-port-runtime.js.map +1 -1
- package/dist/app/application-ports.d.ts +18 -4
- package/dist/app/application-ports.d.ts.map +1 -1
- package/dist/app/application-runtime-wiring.d.ts.map +1 -1
- package/dist/app/application-runtime-wiring.js +23 -1
- package/dist/app/application-runtime-wiring.js.map +1 -1
- package/dist/app/application-support.d.ts +2 -1
- package/dist/app/application-support.d.ts.map +1 -1
- package/dist/app/application-support.js +29 -8
- package/dist/app/application-support.js.map +1 -1
- package/dist/app/application-transition.d.ts.map +1 -1
- package/dist/app/application-transition.js +9 -6
- package/dist/app/application-transition.js.map +1 -1
- package/dist/app/application-types.d.ts +6 -0
- package/dist/app/application-types.d.ts.map +1 -1
- package/dist/app/application.d.ts +7 -2
- package/dist/app/application.d.ts.map +1 -1
- package/dist/app/application.js +121 -12
- package/dist/app/application.js.map +1 -1
- package/dist/app/automation-actions.d.ts +7 -2
- package/dist/app/automation-actions.d.ts.map +1 -1
- package/dist/app/automation-actions.js +24 -19
- package/dist/app/automation-actions.js.map +1 -1
- package/dist/app/composition-options.d.ts +27 -0
- package/dist/app/composition-options.d.ts.map +1 -0
- package/dist/app/composition-options.js +2 -0
- package/dist/app/composition-options.js.map +1 -0
- package/dist/app/composition.d.ts +4 -58
- package/dist/app/composition.d.ts.map +1 -1
- package/dist/app/composition.js +14 -108
- package/dist/app/composition.js.map +1 -1
- package/dist/app/confidential-workspace-fork.d.ts +7 -0
- package/dist/app/confidential-workspace-fork.d.ts.map +1 -0
- package/dist/app/confidential-workspace-fork.js +26 -0
- package/dist/app/confidential-workspace-fork.js.map +1 -0
- package/dist/app/configuration-session.d.ts +9 -3
- package/dist/app/configuration-session.d.ts.map +1 -1
- package/dist/app/configuration-session.js +44 -2
- package/dist/app/configuration-session.js.map +1 -1
- package/dist/app/connection-errors.d.ts +1 -1
- package/dist/app/connection-errors.d.ts.map +1 -1
- package/dist/app/connection-errors.js.map +1 -1
- package/dist/app/connections.d.ts.map +1 -1
- package/dist/app/connections.js +21 -0
- package/dist/app/connections.js.map +1 -1
- package/dist/app/conversation-branch-effects.d.ts +12 -0
- package/dist/app/conversation-branch-effects.d.ts.map +1 -0
- package/dist/app/conversation-branch-effects.js +820 -0
- package/dist/app/conversation-branch-effects.js.map +1 -0
- package/dist/app/conversation-branches.d.ts +1 -0
- package/dist/app/conversation-branches.d.ts.map +1 -1
- package/dist/app/conversation-branches.js +171 -26
- package/dist/app/conversation-branches.js.map +1 -1
- package/dist/app/conversation-composition.d.ts +4 -0
- package/dist/app/conversation-composition.d.ts.map +1 -1
- package/dist/app/conversation-composition.js +3 -0
- package/dist/app/conversation-composition.js.map +1 -1
- package/dist/app/conversation-context.d.ts +17 -0
- package/dist/app/conversation-context.d.ts.map +1 -1
- package/dist/app/conversation-context.js +299 -0
- package/dist/app/conversation-context.js.map +1 -1
- package/dist/app/conversation-import-builder.d.ts.map +1 -1
- package/dist/app/conversation-import-builder.js +1 -2
- package/dist/app/conversation-import-builder.js.map +1 -1
- package/dist/app/conversation-lifecycle.d.ts.map +1 -1
- package/dist/app/conversation-lifecycle.js +1 -3
- package/dist/app/conversation-lifecycle.js.map +1 -1
- package/dist/app/conversation-support.d.ts +0 -1
- package/dist/app/conversation-support.d.ts.map +1 -1
- package/dist/app/conversation-support.js +0 -5
- package/dist/app/conversation-support.js.map +1 -1
- package/dist/app/conversation-types.d.ts +36 -3
- package/dist/app/conversation-types.d.ts.map +1 -1
- package/dist/app/conversations.d.ts +1 -1
- package/dist/app/conversations.d.ts.map +1 -1
- package/dist/app/default-profiles.d.ts +4 -0
- package/dist/app/default-profiles.d.ts.map +1 -0
- package/dist/app/default-profiles.js +16 -0
- package/dist/app/default-profiles.js.map +1 -0
- package/dist/app/durable-send.d.ts +1 -1
- package/dist/app/durable-send.d.ts.map +1 -1
- package/dist/app/durable-send.js +18 -11
- package/dist/app/durable-send.js.map +1 -1
- package/dist/app/interaction-controller.d.ts.map +1 -1
- package/dist/app/interaction-controller.js +78 -39
- package/dist/app/interaction-controller.js.map +1 -1
- package/dist/app/interaction-response-replay.d.ts +9 -2
- package/dist/app/interaction-response-replay.d.ts.map +1 -1
- package/dist/app/interaction-response-replay.js +11 -4
- package/dist/app/interaction-response-replay.js.map +1 -1
- package/dist/app/legacy-cancel.js +1 -1
- package/dist/app/legacy-cancel.js.map +1 -1
- package/dist/app/production-composition.d.ts +6 -1
- package/dist/app/production-composition.d.ts.map +1 -1
- package/dist/app/production-composition.js +77 -4
- package/dist/app/production-composition.js.map +1 -1
- package/dist/app/profile-selection.d.ts.map +1 -1
- package/dist/app/profile-selection.js +12 -2
- package/dist/app/profile-selection.js.map +1 -1
- package/dist/app/provider-values.d.ts.map +1 -1
- package/dist/app/provider-values.js +16 -3
- package/dist/app/provider-values.js.map +1 -1
- package/dist/app/run-admission-context.d.ts +3 -0
- package/dist/app/run-admission-context.d.ts.map +1 -0
- package/dist/app/run-admission-context.js +74 -0
- package/dist/app/run-admission-context.js.map +1 -0
- package/dist/app/run-admission-continuation.d.ts +1 -0
- package/dist/app/run-admission-continuation.d.ts.map +1 -1
- package/dist/app/run-admission-continuation.js +26 -14
- package/dist/app/run-admission-continuation.js.map +1 -1
- package/dist/app/run-admission-dispatch.d.ts.map +1 -1
- package/dist/app/run-admission-dispatch.js +60 -16
- package/dist/app/run-admission-dispatch.js.map +1 -1
- package/dist/app/run-admission-receipt.d.ts.map +1 -1
- package/dist/app/run-admission-receipt.js +8 -2
- package/dist/app/run-admission-receipt.js.map +1 -1
- package/dist/app/run-admission-request.d.ts.map +1 -1
- package/dist/app/run-admission-request.js +19 -0
- package/dist/app/run-admission-request.js.map +1 -1
- package/dist/app/run-admission-validation.d.ts +3 -3
- package/dist/app/run-admission-validation.d.ts.map +1 -1
- package/dist/app/run-admission-validation.js +33 -30
- package/dist/app/run-admission-validation.js.map +1 -1
- package/dist/app/run-continuation.d.ts +10 -7
- package/dist/app/run-continuation.d.ts.map +1 -1
- package/dist/app/run-continuation.js +31 -17
- package/dist/app/run-continuation.js.map +1 -1
- package/dist/app/run-controls.d.ts.map +1 -1
- package/dist/app/run-controls.js +21 -13
- package/dist/app/run-controls.js.map +1 -1
- package/dist/app/run-event-mapper.d.ts +7 -1
- package/dist/app/run-event-mapper.d.ts.map +1 -1
- package/dist/app/run-event-mapper.js +31 -15
- package/dist/app/run-event-mapper.js.map +1 -1
- package/dist/app/run-execution-snapshot.d.ts +8 -2
- package/dist/app/run-execution-snapshot.d.ts.map +1 -1
- package/dist/app/run-execution-snapshot.js +13 -1
- package/dist/app/run-execution-snapshot.js.map +1 -1
- package/dist/app/run-execution.d.ts.map +1 -1
- package/dist/app/run-execution.js +78 -12
- package/dist/app/run-execution.js.map +1 -1
- package/dist/app/run-final-recovery.d.ts +34 -0
- package/dist/app/run-final-recovery.d.ts.map +1 -0
- package/dist/app/run-final-recovery.js +132 -0
- package/dist/app/run-final-recovery.js.map +1 -0
- package/dist/app/run-ingestion.js +26 -7
- package/dist/app/run-ingestion.js.map +1 -1
- package/dist/app/run-ledger.d.ts +1 -1
- package/dist/app/run-ledger.d.ts.map +1 -1
- package/dist/app/run-ledger.js +2 -4
- package/dist/app/run-ledger.js.map +1 -1
- package/dist/app/run-recovery-context.d.ts.map +1 -1
- package/dist/app/run-recovery-context.js +8 -1
- package/dist/app/run-recovery-context.js.map +1 -1
- package/dist/app/run-replay.d.ts +5 -2
- package/dist/app/run-replay.d.ts.map +1 -1
- package/dist/app/run-replay.js +23 -7
- package/dist/app/run-replay.js.map +1 -1
- package/dist/app/run-status.d.ts +9 -1
- package/dist/app/run-status.d.ts.map +1 -1
- package/dist/app/run-status.js +61 -10
- package/dist/app/run-status.js.map +1 -1
- package/dist/app/run-stream-sanitizer.d.ts +21 -0
- package/dist/app/run-stream-sanitizer.d.ts.map +1 -0
- package/dist/app/run-stream-sanitizer.js +73 -0
- package/dist/app/run-stream-sanitizer.js.map +1 -0
- package/dist/app/shutdown-controller.d.ts +1 -1
- package/dist/app/shutdown-controller.d.ts.map +1 -1
- package/dist/app/shutdown-controller.js +25 -15
- package/dist/app/shutdown-controller.js.map +1 -1
- package/dist/app/storage-journal-support.d.ts +1 -1
- package/dist/app/storage-journal-support.d.ts.map +1 -1
- package/dist/app/storage-journal-support.js +8 -2
- package/dist/app/storage-journal-support.js.map +1 -1
- package/dist/app/supervisor-projection.d.ts +8 -0
- package/dist/app/supervisor-projection.d.ts.map +1 -1
- package/dist/app/supervisor-projection.js +14 -0
- package/dist/app/supervisor-projection.js.map +1 -1
- package/dist/app/supervisor-service.d.ts +6 -5
- package/dist/app/supervisor-service.d.ts.map +1 -1
- package/dist/app/supervisor-service.js +10 -6
- package/dist/app/supervisor-service.js.map +1 -1
- package/dist/app/workspace-request.d.ts +3 -0
- package/dist/app/workspace-request.d.ts.map +1 -0
- package/dist/app/workspace-request.js +2 -0
- package/dist/app/workspace-request.js.map +1 -0
- package/dist/bin/args.d.ts +1 -1
- package/dist/bin/args.d.ts.map +1 -1
- package/dist/bin/args.js +4 -2
- package/dist/bin/args.js.map +1 -1
- package/dist/bin/braid-runtime.d.ts.map +1 -1
- package/dist/bin/braid-runtime.js +3 -17
- package/dist/bin/braid-runtime.js.map +1 -1
- package/dist/bin/fixture-application.d.ts +9 -0
- package/dist/bin/fixture-application.d.ts.map +1 -0
- package/dist/bin/fixture-application.js +36 -0
- package/dist/bin/fixture-application.js.map +1 -0
- package/dist/bin/interface-runner.d.ts.map +1 -1
- package/dist/bin/interface-runner.js +3 -0
- package/dist/bin/interface-runner.js.map +1 -1
- package/dist/bin/interface-state-recorder.d.ts.map +1 -1
- package/dist/bin/interface-state-recorder.js +6 -2
- package/dist/bin/interface-state-recorder.js.map +1 -1
- package/dist/bin/native-interactive-actions.d.ts +1 -1
- package/dist/bin/native-interactive-actions.d.ts.map +1 -1
- package/dist/bin/native-interactive-actions.js +123 -24
- package/dist/bin/native-interactive-actions.js.map +1 -1
- package/dist/bin/production-application.d.ts.map +1 -1
- package/dist/bin/production-application.js +3 -0
- package/dist/bin/production-application.js.map +1 -1
- package/dist/bin/production-setup-credentials.d.ts.map +1 -1
- package/dist/bin/production-setup-credentials.js +6 -2
- package/dist/bin/production-setup-credentials.js.map +1 -1
- package/dist/bin/production-setup-discovery.d.ts.map +1 -1
- package/dist/bin/production-setup-discovery.js +3 -0
- package/dist/bin/production-setup-discovery.js.map +1 -1
- package/dist/bin/production-setup-persistence.d.ts.map +1 -1
- package/dist/bin/production-setup-persistence.js +4 -0
- package/dist/bin/production-setup-persistence.js.map +1 -1
- package/dist/bin/production-setup-types.d.ts +5 -0
- package/dist/bin/production-setup-types.d.ts.map +1 -1
- package/dist/bin/production-setup-validation.d.ts.map +1 -1
- package/dist/bin/production-setup-validation.js +19 -1
- package/dist/bin/production-setup-validation.js.map +1 -1
- package/dist/bin/production-startup.d.ts +2 -0
- package/dist/bin/production-startup.d.ts.map +1 -1
- package/dist/bin/production-startup.js +19 -0
- package/dist/bin/production-startup.js.map +1 -1
- package/dist/domain/bounded-structured.d.ts.map +1 -1
- package/dist/domain/bounded-structured.js +19 -0
- package/dist/domain/bounded-structured.js.map +1 -1
- package/dist/domain/connection-removal.d.ts +1 -1
- package/dist/domain/connection-removal.d.ts.map +1 -1
- package/dist/domain/connection-removal.js +3 -2
- package/dist/domain/connection-removal.js.map +1 -1
- package/dist/domain/entities-core.d.ts +19 -1
- package/dist/domain/entities-core.d.ts.map +1 -1
- package/dist/domain/entities-core.js +2 -0
- package/dist/domain/entities-core.js.map +1 -1
- package/dist/domain/entities-interactions.d.ts +9 -0
- package/dist/domain/entities-interactions.d.ts.map +1 -1
- package/dist/domain/events-legacy.d.ts +5 -0
- package/dist/domain/events-legacy.d.ts.map +1 -1
- package/dist/domain/events.d.ts +15 -0
- package/dist/domain/events.d.ts.map +1 -1
- package/dist/domain/events.js +13 -2
- package/dist/domain/events.js.map +1 -1
- package/dist/domain/interaction-identity.d.ts +4 -0
- package/dist/domain/interaction-identity.d.ts.map +1 -0
- package/dist/domain/interaction-identity.js +7 -0
- package/dist/domain/interaction-identity.js.map +1 -0
- package/dist/domain/invariants-base.d.ts +7 -0
- package/dist/domain/invariants-base.d.ts.map +1 -1
- package/dist/domain/invariants-base.js +106 -0
- package/dist/domain/invariants-base.js.map +1 -1
- package/dist/domain/invariants-profile.d.ts.map +1 -1
- package/dist/domain/invariants-profile.js +73 -1
- package/dist/domain/invariants-profile.js.map +1 -1
- package/dist/domain/invariants-retained-admission.d.ts +1 -0
- package/dist/domain/invariants-retained-admission.d.ts.map +1 -1
- package/dist/domain/invariants-retained-admission.js +12 -1
- package/dist/domain/invariants-retained-admission.js.map +1 -1
- package/dist/domain/invariants-run.d.ts.map +1 -1
- package/dist/domain/invariants-run.js +32 -4
- package/dist/domain/invariants-run.js.map +1 -1
- package/dist/domain/invariants-state.d.ts +1 -1
- package/dist/domain/invariants-state.d.ts.map +1 -1
- package/dist/domain/invariants-state.js +26 -0
- package/dist/domain/invariants-state.js.map +1 -1
- package/dist/domain/legacy-interaction-snapshot.d.ts.map +1 -1
- package/dist/domain/legacy-interaction-snapshot.js +95 -29
- package/dist/domain/legacy-interaction-snapshot.js.map +1 -1
- package/dist/domain/materialized-state-snapshot.d.ts.map +1 -1
- package/dist/domain/materialized-state-snapshot.js +33 -4
- package/dist/domain/materialized-state-snapshot.js.map +1 -1
- package/dist/domain/materialized-state.d.ts +5 -0
- package/dist/domain/materialized-state.d.ts.map +1 -1
- package/dist/domain/receipts.d.ts +3 -0
- package/dist/domain/receipts.d.ts.map +1 -1
- package/dist/domain/receipts.js +6 -0
- package/dist/domain/receipts.js.map +1 -1
- package/dist/domain/redaction.d.ts +1 -0
- package/dist/domain/redaction.d.ts.map +1 -1
- package/dist/domain/redaction.js +43 -2
- package/dist/domain/redaction.js.map +1 -1
- package/dist/domain/reducer-conversation-events.d.ts +1 -1
- package/dist/domain/reducer-conversation-events.d.ts.map +1 -1
- package/dist/domain/reducer-conversation-events.js +9 -6
- package/dist/domain/reducer-conversation-events.js.map +1 -1
- package/dist/domain/reducer-domain-events.d.ts +1 -1
- package/dist/domain/reducer-domain-events.d.ts.map +1 -1
- package/dist/domain/reducer-domain-events.js +30 -0
- package/dist/domain/reducer-domain-events.js.map +1 -1
- package/dist/domain/reducer-helpers.d.ts +6 -3
- package/dist/domain/reducer-helpers.d.ts.map +1 -1
- package/dist/domain/reducer-helpers.js +9 -9
- package/dist/domain/reducer-helpers.js.map +1 -1
- package/dist/domain/reducer-interactions.d.ts.map +1 -1
- package/dist/domain/reducer-interactions.js +31 -16
- package/dist/domain/reducer-interactions.js.map +1 -1
- package/dist/domain/reducer-legacy.d.ts +1 -1
- package/dist/domain/reducer-legacy.d.ts.map +1 -1
- package/dist/domain/reducer-legacy.js +8 -4
- package/dist/domain/reducer-legacy.js.map +1 -1
- package/dist/domain/reducer-lifecycle.d.ts +1 -1
- package/dist/domain/reducer-lifecycle.d.ts.map +1 -1
- package/dist/domain/reducer-lifecycle.js +35 -30
- package/dist/domain/reducer-lifecycle.js.map +1 -1
- package/dist/domain/reducer-replay.d.ts.map +1 -1
- package/dist/domain/reducer-replay.js +4 -4
- package/dist/domain/reducer-replay.js.map +1 -1
- package/dist/domain/reducer-run-graph.d.ts.map +1 -1
- package/dist/domain/reducer-run-graph.js +2 -1
- package/dist/domain/reducer-run-graph.js.map +1 -1
- package/dist/domain/reducer-runtime.d.ts.map +1 -1
- package/dist/domain/reducer-runtime.js +22 -11
- package/dist/domain/reducer-runtime.js.map +1 -1
- package/dist/domain/reducer-support.js +1 -1
- package/dist/domain/reducer-support.js.map +1 -1
- package/dist/domain/run-contracts.d.ts +5 -9
- package/dist/domain/run-contracts.d.ts.map +1 -1
- package/dist/domain/runtime-projection.d.ts +5 -0
- package/dist/domain/runtime-projection.d.ts.map +1 -1
- package/dist/domain/runtime-projection.js.map +1 -1
- package/dist/domain/secret-sanitizer.d.ts +14 -0
- package/dist/domain/secret-sanitizer.d.ts.map +1 -1
- package/dist/domain/secret-sanitizer.js +93 -11
- package/dist/domain/secret-sanitizer.js.map +1 -1
- package/dist/domain/state.d.ts +23 -1
- package/dist/domain/state.d.ts.map +1 -1
- package/dist/domain/state.js +60 -0
- package/dist/domain/state.js.map +1 -1
- package/dist/domain/terminal-sanitizer.d.ts +1 -0
- package/dist/domain/terminal-sanitizer.d.ts.map +1 -1
- package/dist/domain/terminal-sanitizer.js +35 -10
- package/dist/domain/terminal-sanitizer.js.map +1 -1
- package/dist/domain/workspace-request.d.ts +11 -0
- package/dist/domain/workspace-request.d.ts.map +1 -0
- package/dist/domain/workspace-request.js +86 -0
- package/dist/domain/workspace-request.js.map +1 -0
- package/dist/eval/execution.d.ts +1 -1
- package/dist/eval/execution.d.ts.map +1 -1
- package/dist/eval/execution.js +6 -2
- package/dist/eval/execution.js.map +1 -1
- package/dist/eval/product-path.d.ts.map +1 -1
- package/dist/eval/product-path.js +4 -2
- package/dist/eval/product-path.js.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/ports/execution.d.ts +44 -6
- package/dist/ports/execution.d.ts.map +1 -1
- package/dist/ports/execution.js +10 -0
- package/dist/ports/execution.js.map +1 -1
- package/dist/startup/durable-runtime.d.ts +36 -1
- package/dist/startup/durable-runtime.d.ts.map +1 -1
- package/dist/startup/durable-runtime.js +135 -1
- package/dist/startup/durable-runtime.js.map +1 -1
- package/dist/testing/supervision-fixture.d.ts +32 -0
- package/dist/testing/supervision-fixture.d.ts.map +1 -0
- package/dist/testing/supervision-fixture.js +115 -0
- package/dist/testing/supervision-fixture.js.map +1 -0
- package/dist/testing/supervision-ui-fixture.d.ts +4 -0
- package/dist/testing/supervision-ui-fixture.d.ts.map +1 -0
- package/dist/testing/supervision-ui-fixture.js +74 -0
- package/dist/testing/supervision-ui-fixture.js.map +1 -0
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +3 -1
- package/dist/version.js.map +1 -1
- package/dist/views/headless/protocol.d.ts +1 -1
- package/dist/views/headless/protocol.d.ts.map +1 -1
- package/dist/views/headless/rpc-parser.d.ts.map +1 -1
- package/dist/views/headless/rpc-parser.js +57 -5
- package/dist/views/headless/rpc-parser.js.map +1 -1
- package/dist/views/headless/rpc.d.ts.map +1 -1
- package/dist/views/headless/rpc.js +28 -14
- package/dist/views/headless/rpc.js.map +1 -1
- package/dist/views/shared/analysis-presentation.d.ts.map +1 -1
- package/dist/views/shared/analysis-presentation.js +42 -4
- package/dist/views/shared/analysis-presentation.js.map +1 -1
- package/dist/views/shared/command-registry.js +5 -5
- package/dist/views/shared/command-registry.js.map +1 -1
- package/dist/views/shared/duration.d.ts.map +1 -1
- package/dist/views/shared/duration.js +3 -1
- package/dist/views/shared/duration.js.map +1 -1
- package/dist/views/shared/headless-commands.d.ts +1 -1
- package/dist/views/shared/headless-commands.d.ts.map +1 -1
- package/dist/views/shared/headless-commands.js +13 -2
- package/dist/views/shared/headless-commands.js.map +1 -1
- package/dist/views/shared/intents.d.ts +6 -0
- package/dist/views/shared/intents.d.ts.map +1 -1
- package/dist/views/shared/models.d.ts +54 -0
- package/dist/views/shared/models.d.ts.map +1 -1
- package/dist/views/shared/models.js.map +1 -1
- package/dist/views/shared/native-interactive-actions.d.ts +19 -0
- package/dist/views/shared/native-interactive-actions.d.ts.map +1 -1
- package/dist/views/shared/run-selection.d.ts +11 -0
- package/dist/views/shared/run-selection.d.ts.map +1 -0
- package/dist/views/shared/run-selection.js +26 -0
- package/dist/views/shared/run-selection.js.map +1 -0
- package/dist/views/shared/semantic-activity.d.ts.map +1 -1
- package/dist/views/shared/semantic-activity.js +4 -1
- package/dist/views/shared/semantic-activity.js.map +1 -1
- package/dist/views/shared/semantic-projection.d.ts.map +1 -1
- package/dist/views/shared/semantic-projection.js +146 -1
- package/dist/views/shared/semantic-projection.js.map +1 -1
- package/dist/views/tui/activity-browser.d.ts +6 -2
- package/dist/views/tui/activity-browser.d.ts.map +1 -1
- package/dist/views/tui/activity-browser.js +50 -5
- package/dist/views/tui/activity-browser.js.map +1 -1
- package/dist/views/tui/command-palette.d.ts.map +1 -1
- package/dist/views/tui/command-palette.js +1 -0
- package/dist/views/tui/command-palette.js.map +1 -1
- package/dist/views/tui/configuration-wizard-presentation.d.ts +2 -1
- package/dist/views/tui/configuration-wizard-presentation.d.ts.map +1 -1
- package/dist/views/tui/configuration-wizard-presentation.js +45 -4
- package/dist/views/tui/configuration-wizard-presentation.js.map +1 -1
- package/dist/views/tui/configuration-wizard.d.ts.map +1 -1
- package/dist/views/tui/configuration-wizard.js +60 -65
- package/dist/views/tui/configuration-wizard.js.map +1 -1
- package/dist/views/tui/conversation-overlay-actions.d.ts.map +1 -1
- package/dist/views/tui/conversation-overlay-actions.js +8 -0
- package/dist/views/tui/conversation-overlay-actions.js.map +1 -1
- package/dist/views/tui/conversation-overlay-helpers.d.ts +0 -1
- package/dist/views/tui/conversation-overlay-helpers.d.ts.map +1 -1
- package/dist/views/tui/conversation-overlay-helpers.js +2 -5
- package/dist/views/tui/conversation-overlay-helpers.js.map +1 -1
- package/dist/views/tui/entity-browser-layout.js +9 -4
- package/dist/views/tui/entity-browser-layout.js.map +1 -1
- package/dist/views/tui/entity-browser.d.ts +2 -0
- package/dist/views/tui/entity-browser.d.ts.map +1 -1
- package/dist/views/tui/entity-browser.js +5 -0
- package/dist/views/tui/entity-browser.js.map +1 -1
- package/dist/views/tui/execution-target.d.ts.map +1 -1
- package/dist/views/tui/execution-target.js +6 -3
- package/dist/views/tui/execution-target.js.map +1 -1
- package/dist/views/tui/fork-preview.d.ts.map +1 -1
- package/dist/views/tui/fork-preview.js +10 -0
- package/dist/views/tui/fork-preview.js.map +1 -1
- package/dist/views/tui/profile-compatibility.js +2 -2
- package/dist/views/tui/profile-compatibility.js.map +1 -1
- package/dist/views/tui/selector.d.ts +10 -0
- package/dist/views/tui/selector.d.ts.map +1 -1
- package/dist/views/tui/selector.js +61 -2
- package/dist/views/tui/selector.js.map +1 -1
- package/dist/views/tui/setup-stage-rendering.d.ts +23 -0
- package/dist/views/tui/setup-stage-rendering.d.ts.map +1 -0
- package/dist/views/tui/setup-stage-rendering.js +60 -0
- package/dist/views/tui/setup-stage-rendering.js.map +1 -0
- package/dist/views/tui/supervisor-actions.d.ts +19 -0
- package/dist/views/tui/supervisor-actions.d.ts.map +1 -0
- package/dist/views/tui/supervisor-actions.js +59 -0
- package/dist/views/tui/supervisor-actions.js.map +1 -0
- package/dist/views/tui/terminal-app.d.ts.map +1 -1
- package/dist/views/tui/terminal-app.js +3 -0
- package/dist/views/tui/terminal-app.js.map +1 -1
- package/dist/views/tui/terminal-chrome.d.ts +1 -1
- package/dist/views/tui/terminal-chrome.d.ts.map +1 -1
- package/dist/views/tui/terminal-chrome.js +54 -4
- package/dist/views/tui/terminal-chrome.js.map +1 -1
- package/dist/views/tui/terminal-command-controller.d.ts.map +1 -1
- package/dist/views/tui/terminal-command-controller.js +10 -5
- package/dist/views/tui/terminal-command-controller.js.map +1 -1
- package/dist/views/tui/terminal-identity.js +1 -1
- package/dist/views/tui/terminal-identity.js.map +1 -1
- package/dist/views/tui/terminal-input-controller.d.ts.map +1 -1
- package/dist/views/tui/terminal-input-controller.js +26 -4
- package/dist/views/tui/terminal-input-controller.js.map +1 -1
- package/dist/views/tui/terminal-overlays.d.ts +2 -0
- package/dist/views/tui/terminal-overlays.d.ts.map +1 -1
- package/dist/views/tui/terminal-overlays.js +15 -0
- package/dist/views/tui/terminal-overlays.js.map +1 -1
- package/dist/views/tui/terminal-surface-overlays.d.ts +4 -0
- package/dist/views/tui/terminal-surface-overlays.d.ts.map +1 -1
- package/dist/views/tui/terminal-surface-overlays.js +243 -1
- package/dist/views/tui/terminal-surface-overlays.js.map +1 -1
- package/dist/views/tui/workspace-request-form.d.ts +19 -0
- package/dist/views/tui/workspace-request-form.d.ts.map +1 -0
- package/dist/views/tui/workspace-request-form.js +204 -0
- package/dist/views/tui/workspace-request-form.js.map +1 -0
- package/dist/views/tui/workspace-request-presentation.d.ts +4 -0
- package/dist/views/tui/workspace-request-presentation.d.ts.map +1 -0
- package/dist/views/tui/workspace-request-presentation.js +39 -0
- package/dist/views/tui/workspace-request-presentation.js.map +1 -0
- package/dist/views/tui/workspace-request-workflow.d.ts +17 -0
- package/dist/views/tui/workspace-request-workflow.d.ts.map +1 -0
- package/dist/views/tui/workspace-request-workflow.js +27 -0
- package/dist/views/tui/workspace-request-workflow.js.map +1 -0
- package/package.json +20 -13
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
import { createHash, X509Certificate } from 'node:crypto';
|
|
2
|
+
import { confidentialExecutionVerified, sha256Bytes } from '@tangle-network/agent-interface';
|
|
3
|
+
import { decodeTangleConfidentialAttestationQuote, encodeTangleConfidentialAttestationQuote, } from '@tangle-network/agent-provider-tangle';
|
|
4
|
+
import { createNitroHardwareVerifier, normalizeTeeType, parseNitroAttestationDocument, toHex, verifyAttestation, } from '@tangle-network/tcloud-attestation';
|
|
5
|
+
import { MAX_CONFIDENTIAL_ATTESTATION_MAX_AGE_SECONDS, MIN_CONFIDENTIAL_ATTESTATION_MAX_AGE_SECONDS, } from '../../domain/entities-core.js';
|
|
6
|
+
import { AWS_NITRO_ENCLAVES_ROOT_G1_PEM, AWS_NITRO_ENCLAVES_ROOT_G1_SHA256, } from './aws-nitro-root-g1.js';
|
|
7
|
+
const MAX_MEASUREMENT_BYTES = 48;
|
|
8
|
+
const MIN_NONCE_HEX_CHARS = 64;
|
|
9
|
+
const MAX_NONCE_HEX_CHARS = 128;
|
|
10
|
+
const MAX_NITRO_TIMESTAMP_SKEW_SECONDS = 60;
|
|
11
|
+
const POLICY_ID_PATTERN = /^[A-Za-z][A-Za-z0-9._:-]{0,255}$/u;
|
|
12
|
+
const SHA256_DIGEST_PATTERN = /^sha256:[0-9a-f]{64}$/u;
|
|
13
|
+
/**
|
|
14
|
+
* Build the one Nitro trust path used for provider admission and replay.
|
|
15
|
+
*
|
|
16
|
+
* The root is pinned before any verifier callback is returned. The callback
|
|
17
|
+
* never accepts a missing policy, an unverified quote, or a copied signature.
|
|
18
|
+
*/
|
|
19
|
+
export function createNitroConfidentialAttestationVerifiers(policy, options = {}) {
|
|
20
|
+
const normalizedPolicy = normalizeNitroConfidentialAttestationTrustPolicy(policy);
|
|
21
|
+
const root = assertOfficialNitroRoot();
|
|
22
|
+
const nowSeconds = options.now ?? (() => Math.floor(Date.now() / 1000));
|
|
23
|
+
const verifyEvidence = (report, attestation, expected) => {
|
|
24
|
+
if (!canonicalBindingsMatch(attestation, expected))
|
|
25
|
+
return null;
|
|
26
|
+
if (!normalizedPolicy.acceptedPolicyIds.includes(attestation.policy))
|
|
27
|
+
return null;
|
|
28
|
+
if (!isCanonicalNonce(attestation.nonce))
|
|
29
|
+
return null;
|
|
30
|
+
const measurement = sha256Bytes(Uint8Array.from(report.measurement));
|
|
31
|
+
if (measurement !== attestation.measurement ||
|
|
32
|
+
!normalizedPolicy.acceptedMeasurements.includes(measurement)) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
if (attestation.verifiedAt !== verifiedAtFor(report.timestamp))
|
|
36
|
+
return null;
|
|
37
|
+
let document;
|
|
38
|
+
try {
|
|
39
|
+
document = parseNitroAttestationDocument(Uint8Array.from(report.evidence));
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
if (document.nonce === undefined ||
|
|
45
|
+
toHex(document.nonce) !== attestation.nonce ||
|
|
46
|
+
document.certificate.length === 0 ||
|
|
47
|
+
document.signature.length === 0) {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
const now = nowSeconds();
|
|
51
|
+
if (!Number.isSafeInteger(now) || now < 0)
|
|
52
|
+
return null;
|
|
53
|
+
const signedTimestamp = Math.floor(document.timestamp / 1000);
|
|
54
|
+
const signedMaxAge = normalizedPolicy.maxAgeSeconds;
|
|
55
|
+
const signedMaxFutureSkew = MAX_NITRO_TIMESTAMP_SKEW_SECONDS;
|
|
56
|
+
if (!Number.isSafeInteger(signedTimestamp) ||
|
|
57
|
+
signedTimestamp > now + signedMaxFutureSkew ||
|
|
58
|
+
now - signedTimestamp > signedMaxAge) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
const result = verifyAttestation({
|
|
62
|
+
tee_type: report.tee_type,
|
|
63
|
+
evidence: [...report.evidence],
|
|
64
|
+
measurement: [...report.measurement],
|
|
65
|
+
timestamp: report.timestamp,
|
|
66
|
+
}, {
|
|
67
|
+
acceptedTeeTypes: ['nitro'],
|
|
68
|
+
acceptedMeasurements: [toHex(Uint8Array.from(report.measurement))],
|
|
69
|
+
maxAgeSeconds: normalizedPolicy.maxAgeSeconds,
|
|
70
|
+
now,
|
|
71
|
+
// Do not pass expectedNonce. tcloud-attestation pads string nonces to
|
|
72
|
+
// 64 bytes, while AWS Nitro preserves the caller's 32-byte nonce.
|
|
73
|
+
hardwareVerifier: createNitroHardwareVerifier({
|
|
74
|
+
trustedRootCertificates: [root.raw],
|
|
75
|
+
nowMs: now * 1000,
|
|
76
|
+
maxTimestampSkewSeconds: signedMaxFutureSkew,
|
|
77
|
+
}),
|
|
78
|
+
});
|
|
79
|
+
if (!result.valid || result.attestation?.teeType !== 'nitro')
|
|
80
|
+
return null;
|
|
81
|
+
const leaf = leafCertificate(document.certificate);
|
|
82
|
+
if (leaf === null || equalBytes(leaf.raw, root.raw))
|
|
83
|
+
return null;
|
|
84
|
+
return {
|
|
85
|
+
measurement,
|
|
86
|
+
providerKeyId: digestBytes(leaf.raw),
|
|
87
|
+
providerSignature: digestBytes(document.signature),
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
const tangle = async ({ report, expected, attestation, }) => {
|
|
91
|
+
try {
|
|
92
|
+
const parsed = parseRawNitroReport(report);
|
|
93
|
+
if (!quoteMatchesReport(attestation.quote, parsed))
|
|
94
|
+
return null;
|
|
95
|
+
const verified = verifyEvidence(parsed, attestation, expected);
|
|
96
|
+
if (verified === null)
|
|
97
|
+
return null;
|
|
98
|
+
return verified;
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
const canonical = (attestation, expected) => {
|
|
105
|
+
try {
|
|
106
|
+
const report = decodeNitroQuote(attestation.quote);
|
|
107
|
+
const verified = verifyEvidence(report, attestation, expected);
|
|
108
|
+
return (verified !== null &&
|
|
109
|
+
attestation.providerKeyId === verified.providerKeyId &&
|
|
110
|
+
attestation.providerSignature === verified.providerSignature);
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
return Object.freeze({
|
|
117
|
+
policy: normalizedPolicy,
|
|
118
|
+
tangle,
|
|
119
|
+
canonical,
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
/** Resolve a policy on the selected connection, then fall back to test hooks. */
|
|
123
|
+
export function nitroVerifiersForConnection(record, options) {
|
|
124
|
+
if (options.tangleConfidentialAttestationVerifier !== undefined ||
|
|
125
|
+
options.confidentialAttestationVerifier !== undefined) {
|
|
126
|
+
return Object.freeze({
|
|
127
|
+
...(options.tangleConfidentialAttestationVerifier === undefined
|
|
128
|
+
? {}
|
|
129
|
+
: { tangle: options.tangleConfidentialAttestationVerifier }),
|
|
130
|
+
...(options.confidentialAttestationVerifier === undefined
|
|
131
|
+
? {}
|
|
132
|
+
: { canonical: options.confidentialAttestationVerifier }),
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
const policy = options.tangleConfidentialAttestationPolicy ?? record.confidentialAttestationPolicy;
|
|
136
|
+
return policy === undefined ? undefined : createNitroConfidentialAttestationVerifiers(policy);
|
|
137
|
+
}
|
|
138
|
+
/** Validate and freeze a startup trust policy before it reaches provider code. */
|
|
139
|
+
export function normalizeNitroConfidentialAttestationTrustPolicy(policy) {
|
|
140
|
+
if (policy === null || typeof policy !== 'object' || Array.isArray(policy)) {
|
|
141
|
+
throw new TypeError('Nitro confidential attestation policy must be an object');
|
|
142
|
+
}
|
|
143
|
+
const keys = Object.keys(policy);
|
|
144
|
+
if (keys.some((key) => key !== 'acceptedMeasurements' && key !== 'acceptedPolicyIds' && key !== 'maxAgeSeconds')) {
|
|
145
|
+
throw new TypeError('Nitro confidential attestation policy contains an unsupported field');
|
|
146
|
+
}
|
|
147
|
+
const acceptedMeasurements = policy.acceptedMeasurements;
|
|
148
|
+
const acceptedPolicyIds = policy.acceptedPolicyIds;
|
|
149
|
+
if (!Array.isArray(acceptedMeasurements) ||
|
|
150
|
+
acceptedMeasurements.length === 0 ||
|
|
151
|
+
acceptedMeasurements.length > 256 ||
|
|
152
|
+
acceptedMeasurements.some((measurement) => !SHA256_DIGEST_PATTERN.test(measurement))) {
|
|
153
|
+
throw new TypeError('Nitro confidential attestation policy requires one to 256 canonical SHA-256 measurements');
|
|
154
|
+
}
|
|
155
|
+
if (new Set(acceptedMeasurements).size !== acceptedMeasurements.length) {
|
|
156
|
+
throw new TypeError('Nitro confidential attestation policy measurements must be unique');
|
|
157
|
+
}
|
|
158
|
+
if (!Array.isArray(acceptedPolicyIds) ||
|
|
159
|
+
acceptedPolicyIds.length === 0 ||
|
|
160
|
+
acceptedPolicyIds.length > 256 ||
|
|
161
|
+
acceptedPolicyIds.some((value) => !POLICY_ID_PATTERN.test(value))) {
|
|
162
|
+
throw new TypeError('Nitro confidential attestation policy requires one to 256 canonical policy ids');
|
|
163
|
+
}
|
|
164
|
+
if (new Set(acceptedPolicyIds).size !== acceptedPolicyIds.length) {
|
|
165
|
+
throw new TypeError('Nitro confidential attestation policy ids must be unique');
|
|
166
|
+
}
|
|
167
|
+
if (!Number.isSafeInteger(policy.maxAgeSeconds) ||
|
|
168
|
+
policy.maxAgeSeconds < MIN_CONFIDENTIAL_ATTESTATION_MAX_AGE_SECONDS ||
|
|
169
|
+
policy.maxAgeSeconds > MAX_CONFIDENTIAL_ATTESTATION_MAX_AGE_SECONDS) {
|
|
170
|
+
throw new TypeError(`Nitro confidential attestation maxAgeSeconds must be an integer from ${MIN_CONFIDENTIAL_ATTESTATION_MAX_AGE_SECONDS} to ${MAX_CONFIDENTIAL_ATTESTATION_MAX_AGE_SECONDS}`);
|
|
171
|
+
}
|
|
172
|
+
const normalized = {
|
|
173
|
+
acceptedMeasurements: Object.freeze([...acceptedMeasurements]),
|
|
174
|
+
acceptedPolicyIds: Object.freeze([...acceptedPolicyIds]),
|
|
175
|
+
maxAgeSeconds: policy.maxAgeSeconds,
|
|
176
|
+
};
|
|
177
|
+
return Object.freeze(normalized);
|
|
178
|
+
}
|
|
179
|
+
function canonicalBindingsMatch(attestation, expected) {
|
|
180
|
+
return confidentialExecutionVerified({
|
|
181
|
+
request: {
|
|
182
|
+
requested: true,
|
|
183
|
+
nonce: attestation.nonce,
|
|
184
|
+
policy: attestation.policy,
|
|
185
|
+
profileDigest: attestation.profileDigest,
|
|
186
|
+
},
|
|
187
|
+
environment: expected,
|
|
188
|
+
attestation,
|
|
189
|
+
verifyProviderAttestation: () => true,
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
function parseRawNitroReport(value) {
|
|
193
|
+
const quote = encodeTangleConfidentialAttestationQuote(value);
|
|
194
|
+
if (quote === undefined)
|
|
195
|
+
throw new TypeError('Nitro attestation report is outside the provider bounds');
|
|
196
|
+
const report = decodeTangleConfidentialAttestationQuote(quote);
|
|
197
|
+
if (report === undefined || normalizeTeeType(report.tee_type) !== 'nitro') {
|
|
198
|
+
throw new TypeError('Nitro attestation report must declare tee_type=nitro');
|
|
199
|
+
}
|
|
200
|
+
if (report.measurement.length !== MAX_MEASUREMENT_BYTES) {
|
|
201
|
+
throw new TypeError('Nitro attestation measurement must be 48 bytes');
|
|
202
|
+
}
|
|
203
|
+
return report;
|
|
204
|
+
}
|
|
205
|
+
function quoteMatchesReport(quote, report) {
|
|
206
|
+
try {
|
|
207
|
+
const decoded = decodeTangleConfidentialAttestationQuote(quote);
|
|
208
|
+
return decoded !== undefined && JSON.stringify(report) === JSON.stringify(decoded);
|
|
209
|
+
}
|
|
210
|
+
catch {
|
|
211
|
+
return false;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
function decodeNitroQuote(quote) {
|
|
215
|
+
const report = decodeTangleConfidentialAttestationQuote(quote);
|
|
216
|
+
if (report === undefined)
|
|
217
|
+
throw new TypeError('Nitro quote is not a canonical Tangle TEE quote');
|
|
218
|
+
return parseRawNitroReport(report);
|
|
219
|
+
}
|
|
220
|
+
function isCanonicalNonce(value) {
|
|
221
|
+
return ((value.length === MIN_NONCE_HEX_CHARS || value.length === MAX_NONCE_HEX_CHARS) &&
|
|
222
|
+
/^[0-9a-f]+$/u.test(value));
|
|
223
|
+
}
|
|
224
|
+
function verifiedAtFor(timestamp) {
|
|
225
|
+
const date = new Date(timestamp * 1000);
|
|
226
|
+
if (!Number.isFinite(date.getTime()))
|
|
227
|
+
throw new TypeError('Nitro timestamp is outside date bounds');
|
|
228
|
+
return date.toISOString();
|
|
229
|
+
}
|
|
230
|
+
function leafCertificate(bytes) {
|
|
231
|
+
try {
|
|
232
|
+
return new X509Certificate(bytes);
|
|
233
|
+
}
|
|
234
|
+
catch {
|
|
235
|
+
return null;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
function assertOfficialNitroRoot() {
|
|
239
|
+
const root = new X509Certificate(AWS_NITRO_ENCLAVES_ROOT_G1_PEM);
|
|
240
|
+
const fingerprint = digestBytes(root.raw);
|
|
241
|
+
if (fingerprint !== AWS_NITRO_ENCLAVES_ROOT_G1_SHA256) {
|
|
242
|
+
throw new Error('The bundled AWS Nitro Root-G1 certificate fingerprint does not match AWS');
|
|
243
|
+
}
|
|
244
|
+
if (!root.verify(root.publicKey)) {
|
|
245
|
+
throw new Error('The bundled AWS Nitro Root-G1 certificate is not self-signed');
|
|
246
|
+
}
|
|
247
|
+
return root;
|
|
248
|
+
}
|
|
249
|
+
function digestBytes(value) {
|
|
250
|
+
return `sha256:${createHash('sha256').update(value).digest('hex')}`;
|
|
251
|
+
}
|
|
252
|
+
function equalBytes(left, right) {
|
|
253
|
+
return left.length === right.length && left.every((byte, index) => byte === right[index]);
|
|
254
|
+
}
|
|
255
|
+
//# sourceMappingURL=nitro-confidential-attestation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nitro-confidential-attestation.js","sourceRoot":"","sources":["../../../src/adapters/connections/nitro-confidential-attestation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import type { ConnectionRecord } from '../../domain/entities.js';
|
|
2
2
|
import type { ProductionConnectionOptions } from './production-connection-types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Stores a secret together with the origin it was issued for. The binding lives
|
|
5
|
+
* in the operating-system credential store, so editing the workspace endpoint
|
|
6
|
+
* cannot redirect the secret to another origin.
|
|
7
|
+
*/
|
|
8
|
+
export declare function bindCredentialToOrigin(secret: Uint8Array, endpoint: string): Uint8Array;
|
|
3
9
|
export declare function readConnectionCredential(record: ConnectionRecord, options: ProductionConnectionOptions, endpoint: string): Promise<string | undefined>;
|
|
4
10
|
/** Proves that a caller-supplied durable id maps to an existing protected value. */
|
|
5
11
|
export declare function assertConnectionCredentialReference(record: ConnectionRecord, options: ProductionConnectionOptions): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"production-connection-credentials.d.ts","sourceRoot":"","sources":["../../../src/adapters/connections/production-connection-credentials.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"production-connection-credentials.d.ts","sourceRoot":"","sources":["../../../src/adapters/connections/production-connection-credentials.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAQhE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAA;AAInF;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,CAOvF;AA+CD,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,2BAA2B,EACpC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAuC7B;AAED,oFAAoF;AACpF,wBAAsB,mCAAmC,CACvD,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,IAAI,CAAC,CAIf"}
|
|
@@ -1,6 +1,50 @@
|
|
|
1
1
|
import { ConnectionError } from '../../app/connection-errors.js';
|
|
2
2
|
import { credentialRef } from '../../ports/credentials.js';
|
|
3
|
-
import { isLoopbackEndpoint } from './production-connection-endpoints.js';
|
|
3
|
+
import { DEFAULT_TANGLE_INFERENCE_ENDPOINT, isLoopbackEndpoint, } from './production-connection-endpoints.js';
|
|
4
|
+
import { DEFAULT_TANGLE_SANDBOX_ENDPOINT } from './production-connection-types.js';
|
|
5
|
+
const BOUND_CREDENTIAL_HEADER = 'braid-credential-v1\n';
|
|
6
|
+
/**
|
|
7
|
+
* Stores a secret together with the origin it was issued for. The binding lives
|
|
8
|
+
* in the operating-system credential store, so editing the workspace endpoint
|
|
9
|
+
* cannot redirect the secret to another origin.
|
|
10
|
+
*/
|
|
11
|
+
export function bindCredentialToOrigin(secret, endpoint) {
|
|
12
|
+
const origin = new URL(endpoint).origin;
|
|
13
|
+
const header = new TextEncoder().encode(`${BOUND_CREDENTIAL_HEADER}${origin}\n`);
|
|
14
|
+
const bound = new Uint8Array(header.length + secret.length);
|
|
15
|
+
bound.set(header, 0);
|
|
16
|
+
bound.set(secret, header.length);
|
|
17
|
+
return bound;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Credentials stored before origin binding carry no origin. They stay usable
|
|
21
|
+
* only where they could have been issued: the connection kind's default Tangle
|
|
22
|
+
* origin, or a loopback CLI Bridge.
|
|
23
|
+
*/
|
|
24
|
+
function legacyCredentialOriginAllowed(record, options, endpoint) {
|
|
25
|
+
const origin = new URL(endpoint).origin;
|
|
26
|
+
if (record.kind === 'tangle-sandbox')
|
|
27
|
+
return (origin === new URL(options.defaultSandboxEndpoint ?? DEFAULT_TANGLE_SANDBOX_ENDPOINT).origin);
|
|
28
|
+
if (record.kind === 'tangle-inference')
|
|
29
|
+
return (origin ===
|
|
30
|
+
new URL(options.defaultInferenceEndpoint ?? DEFAULT_TANGLE_INFERENCE_ENDPOINT).origin);
|
|
31
|
+
return isLoopbackEndpoint(endpoint);
|
|
32
|
+
}
|
|
33
|
+
function credentialForOrigin(value, record, options, endpoint) {
|
|
34
|
+
if (!value.startsWith(BOUND_CREDENTIAL_HEADER)) {
|
|
35
|
+
if (legacyCredentialOriginAllowed(record, options, endpoint))
|
|
36
|
+
return value;
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
const rest = value.slice(BOUND_CREDENTIAL_HEADER.length);
|
|
40
|
+
const newline = rest.indexOf('\n');
|
|
41
|
+
const boundOrigin = newline < 0 ? '' : rest.slice(0, newline);
|
|
42
|
+
const secret = newline < 0 ? '' : rest.slice(newline + 1).trim();
|
|
43
|
+
if (boundOrigin === new URL(endpoint).origin && secret.length > 0)
|
|
44
|
+
return secret;
|
|
45
|
+
}
|
|
46
|
+
throw new ConnectionError('CONNECTION_CREDENTIAL_REAUTH_REQUIRED', 'The stored credential was not issued for this endpoint origin; run setup to authenticate the new endpoint', { connectionId: record.id });
|
|
47
|
+
}
|
|
4
48
|
export async function readConnectionCredential(record, options, endpoint) {
|
|
5
49
|
const required = record.kind !== 'cli-bridge' ||
|
|
6
50
|
!isLoopbackEndpoint(endpoint) ||
|
|
@@ -19,7 +63,7 @@ export async function readConnectionCredential(record, options, endpoint) {
|
|
|
19
63
|
if (value.length === 0 || value.includes('\u0000')) {
|
|
20
64
|
throw new ConnectionError('CONNECTION_CREDENTIAL_INVALID', 'The referenced credential in the operating-system credential store is empty or malformed', { connectionId: record.id });
|
|
21
65
|
}
|
|
22
|
-
return value;
|
|
66
|
+
return credentialForOrigin(value, record, options, endpoint);
|
|
23
67
|
}
|
|
24
68
|
catch (error) {
|
|
25
69
|
if (error instanceof ConnectionError)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"production-connection-credentials.js","sourceRoot":"","sources":["../../../src/adapters/connections/production-connection-credentials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAGhE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"production-connection-credentials.js","sourceRoot":"","sources":["../../../src/adapters/connections/production-connection-credentials.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"production-connection-health.d.ts","sourceRoot":"","sources":["../../../src/adapters/connections/production-connection-health.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,2BAA2B,EAC3B,gBAAgB,EAEjB,MAAM,0BAA0B,CAAA;AAWjC,OAAO,KAAK,EACV,uBAAuB,EACvB,kCAAkC,EAClC,2BAA2B,EAC5B,MAAM,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"production-connection-health.d.ts","sourceRoot":"","sources":["../../../src/adapters/connections/production-connection-health.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,2BAA2B,EAC3B,gBAAgB,EAEjB,MAAM,0BAA0B,CAAA;AAWjC,OAAO,KAAK,EACV,uBAAuB,EACvB,kCAAkC,EAClC,2BAA2B,EAC5B,MAAM,kCAAkC,CAAA;AAGzC,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,2BAA2B,EACpC,aAAa,EAAE,uBAAuB,GACrC,OAAO,CAAC,gBAAgB,CAAC,CA6B3B;AAED,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,2BAA2B,EACpC,KAAK,EAAE,MAAM,EACb,mBAAmB,EAAE,kCAAkC,GACtD,OAAO,CAAC,2BAA2B,CAAC,CAoEtC"}
|
|
@@ -4,6 +4,7 @@ import { cliBridgeModelValidationRequest } from './cli-bridge-model-validation.j
|
|
|
4
4
|
import { readConnectionCredential } from './production-connection-credentials.js';
|
|
5
5
|
import { appendHealthPath, connectionEndpoint, normalizeCliBridgeRuntimeBaseUrl, stripCliBridgeVersion, } from './production-connection-endpoints.js';
|
|
6
6
|
import { createTangleSandboxClient } from './production-connection-providers.js';
|
|
7
|
+
import { tangleRouterClientHeaders } from './tangle-router-client.js';
|
|
7
8
|
export async function healthForConnection(record, options, healthOptions) {
|
|
8
9
|
const checkedAt = (healthOptions.now ?? options.now ?? nowIso)();
|
|
9
10
|
try {
|
|
@@ -16,7 +17,7 @@ export async function healthForConnection(record, options, healthOptions) {
|
|
|
16
17
|
const healthUrl = record.kind === 'cli-bridge'
|
|
17
18
|
? appendHealthPath(stripCliBridgeVersion(endpoint))
|
|
18
19
|
: appendHealthPath(endpoint);
|
|
19
|
-
return await probeHttpHealth(healthUrl, credential, checkedAt, options.fetch, healthOptions.signal, record.kind === 'cli-bridge' ? stripCliBridgeVersion(endpoint) : undefined);
|
|
20
|
+
return await probeHttpHealth(healthUrl, credential, checkedAt, options.fetch, healthOptions.signal, record.kind === 'cli-bridge' ? stripCliBridgeVersion(endpoint) : undefined, record.kind === 'tangle-inference' ? tangleRouterClientHeaders() : {});
|
|
20
21
|
}
|
|
21
22
|
catch (error) {
|
|
22
23
|
return healthFromError(error, checkedAt);
|
|
@@ -78,6 +79,7 @@ export async function verifyModelForConnection(record, options, model, verificat
|
|
|
78
79
|
Accept: 'application/json',
|
|
79
80
|
'Content-Type': 'application/json',
|
|
80
81
|
...(credential ? { Authorization: `Bearer ${credential}` } : {}),
|
|
82
|
+
...(record.kind === 'tangle-inference' ? tangleRouterClientHeaders() : {}),
|
|
81
83
|
},
|
|
82
84
|
body: JSON.stringify(requestBody),
|
|
83
85
|
...(verificationOptions.signal ? { signal: verificationOptions.signal } : {}),
|
|
@@ -126,7 +128,7 @@ async function probeSandboxHealth(client, checkedAt, signal) {
|
|
|
126
128
|
message: 'The published sandbox client exposes no health operation',
|
|
127
129
|
};
|
|
128
130
|
}
|
|
129
|
-
async function probeHttpHealth(url, credential, checkedAt, fetcher, signal, cliBridgeEndpoint) {
|
|
131
|
+
async function probeHttpHealth(url, credential, checkedAt, fetcher, signal, cliBridgeEndpoint, clientHeaders = {}) {
|
|
130
132
|
const request = fetcher ?? globalThis.fetch;
|
|
131
133
|
if (typeof request !== 'function') {
|
|
132
134
|
return { status: 'unreachable', checkedAt, message: 'HTTP health checks are unavailable' };
|
|
@@ -137,6 +139,7 @@ async function probeHttpHealth(url, credential, checkedAt, fetcher, signal, cliB
|
|
|
137
139
|
headers: {
|
|
138
140
|
Accept: 'application/json',
|
|
139
141
|
...(credential ? { Authorization: `Bearer ${credential}` } : {}),
|
|
142
|
+
...clientHeaders,
|
|
140
143
|
},
|
|
141
144
|
...(signal ? { signal } : {}),
|
|
142
145
|
});
|
|
@@ -177,7 +180,8 @@ function healthFromError(error, checkedAt) {
|
|
|
177
180
|
if (error.code === 'CONNECTION_CREDENTIAL_REQUIRED' ||
|
|
178
181
|
error.code === 'CONNECTION_CREDENTIAL_REF_UNMAPPED' ||
|
|
179
182
|
error.code === 'CONNECTION_CREDENTIAL_UNAVAILABLE' ||
|
|
180
|
-
error.code === 'CONNECTION_CREDENTIAL_INVALID'
|
|
183
|
+
error.code === 'CONNECTION_CREDENTIAL_INVALID' ||
|
|
184
|
+
error.code === 'CONNECTION_CREDENTIAL_REAUTH_REQUIRED') {
|
|
181
185
|
return {
|
|
182
186
|
status: 'unauthorized',
|
|
183
187
|
checkedAt,
|
|
@@ -246,7 +250,8 @@ function modelVerificationFromError(model, checkedAt, error) {
|
|
|
246
250
|
if (error.code === 'CONNECTION_CREDENTIAL_REQUIRED' ||
|
|
247
251
|
error.code === 'CONNECTION_CREDENTIAL_REF_UNMAPPED' ||
|
|
248
252
|
error.code === 'CONNECTION_CREDENTIAL_UNAVAILABLE' ||
|
|
249
|
-
error.code === 'CONNECTION_CREDENTIAL_INVALID'
|
|
253
|
+
error.code === 'CONNECTION_CREDENTIAL_INVALID' ||
|
|
254
|
+
error.code === 'CONNECTION_CREDENTIAL_REAUTH_REQUIRED') {
|
|
250
255
|
return {
|
|
251
256
|
model,
|
|
252
257
|
status: 'unauthorized',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"production-connection-health.js","sourceRoot":"","sources":["../../../src/adapters/connections/production-connection-health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAOhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAA;AAClF,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAA;AACjF,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,gCAAgC,EAChC,qBAAqB,GACtB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;
|
|
1
|
+
{"version":3,"file":"production-connection-health.js","sourceRoot":"","sources":["../../../src/adapters/connections/production-connection-health.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,19 @@
|
|
|
1
|
+
import type { AgentWorkspaceBranchingProvider } from '@tangle-network/agent-interface';
|
|
2
|
+
import type { AgentEnvironment, AgentEnvironmentProvider } from '@tangle-network/agent-interface/environment-provider';
|
|
1
3
|
import { type SandboxClientLike } from '@tangle-network/agent-provider-tangle';
|
|
2
4
|
import type { ConnectionRecord } from '../../domain/entities.js';
|
|
3
5
|
import type { ConnectionCapabilityReport, ProductionConnectionOptions } from './production-connection-types.js';
|
|
4
6
|
export declare function createTangleSandboxClient(record: ConnectionRecord, options: ProductionConnectionOptions, signal?: AbortSignal): Promise<SandboxClientLike>;
|
|
7
|
+
/** Construct the selected Tangle provider without creating or retaining an environment. */
|
|
8
|
+
export declare function createTangleEnvironmentProvider(record: ConnectionRecord, options: ProductionConnectionOptions, signal?: AbortSignal): Promise<AgentEnvironmentProvider>;
|
|
9
|
+
/**
|
|
10
|
+
* Create a restart-safe source lookup without retaining a live environment.
|
|
11
|
+
*
|
|
12
|
+
* The provider constructs the source-scoped handle and owns every Sandbox call.
|
|
13
|
+
* Braid retains only this lazy factory, so restart recovery cannot use stale state.
|
|
14
|
+
*/
|
|
15
|
+
export declare function createTangleWorkspaceBranchingProvider(record: ConnectionRecord, options: ProductionConnectionOptions): AgentWorkspaceBranchingProvider;
|
|
16
|
+
/** Reconstruct one provider environment for an independent workspace check. */
|
|
17
|
+
export declare function getTangleSandboxEnvironment(record: ConnectionRecord, options: ProductionConnectionOptions, environmentId: string, signal?: AbortSignal): Promise<AgentEnvironment | null>;
|
|
5
18
|
export declare function capabilitiesForConnection(record: ConnectionRecord, options: ProductionConnectionOptions): Promise<ConnectionCapabilityReport>;
|
|
6
19
|
//# sourceMappingURL=production-connection-providers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"production-connection-providers.d.ts","sourceRoot":"","sources":["../../../src/adapters/connections/production-connection-providers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"production-connection-providers.d.ts","sourceRoot":"","sources":["../../../src/adapters/connections/production-connection-providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,+BAA+B,EAChC,MAAM,iCAAiC,CAAA;AACxC,OAAO,KAAK,EACV,gBAAgB,EAEhB,wBAAwB,EACzB,MAAM,sDAAsD,CAAA;AAE7D,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,uCAAuC,CAAA;AAG9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAKhE,OAAO,KAAK,EAEV,0BAA0B,EAG1B,2BAA2B,EAC5B,MAAM,kCAAkC,CAAA;AAGzC,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,2BAA2B,EACpC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,iBAAiB,CAAC,CAkB5B;AAED,2FAA2F;AAC3F,wBAAsB,+BAA+B,CACnD,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,2BAA2B,EACpC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,wBAAwB,CAAC,CAUnC;AAED;;;;;GAKG;AACH,wBAAgB,sCAAsC,CACpD,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,2BAA2B,GACnC,+BAA+B,CAYjC;AAED,+EAA+E;AAC/E,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,2BAA2B,EACpC,aAAa,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAIlC;AAED,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,0BAA0B,CAAC,CA0DrC"}
|
|
@@ -3,6 +3,7 @@ import { createTangleProvider, defaultTangleSandboxCapabilities, } from '@tangle
|
|
|
3
3
|
import { Sandbox } from '@tangle-network/sandbox';
|
|
4
4
|
import { ConnectionError } from '../../app/connection-errors.js';
|
|
5
5
|
import { environmentSupportsInteractionResponse } from '../../ports/execution.js';
|
|
6
|
+
import { nitroVerifiersForConnection } from './nitro-confidential-attestation.js';
|
|
6
7
|
import { readConnectionCredential } from './production-connection-credentials.js';
|
|
7
8
|
import { connectionEndpoint } from './production-connection-endpoints.js';
|
|
8
9
|
import { supportsTangleRetainedControlLookup } from './tangle-retained-control-lookup.js';
|
|
@@ -22,6 +23,42 @@ export async function createTangleSandboxClient(record, options, signal) {
|
|
|
22
23
|
// objects are structurally compatible for the provider methods we consume.
|
|
23
24
|
return new Sandbox({ baseUrl: endpoint, apiKey });
|
|
24
25
|
}
|
|
26
|
+
/** Construct the selected Tangle provider without creating or retaining an environment. */
|
|
27
|
+
export async function createTangleEnvironmentProvider(record, options, signal) {
|
|
28
|
+
const client = await createTangleSandboxClient(record, options, signal);
|
|
29
|
+
const confidential = nitroVerifiersForConnection(record, options);
|
|
30
|
+
return createTangleProvider({
|
|
31
|
+
client,
|
|
32
|
+
name: 'tangle-sandbox',
|
|
33
|
+
...(confidential?.tangle === undefined
|
|
34
|
+
? {}
|
|
35
|
+
: { confidentialAttestationVerifier: confidential.tangle }),
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Create a restart-safe source lookup without retaining a live environment.
|
|
40
|
+
*
|
|
41
|
+
* The provider constructs the source-scoped handle and owns every Sandbox call.
|
|
42
|
+
* Braid retains only this lazy factory, so restart recovery cannot use stale state.
|
|
43
|
+
*/
|
|
44
|
+
export function createTangleWorkspaceBranchingProvider(record, options) {
|
|
45
|
+
return Object.freeze({
|
|
46
|
+
async forEnvironment(sourceEnvironmentId, operation) {
|
|
47
|
+
const provider = await createTangleEnvironmentProvider(record, options, operation?.signal);
|
|
48
|
+
const branching = provider.workspaceBranching;
|
|
49
|
+
if (branching === undefined)
|
|
50
|
+
return null;
|
|
51
|
+
return branching.forEnvironment(sourceEnvironmentId, operation);
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
/** Reconstruct one provider environment for an independent workspace check. */
|
|
56
|
+
export async function getTangleSandboxEnvironment(record, options, environmentId, signal) {
|
|
57
|
+
const provider = await createTangleEnvironmentProvider(record, options, signal);
|
|
58
|
+
if (provider.get === undefined)
|
|
59
|
+
return null;
|
|
60
|
+
return provider.get(environmentId, signal === undefined ? undefined : { signal });
|
|
61
|
+
}
|
|
25
62
|
export async function capabilitiesForConnection(record, options) {
|
|
26
63
|
switch (record.kind) {
|
|
27
64
|
case 'cli-bridge': {
|
|
@@ -42,9 +79,28 @@ export async function capabilitiesForConnection(record, options) {
|
|
|
42
79
|
list: false,
|
|
43
80
|
});
|
|
44
81
|
case 'tangle-sandbox': {
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
82
|
+
const confidential = nitroVerifiersForConnection(record, options);
|
|
83
|
+
const reported = options.sandboxClient === undefined
|
|
84
|
+
? {
|
|
85
|
+
...defaultTangleSandboxCapabilities(),
|
|
86
|
+
branching: {
|
|
87
|
+
checkpoint: false,
|
|
88
|
+
fork: false,
|
|
89
|
+
confidential: false,
|
|
90
|
+
retrySafe: false,
|
|
91
|
+
lookup: false,
|
|
92
|
+
cleanup: false,
|
|
93
|
+
},
|
|
94
|
+
confidential: false,
|
|
95
|
+
}
|
|
96
|
+
: await createTangleProvider({
|
|
97
|
+
client: options.sandboxClient,
|
|
98
|
+
...(confidential?.tangle === undefined
|
|
99
|
+
? {}
|
|
100
|
+
: {
|
|
101
|
+
confidentialAttestationVerifier: confidential.tangle,
|
|
102
|
+
}),
|
|
103
|
+
}).capabilities();
|
|
48
104
|
const environment = tangleConnectionCapabilities(record, reported, options.tangleRetainedControlLookup !== undefined ||
|
|
49
105
|
options.sandboxClient === undefined ||
|
|
50
106
|
supportsTangleRetainedControlLookup(options.sandboxClient));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"production-connection-providers.js","sourceRoot":"","sources":["../../../src/adapters/connections/production-connection-providers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"production-connection-providers.js","sourceRoot":"","sources":["../../../src/adapters/connections/production-connection-providers.ts"],"names":[],"mappings":"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"}
|