@tangle-network/braid 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +69 -54
- package/THIRD_PARTY_LICENSES.json +16 -0
- package/THIRD_PARTY_NOTICES.md +4 -1
- package/dist/adapters/agent-interface/harness-runtime.d.ts +1 -0
- package/dist/adapters/agent-interface/harness-runtime.d.ts.map +1 -1
- package/dist/adapters/agent-interface/harness-runtime.js +3 -1
- package/dist/adapters/agent-interface/harness-runtime.js.map +1 -1
- package/dist/adapters/analysis/agent-eval-version.d.ts +1 -1
- package/dist/adapters/analysis/agent-eval-version.d.ts.map +1 -1
- package/dist/adapters/analysis/agent-eval-version.js +2 -1
- package/dist/adapters/analysis/agent-eval-version.js.map +1 -1
- package/dist/adapters/analysis/citations.d.ts.map +1 -1
- package/dist/adapters/analysis/citations.js +17 -14
- package/dist/adapters/analysis/citations.js.map +1 -1
- package/dist/adapters/analysis/eval-analyst.d.ts +2 -0
- package/dist/adapters/analysis/eval-analyst.d.ts.map +1 -1
- package/dist/adapters/analysis/eval-analyst.js.map +1 -1
- package/dist/adapters/analysis/managed-analysis-runtime.d.ts +19 -0
- package/dist/adapters/analysis/managed-analysis-runtime.d.ts.map +1 -0
- package/dist/adapters/analysis/managed-analysis-runtime.js +72 -0
- package/dist/adapters/analysis/managed-analysis-runtime.js.map +1 -0
- package/dist/adapters/analysis/production-analysis-analyst.d.ts +1 -1
- package/dist/adapters/analysis/production-analysis-analyst.d.ts.map +1 -1
- package/dist/adapters/analysis/production-analysis-analyst.js +18 -2
- package/dist/adapters/analysis/production-analysis-analyst.js.map +1 -1
- package/dist/adapters/analysis/python-runner.d.ts +3 -1
- package/dist/adapters/analysis/python-runner.d.ts.map +1 -1
- package/dist/adapters/analysis/python-runner.js +99 -1
- package/dist/adapters/analysis/python-runner.js.map +1 -1
- package/dist/adapters/analysis/question-analyst.js +2 -2
- package/dist/adapters/analysis/question-analyst.js.map +1 -1
- package/dist/adapters/analysis/runtime-model-owner.d.ts +2 -0
- package/dist/adapters/analysis/runtime-model-owner.d.ts.map +1 -1
- package/dist/adapters/analysis/runtime-model-owner.js +118 -34
- package/dist/adapters/analysis/runtime-model-owner.js.map +1 -1
- package/dist/adapters/analysis/runtime-retained-model-call.d.ts +27 -0
- package/dist/adapters/analysis/runtime-retained-model-call.d.ts.map +1 -0
- package/dist/adapters/analysis/runtime-retained-model-call.js +94 -0
- package/dist/adapters/analysis/runtime-retained-model-call.js.map +1 -0
- package/dist/adapters/analysis/trace-analysis-adapter.d.ts +4 -0
- package/dist/adapters/analysis/trace-analysis-adapter.d.ts.map +1 -1
- package/dist/adapters/analysis/trace-analysis-adapter.js +29 -7
- package/dist/adapters/analysis/trace-analysis-adapter.js.map +1 -1
- package/dist/adapters/analysis/trace-event-projection.js +1 -1
- package/dist/adapters/analysis/trace-event-projection.js.map +1 -1
- package/dist/adapters/analysis/trace-store.d.ts +1 -1
- package/dist/adapters/analysis/trace-store.d.ts.map +1 -1
- package/dist/adapters/analysis/trace-store.js +1 -1
- package/dist/adapters/analysis/trace-store.js.map +1 -1
- package/dist/adapters/connections/cli-bridge-model-route.d.ts +2 -2
- package/dist/adapters/connections/cli-bridge-model-route.d.ts.map +1 -1
- package/dist/adapters/connections/cli-bridge-model-route.js +17 -7
- package/dist/adapters/connections/cli-bridge-model-route.js.map +1 -1
- package/dist/adapters/connections/production-connection-providers.d.ts.map +1 -1
- package/dist/adapters/connections/production-connection-providers.js +34 -1
- package/dist/adapters/connections/production-connection-providers.js.map +1 -1
- package/dist/adapters/connections/production-connection-types.d.ts +12 -1
- package/dist/adapters/connections/production-connection-types.d.ts.map +1 -1
- package/dist/adapters/connections/production-connections.d.ts +1 -1
- package/dist/adapters/connections/production-connections.d.ts.map +1 -1
- package/dist/adapters/connections/production-connections.js.map +1 -1
- package/dist/adapters/connections/tangle-retained-control-lookup.d.ts +6 -0
- package/dist/adapters/connections/tangle-retained-control-lookup.d.ts.map +1 -0
- package/dist/adapters/connections/tangle-retained-control-lookup.js +98 -0
- package/dist/adapters/connections/tangle-retained-control-lookup.js.map +1 -0
- package/dist/adapters/credentials/headless-key.js +3 -2
- package/dist/adapters/credentials/headless-key.js.map +1 -1
- package/dist/adapters/persistence/posix-at.d.ts +8 -0
- package/dist/adapters/persistence/posix-at.d.ts.map +1 -0
- package/dist/adapters/persistence/posix-at.js +96 -0
- package/dist/adapters/persistence/posix-at.js.map +1 -0
- package/dist/adapters/persistence/safe-file-descriptor.d.ts +1 -1
- package/dist/adapters/persistence/safe-file-descriptor.d.ts.map +1 -1
- package/dist/adapters/persistence/safe-file-descriptor.js +29 -18
- package/dist/adapters/persistence/safe-file-descriptor.js.map +1 -1
- package/dist/adapters/persistence/safe-file-io.d.ts.map +1 -1
- package/dist/adapters/persistence/safe-file-io.js +9 -9
- package/dist/adapters/persistence/safe-file-io.js.map +1 -1
- package/dist/adapters/persistence/safe-file.d.ts +1 -1
- package/dist/adapters/persistence/safe-file.d.ts.map +1 -1
- package/dist/adapters/persistence/safe-file.js +4 -4
- package/dist/adapters/persistence/safe-file.js.map +1 -1
- package/dist/adapters/runtime/agent-runtime-version.d.ts +1 -1
- package/dist/adapters/runtime/agent-runtime-version.d.ts.map +1 -1
- package/dist/adapters/runtime/agent-runtime-version.js +2 -1
- package/dist/adapters/runtime/agent-runtime-version.js.map +1 -1
- package/dist/adapters/runtime/cli-bridge-retained-execution.d.ts +6 -32
- package/dist/adapters/runtime/cli-bridge-retained-execution.d.ts.map +1 -1
- package/dist/adapters/runtime/cli-bridge-retained-execution.js +11 -317
- package/dist/adapters/runtime/cli-bridge-retained-execution.js.map +1 -1
- package/dist/adapters/runtime/cli-bridge-retained-run.d.ts +4 -3
- package/dist/adapters/runtime/cli-bridge-retained-run.d.ts.map +1 -1
- package/dist/adapters/runtime/cli-bridge-retained-run.js +53 -16
- package/dist/adapters/runtime/cli-bridge-retained-run.js.map +1 -1
- package/dist/adapters/runtime/prepared-execution.d.ts +1 -0
- package/dist/adapters/runtime/prepared-execution.d.ts.map +1 -1
- package/dist/adapters/runtime/prepared-execution.js.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 +3 -3
- package/dist/adapters/runtime/production-backend-common.js.map +1 -1
- package/dist/adapters/runtime/production-backend-resolver.d.ts +4 -1
- package/dist/adapters/runtime/production-backend-resolver.d.ts.map +1 -1
- package/dist/adapters/runtime/production-backend-resolver.js +13 -1
- package/dist/adapters/runtime/production-backend-resolver.js.map +1 -1
- package/dist/adapters/runtime/production-cli-bridge-backend.d.ts.map +1 -1
- package/dist/adapters/runtime/production-cli-bridge-backend.js +4 -2
- package/dist/adapters/runtime/production-cli-bridge-backend.js.map +1 -1
- package/dist/adapters/runtime/production-tangle-sandbox-backend.d.ts +21 -1
- package/dist/adapters/runtime/production-tangle-sandbox-backend.d.ts.map +1 -1
- package/dist/adapters/runtime/production-tangle-sandbox-backend.js +108 -11
- package/dist/adapters/runtime/production-tangle-sandbox-backend.js.map +1 -1
- package/dist/adapters/runtime/retained-execution-contract.d.ts +48 -0
- package/dist/adapters/runtime/retained-execution-contract.d.ts.map +1 -0
- package/dist/adapters/runtime/retained-execution-contract.js +2 -0
- package/dist/adapters/runtime/retained-execution-contract.js.map +1 -0
- package/dist/adapters/runtime/{cli-bridge-retained-projection.d.ts → retained-execution-projection.d.ts} +8 -7
- package/dist/adapters/runtime/retained-execution-projection.d.ts.map +1 -0
- package/dist/adapters/runtime/retained-execution-projection.js +108 -0
- package/dist/adapters/runtime/retained-execution-projection.js.map +1 -0
- package/dist/adapters/runtime/retained-execution-state.d.ts +31 -0
- package/dist/adapters/runtime/retained-execution-state.d.ts.map +1 -0
- package/dist/adapters/runtime/retained-execution-state.js +161 -0
- package/dist/adapters/runtime/retained-execution-state.js.map +1 -0
- package/dist/adapters/runtime/retained-execution-stream.d.ts +15 -0
- package/dist/adapters/runtime/retained-execution-stream.d.ts.map +1 -0
- package/dist/adapters/runtime/retained-execution-stream.js +47 -0
- package/dist/adapters/runtime/retained-execution-stream.js.map +1 -0
- package/dist/adapters/runtime/retained-execution.d.ts +39 -0
- package/dist/adapters/runtime/retained-execution.d.ts.map +1 -0
- package/dist/adapters/runtime/retained-execution.js +293 -0
- package/dist/adapters/runtime/retained-execution.js.map +1 -0
- package/dist/adapters/runtime/sandbox-observation.d.ts.map +1 -1
- package/dist/adapters/runtime/sandbox-observation.js +20 -13
- package/dist/adapters/runtime/sandbox-observation.js.map +1 -1
- package/dist/adapters/runtime/tangle-retained-execution.d.ts +17 -0
- package/dist/adapters/runtime/tangle-retained-execution.d.ts.map +1 -0
- package/dist/adapters/runtime/tangle-retained-execution.js +16 -0
- package/dist/adapters/runtime/tangle-retained-execution.js.map +1 -0
- package/dist/adapters/runtime/tangle-retained-run.d.ts +14 -0
- package/dist/adapters/runtime/tangle-retained-run.d.ts.map +1 -0
- package/dist/adapters/runtime/tangle-retained-run.js +75 -0
- package/dist/adapters/runtime/tangle-retained-run.js.map +1 -0
- package/dist/adapters/runtime/tangle-sandbox-retention.d.ts +19 -0
- package/dist/adapters/runtime/tangle-sandbox-retention.d.ts.map +1 -0
- package/dist/adapters/runtime/tangle-sandbox-retention.js +62 -0
- package/dist/adapters/runtime/tangle-sandbox-retention.js.map +1 -0
- package/dist/adapters/storage/sqlite-bound-open.d.ts +4 -4
- package/dist/adapters/storage/sqlite-bound-open.d.ts.map +1 -1
- package/dist/adapters/storage/sqlite-bound-open.js +49 -19
- package/dist/adapters/storage/sqlite-bound-open.js.map +1 -1
- package/dist/adapters/storage/sqlite-crypto.d.ts.map +1 -1
- package/dist/adapters/storage/sqlite-crypto.js +8 -1
- package/dist/adapters/storage/sqlite-crypto.js.map +1 -1
- package/dist/adapters/tui/application-ui-controller.d.ts.map +1 -1
- package/dist/adapters/tui/application-ui-controller.js +9 -2
- package/dist/adapters/tui/application-ui-controller.js.map +1 -1
- package/dist/adapters/tui/ui-capabilities.d.ts.map +1 -1
- package/dist/adapters/tui/ui-capabilities.js +14 -0
- 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 +7 -1
- package/dist/adapters/tui/ui-command-dispatch.js.map +1 -1
- package/dist/adapters/tui/ui-conversation-dispatch.d.ts.map +1 -1
- package/dist/adapters/tui/ui-conversation-dispatch.js +40 -0
- 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 +3 -9
- package/dist/adapters/tui/ui-core-dispatch.js.map +1 -1
- package/dist/adapters/tui/ui-dispatch-context.d.ts +1 -1
- package/dist/adapters/tui/ui-dispatch-context.d.ts.map +1 -1
- package/dist/adapters/tui/ui-entity-details.d.ts.map +1 -1
- package/dist/adapters/tui/ui-entity-details.js +10 -5
- package/dist/adapters/tui/ui-entity-details.js.map +1 -1
- package/dist/adapters/tui/ui-fixtures.d.ts.map +1 -1
- package/dist/adapters/tui/ui-fixtures.js +1 -0
- 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 +2 -0
- package/dist/adapters/tui/ui-headless-dispatch.js.map +1 -1
- package/dist/adapters/tui/ui-intelligence-result-view.d.ts.map +1 -1
- package/dist/adapters/tui/ui-intelligence-result-view.js +2 -0
- package/dist/adapters/tui/ui-intelligence-result-view.js.map +1 -1
- package/dist/adapters/tui/ui-projection.d.ts +1 -1
- package/dist/adapters/tui/ui-projection.d.ts.map +1 -1
- package/dist/adapters/tui/ui-projection.js +114 -46
- package/dist/adapters/tui/ui-projection.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 +34 -17
- package/dist/adapters/tui/ui-view-model.js.map +1 -1
- package/dist/app/analysis-comparison-request.d.ts +1 -1
- package/dist/app/analysis-comparison-request.d.ts.map +1 -1
- package/dist/app/analysis-comparison-request.js +9 -5
- package/dist/app/analysis-comparison-request.js.map +1 -1
- package/dist/app/analysis-comparison.js +2 -2
- package/dist/app/analysis-comparison.js.map +1 -1
- package/dist/app/analysis-execution-session.d.ts +2 -0
- package/dist/app/analysis-execution-session.d.ts.map +1 -1
- package/dist/app/analysis-execution-session.js +1 -0
- package/dist/app/analysis-execution-session.js.map +1 -1
- package/dist/app/analysis-lifecycle.d.ts +2 -0
- package/dist/app/analysis-lifecycle.d.ts.map +1 -1
- package/dist/app/analysis-lifecycle.js +20 -10
- package/dist/app/analysis-lifecycle.js.map +1 -1
- package/dist/app/analysis-promotion.d.ts.map +1 -1
- package/dist/app/analysis-promotion.js +4 -5
- package/dist/app/analysis-promotion.js.map +1 -1
- package/dist/app/analysis-request.d.ts +1 -1
- package/dist/app/analysis-request.d.ts.map +1 -1
- package/dist/app/analysis-request.js +3 -7
- package/dist/app/analysis-request.js.map +1 -1
- package/dist/app/analysis-retained-admission.d.ts +6 -0
- package/dist/app/analysis-retained-admission.d.ts.map +1 -0
- package/dist/app/analysis-retained-admission.js +87 -0
- package/dist/app/analysis-retained-admission.js.map +1 -0
- package/dist/app/analysis-service.d.ts.map +1 -1
- package/dist/app/analysis-service.js +2 -1
- package/dist/app/analysis-service.js.map +1 -1
- package/dist/app/analysis-source.d.ts +4 -1
- package/dist/app/analysis-source.d.ts.map +1 -1
- package/dist/app/analysis-source.js +18 -0
- package/dist/app/analysis-source.js.map +1 -1
- package/dist/app/analysis-types.d.ts +1 -0
- 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.map +1 -1
- package/dist/app/application-interaction-actions.js +17 -0
- package/dist/app/application-interaction-actions.js.map +1 -1
- package/dist/app/application-support.d.ts +4 -0
- package/dist/app/application-support.d.ts.map +1 -1
- package/dist/app/application-support.js +59 -17
- package/dist/app/application-support.js.map +1 -1
- package/dist/app/application-types.d.ts +1 -0
- package/dist/app/application-types.d.ts.map +1 -1
- package/dist/app/application.d.ts.map +1 -1
- package/dist/app/application.js +31 -8
- package/dist/app/application.js.map +1 -1
- package/dist/app/connections.js +1 -0
- package/dist/app/connections.js.map +1 -1
- package/dist/app/conversation-branches.d.ts +2 -1
- package/dist/app/conversation-branches.d.ts.map +1 -1
- package/dist/app/conversation-branches.js +66 -9
- package/dist/app/conversation-branches.js.map +1 -1
- package/dist/app/conversation-lifecycle.js +9 -4
- package/dist/app/conversation-lifecycle.js.map +1 -1
- package/dist/app/conversation-records.d.ts +1 -0
- package/dist/app/conversation-records.d.ts.map +1 -1
- package/dist/app/conversation-records.js +32 -15
- package/dist/app/conversation-records.js.map +1 -1
- package/dist/app/conversation-types.d.ts +11 -0
- 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/effective-run-configuration.d.ts +13 -0
- package/dist/app/effective-run-configuration.d.ts.map +1 -0
- package/dist/app/effective-run-configuration.js +47 -0
- package/dist/app/effective-run-configuration.js.map +1 -0
- package/dist/app/fail-closed-journal.d.ts.map +1 -1
- package/dist/app/fail-closed-journal.js +4 -0
- package/dist/app/fail-closed-journal.js.map +1 -1
- package/dist/app/interaction-controller.d.ts +4 -4
- package/dist/app/interaction-controller.d.ts.map +1 -1
- package/dist/app/interaction-controller.js +3 -5
- package/dist/app/interaction-controller.js.map +1 -1
- package/dist/app/journal.d.ts +4 -0
- package/dist/app/journal.d.ts.map +1 -1
- package/dist/app/journal.js +10 -1
- package/dist/app/journal.js.map +1 -1
- package/dist/app/production-composition.d.ts.map +1 -1
- package/dist/app/production-composition.js +28 -20
- package/dist/app/production-composition.js.map +1 -1
- package/dist/app/profile-types.d.ts +1 -1
- package/dist/app/profile-types.d.ts.map +1 -1
- package/dist/app/provider-values.d.ts +0 -5
- package/dist/app/provider-values.d.ts.map +1 -1
- package/dist/app/provider-values.js +27 -15
- package/dist/app/provider-values.js.map +1 -1
- package/dist/app/run-controls.js +6 -0
- package/dist/app/run-controls.js.map +1 -1
- package/dist/app/run-event-mapper.d.ts.map +1 -1
- package/dist/app/run-event-mapper.js +2 -0
- package/dist/app/run-event-mapper.js.map +1 -1
- package/dist/app/run-execution.d.ts.map +1 -1
- package/dist/app/run-execution.js +11 -1
- package/dist/app/run-execution.js.map +1 -1
- package/dist/app/run-replay.d.ts +6 -2
- package/dist/app/run-replay.d.ts.map +1 -1
- package/dist/app/run-replay.js +9 -3
- package/dist/app/run-replay.js.map +1 -1
- package/dist/app/storage-journal-support.d.ts.map +1 -1
- package/dist/app/storage-journal-support.js +1 -0
- package/dist/app/storage-journal-support.js.map +1 -1
- package/dist/app/storage-journal.d.ts +4 -1
- package/dist/app/storage-journal.d.ts.map +1 -1
- package/dist/app/storage-journal.js +13 -2
- package/dist/app/storage-journal.js.map +1 -1
- package/dist/bin/braid-runtime.d.ts.map +1 -1
- package/dist/bin/braid-runtime.js +5 -7
- package/dist/bin/braid-runtime.js.map +1 -1
- package/dist/bin/plain.js +1 -1
- package/dist/bin/plain.js.map +1 -1
- package/dist/bin/production-profile-projection.d.ts.map +1 -1
- package/dist/bin/production-profile-projection.js +7 -10
- package/dist/bin/production-profile-projection.js.map +1 -1
- package/dist/bin/production-setup-discovery.d.ts +4 -0
- package/dist/bin/production-setup-discovery.d.ts.map +1 -1
- package/dist/bin/production-setup-discovery.js +33 -0
- package/dist/bin/production-setup-discovery.js.map +1 -1
- package/dist/bin/production-setup.d.ts +1 -1
- package/dist/bin/production-setup.d.ts.map +1 -1
- package/dist/bin/production-setup.js +1 -1
- package/dist/bin/production-setup.js.map +1 -1
- package/dist/domain/bounded-structured.d.ts.map +1 -1
- package/dist/domain/bounded-structured.js +2 -0
- package/dist/domain/bounded-structured.js.map +1 -1
- package/dist/domain/entities-core.d.ts +9 -2
- package/dist/domain/entities-core.d.ts.map +1 -1
- package/dist/domain/entities-core.js +3 -1
- package/dist/domain/entities-core.js.map +1 -1
- package/dist/domain/entities-graph.d.ts +1 -1
- package/dist/domain/entities-graph.d.ts.map +1 -1
- package/dist/domain/entities-interactions.d.ts +2 -51
- package/dist/domain/entities-interactions.d.ts.map +1 -1
- package/dist/domain/entities-messages.d.ts +2 -0
- package/dist/domain/entities-messages.d.ts.map +1 -1
- package/dist/domain/events.d.ts +9 -27
- package/dist/domain/events.d.ts.map +1 -1
- package/dist/domain/events.js +7 -7
- package/dist/domain/events.js.map +1 -1
- package/dist/domain/ids-core.d.ts +1 -1
- package/dist/domain/ids-core.d.ts.map +1 -1
- package/dist/domain/ids-core.js +5 -2
- package/dist/domain/ids-core.js.map +1 -1
- package/dist/domain/interaction-timeout.d.ts +2 -0
- package/dist/domain/interaction-timeout.d.ts.map +1 -0
- package/dist/domain/interaction-timeout.js +11 -0
- package/dist/domain/interaction-timeout.js.map +1 -0
- package/dist/domain/invariants-base.d.ts.map +1 -1
- package/dist/domain/invariants-base.js +1 -0
- package/dist/domain/invariants-base.js.map +1 -1
- package/dist/domain/invariants-conversation.d.ts.map +1 -1
- package/dist/domain/invariants-conversation.js +21 -1
- package/dist/domain/invariants-conversation.js.map +1 -1
- package/dist/domain/invariants-profile.d.ts.map +1 -1
- package/dist/domain/invariants-profile.js +35 -1
- package/dist/domain/invariants-profile.js.map +1 -1
- package/dist/domain/invariants-retained-admission.d.ts +3 -0
- package/dist/domain/invariants-retained-admission.d.ts.map +1 -0
- package/dist/domain/invariants-retained-admission.js +40 -0
- package/dist/domain/invariants-retained-admission.js.map +1 -0
- package/dist/domain/invariants-run.d.ts +1 -3
- package/dist/domain/invariants-run.d.ts.map +1 -1
- package/dist/domain/invariants-run.js +124 -77
- package/dist/domain/invariants-run.js.map +1 -1
- package/dist/domain/invariants-runtime.d.ts.map +1 -1
- package/dist/domain/invariants-runtime.js +2 -1
- package/dist/domain/invariants-runtime.js.map +1 -1
- package/dist/domain/invariants-state.d.ts.map +1 -1
- package/dist/domain/invariants-state.js +1 -4
- package/dist/domain/invariants-state.js.map +1 -1
- package/dist/domain/legacy-interaction-snapshot.d.ts +7 -0
- package/dist/domain/legacy-interaction-snapshot.d.ts.map +1 -0
- package/dist/domain/legacy-interaction-snapshot.js +227 -0
- package/dist/domain/legacy-interaction-snapshot.js.map +1 -0
- package/dist/domain/materialized-state-snapshot.d.ts +3 -47
- package/dist/domain/materialized-state-snapshot.d.ts.map +1 -1
- package/dist/domain/materialized-state-snapshot.js +5 -4
- package/dist/domain/materialized-state-snapshot.js.map +1 -1
- package/dist/domain/materialized-state.d.ts +48 -0
- package/dist/domain/materialized-state.d.ts.map +1 -0
- package/dist/domain/materialized-state.js +2 -0
- package/dist/domain/materialized-state.js.map +1 -0
- package/dist/domain/reducer-conversation-events.d.ts.map +1 -1
- package/dist/domain/reducer-conversation-events.js +14 -3
- package/dist/domain/reducer-conversation-events.js.map +1 -1
- package/dist/domain/reducer-domain-events.d.ts.map +1 -1
- package/dist/domain/reducer-domain-events.js +3 -52
- package/dist/domain/reducer-domain-events.js.map +1 -1
- package/dist/domain/reducer-interactions.d.ts.map +1 -1
- package/dist/domain/reducer-interactions.js +180 -43
- package/dist/domain/reducer-interactions.js.map +1 -1
- package/dist/domain/reducer-lifecycle.d.ts.map +1 -1
- package/dist/domain/reducer-lifecycle.js +46 -4
- package/dist/domain/reducer-lifecycle.js.map +1 -1
- package/dist/domain/reducer-retained-admission.d.ts +8 -0
- package/dist/domain/reducer-retained-admission.d.ts.map +1 -0
- package/dist/domain/reducer-retained-admission.js +55 -0
- package/dist/domain/reducer-retained-admission.js.map +1 -0
- package/dist/domain/reducer-runtime.d.ts.map +1 -1
- package/dist/domain/reducer-runtime.js +29 -6
- package/dist/domain/reducer-runtime.js.map +1 -1
- package/dist/domain/reducer-support.d.ts +6 -0
- package/dist/domain/reducer-support.d.ts.map +1 -1
- package/dist/domain/reducer-support.js +24 -0
- package/dist/domain/reducer-support.js.map +1 -1
- package/dist/domain/run-contracts.d.ts +19 -1
- package/dist/domain/run-contracts.d.ts.map +1 -1
- package/dist/domain/runtime-events.d.ts +10 -4
- package/dist/domain/runtime-events.d.ts.map +1 -1
- package/dist/domain/runtime-events.js.map +1 -1
- package/dist/domain/runtime-projection.d.ts +9 -3
- package/dist/domain/runtime-projection.d.ts.map +1 -1
- package/dist/domain/runtime-projection.js.map +1 -1
- package/dist/domain/secret-sanitizer.js +2 -2
- package/dist/domain/secret-sanitizer.js.map +1 -1
- package/dist/domain/state.d.ts +1 -2
- package/dist/domain/state.d.ts.map +1 -1
- package/dist/domain/state.js +0 -1
- package/dist/domain/state.js.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/installed-package-version.d.ts +3 -0
- package/dist/installed-package-version.d.ts.map +1 -0
- package/dist/installed-package-version.js +34 -0
- package/dist/installed-package-version.js.map +1 -0
- package/dist/ports/effect-storage.d.ts +5 -0
- package/dist/ports/effect-storage.d.ts.map +1 -1
- package/dist/ports/execution.d.ts +3 -1
- package/dist/ports/execution.d.ts.map +1 -1
- package/dist/ports/execution.js.map +1 -1
- package/dist/startup/durable-runtime.js +2 -344
- package/dist/startup/durable-runtime.js.map +1 -6
- package/dist/startup/preview-runtime.d.ts.map +1 -1
- package/dist/startup/preview-runtime.js +161 -6
- package/dist/startup/preview-runtime.js.map +1 -6
- package/dist/startup/terminal-runtime.js +5 -13
- package/dist/startup/terminal-runtime.js.map +1 -6
- package/dist/testing/deterministic-backend.js +1 -1
- package/dist/testing/deterministic-backend.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +21 -1
- package/dist/version.js.map +1 -1
- package/dist/views/headless/rpc.d.ts.map +1 -1
- package/dist/views/headless/rpc.js +5 -0
- package/dist/views/headless/rpc.js.map +1 -1
- package/dist/views/shared/analysis-model-call-presentation.js +2 -2
- package/dist/views/shared/analysis-model-call-presentation.js.map +1 -1
- package/dist/views/shared/analysis-presentation.d.ts.map +1 -1
- package/dist/views/shared/analysis-presentation.js +5 -0
- package/dist/views/shared/analysis-presentation.js.map +1 -1
- package/dist/views/shared/command-registry.d.ts.map +1 -1
- package/dist/views/shared/command-registry.js +9 -5
- package/dist/views/shared/command-registry.js.map +1 -1
- package/dist/views/shared/models.d.ts +42 -0
- package/dist/views/shared/models.d.ts.map +1 -1
- package/dist/views/shared/models.js.map +1 -1
- package/dist/views/shared/semantic-activity.d.ts.map +1 -1
- package/dist/views/shared/semantic-activity.js +6 -21
- package/dist/views/shared/semantic-activity.js.map +1 -1
- package/dist/views/shared/semantic-details.d.ts.map +1 -1
- package/dist/views/shared/semantic-details.js +8 -0
- package/dist/views/shared/semantic-details.js.map +1 -1
- package/dist/views/shared/semantic-projection.d.ts.map +1 -1
- package/dist/views/shared/semantic-projection.js +15 -2
- package/dist/views/shared/semantic-projection.js.map +1 -1
- package/dist/views/shared/usage-projection.d.ts +2 -2
- package/dist/views/shared/usage-projection.d.ts.map +1 -1
- package/dist/views/shared/usage-projection.js +25 -14
- package/dist/views/shared/usage-projection.js.map +1 -1
- package/dist/views/tui/activity-browser.d.ts +1 -1
- package/dist/views/tui/activity-browser.d.ts.map +1 -1
- package/dist/views/tui/activity-browser.js +35 -112
- package/dist/views/tui/activity-browser.js.map +1 -1
- package/dist/views/tui/activity.d.ts +1 -0
- package/dist/views/tui/activity.d.ts.map +1 -1
- package/dist/views/tui/activity.js +25 -26
- package/dist/views/tui/activity.js.map +1 -1
- package/dist/views/tui/composer-view.d.ts +3 -1
- package/dist/views/tui/composer-view.d.ts.map +1 -1
- package/dist/views/tui/composer-view.js +57 -33
- package/dist/views/tui/composer-view.js.map +1 -1
- package/dist/views/tui/entity-browser.d.ts +1 -1
- package/dist/views/tui/entity-browser.d.ts.map +1 -1
- package/dist/views/tui/entity-browser.js +7 -3
- package/dist/views/tui/entity-browser.js.map +1 -1
- package/dist/views/tui/execution-target.d.ts +3 -1
- package/dist/views/tui/execution-target.d.ts.map +1 -1
- package/dist/views/tui/execution-target.js +57 -0
- 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 +50 -10
- package/dist/views/tui/fork-preview.js.map +1 -1
- package/dist/views/tui/graph.d.ts +4 -2
- package/dist/views/tui/graph.d.ts.map +1 -1
- package/dist/views/tui/graph.js +115 -8
- package/dist/views/tui/graph.js.map +1 -1
- package/dist/views/tui/help.js +1 -1
- package/dist/views/tui/help.js.map +1 -1
- package/dist/views/tui/interaction-presentation.d.ts +2 -1
- package/dist/views/tui/interaction-presentation.d.ts.map +1 -1
- package/dist/views/tui/interaction-presentation.js +13 -14
- package/dist/views/tui/interaction-presentation.js.map +1 -1
- package/dist/views/tui/interaction.d.ts +1 -0
- package/dist/views/tui/interaction.d.ts.map +1 -1
- package/dist/views/tui/interaction.js +11 -11
- package/dist/views/tui/interaction.js.map +1 -1
- package/dist/views/tui/keyboard.d.ts +1 -1
- package/dist/views/tui/keyboard.d.ts.map +1 -1
- package/dist/views/tui/keyboard.js +4 -1
- package/dist/views/tui/keyboard.js.map +1 -1
- package/dist/views/tui/measurement-display.d.ts +3 -0
- package/dist/views/tui/measurement-display.d.ts.map +1 -0
- package/dist/views/tui/measurement-display.js +11 -0
- package/dist/views/tui/measurement-display.js.map +1 -0
- package/dist/views/tui/modal-coordinator.d.ts +1 -0
- package/dist/views/tui/modal-coordinator.d.ts.map +1 -1
- package/dist/views/tui/modal-coordinator.js +8 -1
- package/dist/views/tui/modal-coordinator.js.map +1 -1
- package/dist/views/tui/profile-editor.d.ts.map +1 -1
- package/dist/views/tui/profile-editor.js +2 -31
- package/dist/views/tui/profile-editor.js.map +1 -1
- 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 +3 -1
- package/dist/views/tui/terminal-chrome.d.ts.map +1 -1
- package/dist/views/tui/terminal-chrome.js +107 -57
- package/dist/views/tui/terminal-chrome.js.map +1 -1
- package/dist/views/tui/terminal-command-controller.d.ts +2 -0
- package/dist/views/tui/terminal-command-controller.d.ts.map +1 -1
- package/dist/views/tui/terminal-command-controller.js +16 -7
- package/dist/views/tui/terminal-command-controller.js.map +1 -1
- package/dist/views/tui/terminal-identity.d.ts +3 -1
- package/dist/views/tui/terminal-identity.d.ts.map +1 -1
- package/dist/views/tui/terminal-identity.js +22 -80
- package/dist/views/tui/terminal-identity.js.map +1 -1
- package/dist/views/tui/terminal-input-controller.d.ts +4 -2
- package/dist/views/tui/terminal-input-controller.d.ts.map +1 -1
- package/dist/views/tui/terminal-input-controller.js +36 -6
- package/dist/views/tui/terminal-input-controller.js.map +1 -1
- package/dist/views/tui/terminal-interaction-controller.d.ts +2 -0
- package/dist/views/tui/terminal-interaction-controller.d.ts.map +1 -1
- package/dist/views/tui/terminal-interaction-controller.js +43 -0
- package/dist/views/tui/terminal-interaction-controller.js.map +1 -1
- package/dist/views/tui/terminal-overlays.d.ts +1 -0
- package/dist/views/tui/terminal-overlays.d.ts.map +1 -1
- package/dist/views/tui/terminal-overlays.js +57 -15
- package/dist/views/tui/terminal-overlays.js.map +1 -1
- package/dist/views/tui/terminal-shell.d.ts +2 -0
- package/dist/views/tui/terminal-shell.d.ts.map +1 -1
- package/dist/views/tui/terminal-shell.js +15 -4
- package/dist/views/tui/terminal-shell.js.map +1 -1
- package/dist/views/tui/terminal-usage.d.ts +1 -0
- package/dist/views/tui/terminal-usage.d.ts.map +1 -1
- package/dist/views/tui/terminal-usage.js +44 -123
- package/dist/views/tui/terminal-usage.js.map +1 -1
- package/dist/views/tui/transcript.d.ts.map +1 -1
- package/dist/views/tui/transcript.js +3 -5
- package/dist/views/tui/transcript.js.map +1 -1
- package/package.json +20 -13
- package/dist/adapters/runtime/cli-bridge-retained-projection.d.ts.map +0 -1
- package/dist/adapters/runtime/cli-bridge-retained-projection.js +0 -101
- package/dist/adapters/runtime/cli-bridge-retained-projection.js.map +0 -1
- package/dist/app/view-model.d.ts +0 -37
- package/dist/app/view-model.d.ts.map +0 -1
- package/dist/app/view-model.js +0 -103
- package/dist/app/view-model.js.map +0 -1
- package/dist/startup/chunks/analysis-comparison-facts-BYZX2KTR.js +0 -2
- package/dist/startup/chunks/analysis-comparison-facts-BYZX2KTR.js.map +0 -6
- package/dist/startup/chunks/analysis-comparison-record-VMUVZPUV.js +0 -2
- package/dist/startup/chunks/analysis-comparison-record-VMUVZPUV.js.map +0 -6
- package/dist/startup/chunks/chunk-2B6P3EZQ.js +0 -2
- package/dist/startup/chunks/chunk-2B6P3EZQ.js.map +0 -6
- package/dist/startup/chunks/chunk-3SLVNOQZ.js +0 -2
- package/dist/startup/chunks/chunk-3SLVNOQZ.js.map +0 -6
- package/dist/startup/chunks/chunk-5ZIGORCF.js +0 -6
- package/dist/startup/chunks/chunk-5ZIGORCF.js.map +0 -6
- package/dist/startup/chunks/chunk-6G7QKB6J.js +0 -2
- package/dist/startup/chunks/chunk-6G7QKB6J.js.map +0 -6
- package/dist/startup/chunks/chunk-AUAERYTD.js +0 -2
- package/dist/startup/chunks/chunk-AUAERYTD.js.map +0 -6
- package/dist/startup/chunks/chunk-BCT2WD5R.js +0 -2
- package/dist/startup/chunks/chunk-BCT2WD5R.js.map +0 -6
- package/dist/startup/chunks/chunk-ECYRVU25.js +0 -2
- package/dist/startup/chunks/chunk-ECYRVU25.js.map +0 -6
- package/dist/startup/chunks/chunk-EQDIVTWX.js +0 -2
- package/dist/startup/chunks/chunk-EQDIVTWX.js.map +0 -6
- package/dist/startup/chunks/chunk-FRHYXPNB.js +0 -2
- package/dist/startup/chunks/chunk-FRHYXPNB.js.map +0 -6
- package/dist/startup/chunks/chunk-GZKMBTCI.js +0 -3
- package/dist/startup/chunks/chunk-GZKMBTCI.js.map +0 -6
- package/dist/startup/chunks/chunk-GZLREBOD.js +0 -2
- package/dist/startup/chunks/chunk-GZLREBOD.js.map +0 -6
- package/dist/startup/chunks/chunk-HFZ5Q3X5.js +0 -2
- package/dist/startup/chunks/chunk-HFZ5Q3X5.js.map +0 -6
- package/dist/startup/chunks/chunk-ICFZ5GZR.js +0 -2
- package/dist/startup/chunks/chunk-ICFZ5GZR.js.map +0 -6
- package/dist/startup/chunks/chunk-JR4A5QXZ.js +0 -2
- package/dist/startup/chunks/chunk-JR4A5QXZ.js.map +0 -6
- package/dist/startup/chunks/chunk-LUXHNCKY.js +0 -2
- package/dist/startup/chunks/chunk-LUXHNCKY.js.map +0 -6
- package/dist/startup/chunks/chunk-NDSFD5HI.js +0 -2
- package/dist/startup/chunks/chunk-NDSFD5HI.js.map +0 -6
- package/dist/startup/chunks/chunk-NWDQFVYZ.js +0 -6
- package/dist/startup/chunks/chunk-NWDQFVYZ.js.map +0 -6
- package/dist/startup/chunks/chunk-PAPTIOCL.js +0 -2
- package/dist/startup/chunks/chunk-PAPTIOCL.js.map +0 -6
- package/dist/startup/chunks/chunk-PIJUYQ3B.js +0 -2
- package/dist/startup/chunks/chunk-PIJUYQ3B.js.map +0 -6
- package/dist/startup/chunks/chunk-PXRVFPRL.js +0 -2
- package/dist/startup/chunks/chunk-PXRVFPRL.js.map +0 -6
- package/dist/startup/chunks/chunk-RELMHYIG.js +0 -3
- package/dist/startup/chunks/chunk-RELMHYIG.js.map +0 -6
- package/dist/startup/chunks/chunk-RJAXEI5Z.js +0 -2
- package/dist/startup/chunks/chunk-RJAXEI5Z.js.map +0 -6
- package/dist/startup/chunks/chunk-RPJ2AWHI.js +0 -2
- package/dist/startup/chunks/chunk-RPJ2AWHI.js.map +0 -6
- package/dist/startup/chunks/chunk-TW2LBTSL.js +0 -2
- package/dist/startup/chunks/chunk-TW2LBTSL.js.map +0 -6
- package/dist/startup/chunks/chunk-TYNDYSMP.js +0 -2
- package/dist/startup/chunks/chunk-TYNDYSMP.js.map +0 -6
- package/dist/startup/chunks/chunk-TZNTMUGF.js +0 -117
- package/dist/startup/chunks/chunk-TZNTMUGF.js.map +0 -6
- package/dist/startup/chunks/chunk-UT4NB43O.js +0 -2
- package/dist/startup/chunks/chunk-UT4NB43O.js.map +0 -6
- package/dist/startup/chunks/chunk-VTNLVERY.js +0 -2
- package/dist/startup/chunks/chunk-VTNLVERY.js.map +0 -6
- package/dist/startup/chunks/configuration-wizard-G5VQFNBR.js +0 -3
- package/dist/startup/chunks/configuration-wizard-G5VQFNBR.js.map +0 -6
- package/dist/startup/chunks/production-connection-providers-3BNIYUIS.js +0 -2
- package/dist/startup/chunks/production-connection-providers-3BNIYUIS.js.map +0 -6
- package/dist/startup/chunks/production-connections-27KWJIR6.js +0 -2
- package/dist/startup/chunks/production-connections-27KWJIR6.js.map +0 -6
- package/dist/startup/chunks/profile-connection-dispatch-HFTWSEIR.js +0 -2
- package/dist/startup/chunks/profile-connection-dispatch-HFTWSEIR.js.map +0 -6
- package/dist/startup/chunks/supervisor-control-VPVKE7NI.js +0 -2
- package/dist/startup/chunks/supervisor-control-VPVKE7NI.js.map +0 -6
- package/dist/startup/chunks/supervisor-watch-X6TXO6GN.js +0 -2
- package/dist/startup/chunks/supervisor-watch-X6TXO6GN.js.map +0 -6
- package/dist/startup/chunks/trace-store-ZIU4S2VR.js +0 -6
- package/dist/startup/chunks/trace-store-ZIU4S2VR.js.map +0 -6
- package/dist/startup/chunks/ui-dispatch-NV3XTZDR.js +0 -3
- package/dist/startup/chunks/ui-dispatch-NV3XTZDR.js.map +0 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"production-connection-providers.d.ts","sourceRoot":"","sources":["../../../src/adapters/connections/production-connection-providers.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,uCAAuC,CAAA;AAG9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAGhE,OAAO,KAAK,EAEV,0BAA0B,EAG1B,2BAA2B,EAC5B,MAAM,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"production-connection-providers.d.ts","sourceRoot":"","sources":["../../../src/adapters/connections/production-connection-providers.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,uCAAuC,CAAA;AAG9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAGhE,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,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,0BAA0B,CAAC,CAyCrC"}
|
|
@@ -4,6 +4,7 @@ import { Sandbox } from '@tangle-network/sandbox';
|
|
|
4
4
|
import { ConnectionError } from '../../app/connection-errors.js';
|
|
5
5
|
import { readConnectionCredential } from './production-connection-credentials.js';
|
|
6
6
|
import { connectionEndpoint } from './production-connection-endpoints.js';
|
|
7
|
+
import { supportsTangleRetainedControlLookup } from './tangle-retained-control-lookup.js';
|
|
7
8
|
export async function createTangleSandboxClient(record, options, signal) {
|
|
8
9
|
if (options.sandboxClient)
|
|
9
10
|
return options.sandboxClient;
|
|
@@ -42,9 +43,12 @@ export async function capabilitiesForConnection(record, options) {
|
|
|
42
43
|
respondToInteraction: false,
|
|
43
44
|
});
|
|
44
45
|
case 'tangle-sandbox': {
|
|
45
|
-
const
|
|
46
|
+
const reported = options.sandboxClient
|
|
46
47
|
? await createTangleProvider({ client: options.sandboxClient }).capabilities()
|
|
47
48
|
: defaultTangleSandboxCapabilities();
|
|
49
|
+
const environment = tangleConnectionCapabilities(record, reported, options.tangleRetainedControlLookup !== undefined ||
|
|
50
|
+
options.sandboxClient === undefined ||
|
|
51
|
+
supportsTangleRetainedControlLookup(options.sandboxClient));
|
|
48
52
|
const client = options.sandboxClient;
|
|
49
53
|
return capabilityReport(record, 'executor', environment, {
|
|
50
54
|
create: true,
|
|
@@ -55,6 +59,35 @@ export async function capabilitiesForConnection(record, options) {
|
|
|
55
59
|
}
|
|
56
60
|
}
|
|
57
61
|
}
|
|
62
|
+
function tangleConnectionCapabilities(record, reported, hasRetainedControlLookup = false) {
|
|
63
|
+
if (record.providerOptions.lifecycle !== 'retained') {
|
|
64
|
+
return {
|
|
65
|
+
...reported,
|
|
66
|
+
streaming: { ...reported.streaming, replay: false, detach: false },
|
|
67
|
+
sessions: { ...reported.sessions, continue: false, list: false, messages: false },
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
const retained = reported.retainedControl;
|
|
71
|
+
const exactRetained = hasRetainedControlLookup &&
|
|
72
|
+
retained?.exactRunIdentity === true &&
|
|
73
|
+
retained.resultIdentity === true &&
|
|
74
|
+
retained.eventIdentity === true &&
|
|
75
|
+
retained.cancellationIdempotency === true &&
|
|
76
|
+
reported.streaming.replay &&
|
|
77
|
+
reported.streaming.detach &&
|
|
78
|
+
reported.streaming.turnIdempotency;
|
|
79
|
+
return {
|
|
80
|
+
...reported,
|
|
81
|
+
streaming: {
|
|
82
|
+
...reported.streaming,
|
|
83
|
+
live: exactRetained && reported.streaming.live,
|
|
84
|
+
replay: exactRetained && reported.streaming.replay,
|
|
85
|
+
detach: exactRetained && reported.streaming.detach,
|
|
86
|
+
turnIdempotency: exactRetained && reported.streaming.turnIdempotency,
|
|
87
|
+
},
|
|
88
|
+
sessions: { ...reported.sessions, continue: false, list: false, messages: false },
|
|
89
|
+
};
|
|
90
|
+
}
|
|
58
91
|
function capabilityReport(record, backend, environment, providerMethods) {
|
|
59
92
|
const streaming = environment?.streaming ?? {
|
|
60
93
|
live: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"production-connection-providers.js","sourceRoot":"","sources":["../../../src/adapters/connections/production-connection-providers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAA;AACnF,OAAO,EACL,oBAAoB,EACpB,gCAAgC,GAEjC,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAEhE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAA;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAA;
|
|
1
|
+
{"version":3,"file":"production-connection-providers.js","sourceRoot":"","sources":["../../../src/adapters/connections/production-connection-providers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AgentProfile } from '@tangle-network/agent-interface';
|
|
1
|
+
import type { AgentExactRunControlRef, AgentProfile } from '@tangle-network/agent-interface';
|
|
2
2
|
import type { AgentEnvironmentCapabilities } from '@tangle-network/agent-interface/environment-provider';
|
|
3
3
|
import type { SandboxClientLike } from '@tangle-network/agent-provider-tangle';
|
|
4
4
|
import type { RouterTransportConfig } from '@tangle-network/agent-runtime/kernel';
|
|
@@ -46,6 +46,16 @@ export interface SandboxClientFactoryInput {
|
|
|
46
46
|
readonly signal?: AbortSignal;
|
|
47
47
|
}
|
|
48
48
|
export type SandboxClientFactory = (input: SandboxClientFactoryInput) => SandboxClientLike | Promise<SandboxClientLike>;
|
|
49
|
+
export interface TangleRetainedControlLookupInput {
|
|
50
|
+
readonly connectionId: ConnectionId;
|
|
51
|
+
readonly braidRunId: string;
|
|
52
|
+
readonly providerSessionId: string;
|
|
53
|
+
readonly executionId: string;
|
|
54
|
+
readonly environmentIdempotencyKey: string;
|
|
55
|
+
readonly signal?: AbortSignal;
|
|
56
|
+
}
|
|
57
|
+
/** Provider-backed lookup for a dispatch whose acknowledgement was not journaled. */
|
|
58
|
+
export type TangleRetainedControlLookup = (input: TangleRetainedControlLookupInput) => Promise<AgentExactRunControlRef | null>;
|
|
49
59
|
export interface ProductionConnectionOptions {
|
|
50
60
|
readonly credentials?: CredentialPort;
|
|
51
61
|
/** Map Braid's durable credential id to the credential-port's opaque ref. */
|
|
@@ -62,6 +72,7 @@ export interface ProductionConnectionOptions {
|
|
|
62
72
|
}) => boolean;
|
|
63
73
|
readonly sandboxClient?: SandboxClientLike;
|
|
64
74
|
readonly sandboxClientFactory?: SandboxClientFactory;
|
|
75
|
+
readonly tangleRetainedControlLookup?: TangleRetainedControlLookup;
|
|
65
76
|
readonly now?: () => IsoDateTime;
|
|
66
77
|
}
|
|
67
78
|
export interface ConnectionHealthOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"production-connection-types.d.ts","sourceRoot":"","sources":["../../../src/adapters/connections/production-connection-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"production-connection-types.d.ts","sourceRoot":"","sources":["../../../src/adapters/connections/production-connection-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,6 @@ import type { ProductionConnectionAdapter, ProductionConnectionOptions } from '.
|
|
|
3
3
|
export { readConnectionCredential } from './production-connection-credentials.js';
|
|
4
4
|
export { connectionEndpoint, DEFAULT_TANGLE_INFERENCE_ENDPOINT, normalizeCliBridgeRuntimeBaseUrl, } from './production-connection-endpoints.js';
|
|
5
5
|
export { createTangleSandboxClient } from './production-connection-providers.js';
|
|
6
|
-
export { type ConnectionCapabilityAction, type ConnectionCapabilityReport, type ConnectionHealthOptions, type ConnectionModelVerificationOptions, type ConnectionProviderMethods, type ConnectionRuntimeCapabilities, DEFAULT_TANGLE_SANDBOX_ENDPOINT, type ProductionConnectionAdapter, type ProductionConnectionOptions, type SandboxClientFactory, type SandboxClientFactoryInput, } from './production-connection-types.js';
|
|
6
|
+
export { type ConnectionCapabilityAction, type ConnectionCapabilityReport, type ConnectionHealthOptions, type ConnectionModelVerificationOptions, type ConnectionProviderMethods, type ConnectionRuntimeCapabilities, DEFAULT_TANGLE_SANDBOX_ENDPOINT, type ProductionConnectionAdapter, type ProductionConnectionOptions, type SandboxClientFactory, type SandboxClientFactoryInput, type TangleRetainedControlLookup, type TangleRetainedControlLookupInput, } from './production-connection-types.js';
|
|
7
7
|
export declare function createProductionConnectionAdapter(record: ConnectionRecord, options?: ProductionConnectionOptions): ProductionConnectionAdapter;
|
|
8
8
|
//# sourceMappingURL=production-connections.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"production-connections.d.ts","sourceRoot":"","sources":["../../../src/adapters/connections/production-connections.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAGhE,OAAO,KAAK,EAGV,2BAA2B,EAC3B,2BAA2B,EAC5B,MAAM,kCAAkC,CAAA;AAEzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAA;AACjF,OAAO,EACL,kBAAkB,EAClB,iCAAiC,EACjC,gCAAgC,GACjC,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AAChF,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,kCAAkC,EACvC,KAAK,yBAAyB,EAC9B,KAAK,6BAA6B,EAClC,+BAA+B,EAC/B,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,
|
|
1
|
+
{"version":3,"file":"production-connections.d.ts","sourceRoot":"","sources":["../../../src/adapters/connections/production-connections.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAGhE,OAAO,KAAK,EAGV,2BAA2B,EAC3B,2BAA2B,EAC5B,MAAM,kCAAkC,CAAA;AAEzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAA;AACjF,OAAO,EACL,kBAAkB,EAClB,iCAAiC,EACjC,gCAAgC,GACjC,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AAChF,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,kCAAkC,EACvC,KAAK,yBAAyB,EAC9B,KAAK,6BAA6B,EAClC,+BAA+B,EAC/B,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EAChC,KAAK,gCAAgC,GACtC,MAAM,kCAAkC,CAAA;AAEzC,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,2BAAgC,GACxC,2BAA2B,CAS7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"production-connections.js","sourceRoot":"","sources":["../../../src/adapters/connections/production-connections.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAA;AACjG,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AAQhF,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAA;AACjF,OAAO,EACL,kBAAkB,EAClB,iCAAiC,EACjC,gCAAgC,GACjC,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AAChF,OAAO,EAOL,+BAA+B,
|
|
1
|
+
{"version":3,"file":"production-connections.js","sourceRoot":"","sources":["../../../src/adapters/connections/production-connections.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAA;AACjG,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AAQhF,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAA;AACjF,OAAO,EACL,kBAAkB,EAClB,iCAAiC,EACjC,gCAAgC,GACjC,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AAChF,OAAO,EAOL,+BAA+B,GAOhC,MAAM,kCAAkC,CAAA;AAEzC,MAAM,UAAU,iCAAiC,CAC/C,MAAwB,EACxB,OAAO,GAAgC,EAAE;IAEzC,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,MAAM;QACN,YAAY,EAAE,GAAG,EAAE,CAAC,yBAAyB,CAAC,MAAM,EAAE,OAAO,CAAC;QAC9D,MAAM,EAAE,CAAC,aAAa,GAA4B,EAAE,EAAE,EAAE,CACtD,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC;QACrD,WAAW,EAAE,CAAC,KAAa,EAAE,mBAAmB,GAAuC,EAAE,EAAE,EAAE,CAC3F,wBAAwB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,mBAAmB,CAAC;KACxE,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { SandboxClientLike } from '@tangle-network/agent-provider-tangle';
|
|
2
|
+
import type { TangleRetainedControlLookup } from './production-connection-types.js';
|
|
3
|
+
export declare function supportsTangleRetainedControlLookup(client: SandboxClientLike): boolean;
|
|
4
|
+
/** Finds one SDK-issued run reference without creating or changing cloud state. */
|
|
5
|
+
export declare function createTangleRetainedControlLookup(client: SandboxClientLike): TangleRetainedControlLookup;
|
|
6
|
+
//# sourceMappingURL=tangle-retained-control-lookup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tangle-retained-control-lookup.d.ts","sourceRoot":"","sources":["../../../src/adapters/connections/tangle-retained-control-lookup.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAuB,MAAM,uCAAuC,CAAA;AACnG,OAAO,KAAK,EACV,2BAA2B,EAE5B,MAAM,kCAAkC,CAAA;AA6EzC,wBAAgB,mCAAmC,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAEtF;AAED,mFAAmF;AACnF,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,iBAAiB,GACxB,2BAA2B,CA0C7B"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { AgentExactRunControlRefSchema } from '@tangle-network/agent-interface';
|
|
2
|
+
const PAGE_SIZE = 100;
|
|
3
|
+
const MAX_PAGES = 1_000;
|
|
4
|
+
const ACTIVE_STATUSES = Object.freeze(['pending', 'provisioning', 'running']);
|
|
5
|
+
const INACTIVE_STATUSES = Object.freeze(['stopped', 'failed', 'expired']);
|
|
6
|
+
function safeIdentity(value) {
|
|
7
|
+
return value.replace(/[^A-Za-z0-9._:-]/gu, '-').slice(0, 128) || 'run';
|
|
8
|
+
}
|
|
9
|
+
function matchesRetainedEnvironment(box, input) {
|
|
10
|
+
const metadata = box.metadata;
|
|
11
|
+
return (box.name === `braid-${safeIdentity(input.providerSessionId)}` &&
|
|
12
|
+
metadata?.owner === 'braid' &&
|
|
13
|
+
metadata.lifecycle === 'retained' &&
|
|
14
|
+
metadata.providerSessionId === input.providerSessionId &&
|
|
15
|
+
metadata.retainedIdempotencyKey === input.environmentIdempotencyKey &&
|
|
16
|
+
metadata.sessionId === input.providerSessionId &&
|
|
17
|
+
metadata.executionId === input.executionId);
|
|
18
|
+
}
|
|
19
|
+
async function matchingEnvironments(client, input, statuses) {
|
|
20
|
+
const list = client.list;
|
|
21
|
+
const matches = [];
|
|
22
|
+
const seen = new Set();
|
|
23
|
+
let offset = 0;
|
|
24
|
+
for (let pageIndex = 0; pageIndex < MAX_PAGES; pageIndex += 1) {
|
|
25
|
+
input.signal?.throwIfAborted();
|
|
26
|
+
const page = await list({
|
|
27
|
+
scope: 'personal',
|
|
28
|
+
status: statuses,
|
|
29
|
+
limit: PAGE_SIZE,
|
|
30
|
+
offset,
|
|
31
|
+
...(input.signal === undefined ? {} : { signal: input.signal }),
|
|
32
|
+
});
|
|
33
|
+
input.signal?.throwIfAborted();
|
|
34
|
+
for (const box of page) {
|
|
35
|
+
if (seen.has(box.id))
|
|
36
|
+
throw new Error('Tangle retained lookup returned a duplicate sandbox');
|
|
37
|
+
seen.add(box.id);
|
|
38
|
+
if (matchesRetainedEnvironment(box, input))
|
|
39
|
+
matches.push(box);
|
|
40
|
+
}
|
|
41
|
+
if (page.length < PAGE_SIZE)
|
|
42
|
+
return matches;
|
|
43
|
+
offset += page.length;
|
|
44
|
+
}
|
|
45
|
+
throw new Error('Tangle retained lookup exceeded its bounded sandbox scan');
|
|
46
|
+
}
|
|
47
|
+
async function uniqueEnvironment(client, input) {
|
|
48
|
+
const active = await matchingEnvironments(client, input, ACTIVE_STATUSES);
|
|
49
|
+
if (active.length > 1)
|
|
50
|
+
throw new Error('Tangle retained lookup found multiple active sandboxes');
|
|
51
|
+
if (active[0] !== undefined)
|
|
52
|
+
return active[0];
|
|
53
|
+
const inactive = await matchingEnvironments(client, input, INACTIVE_STATUSES);
|
|
54
|
+
if (inactive.length > 1)
|
|
55
|
+
throw new Error('Tangle retained lookup found multiple sandboxes');
|
|
56
|
+
return inactive[0] ?? null;
|
|
57
|
+
}
|
|
58
|
+
export function supportsTangleRetainedControlLookup(client) {
|
|
59
|
+
return typeof client.get === 'function' && typeof client.list === 'function';
|
|
60
|
+
}
|
|
61
|
+
/** Finds one SDK-issued run reference without creating or changing cloud state. */
|
|
62
|
+
export function createTangleRetainedControlLookup(client) {
|
|
63
|
+
if (!supportsTangleRetainedControlLookup(client)) {
|
|
64
|
+
throw new Error('Tangle retained lookup requires Sandbox list and get methods');
|
|
65
|
+
}
|
|
66
|
+
return async (input) => {
|
|
67
|
+
const listed = await uniqueEnvironment(client, input);
|
|
68
|
+
if (listed === null)
|
|
69
|
+
return null;
|
|
70
|
+
input.signal?.throwIfAborted();
|
|
71
|
+
const exact = await client.get?.(listed.id, input.signal === undefined ? undefined : { signal: input.signal });
|
|
72
|
+
input.signal?.throwIfAborted();
|
|
73
|
+
if (exact === null || exact === undefined)
|
|
74
|
+
return null;
|
|
75
|
+
if (!matchesRetainedEnvironment(exact, input)) {
|
|
76
|
+
throw new Error('Tangle retained sandbox identity changed during exact lookup');
|
|
77
|
+
}
|
|
78
|
+
const session = exact.session?.(input.providerSessionId, input.signal === undefined ? undefined : { signal: input.signal });
|
|
79
|
+
if (session === undefined)
|
|
80
|
+
return null;
|
|
81
|
+
const status = await session.status(input.signal === undefined ? undefined : { signal: input.signal });
|
|
82
|
+
input.signal?.throwIfAborted();
|
|
83
|
+
if (status === null || typeof status !== 'object' || Array.isArray(status))
|
|
84
|
+
return null;
|
|
85
|
+
const parsed = AgentExactRunControlRefSchema.safeParse(status.runControlRef);
|
|
86
|
+
if (!parsed.success)
|
|
87
|
+
return null;
|
|
88
|
+
const controlRef = parsed.data;
|
|
89
|
+
if (controlRef.provider !== 'tangle-sandbox' ||
|
|
90
|
+
controlRef.environmentId !== exact.id ||
|
|
91
|
+
controlRef.sessionId !== input.providerSessionId ||
|
|
92
|
+
controlRef.executionId !== input.executionId) {
|
|
93
|
+
throw new Error('Tangle retained session identified another exact run');
|
|
94
|
+
}
|
|
95
|
+
return controlRef;
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=tangle-retained-control-lookup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tangle-retained-control-lookup.js","sourceRoot":"","sources":["../../../src/adapters/connections/tangle-retained-control-lookup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { closeSync, constants, fstatSync, lstatSync, openSync,
|
|
1
|
+
import { closeSync, constants, fstatSync, lstatSync, openSync, readSync, realpathSync, statSync, } from 'node:fs';
|
|
2
2
|
import { isAbsolute, join, parse, relative, resolve, sep } from 'node:path';
|
|
3
3
|
import { CredentialError } from '../../ports/credentials.js';
|
|
4
|
+
import { descriptorTargetPath } from '../persistence/posix-at.js';
|
|
4
5
|
const MAX_KEY_BYTES = 128;
|
|
5
6
|
function isInside(path, root) {
|
|
6
7
|
const child = relative(resolve(root), resolve(path));
|
|
@@ -76,7 +77,7 @@ function parseKey(bytes) {
|
|
|
76
77
|
}
|
|
77
78
|
function descriptorPath(fd) {
|
|
78
79
|
try {
|
|
79
|
-
const path =
|
|
80
|
+
const path = descriptorTargetPath(fd);
|
|
80
81
|
if (path.includes(' (deleted)')) {
|
|
81
82
|
throw new CredentialError('HEADLESS_KEY_FD_DELETED', 'Deleted headless key files are rejected');
|
|
82
83
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headless-key.js","sourceRoot":"","sources":["../../../src/adapters/credentials/headless-key.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,
|
|
1
|
+
{"version":3,"file":"headless-key.js","sourceRoot":"","sources":["../../../src/adapters/credentials/headless-key.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare function descriptorTargetPath(fileDescriptor: number): string;
|
|
2
|
+
export declare function descriptorPath(fileDescriptor: number): string;
|
|
3
|
+
export declare function openAt(directory: number, path: string, flags: number, mode?: number): number;
|
|
4
|
+
export declare function mkdirAt(directory: number, path: string, mode: number): void;
|
|
5
|
+
export declare function unlinkAt(directory: number, path: string): void;
|
|
6
|
+
export declare function renameAt(sourceDirectory: number, source: string, targetDirectory: number, target: string): void;
|
|
7
|
+
export declare function linkAt(sourceDirectory: number, source: string, targetDirectory: number, target: string): void;
|
|
8
|
+
//# sourceMappingURL=posix-at.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"posix-at.d.ts","sourceRoot":"","sources":["../../../src/adapters/persistence/posix-at.ts"],"names":[],"mappings":"AA0EA,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAuBnE;AAED,wBAAgB,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAG7D;AAoBD,wBAAgB,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,SAAI,GAAG,MAAM,CAIvF;AAED,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAE3E;AAED,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAE9D;AAED,wBAAgB,QAAQ,CACtB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,GACb,IAAI,CAIN;AAED,wBAAgB,MAAM,CACpB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,GACb,IAAI,CAIN"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { readlinkSync } from 'node:fs';
|
|
2
|
+
import koffi from 'koffi';
|
|
3
|
+
let cachedBindings;
|
|
4
|
+
function bindings() {
|
|
5
|
+
if (process.platform !== 'darwin' && process.platform !== 'linux') {
|
|
6
|
+
const error = new Error(`Descriptor-relative filesystem operations are unavailable on ${process.platform}`);
|
|
7
|
+
error.code = 'ENOSYS';
|
|
8
|
+
error.syscall = 'openat';
|
|
9
|
+
throw error;
|
|
10
|
+
}
|
|
11
|
+
if (cachedBindings !== undefined)
|
|
12
|
+
return cachedBindings;
|
|
13
|
+
const libc = koffi.load(null);
|
|
14
|
+
cachedBindings = {
|
|
15
|
+
fcntl: libc.func('int fcntl(int fileDescriptor, int command, ...)'),
|
|
16
|
+
linkAt: libc.func('int linkat(int sourceDirectory, const char *source, int targetDirectory, const char *target, int flags)'),
|
|
17
|
+
mkdirAt: libc.func('int mkdirat(int directory, const char *path, unsigned int mode)'),
|
|
18
|
+
openAt: libc.func('int openat(int directory, const char *path, int flags, ...)'),
|
|
19
|
+
renameAt: libc.func('int renameat(int sourceDirectory, const char *source, int targetDirectory, const char *target)'),
|
|
20
|
+
unlinkAt: libc.func('int unlinkat(int directory, const char *path, int flags)'),
|
|
21
|
+
};
|
|
22
|
+
return cachedBindings;
|
|
23
|
+
}
|
|
24
|
+
const DARWIN_F_GETPATH = 50;
|
|
25
|
+
const DARWIN_MAX_PATH_LENGTH = 1024;
|
|
26
|
+
const CLOSE_ON_EXEC = process.platform === 'darwin' ? 0x01000000 : 0o2000000;
|
|
27
|
+
export function descriptorTargetPath(fileDescriptor) {
|
|
28
|
+
if (process.platform === 'linux')
|
|
29
|
+
return readlinkSync(`/proc/self/fd/${fileDescriptor}`);
|
|
30
|
+
if (process.platform !== 'darwin') {
|
|
31
|
+
const error = new Error(`Descriptor target paths are unavailable on ${process.platform}`);
|
|
32
|
+
error.code = 'ENOSYS';
|
|
33
|
+
error.syscall = 'fcntl';
|
|
34
|
+
throw error;
|
|
35
|
+
}
|
|
36
|
+
const output = Buffer.alloc(DARWIN_MAX_PATH_LENGTH);
|
|
37
|
+
const result = bindings().fcntl(fileDescriptor, DARWIN_F_GETPATH, 'void *', output);
|
|
38
|
+
if (result < 0)
|
|
39
|
+
throw syscallError('fcntl', String(fileDescriptor));
|
|
40
|
+
const terminator = output.indexOf(0);
|
|
41
|
+
if (terminator <= 0) {
|
|
42
|
+
const error = new Error('Darwin F_GETPATH returned an invalid path');
|
|
43
|
+
error.code = 'EIO';
|
|
44
|
+
error.path = String(fileDescriptor);
|
|
45
|
+
error.syscall = 'fcntl';
|
|
46
|
+
throw error;
|
|
47
|
+
}
|
|
48
|
+
return output.toString('utf8', 0, terminator);
|
|
49
|
+
}
|
|
50
|
+
export function descriptorPath(fileDescriptor) {
|
|
51
|
+
if (process.platform === 'linux')
|
|
52
|
+
return `/proc/self/fd/${fileDescriptor}`;
|
|
53
|
+
return descriptorTargetPath(fileDescriptor);
|
|
54
|
+
}
|
|
55
|
+
function errnoCode(errno) {
|
|
56
|
+
for (const [name, value] of Object.entries(koffi.os.errno)) {
|
|
57
|
+
if (value === errno && name.startsWith('E'))
|
|
58
|
+
return name;
|
|
59
|
+
}
|
|
60
|
+
return `ERRNO_${errno}`;
|
|
61
|
+
}
|
|
62
|
+
function syscallError(syscall, path) {
|
|
63
|
+
const errno = koffi.errno();
|
|
64
|
+
const code = errnoCode(errno);
|
|
65
|
+
const error = new Error(`${code}: ${syscall} '${path}'`);
|
|
66
|
+
error.code = code;
|
|
67
|
+
error.errno = errno;
|
|
68
|
+
error.path = path;
|
|
69
|
+
error.syscall = syscall;
|
|
70
|
+
return error;
|
|
71
|
+
}
|
|
72
|
+
export function openAt(directory, path, flags, mode = 0) {
|
|
73
|
+
const result = bindings().openAt(directory, path, flags | CLOSE_ON_EXEC, 'unsigned int', mode);
|
|
74
|
+
if (result < 0)
|
|
75
|
+
throw syscallError('openat', path);
|
|
76
|
+
return result;
|
|
77
|
+
}
|
|
78
|
+
export function mkdirAt(directory, path, mode) {
|
|
79
|
+
if (bindings().mkdirAt(directory, path, mode) < 0)
|
|
80
|
+
throw syscallError('mkdirat', path);
|
|
81
|
+
}
|
|
82
|
+
export function unlinkAt(directory, path) {
|
|
83
|
+
if (bindings().unlinkAt(directory, path, 0) < 0)
|
|
84
|
+
throw syscallError('unlinkat', path);
|
|
85
|
+
}
|
|
86
|
+
export function renameAt(sourceDirectory, source, targetDirectory, target) {
|
|
87
|
+
if (bindings().renameAt(sourceDirectory, source, targetDirectory, target) < 0) {
|
|
88
|
+
throw syscallError('renameat', target);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
export function linkAt(sourceDirectory, source, targetDirectory, target) {
|
|
92
|
+
if (bindings().linkAt(sourceDirectory, source, targetDirectory, target, 0) < 0) {
|
|
93
|
+
throw syscallError('linkat', target);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=posix-at.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"posix-at.js","sourceRoot":"","sources":["../../../src/adapters/persistence/posix-at.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,12 +20,12 @@ export interface OpenParent {
|
|
|
20
20
|
export declare function errorCode(error: unknown): string | undefined;
|
|
21
21
|
export declare function safePath(path: string): SafePath;
|
|
22
22
|
export declare function componentPath(path: SafePath, count: number): string;
|
|
23
|
-
export declare function childPath(directoryFd: number, leaf: string): string;
|
|
24
23
|
export declare function normalizePathError(error: unknown, path: string): unknown;
|
|
25
24
|
export declare function requireDirectory(handle: number, path: string): void;
|
|
26
25
|
export declare function requireRegularFile(handle: number, path: string): void;
|
|
27
26
|
export declare function openDirectoryComponents(path: SafePath, count: number): number;
|
|
28
27
|
export declare function openParent(path: string): OpenParent;
|
|
28
|
+
export declare function openChild(directoryFd: number, leaf: string, path: string, flags: number, mode?: number): number;
|
|
29
29
|
export declare function openLeaf(parent: OpenParent, flags: number, mode?: number): number;
|
|
30
30
|
export declare function openExistingLeaf(path: string): number;
|
|
31
31
|
export declare function unlinkAt(parentFd: number, leaf: string, path: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe-file-descriptor.d.ts","sourceRoot":"","sources":["../../../src/adapters/persistence/safe-file-descriptor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"safe-file-descriptor.d.ts","sourceRoot":"","sources":["../../../src/adapters/persistence/safe-file-descriptor.ts"],"names":[],"mappings":"AAQA,QAAA,MAAM,eAAe,QAAmE,CAAA;AACxF,QAAA,MAAM,UAAU,QAAmE,CAAA;AAKnF,MAAM,MAAM,iBAAiB,GACzB,yBAAyB,GACzB,wBAAwB,GACxB,0BAA0B,GAC1B,yBAAyB,GACzB,uBAAuB,GACvB,iCAAiC,GACjC,6BAA6B,GAC7B,mBAAmB,CAAA;AAEvB,gEAAgE;AAChE,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;IAEhC,YAAY,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAInD;CACF;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;CACvC;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAUD,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAI5D;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAkB/C;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnE;AAiBD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAQxE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAOnE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAOrE;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAgC7E;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAwBnD;AAED,wBAAgB,SAAS,CACvB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM,CASR;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAEjF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA6BrD;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAO3E;AAED,qGAAqG;AACrG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAqBtD;AAED,sFAAsF;AACtF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAItD;AAED,sFAAsF;AACtF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,SAAQ,GAAG,IAAI,CAwCvE;AAED,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { closeSync, constants, fstatSync,
|
|
1
|
+
import { closeSync, constants, fstatSync, openSync } from 'node:fs';
|
|
2
2
|
import { join, parse, resolve, sep } from 'node:path';
|
|
3
|
+
import { mkdirAt as mkdirRelative, openAt as openRelative, unlinkAt as unlinkRelative, } from './posix-at.js';
|
|
3
4
|
const DIRECTORY_FLAGS = constants.O_RDONLY | constants.O_NONBLOCK | constants.O_NOFOLLOW;
|
|
4
5
|
const LEAF_FLAGS = constants.O_RDONLY | constants.O_NONBLOCK | constants.O_NOFOLLOW;
|
|
5
6
|
/** A fail-closed error from the private filesystem boundary. */
|
|
@@ -11,11 +12,9 @@ export class SafeFileError extends Error {
|
|
|
11
12
|
this.code = code;
|
|
12
13
|
}
|
|
13
14
|
}
|
|
14
|
-
function
|
|
15
|
-
if (process.platform === 'linux')
|
|
16
|
-
return
|
|
17
|
-
if (process.platform === 'darwin')
|
|
18
|
-
return '/dev/fd';
|
|
15
|
+
function assertSupportedPlatform() {
|
|
16
|
+
if (process.platform === 'linux' || process.platform === 'darwin')
|
|
17
|
+
return;
|
|
19
18
|
throw new SafeFileError('SAFE_FILE_PATH_RACE_UNSUPPORTED', `Descriptor-relative private-file access is unavailable on ${process.platform}; refusing the unsafe path operation`);
|
|
20
19
|
}
|
|
21
20
|
export function errorCode(error) {
|
|
@@ -25,7 +24,7 @@ export function errorCode(error) {
|
|
|
25
24
|
return typeof code === 'string' ? code : undefined;
|
|
26
25
|
}
|
|
27
26
|
export function safePath(path) {
|
|
28
|
-
|
|
27
|
+
assertSupportedPlatform();
|
|
29
28
|
if (path.includes('\u0000')) {
|
|
30
29
|
throw new SafeFileError('SAFE_FILE_INVALID_PATH', 'Private storage paths must not contain NUL bytes');
|
|
31
30
|
}
|
|
@@ -40,7 +39,7 @@ export function safePath(path) {
|
|
|
40
39
|
export function componentPath(path, count) {
|
|
41
40
|
return join(path.root, ...path.components.slice(0, count));
|
|
42
41
|
}
|
|
43
|
-
|
|
42
|
+
function assertLeaf(leaf) {
|
|
44
43
|
if (leaf.length === 0 ||
|
|
45
44
|
leaf === '.' ||
|
|
46
45
|
leaf === '..' ||
|
|
@@ -48,7 +47,6 @@ export function childPath(directoryFd, leaf) {
|
|
|
48
47
|
leaf.includes('\\')) {
|
|
49
48
|
throw new SafeFileError('SAFE_FILE_INVALID_PATH', 'Private storage path contains an invalid component');
|
|
50
49
|
}
|
|
51
|
-
return `${descriptorRoot()}/${directoryFd}/${leaf}`;
|
|
52
50
|
}
|
|
53
51
|
export function normalizePathError(error, path) {
|
|
54
52
|
if (errorCode(error) === 'ELOOP') {
|
|
@@ -76,7 +74,8 @@ export function openDirectoryComponents(path, count) {
|
|
|
76
74
|
const nextPath = join(currentPath, component);
|
|
77
75
|
let nextFd;
|
|
78
76
|
try {
|
|
79
|
-
|
|
77
|
+
assertLeaf(component);
|
|
78
|
+
nextFd = openRelative(currentFd, component, DIRECTORY_FLAGS);
|
|
80
79
|
}
|
|
81
80
|
catch (error) {
|
|
82
81
|
throw normalizePathError(error, nextPath);
|
|
@@ -121,16 +120,20 @@ export function openParent(path) {
|
|
|
121
120
|
leafPath: join(componentPath(parsed, parentCount), leaf),
|
|
122
121
|
};
|
|
123
122
|
}
|
|
124
|
-
export function
|
|
123
|
+
export function openChild(directoryFd, leaf, path, flags, mode) {
|
|
124
|
+
assertLeaf(leaf);
|
|
125
125
|
try {
|
|
126
126
|
return mode === undefined
|
|
127
|
-
?
|
|
128
|
-
:
|
|
127
|
+
? openRelative(directoryFd, leaf, flags)
|
|
128
|
+
: openRelative(directoryFd, leaf, flags, mode);
|
|
129
129
|
}
|
|
130
130
|
catch (error) {
|
|
131
|
-
throw normalizePathError(error,
|
|
131
|
+
throw normalizePathError(error, path);
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
|
+
export function openLeaf(parent, flags, mode) {
|
|
135
|
+
return openChild(parent.fd, parent.leaf, parent.leafPath, flags, mode);
|
|
136
|
+
}
|
|
134
137
|
export function openExistingLeaf(path) {
|
|
135
138
|
const parsed = safePath(path);
|
|
136
139
|
if (parsed.components.length === 0) {
|
|
@@ -167,8 +170,9 @@ export function openExistingLeaf(path) {
|
|
|
167
170
|
}
|
|
168
171
|
}
|
|
169
172
|
export function unlinkAt(parentFd, leaf, path) {
|
|
173
|
+
assertLeaf(leaf);
|
|
170
174
|
try {
|
|
171
|
-
|
|
175
|
+
unlinkRelative(parentFd, leaf);
|
|
172
176
|
}
|
|
173
177
|
catch (error) {
|
|
174
178
|
if (errorCode(error) !== 'ENOENT')
|
|
@@ -226,14 +230,15 @@ export function ensurePrivateDirectory(path, mode = 0o700) {
|
|
|
226
230
|
let nextFd;
|
|
227
231
|
for (;;) {
|
|
228
232
|
try {
|
|
229
|
-
|
|
233
|
+
assertLeaf(component);
|
|
234
|
+
nextFd = openRelative(currentFd, component, DIRECTORY_FLAGS);
|
|
230
235
|
break;
|
|
231
236
|
}
|
|
232
237
|
catch (error) {
|
|
233
238
|
if (errorCode(error) !== 'ENOENT')
|
|
234
239
|
throw normalizePathError(error, nextPath);
|
|
235
240
|
try {
|
|
236
|
-
|
|
241
|
+
mkdirRelative(currentFd, component, mode);
|
|
237
242
|
}
|
|
238
243
|
catch (mkdirError) {
|
|
239
244
|
if (errorCode(mkdirError) !== 'EEXIST') {
|
|
@@ -242,7 +247,13 @@ export function ensurePrivateDirectory(path, mode = 0o700) {
|
|
|
242
247
|
}
|
|
243
248
|
}
|
|
244
249
|
}
|
|
245
|
-
|
|
250
|
+
try {
|
|
251
|
+
requireDirectory(nextFd, nextPath);
|
|
252
|
+
}
|
|
253
|
+
catch (error) {
|
|
254
|
+
closeSync(nextFd);
|
|
255
|
+
throw error;
|
|
256
|
+
}
|
|
246
257
|
const previousFd = currentFd;
|
|
247
258
|
currentFd = nextFd;
|
|
248
259
|
currentPath = nextPath;
|