@orion-agents/orion-code 0.3.1 → 0.3.4
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/CHANGELOG.md +126 -0
- package/README.md +71 -32
- package/README.zh-CN.md +56 -29
- package/dist/commands/model-command-handlers.js +59 -14
- package/dist/commands/types.d.ts +6 -0
- package/dist/commands/workflow-command-handlers.d.ts +1 -1
- package/dist/commands/workflow-command-handlers.js +42 -3
- package/dist/commands/workflow-commands.js +2 -2
- package/dist/runtime/agent-runtime-controller.d.ts +17 -2
- package/dist/runtime/agent-runtime-controller.js +207 -47
- package/dist/runtime/agent-runtime-protocol.d.ts +3 -0
- package/dist/runtime/agent-runtime-runner.d.ts +8 -0
- package/dist/runtime/capability-receipt-journal.js +1 -1
- package/dist/runtime/durable-tool-receipt-reader.js +1 -1
- package/dist/runtime/legacy-thread-materializer.js +2 -2
- package/dist/runtime/orion-runtime-v1.d.ts +2 -1
- package/dist/runtime/orion-runtime-v1.js +18 -16
- package/dist/runtime/orion-session-runner.d.ts +6 -0
- package/dist/runtime/orion-session-runner.js +27 -4
- package/dist/runtime/plan-review.d.ts +38 -0
- package/dist/runtime/plan-review.js +173 -0
- package/dist/runtime/product-bootstrap.d.ts +6 -0
- package/dist/runtime/product-bootstrap.js +388 -314
- package/dist/runtime/product-orion-runtime.d.ts +5 -0
- package/dist/runtime/product-orion-runtime.js +16 -35
- package/dist/runtime/protocol/runtime-protocol-v1.d.ts +73 -0
- package/dist/runtime/protocol/runtime-protocol-v1.js +37 -0
- package/dist/runtime/release-receipts.d.ts +9 -3
- package/dist/runtime/release-receipts.js +120 -1
- package/dist/runtime/session-composer-control.d.ts +136 -0
- package/dist/runtime/session-composer-control.js +532 -0
- package/dist/runtime/step-snapshot.d.ts +12 -0
- package/dist/runtime/step-snapshot.js +14 -1
- package/dist/runtime/subagent-thread-runtime.js +1 -1
- package/dist/runtime/thread-event-store.d.ts +10 -1
- package/dist/runtime/thread-event-store.js +48 -12
- package/dist/runtime/thread-projection.d.ts +36 -0
- package/dist/runtime/thread-projection.js +99 -0
- package/dist/runtime/thread-runtime.d.ts +2 -2
- package/dist/runtime/thread-runtime.js +2 -2
- package/dist/runtime/thread-session-index.d.ts +17 -1
- package/dist/runtime/thread-session-index.js +89 -6
- package/dist/runtime/thread-session-view.d.ts +4 -1
- package/dist/runtime/thread-session-view.js +5 -2
- package/dist/runtime/thread-ui-adapter.js +10 -3
- package/dist/runtime/tool-gateway.js +1 -0
- package/dist/runtime/turn-commit.js +1 -1
- package/dist/runtime/ui-events.d.ts +9 -1
- package/dist/runtime/workspace-runtime-kernel.d.ts +67 -0
- package/dist/runtime/workspace-runtime-kernel.js +148 -0
- package/dist/services/global-config.d.ts +2 -0
- package/dist/services/global-config.js +7 -1
- package/dist/services/provider-resilience/coordinator.d.ts +3 -1
- package/dist/services/provider-resilience/coordinator.js +23 -1
- package/dist/services/provider-resilience/request-gate.js +7 -2
- package/dist/services/redaction.js +19 -2
- package/dist/services/session-storage.d.ts +36 -0
- package/dist/services/session-storage.js +77 -1
- package/dist/services/settings-coordinator.d.ts +3 -1
- package/dist/services/settings-coordinator.js +40 -8
- package/dist/services/settings-document-repository.d.ts +8 -1
- package/dist/services/settings-document-repository.js +22 -1
- package/dist/tui-ui/transcript-inspector-layout.js +13 -6
- package/dist/web/event-hub.d.ts +2 -0
- package/dist/web/event-hub.js +53 -6
- package/dist/web/file-read-service.d.ts +11 -0
- package/dist/web/file-read-service.js +56 -19
- package/dist/web/git-read-model-service.d.ts +8 -0
- package/dist/web/git-read-model-service.js +35 -2
- package/dist/web/protocol.d.ts +193 -3
- package/dist/web/protocol.js +245 -2
- package/dist/web/review-service.d.ts +1 -0
- package/dist/web/review-service.js +1 -0
- package/dist/web/server.js +75 -14
- package/dist/web/session-runtime-registry.d.ts +124 -0
- package/dist/web/session-runtime-registry.js +448 -0
- package/dist/web/terminal-manager.d.ts +1 -0
- package/dist/web/terminal-manager.js +60 -9
- package/dist/web/terminal-server.js +35 -6
- package/dist/web/workbench-controller.d.ts +52 -11
- package/dist/web/workbench-controller.js +1049 -110
- package/dist/web/workspace-mutation-arbiter.d.ts +54 -0
- package/dist/web/workspace-mutation-arbiter.js +267 -0
- package/dist/web-client/assets/{DiffViewer-DpKoD07C.js → DiffViewer-D6mG729y.js} +1 -1
- package/dist/web-client/assets/FilesPanel-CCDoAZ1J.js +2 -0
- package/dist/web-client/assets/{GitPanel-D20StcdG.js → GitPanel-DtNgiH7A.js} +1 -1
- package/dist/web-client/assets/ReviewPanel-CKEBSt6P.js +1 -0
- package/dist/web-client/assets/{TerminalPanel-BLQ592Fb.js → TerminalPanel-CNxMaBLp.js} +15 -13
- package/dist/web-client/assets/index-BBvNg3By.css +1 -0
- package/dist/web-client/assets/index-C6TDJwMC.js +17 -0
- package/dist/web-client/index.html +4 -4
- package/docs/architecture/agent-mode-permission-contract.md +87 -0
- package/docs/architecture/v0.3.1-web-api.yaml +53 -5
- package/docs/architecture/v0.3.2-web-api.yaml +3029 -0
- package/docs/architecture/v0.3.3-web-api.yaml +3205 -0
- package/docs/architecture/v0.3.4-stabilization-contract.md +32 -0
- package/docs/migration/v0.3.1-to-v0.3.2.md +94 -0
- package/docs/migration/v0.3.2-to-v0.3.3.md +62 -0
- package/docs/migration/v0.3.3-to-v0.3.4.md +36 -0
- package/docs/plan/v0.3.1-web-workbench-professional-shell-plan.md +1 -1
- package/docs/plan/v0.3.2-web-workbench-layout-and-composer-plan.md +869 -0
- package/docs/plan/v0.3.3-plan.md +1113 -0
- package/docs/plan/v0.3.4-stabilization-plan.md +89 -0
- package/docs/readme.md +12 -2
- package/docs/test/v0.3.1-web-workbench-e2e-plan.md +1 -1
- package/docs/test/v0.3.2-web-workbench-e2e-plan.md +100 -0
- package/docs/test/v0.3.3-web-workbench-e2e-plan.md +79 -0
- package/docs/test/v0.3.4-stabilization-e2e-plan.md +54 -0
- package/npm-shrinkwrap.json +25 -25
- package/package.json +15 -1
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/commands/context-commands.d.ts.map +0 -1
- package/dist/commands/context-commands.js.map +0 -1
- package/dist/commands/context-tool-command-handlers.d.ts.map +0 -1
- package/dist/commands/context-tool-command-handlers.js.map +0 -1
- package/dist/commands/core-command-handlers.d.ts.map +0 -1
- package/dist/commands/core-command-handlers.js.map +0 -1
- package/dist/commands/diagnostic-command-handlers.d.ts.map +0 -1
- package/dist/commands/diagnostic-command-handlers.js.map +0 -1
- package/dist/commands/diagnostic-commands.d.ts.map +0 -1
- package/dist/commands/diagnostic-commands.js.map +0 -1
- package/dist/commands/index.d.ts.map +0 -1
- package/dist/commands/index.js.map +0 -1
- package/dist/commands/model-command-handlers.d.ts.map +0 -1
- package/dist/commands/model-command-handlers.js.map +0 -1
- package/dist/commands/model-commands.d.ts.map +0 -1
- package/dist/commands/model-commands.js.map +0 -1
- package/dist/commands/parser.d.ts.map +0 -1
- package/dist/commands/parser.js.map +0 -1
- package/dist/commands/registry.d.ts.map +0 -1
- package/dist/commands/registry.js.map +0 -1
- package/dist/commands/session-command-handlers.d.ts.map +0 -1
- package/dist/commands/session-command-handlers.js.map +0 -1
- package/dist/commands/session-commands.d.ts.map +0 -1
- package/dist/commands/session-commands.js.map +0 -1
- package/dist/commands/system-commands.d.ts.map +0 -1
- package/dist/commands/system-commands.js.map +0 -1
- package/dist/commands/target-command.d.ts.map +0 -1
- package/dist/commands/target-command.js.map +0 -1
- package/dist/commands/tool-commands.d.ts.map +0 -1
- package/dist/commands/tool-commands.js.map +0 -1
- package/dist/commands/types.d.ts.map +0 -1
- package/dist/commands/types.js.map +0 -1
- package/dist/commands/workflow-command-handlers.d.ts.map +0 -1
- package/dist/commands/workflow-command-handlers.js.map +0 -1
- package/dist/commands/workflow-commands.d.ts.map +0 -1
- package/dist/commands/workflow-commands.js.map +0 -1
- package/dist/core/checkpoint.d.ts.map +0 -1
- package/dist/core/checkpoint.js.map +0 -1
- package/dist/core/cost-tracker.d.ts.map +0 -1
- package/dist/core/cost-tracker.js.map +0 -1
- package/dist/core/security-warning.d.ts.map +0 -1
- package/dist/core/security-warning.js.map +0 -1
- package/dist/core/strategy-tracker.d.ts.map +0 -1
- package/dist/core/strategy-tracker.js.map +0 -1
- package/dist/core/tool-artifacts.d.ts.map +0 -1
- package/dist/core/tool-artifacts.js.map +0 -1
- package/dist/core/warn-dedup.d.ts.map +0 -1
- package/dist/core/warn-dedup.js.map +0 -1
- package/dist/framework/agent-mode.d.ts.map +0 -1
- package/dist/framework/agent-mode.js.map +0 -1
- package/dist/framework/external-assertion.d.ts.map +0 -1
- package/dist/framework/external-assertion.js.map +0 -1
- package/dist/framework/index.d.ts.map +0 -1
- package/dist/framework/index.js.map +0 -1
- package/dist/framework/loop-budget-contract.d.ts.map +0 -1
- package/dist/framework/loop-budget-contract.js.map +0 -1
- package/dist/framework/prompt.d.ts.map +0 -1
- package/dist/framework/prompt.js.map +0 -1
- package/dist/framework/query.d.ts.map +0 -1
- package/dist/framework/query.js.map +0 -1
- package/dist/framework/stop-decision.d.ts.map +0 -1
- package/dist/framework/stop-decision.js.map +0 -1
- package/dist/framework/store.d.ts.map +0 -1
- package/dist/framework/store.js.map +0 -1
- package/dist/framework/tool-call-orchestrator.d.ts.map +0 -1
- package/dist/framework/tool-call-orchestrator.js.map +0 -1
- package/dist/framework/tool-serializer.d.ts.map +0 -1
- package/dist/framework/tool-serializer.js.map +0 -1
- package/dist/framework/tool-state.d.ts.map +0 -1
- package/dist/framework/tool-state.js.map +0 -1
- package/dist/framework/tool.d.ts.map +0 -1
- package/dist/framework/tool.js.map +0 -1
- package/dist/harness/assembler.d.ts.map +0 -1
- package/dist/harness/assembler.js.map +0 -1
- package/dist/harness/capability-profile.d.ts.map +0 -1
- package/dist/harness/capability-profile.js.map +0 -1
- package/dist/harness/capsule.d.ts.map +0 -1
- package/dist/harness/capsule.js.map +0 -1
- package/dist/harness/compact-benchmark-corpus.d.ts.map +0 -1
- package/dist/harness/compact-benchmark-corpus.js.map +0 -1
- package/dist/harness/context-harness.d.ts.map +0 -1
- package/dist/harness/context-harness.js.map +0 -1
- package/dist/harness/contract.d.ts.map +0 -1
- package/dist/harness/contract.js.map +0 -1
- package/dist/harness/drift-guard.d.ts.map +0 -1
- package/dist/harness/drift-guard.js.map +0 -1
- package/dist/harness/evidence.d.ts.map +0 -1
- package/dist/harness/evidence.js.map +0 -1
- package/dist/harness/index.d.ts.map +0 -1
- package/dist/harness/index.js.map +0 -1
- package/dist/harness/intent.d.ts.map +0 -1
- package/dist/harness/intent.js.map +0 -1
- package/dist/harness/ledger.d.ts.map +0 -1
- package/dist/harness/ledger.js.map +0 -1
- package/dist/harness/progress-controller.d.ts.map +0 -1
- package/dist/harness/progress-controller.js.map +0 -1
- package/dist/harness/state.d.ts.map +0 -1
- package/dist/harness/state.js.map +0 -1
- package/dist/harness/stop-controller.d.ts.map +0 -1
- package/dist/harness/stop-controller.js.map +0 -1
- package/dist/harness/turn-summary.d.ts.map +0 -1
- package/dist/harness/turn-summary.js.map +0 -1
- package/dist/harness/types.d.ts.map +0 -1
- package/dist/harness/types.js.map +0 -1
- package/dist/harness/verification.d.ts.map +0 -1
- package/dist/harness/verification.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/memory/embeddings.d.ts.map +0 -1
- package/dist/memory/embeddings.js.map +0 -1
- package/dist/memory/entrypoint.d.ts.map +0 -1
- package/dist/memory/entrypoint.js.map +0 -1
- package/dist/memory/index.d.ts.map +0 -1
- package/dist/memory/index.js.map +0 -1
- package/dist/memory/prompt-context.d.ts.map +0 -1
- package/dist/memory/prompt-context.js.map +0 -1
- package/dist/memory/prompts.d.ts.map +0 -1
- package/dist/memory/prompts.js.map +0 -1
- package/dist/memory/relevant-finder.d.ts.map +0 -1
- package/dist/memory/relevant-finder.js.map +0 -1
- package/dist/memory/semantic-config.d.ts.map +0 -1
- package/dist/memory/semantic-config.js.map +0 -1
- package/dist/memory/semantic-search.d.ts.map +0 -1
- package/dist/memory/semantic-search.js.map +0 -1
- package/dist/memory/storage.d.ts.map +0 -1
- package/dist/memory/storage.js.map +0 -1
- package/dist/memory/store.d.ts.map +0 -1
- package/dist/memory/store.js.map +0 -1
- package/dist/memory/team-paths.d.ts.map +0 -1
- package/dist/memory/team-paths.js.map +0 -1
- package/dist/memory/types.d.ts.map +0 -1
- package/dist/memory/types.js.map +0 -1
- package/dist/memory/validation.d.ts.map +0 -1
- package/dist/memory/validation.js.map +0 -1
- package/dist/memory/vector-store.d.ts.map +0 -1
- package/dist/memory/vector-store.js.map +0 -1
- package/dist/migration/command.d.ts.map +0 -1
- package/dist/migration/command.js.map +0 -1
- package/dist/migration/index.d.ts.map +0 -1
- package/dist/migration/index.js.map +0 -1
- package/dist/migration/migrate.d.ts.map +0 -1
- package/dist/migration/migrate.js.map +0 -1
- package/dist/migration/types.d.ts.map +0 -1
- package/dist/migration/types.js.map +0 -1
- package/dist/print-ui/launch.d.ts.map +0 -1
- package/dist/print-ui/launch.js.map +0 -1
- package/dist/product/environment.d.ts.map +0 -1
- package/dist/product/environment.js.map +0 -1
- package/dist/product/identity.d.ts.map +0 -1
- package/dist/product/identity.js.map +0 -1
- package/dist/product/index.d.ts.map +0 -1
- package/dist/product/index.js.map +0 -1
- package/dist/product/paths.d.ts.map +0 -1
- package/dist/product/paths.js.map +0 -1
- package/dist/product/version.d.ts.map +0 -1
- package/dist/product/version.js.map +0 -1
- package/dist/runtime/agent-loop.d.ts.map +0 -1
- package/dist/runtime/agent-loop.js.map +0 -1
- package/dist/runtime/agent-runtime-controller.d.ts.map +0 -1
- package/dist/runtime/agent-runtime-controller.js.map +0 -1
- package/dist/runtime/agent-runtime-protocol.d.ts.map +0 -1
- package/dist/runtime/agent-runtime-protocol.js.map +0 -1
- package/dist/runtime/agent-runtime-runner.d.ts.map +0 -1
- package/dist/runtime/agent-runtime-runner.js.map +0 -1
- package/dist/runtime/agent-status.d.ts.map +0 -1
- package/dist/runtime/agent-status.js.map +0 -1
- package/dist/runtime/aggregate-tool-presenter.d.ts.map +0 -1
- package/dist/runtime/aggregate-tool-presenter.js.map +0 -1
- package/dist/runtime/batch-read-service.d.ts.map +0 -1
- package/dist/runtime/batch-read-service.js.map +0 -1
- package/dist/runtime/builtin-tool-provider.d.ts.map +0 -1
- package/dist/runtime/builtin-tool-provider.js.map +0 -1
- package/dist/runtime/capabilities/compiler.d.ts.map +0 -1
- package/dist/runtime/capabilities/compiler.js.map +0 -1
- package/dist/runtime/capabilities/index.d.ts.map +0 -1
- package/dist/runtime/capabilities/index.js.map +0 -1
- package/dist/runtime/capabilities/types.d.ts.map +0 -1
- package/dist/runtime/capabilities/types.js.map +0 -1
- package/dist/runtime/capability-receipt-journal.d.ts.map +0 -1
- package/dist/runtime/capability-receipt-journal.js.map +0 -1
- package/dist/runtime/capability-step-factory.d.ts.map +0 -1
- package/dist/runtime/capability-step-factory.js.map +0 -1
- package/dist/runtime/compact-transaction.d.ts.map +0 -1
- package/dist/runtime/compact-transaction.js.map +0 -1
- package/dist/runtime/composer/buffer.d.ts.map +0 -1
- package/dist/runtime/composer/buffer.js.map +0 -1
- package/dist/runtime/composer/grapheme.d.ts.map +0 -1
- package/dist/runtime/composer/grapheme.js.map +0 -1
- package/dist/runtime/composer/history.d.ts.map +0 -1
- package/dist/runtime/composer/history.js.map +0 -1
- package/dist/runtime/composer/layout.d.ts.map +0 -1
- package/dist/runtime/composer/layout.js.map +0 -1
- package/dist/runtime/core-tools/descriptors.d.ts.map +0 -1
- package/dist/runtime/core-tools/descriptors.js.map +0 -1
- package/dist/runtime/durable-tool-receipt-reader.d.ts.map +0 -1
- package/dist/runtime/durable-tool-receipt-reader.js.map +0 -1
- package/dist/runtime/first-party-core-provider.d.ts.map +0 -1
- package/dist/runtime/first-party-core-provider.js.map +0 -1
- package/dist/runtime/first-party-long-tail-provider.d.ts.map +0 -1
- package/dist/runtime/first-party-long-tail-provider.js.map +0 -1
- package/dist/runtime/first-party-tool-services.d.ts.map +0 -1
- package/dist/runtime/first-party-tool-services.js.map +0 -1
- package/dist/runtime/first-party-tool-universe.d.ts.map +0 -1
- package/dist/runtime/first-party-tool-universe.js.map +0 -1
- package/dist/runtime/goal-lifecycle-v2.d.ts.map +0 -1
- package/dist/runtime/goal-lifecycle-v2.js.map +0 -1
- package/dist/runtime/goal-runtime-coordinator.d.ts.map +0 -1
- package/dist/runtime/goal-runtime-coordinator.js.map +0 -1
- package/dist/runtime/goals/completion-audit.d.ts.map +0 -1
- package/dist/runtime/goals/completion-audit.js.map +0 -1
- package/dist/runtime/goals/evidence.d.ts.map +0 -1
- package/dist/runtime/goals/evidence.js.map +0 -1
- package/dist/runtime/goals/objective.d.ts.map +0 -1
- package/dist/runtime/goals/objective.js.map +0 -1
- package/dist/runtime/goals/presentation.d.ts.map +0 -1
- package/dist/runtime/goals/presentation.js.map +0 -1
- package/dist/runtime/goals/types.d.ts.map +0 -1
- package/dist/runtime/goals/types.js.map +0 -1
- package/dist/runtime/harness-confluence.d.ts.map +0 -1
- package/dist/runtime/harness-confluence.js.map +0 -1
- package/dist/runtime/harness-eval.d.ts.map +0 -1
- package/dist/runtime/harness-eval.js.map +0 -1
- package/dist/runtime/harness-metrics.d.ts.map +0 -1
- package/dist/runtime/harness-metrics.js.map +0 -1
- package/dist/runtime/legacy-session-importer.d.ts.map +0 -1
- package/dist/runtime/legacy-session-importer.js.map +0 -1
- package/dist/runtime/legacy-thread-materializer.d.ts.map +0 -1
- package/dist/runtime/legacy-thread-materializer.js.map +0 -1
- package/dist/runtime/long-tail-tools/descriptors.d.ts.map +0 -1
- package/dist/runtime/long-tail-tools/descriptors.js.map +0 -1
- package/dist/runtime/loop-budget.d.ts.map +0 -1
- package/dist/runtime/loop-budget.js.map +0 -1
- package/dist/runtime/mcp/first-party-mcp-adapter.d.ts.map +0 -1
- package/dist/runtime/mcp/first-party-mcp-adapter.js.map +0 -1
- package/dist/runtime/mcp/first-party-mcp-config.d.ts.map +0 -1
- package/dist/runtime/mcp/first-party-mcp-config.js.map +0 -1
- package/dist/runtime/mcp/index.d.ts.map +0 -1
- package/dist/runtime/mcp/index.js.map +0 -1
- package/dist/runtime/mcp/lazy-mcp-runtime.d.ts.map +0 -1
- package/dist/runtime/mcp/lazy-mcp-runtime.js.map +0 -1
- package/dist/runtime/mcp/types.d.ts.map +0 -1
- package/dist/runtime/mcp/types.js.map +0 -1
- package/dist/runtime/model-coordinator.d.ts.map +0 -1
- package/dist/runtime/model-coordinator.js.map +0 -1
- package/dist/runtime/orion-runtime-v1.d.ts.map +0 -1
- package/dist/runtime/orion-runtime-v1.js.map +0 -1
- package/dist/runtime/orion-session-runner.d.ts.map +0 -1
- package/dist/runtime/orion-session-runner.js.map +0 -1
- package/dist/runtime/product-bootstrap.d.ts.map +0 -1
- package/dist/runtime/product-bootstrap.js.map +0 -1
- package/dist/runtime/product-orion-runtime.d.ts.map +0 -1
- package/dist/runtime/product-orion-runtime.js.map +0 -1
- package/dist/runtime/prompts/index.d.ts.map +0 -1
- package/dist/runtime/prompts/index.js.map +0 -1
- package/dist/runtime/prompts/prompt-registry.d.ts.map +0 -1
- package/dist/runtime/prompts/prompt-registry.js.map +0 -1
- package/dist/runtime/prompts/types.d.ts.map +0 -1
- package/dist/runtime/prompts/types.js.map +0 -1
- package/dist/runtime/protocol/canonical.d.ts.map +0 -1
- package/dist/runtime/protocol/canonical.js.map +0 -1
- package/dist/runtime/protocol/index.d.ts.map +0 -1
- package/dist/runtime/protocol/index.js.map +0 -1
- package/dist/runtime/protocol/runtime-protocol-v1.d.ts.map +0 -1
- package/dist/runtime/protocol/runtime-protocol-v1.js.map +0 -1
- package/dist/runtime/release-receipts.d.ts.map +0 -1
- package/dist/runtime/release-receipts.js.map +0 -1
- package/dist/runtime/resource-scope.d.ts.map +0 -1
- package/dist/runtime/resource-scope.js.map +0 -1
- package/dist/runtime/rich-text/ansi-parser.d.ts.map +0 -1
- package/dist/runtime/rich-text/ansi-parser.js.map +0 -1
- package/dist/runtime/rich-text/layout.d.ts.map +0 -1
- package/dist/runtime/rich-text/layout.js.map +0 -1
- package/dist/runtime/rich-text/markdown-parser.d.ts.map +0 -1
- package/dist/runtime/rich-text/markdown-parser.js.map +0 -1
- package/dist/runtime/rich-text/sanitizer.d.ts.map +0 -1
- package/dist/runtime/rich-text/sanitizer.js.map +0 -1
- package/dist/runtime/rich-text/types.d.ts.map +0 -1
- package/dist/runtime/rich-text/types.js.map +0 -1
- package/dist/runtime/runtime-event-buffer.d.ts.map +0 -1
- package/dist/runtime/runtime-event-buffer.js.map +0 -1
- package/dist/runtime/runtime-services.d.ts.map +0 -1
- package/dist/runtime/runtime-services.js.map +0 -1
- package/dist/runtime/session-history-recovery.d.ts.map +0 -1
- package/dist/runtime/session-history-recovery.js.map +0 -1
- package/dist/runtime/skills/bounded-lru-cache.d.ts.map +0 -1
- package/dist/runtime/skills/bounded-lru-cache.js.map +0 -1
- package/dist/runtime/skills/filesystem-skill-provider.d.ts.map +0 -1
- package/dist/runtime/skills/filesystem-skill-provider.js.map +0 -1
- package/dist/runtime/skills/index.d.ts.map +0 -1
- package/dist/runtime/skills/index.js.map +0 -1
- package/dist/runtime/skills/lazy-skill-runtime.d.ts.map +0 -1
- package/dist/runtime/skills/lazy-skill-runtime.js.map +0 -1
- package/dist/runtime/skills/types.d.ts.map +0 -1
- package/dist/runtime/skills/types.js.map +0 -1
- package/dist/runtime/step-snapshot.d.ts.map +0 -1
- package/dist/runtime/step-snapshot.js.map +0 -1
- package/dist/runtime/subagent-thread-runtime.d.ts.map +0 -1
- package/dist/runtime/subagent-thread-runtime.js.map +0 -1
- package/dist/runtime/subagents/budget.d.ts.map +0 -1
- package/dist/runtime/subagents/budget.js.map +0 -1
- package/dist/runtime/subagents/child-executor-guard.d.ts.map +0 -1
- package/dist/runtime/subagents/child-executor-guard.js.map +0 -1
- package/dist/runtime/subagents/context-builder.d.ts.map +0 -1
- package/dist/runtime/subagents/context-builder.js.map +0 -1
- package/dist/runtime/subagents/index.d.ts.map +0 -1
- package/dist/runtime/subagents/index.js.map +0 -1
- package/dist/runtime/subagents/parent-step-fork.d.ts.map +0 -1
- package/dist/runtime/subagents/parent-step-fork.js.map +0 -1
- package/dist/runtime/subagents/policy.d.ts.map +0 -1
- package/dist/runtime/subagents/policy.js.map +0 -1
- package/dist/runtime/subagents/presets.d.ts.map +0 -1
- package/dist/runtime/subagents/presets.js.map +0 -1
- package/dist/runtime/subagents/production.d.ts.map +0 -1
- package/dist/runtime/subagents/production.js.map +0 -1
- package/dist/runtime/subagents/provider-gate.d.ts.map +0 -1
- package/dist/runtime/subagents/provider-gate.js.map +0 -1
- package/dist/runtime/subagents/receipt-journal.d.ts.map +0 -1
- package/dist/runtime/subagents/receipt-journal.js.map +0 -1
- package/dist/runtime/subagents/research-artifact.d.ts.map +0 -1
- package/dist/runtime/subagents/research-artifact.js.map +0 -1
- package/dist/runtime/subagents/research-citation.d.ts.map +0 -1
- package/dist/runtime/subagents/research-citation.js.map +0 -1
- package/dist/runtime/subagents/research-contract.d.ts.map +0 -1
- package/dist/runtime/subagents/research-contract.js.map +0 -1
- package/dist/runtime/subagents/research-quality.d.ts.map +0 -1
- package/dist/runtime/subagents/research-quality.js.map +0 -1
- package/dist/runtime/subagents/research-renderer.d.ts.map +0 -1
- package/dist/runtime/subagents/research-renderer.js.map +0 -1
- package/dist/runtime/subagents/research-types.d.ts.map +0 -1
- package/dist/runtime/subagents/research-types.js.map +0 -1
- package/dist/runtime/subagents/result-parser.d.ts.map +0 -1
- package/dist/runtime/subagents/result-parser.js.map +0 -1
- package/dist/runtime/subagents/runner.d.ts.map +0 -1
- package/dist/runtime/subagents/runner.js.map +0 -1
- package/dist/runtime/subagents/runtime-contract.d.ts.map +0 -1
- package/dist/runtime/subagents/runtime-contract.js.map +0 -1
- package/dist/runtime/subagents/runtime-integration.d.ts.map +0 -1
- package/dist/runtime/subagents/runtime-integration.js.map +0 -1
- package/dist/runtime/subagents/supervisor.d.ts.map +0 -1
- package/dist/runtime/subagents/supervisor.js.map +0 -1
- package/dist/runtime/subagents/tool.d.ts.map +0 -1
- package/dist/runtime/subagents/tool.js.map +0 -1
- package/dist/runtime/subagents/types.d.ts.map +0 -1
- package/dist/runtime/subagents/types.js.map +0 -1
- package/dist/runtime/subagents/web-research-adapter.d.ts.map +0 -1
- package/dist/runtime/subagents/web-research-adapter.js.map +0 -1
- package/dist/runtime/task-context-service.d.ts.map +0 -1
- package/dist/runtime/task-context-service.js.map +0 -1
- package/dist/runtime/thread-admission.d.ts.map +0 -1
- package/dist/runtime/thread-admission.js.map +0 -1
- package/dist/runtime/thread-compact-persistence.d.ts.map +0 -1
- package/dist/runtime/thread-compact-persistence.js.map +0 -1
- package/dist/runtime/thread-event-store.d.ts.map +0 -1
- package/dist/runtime/thread-event-store.js.map +0 -1
- package/dist/runtime/thread-projection.d.ts.map +0 -1
- package/dist/runtime/thread-projection.js.map +0 -1
- package/dist/runtime/thread-runtime.d.ts.map +0 -1
- package/dist/runtime/thread-runtime.js.map +0 -1
- package/dist/runtime/thread-session-index.d.ts.map +0 -1
- package/dist/runtime/thread-session-index.js.map +0 -1
- package/dist/runtime/thread-session-view.d.ts.map +0 -1
- package/dist/runtime/thread-session-view.js.map +0 -1
- package/dist/runtime/thread-tool-journal.d.ts.map +0 -1
- package/dist/runtime/thread-tool-journal.js.map +0 -1
- package/dist/runtime/thread-ui-adapter.d.ts.map +0 -1
- package/dist/runtime/thread-ui-adapter.js.map +0 -1
- package/dist/runtime/tool-detail-repository.d.ts.map +0 -1
- package/dist/runtime/tool-detail-repository.js.map +0 -1
- package/dist/runtime/tool-gateway.d.ts.map +0 -1
- package/dist/runtime/tool-gateway.js.map +0 -1
- package/dist/runtime/tool-output-presentation.d.ts.map +0 -1
- package/dist/runtime/tool-output-presentation.js.map +0 -1
- package/dist/runtime/tool-receipt-validator.d.ts.map +0 -1
- package/dist/runtime/tool-receipt-validator.js.map +0 -1
- package/dist/runtime/turn-commit.d.ts.map +0 -1
- package/dist/runtime/turn-commit.js.map +0 -1
- package/dist/runtime/turn-controller.d.ts.map +0 -1
- package/dist/runtime/turn-controller.js.map +0 -1
- package/dist/runtime/ui-events.d.ts.map +0 -1
- package/dist/runtime/ui-events.js.map +0 -1
- package/dist/runtime/ui-view-model.d.ts.map +0 -1
- package/dist/runtime/ui-view-model.js.map +0 -1
- package/dist/services/atomic-write.d.ts.map +0 -1
- package/dist/services/atomic-write.js.map +0 -1
- package/dist/services/auth/auth.d.ts.map +0 -1
- package/dist/services/auth/auth.js.map +0 -1
- package/dist/services/auth/aws.d.ts.map +0 -1
- package/dist/services/auth/aws.js.map +0 -1
- package/dist/services/auth/index.d.ts.map +0 -1
- package/dist/services/auth/index.js.map +0 -1
- package/dist/services/auto-fix/autoFixConfig.d.ts.map +0 -1
- package/dist/services/auto-fix/autoFixConfig.js.map +0 -1
- package/dist/services/auto-fix/autoFixHook.d.ts.map +0 -1
- package/dist/services/auto-fix/autoFixHook.js.map +0 -1
- package/dist/services/auto-fix/autoFixRunner.d.ts.map +0 -1
- package/dist/services/auto-fix/autoFixRunner.js.map +0 -1
- package/dist/services/auto-fix/index.d.ts.map +0 -1
- package/dist/services/auto-fix/index.js.map +0 -1
- package/dist/services/bounded-response.d.ts.map +0 -1
- package/dist/services/bounded-response.js.map +0 -1
- package/dist/services/commit-plan.d.ts.map +0 -1
- package/dist/services/commit-plan.js.map +0 -1
- package/dist/services/compact/auto-compact.d.ts.map +0 -1
- package/dist/services/compact/auto-compact.js.map +0 -1
- package/dist/services/compact/compact.d.ts.map +0 -1
- package/dist/services/compact/compact.js.map +0 -1
- package/dist/services/compact/coordinator.d.ts.map +0 -1
- package/dist/services/compact/coordinator.js.map +0 -1
- package/dist/services/compact/fingerprint.d.ts.map +0 -1
- package/dist/services/compact/fingerprint.js.map +0 -1
- package/dist/services/compact/index.d.ts.map +0 -1
- package/dist/services/compact/index.js.map +0 -1
- package/dist/services/compact/planner.d.ts.map +0 -1
- package/dist/services/compact/planner.js.map +0 -1
- package/dist/services/compact/semantic-summary.d.ts.map +0 -1
- package/dist/services/compact/semantic-summary.js.map +0 -1
- package/dist/services/compact/summary-generator.d.ts.map +0 -1
- package/dist/services/compact/summary-generator.js.map +0 -1
- package/dist/services/compact/tool-call-groups.d.ts.map +0 -1
- package/dist/services/compact/tool-call-groups.js.map +0 -1
- package/dist/services/concurrent-sessions.d.ts.map +0 -1
- package/dist/services/concurrent-sessions.js.map +0 -1
- package/dist/services/config-dir.d.ts.map +0 -1
- package/dist/services/config-dir.js.map +0 -1
- package/dist/services/config.d.ts.map +0 -1
- package/dist/services/config.js.map +0 -1
- package/dist/services/diagnostic-tracking/diagnosticTracking.d.ts.map +0 -1
- package/dist/services/diagnostic-tracking/diagnosticTracking.js.map +0 -1
- package/dist/services/diagnostic-tracking/formatter.d.ts.map +0 -1
- package/dist/services/diagnostic-tracking/formatter.js.map +0 -1
- package/dist/services/diagnostic-tracking/index.d.ts.map +0 -1
- package/dist/services/diagnostic-tracking/index.js.map +0 -1
- package/dist/services/diagnostic-tracking/types.d.ts.map +0 -1
- package/dist/services/diagnostic-tracking/types.js.map +0 -1
- package/dist/services/doctor.d.ts.map +0 -1
- package/dist/services/doctor.js.map +0 -1
- package/dist/services/effort.d.ts.map +0 -1
- package/dist/services/effort.js.map +0 -1
- package/dist/services/file-context.d.ts.map +0 -1
- package/dist/services/file-context.js.map +0 -1
- package/dist/services/file-glob.d.ts.map +0 -1
- package/dist/services/file-glob.js.map +0 -1
- package/dist/services/file-lock.d.ts.map +0 -1
- package/dist/services/file-lock.js.map +0 -1
- package/dist/services/format.d.ts.map +0 -1
- package/dist/services/format.js.map +0 -1
- package/dist/services/global-config.d.ts.map +0 -1
- package/dist/services/global-config.js.map +0 -1
- package/dist/services/goal-storage.d.ts.map +0 -1
- package/dist/services/goal-storage.js.map +0 -1
- package/dist/services/llm.d.ts.map +0 -1
- package/dist/services/llm.js.map +0 -1
- package/dist/services/mcp/index.d.ts.map +0 -1
- package/dist/services/mcp/index.js.map +0 -1
- package/dist/services/mcp/transports.d.ts.map +0 -1
- package/dist/services/mcp/transports.js.map +0 -1
- package/dist/services/memory.d.ts.map +0 -1
- package/dist/services/memory.js.map +0 -1
- package/dist/services/model-catalog.d.ts.map +0 -1
- package/dist/services/model-catalog.js.map +0 -1
- package/dist/services/model-client-pool.d.ts.map +0 -1
- package/dist/services/model-client-pool.js.map +0 -1
- package/dist/services/model-context.d.ts.map +0 -1
- package/dist/services/model-context.js.map +0 -1
- package/dist/services/model-registry.d.ts.map +0 -1
- package/dist/services/model-registry.js.map +0 -1
- package/dist/services/project-instructions.d.ts.map +0 -1
- package/dist/services/project-instructions.js.map +0 -1
- package/dist/services/prompt-context.d.ts.map +0 -1
- package/dist/services/prompt-context.js.map +0 -1
- package/dist/services/provider-diagnostics.d.ts.map +0 -1
- package/dist/services/provider-diagnostics.js.map +0 -1
- package/dist/services/provider-resilience/circuit-breaker.d.ts.map +0 -1
- package/dist/services/provider-resilience/circuit-breaker.js.map +0 -1
- package/dist/services/provider-resilience/coordinator.d.ts.map +0 -1
- package/dist/services/provider-resilience/coordinator.js.map +0 -1
- package/dist/services/provider-resilience/error-classifier.d.ts.map +0 -1
- package/dist/services/provider-resilience/error-classifier.js.map +0 -1
- package/dist/services/provider-resilience/index.d.ts.map +0 -1
- package/dist/services/provider-resilience/index.js.map +0 -1
- package/dist/services/provider-resilience/request-gate.d.ts.map +0 -1
- package/dist/services/provider-resilience/request-gate.js.map +0 -1
- package/dist/services/provider-resilience/stream-recovery.d.ts.map +0 -1
- package/dist/services/provider-resilience/stream-recovery.js.map +0 -1
- package/dist/services/provider-resilience/types.d.ts.map +0 -1
- package/dist/services/provider-resilience/types.js.map +0 -1
- package/dist/services/redaction.d.ts.map +0 -1
- package/dist/services/redaction.js.map +0 -1
- package/dist/services/safe-project-reader.d.ts.map +0 -1
- package/dist/services/safe-project-reader.js.map +0 -1
- package/dist/services/session-index.d.ts.map +0 -1
- package/dist/services/session-index.js.map +0 -1
- package/dist/services/session-memory/index.d.ts.map +0 -1
- package/dist/services/session-memory/index.js.map +0 -1
- package/dist/services/session-memory/prompts.d.ts.map +0 -1
- package/dist/services/session-memory/prompts.js.map +0 -1
- package/dist/services/session-memory/sessionMemory.d.ts.map +0 -1
- package/dist/services/session-memory/sessionMemory.js.map +0 -1
- package/dist/services/session-storage.d.ts.map +0 -1
- package/dist/services/session-storage.js.map +0 -1
- package/dist/services/settings-coordinator.d.ts.map +0 -1
- package/dist/services/settings-coordinator.js.map +0 -1
- package/dist/services/settings-document-repository.d.ts.map +0 -1
- package/dist/services/settings-document-repository.js.map +0 -1
- package/dist/services/smart-routing.d.ts.map +0 -1
- package/dist/services/smart-routing.js.map +0 -1
- package/dist/services/storage-maintenance.d.ts.map +0 -1
- package/dist/services/storage-maintenance.js.map +0 -1
- package/dist/services/tool-allowlist.d.ts.map +0 -1
- package/dist/services/tool-allowlist.js.map +0 -1
- package/dist/services/usage-state.d.ts.map +0 -1
- package/dist/services/usage-state.js.map +0 -1
- package/dist/services/verification-profile.d.ts.map +0 -1
- package/dist/services/verification-profile.js.map +0 -1
- package/dist/services/web-search-adapters.d.ts.map +0 -1
- package/dist/services/web-search-adapters.js.map +0 -1
- package/dist/services/web-search-mcp.d.ts.map +0 -1
- package/dist/services/web-search-mcp.js.map +0 -1
- package/dist/services/web-search-provider.d.ts.map +0 -1
- package/dist/services/web-search-provider.js.map +0 -1
- package/dist/services/workspace-containment.d.ts.map +0 -1
- package/dist/services/workspace-containment.js.map +0 -1
- package/dist/services/workspace-diff.d.ts.map +0 -1
- package/dist/services/workspace-diff.js.map +0 -1
- package/dist/services/workspace-registry.d.ts.map +0 -1
- package/dist/services/workspace-registry.js.map +0 -1
- package/dist/services/workspace-state.d.ts.map +0 -1
- package/dist/services/workspace-state.js.map +0 -1
- package/dist/services/yaml-config.d.ts.map +0 -1
- package/dist/services/yaml-config.js.map +0 -1
- package/dist/terminal-ui/completion.d.ts.map +0 -1
- package/dist/terminal-ui/completion.js.map +0 -1
- package/dist/terminal-ui/editor.d.ts.map +0 -1
- package/dist/terminal-ui/editor.js.map +0 -1
- package/dist/terminal-ui/launch.d.ts.map +0 -1
- package/dist/terminal-ui/launch.js.map +0 -1
- package/dist/terminal-ui/output-queue.d.ts.map +0 -1
- package/dist/terminal-ui/output-queue.js.map +0 -1
- package/dist/terminal-ui/raw-editor.d.ts.map +0 -1
- package/dist/terminal-ui/raw-editor.js.map +0 -1
- package/dist/tools/_validate.d.ts.map +0 -1
- package/dist/tools/_validate.js.map +0 -1
- package/dist/tools/bash_security.d.ts.map +0 -1
- package/dist/tools/bash_security.js.map +0 -1
- package/dist/tools/core/common.d.ts.map +0 -1
- package/dist/tools/core/common.js.map +0 -1
- package/dist/tools/core/edit-file.d.ts.map +0 -1
- package/dist/tools/core/edit-file.js.map +0 -1
- package/dist/tools/core/exec-command.d.ts.map +0 -1
- package/dist/tools/core/exec-command.js.map +0 -1
- package/dist/tools/core/glob.d.ts.map +0 -1
- package/dist/tools/core/glob.js.map +0 -1
- package/dist/tools/core/grep.d.ts.map +0 -1
- package/dist/tools/core/grep.js.map +0 -1
- package/dist/tools/core/index.d.ts.map +0 -1
- package/dist/tools/core/index.js.map +0 -1
- package/dist/tools/core/list-files.d.ts.map +0 -1
- package/dist/tools/core/list-files.js.map +0 -1
- package/dist/tools/core/read-file.d.ts.map +0 -1
- package/dist/tools/core/read-file.js.map +0 -1
- package/dist/tools/core/write-file.d.ts.map +0 -1
- package/dist/tools/core/write-file.js.map +0 -1
- package/dist/tools/git.d.ts.map +0 -1
- package/dist/tools/git.js.map +0 -1
- package/dist/tools/lsp.d.ts.map +0 -1
- package/dist/tools/lsp.js.map +0 -1
- package/dist/tools/sandbox.d.ts.map +0 -1
- package/dist/tools/sandbox.js.map +0 -1
- package/dist/tools/todo.d.ts.map +0 -1
- package/dist/tools/todo.js.map +0 -1
- package/dist/tools/web.d.ts.map +0 -1
- package/dist/tools/web.js.map +0 -1
- package/dist/tui-core/frame.d.ts.map +0 -1
- package/dist/tui-core/frame.js.map +0 -1
- package/dist/tui-core/input-parser.d.ts.map +0 -1
- package/dist/tui-core/input-parser.js.map +0 -1
- package/dist/tui-core/style.d.ts.map +0 -1
- package/dist/tui-core/style.js.map +0 -1
- package/dist/tui-core/terminal-writer.d.ts.map +0 -1
- package/dist/tui-core/terminal-writer.js.map +0 -1
- package/dist/tui-ui/chrome-view-model.d.ts.map +0 -1
- package/dist/tui-ui/chrome-view-model.js.map +0 -1
- package/dist/tui-ui/inline-surface.d.ts.map +0 -1
- package/dist/tui-ui/inline-surface.js.map +0 -1
- package/dist/tui-ui/input-ownership.d.ts.map +0 -1
- package/dist/tui-ui/input-ownership.js.map +0 -1
- package/dist/tui-ui/launch.d.ts.map +0 -1
- package/dist/tui-ui/launch.js.map +0 -1
- package/dist/tui-ui/layout.d.ts.map +0 -1
- package/dist/tui-ui/layout.js.map +0 -1
- package/dist/tui-ui/pickers.d.ts.map +0 -1
- package/dist/tui-ui/pickers.js.map +0 -1
- package/dist/tui-ui/pixel-mascot.d.ts.map +0 -1
- package/dist/tui-ui/pixel-mascot.js.map +0 -1
- package/dist/tui-ui/render-scheduler.d.ts.map +0 -1
- package/dist/tui-ui/render-scheduler.js.map +0 -1
- package/dist/tui-ui/runner.d.ts.map +0 -1
- package/dist/tui-ui/runner.js.map +0 -1
- package/dist/tui-ui/state.d.ts.map +0 -1
- package/dist/tui-ui/state.js.map +0 -1
- package/dist/tui-ui/terminal-image.d.ts.map +0 -1
- package/dist/tui-ui/terminal-image.js.map +0 -1
- package/dist/tui-ui/theme-profile.d.ts.map +0 -1
- package/dist/tui-ui/theme-profile.js.map +0 -1
- package/dist/tui-ui/theme.d.ts.map +0 -1
- package/dist/tui-ui/theme.js.map +0 -1
- package/dist/tui-ui/transcript-cache.d.ts.map +0 -1
- package/dist/tui-ui/transcript-cache.js.map +0 -1
- package/dist/tui-ui/transcript-inspector-layout.d.ts.map +0 -1
- package/dist/tui-ui/transcript-inspector-layout.js.map +0 -1
- package/dist/tui-ui/transcript-inspector-surface.d.ts.map +0 -1
- package/dist/tui-ui/transcript-inspector-surface.js.map +0 -1
- package/dist/tui-ui/transcript-inspector.d.ts.map +0 -1
- package/dist/tui-ui/transcript-inspector.js.map +0 -1
- package/dist/tui-ui/transcript-layout.d.ts.map +0 -1
- package/dist/tui-ui/transcript-layout.js.map +0 -1
- package/dist/ui/box.d.ts.map +0 -1
- package/dist/ui/box.js.map +0 -1
- package/dist/ui/command-panel.d.ts.map +0 -1
- package/dist/ui/command-panel.js.map +0 -1
- package/dist/ui/file-completion.d.ts.map +0 -1
- package/dist/ui/file-completion.js.map +0 -1
- package/dist/ui/markdown.d.ts.map +0 -1
- package/dist/ui/markdown.js.map +0 -1
- package/dist/ui/multiline-input.d.ts.map +0 -1
- package/dist/ui/multiline-input.js.map +0 -1
- package/dist/ui/progress.d.ts.map +0 -1
- package/dist/ui/progress.js.map +0 -1
- package/dist/ui/shared/command-palette.d.ts.map +0 -1
- package/dist/ui/shared/command-palette.js.map +0 -1
- package/dist/ui/shared/command-suggestions.d.ts.map +0 -1
- package/dist/ui/shared/command-suggestions.js.map +0 -1
- package/dist/ui/shared/input-frame.d.ts.map +0 -1
- package/dist/ui/shared/input-frame.js.map +0 -1
- package/dist/ui/shared/text.d.ts.map +0 -1
- package/dist/ui/shared/text.js.map +0 -1
- package/dist/ui/shared/types.d.ts.map +0 -1
- package/dist/ui/shared/types.js.map +0 -1
- package/dist/ui/status-bar.d.ts.map +0 -1
- package/dist/ui/status-bar.js.map +0 -1
- package/dist/ui/stream-markdown.d.ts.map +0 -1
- package/dist/ui/stream-markdown.js.map +0 -1
- package/dist/ui/suggestions.d.ts.map +0 -1
- package/dist/ui/suggestions.js.map +0 -1
- package/dist/ui/tool-preview.d.ts.map +0 -1
- package/dist/ui/tool-preview.js.map +0 -1
- package/dist/ui/user-input.d.ts.map +0 -1
- package/dist/ui/user-input.js.map +0 -1
- package/dist/utils/debug-log.d.ts.map +0 -1
- package/dist/utils/debug-log.js.map +0 -1
- package/dist/utils/errors.d.ts.map +0 -1
- package/dist/utils/errors.js.map +0 -1
- package/dist/utils/json.d.ts.map +0 -1
- package/dist/utils/json.js.map +0 -1
- package/dist/utils/mask.d.ts.map +0 -1
- package/dist/utils/mask.js.map +0 -1
- package/dist/utils/observability.d.ts.map +0 -1
- package/dist/utils/observability.js.map +0 -1
- package/dist/utils/token-estimate.d.ts.map +0 -1
- package/dist/utils/token-estimate.js.map +0 -1
- package/dist/web/errors.d.ts.map +0 -1
- package/dist/web/errors.js.map +0 -1
- package/dist/web/event-hub.d.ts.map +0 -1
- package/dist/web/event-hub.js.map +0 -1
- package/dist/web/file-read-service.d.ts.map +0 -1
- package/dist/web/file-read-service.js.map +0 -1
- package/dist/web/git-read-model-service.d.ts.map +0 -1
- package/dist/web/git-read-model-service.js.map +0 -1
- package/dist/web/index.d.ts.map +0 -1
- package/dist/web/index.js.map +0 -1
- package/dist/web/launch.d.ts.map +0 -1
- package/dist/web/launch.js.map +0 -1
- package/dist/web/protocol.d.ts.map +0 -1
- package/dist/web/protocol.js.map +0 -1
- package/dist/web/review-service.d.ts.map +0 -1
- package/dist/web/review-service.js.map +0 -1
- package/dist/web/server.d.ts.map +0 -1
- package/dist/web/server.js.map +0 -1
- package/dist/web/terminal-manager.d.ts.map +0 -1
- package/dist/web/terminal-manager.js.map +0 -1
- package/dist/web/terminal-server.d.ts.map +0 -1
- package/dist/web/terminal-server.js.map +0 -1
- package/dist/web/workbench-controller.d.ts.map +0 -1
- package/dist/web/workbench-controller.js.map +0 -1
- package/dist/web-client/assets/FilesPanel-BkoLmgjR.js +0 -2
- package/dist/web-client/assets/ReviewPanel-3MVWbMQV.js +0 -1
- package/dist/web-client/assets/index-BkIDl_xk.js +0 -16
- package/dist/web-client/assets/index-DXMpnWE8.css +0 -1
package/dist/web/protocol.js
CHANGED
|
@@ -4,9 +4,11 @@ exports.WebProtocolError = exports.WEB_MAX_BODY_BYTES = exports.WEB_USER_GESTURE
|
|
|
4
4
|
exports.parseWebSettingsUpdate = parseWebSettingsUpdate;
|
|
5
5
|
exports.parseWebOpenSettingsDocument = parseWebOpenSettingsDocument;
|
|
6
6
|
exports.parseWebContextActivate = parseWebContextActivate;
|
|
7
|
+
exports.parseWebComposerAction = parseWebComposerAction;
|
|
7
8
|
exports.parseWebCommand = parseWebCommand;
|
|
8
9
|
exports.toAgentRuntimeInput = toAgentRuntimeInput;
|
|
9
10
|
exports.projectSessionSummary = projectSessionSummary;
|
|
11
|
+
const canonical_1 = require("../runtime/protocol/canonical");
|
|
10
12
|
exports.WEB_API_VERSION = 1;
|
|
11
13
|
exports.WEB_NONCE_HEADER = 'x-orion-web-nonce';
|
|
12
14
|
exports.WEB_USER_GESTURE_HEADER = 'x-orion-user-gesture';
|
|
@@ -59,15 +61,145 @@ function parseWebContextActivate(value) {
|
|
|
59
61
|
const sessionId = row.sessionId === null ? null : requireBoundedString(row.sessionId, 'sessionId', 256);
|
|
60
62
|
return Object.freeze({ requestId, expectedContextRevision, workspaceId, sessionId });
|
|
61
63
|
}
|
|
64
|
+
function parseWebComposerAction(value) {
|
|
65
|
+
const row = requireRecord(value, 'Composer action request');
|
|
66
|
+
const type = requireEnum(row.type, 'type', [
|
|
67
|
+
'set_agent_mode',
|
|
68
|
+
'set_permission_override',
|
|
69
|
+
'clear_permission_override',
|
|
70
|
+
'select_model',
|
|
71
|
+
'compact_context',
|
|
72
|
+
'review_plan',
|
|
73
|
+
'edit_queue_item',
|
|
74
|
+
'move_queue_item',
|
|
75
|
+
'remove_queue_item',
|
|
76
|
+
]);
|
|
77
|
+
const baseKeys = [
|
|
78
|
+
'requestId',
|
|
79
|
+
'workspaceId',
|
|
80
|
+
'expectedContextRevision',
|
|
81
|
+
'expectedSessionId',
|
|
82
|
+
'expectedSessionRuntimeRevision',
|
|
83
|
+
'expectedControlRevision',
|
|
84
|
+
'type',
|
|
85
|
+
];
|
|
86
|
+
const keysByType = {
|
|
87
|
+
set_agent_mode: ['mode'],
|
|
88
|
+
set_permission_override: ['value'],
|
|
89
|
+
clear_permission_override: [],
|
|
90
|
+
select_model: ['modelId', 'effort'],
|
|
91
|
+
compact_context: [],
|
|
92
|
+
review_plan: ['planDigest', 'action', 'feedback'],
|
|
93
|
+
edit_queue_item: ['itemId', 'expectedItemRevision', 'text'],
|
|
94
|
+
move_queue_item: ['itemId', 'expectedItemRevision', 'targetIndex'],
|
|
95
|
+
remove_queue_item: ['itemId', 'expectedItemRevision'],
|
|
96
|
+
};
|
|
97
|
+
assertOnlyKeys(row, [...baseKeys, ...keysByType[type]], 'Composer action');
|
|
98
|
+
const requestId = requireUuidString(row.requestId, 'requestId');
|
|
99
|
+
const workspaceId = requireUuidString(row.workspaceId, 'workspaceId');
|
|
100
|
+
const expectedContextRevision = requireUuidString(row.expectedContextRevision, 'expectedContextRevision');
|
|
101
|
+
const expectedSessionId = requireUuidString(row.expectedSessionId, 'expectedSessionId');
|
|
102
|
+
const expectedSessionRuntimeRevision = requireUuidString(row.expectedSessionRuntimeRevision, 'expectedSessionRuntimeRevision');
|
|
103
|
+
const expectedControlRevision = requireUuidString(row.expectedControlRevision, 'expectedControlRevision');
|
|
104
|
+
const base = {
|
|
105
|
+
requestId,
|
|
106
|
+
workspaceId,
|
|
107
|
+
expectedContextRevision,
|
|
108
|
+
expectedSessionId,
|
|
109
|
+
expectedSessionRuntimeRevision,
|
|
110
|
+
expectedControlRevision,
|
|
111
|
+
};
|
|
112
|
+
switch (type) {
|
|
113
|
+
case 'set_agent_mode':
|
|
114
|
+
return Object.freeze({
|
|
115
|
+
...base,
|
|
116
|
+
type,
|
|
117
|
+
mode: requireEnum(row.mode, 'mode', ['interactive', 'plan', 'auto']),
|
|
118
|
+
});
|
|
119
|
+
case 'set_permission_override':
|
|
120
|
+
return Object.freeze({
|
|
121
|
+
...base,
|
|
122
|
+
type,
|
|
123
|
+
value: requireEnum(row.value, 'value', ['ask', 'allow', 'deny']),
|
|
124
|
+
});
|
|
125
|
+
case 'clear_permission_override':
|
|
126
|
+
case 'compact_context':
|
|
127
|
+
return Object.freeze({ ...base, type });
|
|
128
|
+
case 'select_model':
|
|
129
|
+
return Object.freeze({
|
|
130
|
+
...base,
|
|
131
|
+
type,
|
|
132
|
+
modelId: requireBoundedString(row.modelId, 'modelId', 256),
|
|
133
|
+
...(row.effort === undefined
|
|
134
|
+
? {}
|
|
135
|
+
: {
|
|
136
|
+
effort: requireEnum(row.effort, 'effort', [
|
|
137
|
+
'auto',
|
|
138
|
+
'none',
|
|
139
|
+
'minimal',
|
|
140
|
+
'low',
|
|
141
|
+
'medium',
|
|
142
|
+
'high',
|
|
143
|
+
'xhigh',
|
|
144
|
+
'max',
|
|
145
|
+
]),
|
|
146
|
+
}),
|
|
147
|
+
});
|
|
148
|
+
case 'review_plan': {
|
|
149
|
+
const action = requireEnum(row.action, 'action', ['approve', 'continue', 'cancel']);
|
|
150
|
+
const feedback = row.feedback === undefined
|
|
151
|
+
? undefined
|
|
152
|
+
: requireBoundedString(row.feedback, 'feedback', exports.WEB_MAX_BODY_BYTES);
|
|
153
|
+
if (action === 'continue' && !feedback) {
|
|
154
|
+
throw new WebProtocolError('continue plan review requires feedback');
|
|
155
|
+
}
|
|
156
|
+
if (action !== 'continue' && feedback) {
|
|
157
|
+
throw new WebProtocolError('feedback is accepted only when continuing plan review');
|
|
158
|
+
}
|
|
159
|
+
return Object.freeze({
|
|
160
|
+
...base,
|
|
161
|
+
type,
|
|
162
|
+
planDigest: requireBoundedString(row.planDigest, 'planDigest', 128),
|
|
163
|
+
action,
|
|
164
|
+
...(feedback ? { feedback } : {}),
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
case 'edit_queue_item':
|
|
168
|
+
return Object.freeze({
|
|
169
|
+
...base,
|
|
170
|
+
type,
|
|
171
|
+
itemId: requireBoundedString(row.itemId, 'itemId', 256),
|
|
172
|
+
expectedItemRevision: requirePositiveInteger(row.expectedItemRevision, 'expectedItemRevision'),
|
|
173
|
+
text: requireBoundedString(row.text, 'text', exports.WEB_MAX_BODY_BYTES),
|
|
174
|
+
});
|
|
175
|
+
case 'move_queue_item':
|
|
176
|
+
return Object.freeze({
|
|
177
|
+
...base,
|
|
178
|
+
type,
|
|
179
|
+
itemId: requireBoundedString(row.itemId, 'itemId', 256),
|
|
180
|
+
expectedItemRevision: requirePositiveInteger(row.expectedItemRevision, 'expectedItemRevision'),
|
|
181
|
+
targetIndex: requireNonNegativeInteger(row.targetIndex, 'targetIndex'),
|
|
182
|
+
});
|
|
183
|
+
case 'remove_queue_item':
|
|
184
|
+
return Object.freeze({
|
|
185
|
+
...base,
|
|
186
|
+
type,
|
|
187
|
+
itemId: requireBoundedString(row.itemId, 'itemId', 256),
|
|
188
|
+
expectedItemRevision: requirePositiveInteger(row.expectedItemRevision, 'expectedItemRevision'),
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
}
|
|
62
192
|
function parseWebSettingsUpdateValue(value) {
|
|
63
193
|
const row = requireRecord(value, 'Settings request');
|
|
64
|
-
assertOnlyKeys(row, ['requestId', 'expectedRevision', 'operations'], 'settings');
|
|
194
|
+
assertOnlyKeys(row, ['requestId', 'workspaceId', 'expectedContextRevision', 'expectedRevision', 'operations'], 'settings');
|
|
65
195
|
if (Buffer.byteLength(JSON.stringify(row), 'utf8') > SETTINGS_MAX_BODY_BYTES) {
|
|
66
196
|
throw new WebProtocolError(`Settings request exceeds ${SETTINGS_MAX_BODY_BYTES} bytes`);
|
|
67
197
|
}
|
|
68
198
|
const requestId = requireBoundedString(row.requestId, 'requestId', 128);
|
|
69
199
|
if (!UUID_PATTERN.test(requestId))
|
|
70
200
|
throw new WebProtocolError('requestId must be a UUID');
|
|
201
|
+
const workspaceId = requireUuidString(row.workspaceId, 'workspaceId');
|
|
202
|
+
const expectedContextRevision = requireUuidString(row.expectedContextRevision, 'expectedContextRevision');
|
|
71
203
|
const expectedRevision = requireBoundedString(row.expectedRevision, 'expectedRevision', 128);
|
|
72
204
|
if (!SETTINGS_REVISION_PATTERN.test(expectedRevision)) {
|
|
73
205
|
throw new WebProtocolError('expectedRevision is not a valid Settings revision');
|
|
@@ -88,6 +220,8 @@ function parseWebSettingsUpdateValue(value) {
|
|
|
88
220
|
});
|
|
89
221
|
return Object.freeze({
|
|
90
222
|
requestId,
|
|
223
|
+
workspaceId,
|
|
224
|
+
expectedContextRevision,
|
|
91
225
|
expectedRevision,
|
|
92
226
|
operations: Object.freeze(operations),
|
|
93
227
|
});
|
|
@@ -96,6 +230,7 @@ function parseSettingsOperation(value, index) {
|
|
|
96
230
|
const row = requireRecord(value, `operations[${index}]`);
|
|
97
231
|
const op = requireEnum(row.op, `operations[${index}].op`, ['set', 'unset']);
|
|
98
232
|
const key = requireEnum(row.key, `operations[${index}].key`, [
|
|
233
|
+
'appearance.style',
|
|
99
234
|
'appearance.theme',
|
|
100
235
|
'appearance.motion',
|
|
101
236
|
'defaults.model',
|
|
@@ -109,6 +244,15 @@ function parseSettingsOperation(value, index) {
|
|
|
109
244
|
throw new WebProtocolError(`operations[${index}].value is required for set`);
|
|
110
245
|
}
|
|
111
246
|
switch (key) {
|
|
247
|
+
case 'appearance.style':
|
|
248
|
+
return {
|
|
249
|
+
op,
|
|
250
|
+
key,
|
|
251
|
+
value: requireEnum(row.value, `operations[${index}].value`, [
|
|
252
|
+
'classic',
|
|
253
|
+
'orion-blocksmith',
|
|
254
|
+
]),
|
|
255
|
+
};
|
|
112
256
|
case 'appearance.theme':
|
|
113
257
|
return {
|
|
114
258
|
op,
|
|
@@ -158,9 +302,13 @@ function parseWebCommand(value) {
|
|
|
158
302
|
const row = requireRecord(value, 'Command body');
|
|
159
303
|
assertOnlyKeys(row, [
|
|
160
304
|
'requestId',
|
|
305
|
+
'workspaceId',
|
|
306
|
+
'expectedContextRevision',
|
|
161
307
|
'expectedSessionId',
|
|
308
|
+
'expectedSessionRuntimeRevision',
|
|
162
309
|
'type',
|
|
163
310
|
'text',
|
|
311
|
+
'queueId',
|
|
164
312
|
'itemId',
|
|
165
313
|
'requestPermissionId',
|
|
166
314
|
'approved',
|
|
@@ -169,11 +317,18 @@ function parseWebCommand(value) {
|
|
|
169
317
|
'objective',
|
|
170
318
|
'toolConfirmation',
|
|
171
319
|
'agentMode',
|
|
320
|
+
'contextReferences',
|
|
172
321
|
]);
|
|
173
322
|
const requestId = requireBoundedString(row.requestId, 'requestId', 128);
|
|
174
|
-
|
|
323
|
+
if (!UUID_PATTERN.test(requestId))
|
|
324
|
+
throw new WebProtocolError('requestId must be a UUID');
|
|
325
|
+
const workspaceId = requireUuidString(row.workspaceId, 'workspaceId');
|
|
326
|
+
const expectedContextRevision = requireUuidString(row.expectedContextRevision, 'expectedContextRevision');
|
|
327
|
+
const expectedSessionId = requireUuidString(row.expectedSessionId, 'expectedSessionId');
|
|
328
|
+
const expectedSessionRuntimeRevision = requireUuidString(row.expectedSessionRuntimeRevision, 'expectedSessionRuntimeRevision');
|
|
175
329
|
const type = requireEnum(row.type, 'type', [
|
|
176
330
|
'submit',
|
|
331
|
+
'cancel_queued_turn',
|
|
177
332
|
'queue_followup',
|
|
178
333
|
'remove_followup',
|
|
179
334
|
'clear_followups',
|
|
@@ -186,11 +341,15 @@ function parseWebCommand(value) {
|
|
|
186
341
|
]);
|
|
187
342
|
const command = {
|
|
188
343
|
requestId,
|
|
344
|
+
workspaceId,
|
|
345
|
+
expectedContextRevision,
|
|
189
346
|
expectedSessionId,
|
|
347
|
+
expectedSessionRuntimeRevision,
|
|
190
348
|
type,
|
|
191
349
|
...(row.text === undefined
|
|
192
350
|
? {}
|
|
193
351
|
: { text: requireBoundedString(row.text, 'text', exports.WEB_MAX_BODY_BYTES) }),
|
|
352
|
+
...(row.queueId === undefined ? {} : { queueId: requireUuidString(row.queueId, 'queueId') }),
|
|
194
353
|
...(row.itemId === undefined
|
|
195
354
|
? {}
|
|
196
355
|
: { itemId: requireBoundedString(row.itemId, 'itemId', 256) }),
|
|
@@ -235,6 +394,9 @@ function parseWebCommand(value) {
|
|
|
235
394
|
'auto',
|
|
236
395
|
]),
|
|
237
396
|
}),
|
|
397
|
+
...(row.contextReferences === undefined
|
|
398
|
+
? {}
|
|
399
|
+
: { contextReferences: parseContextReferences(row.contextReferences) }),
|
|
238
400
|
};
|
|
239
401
|
validateCommandFields(command);
|
|
240
402
|
return Object.freeze(command);
|
|
@@ -243,6 +405,8 @@ function toAgentRuntimeInput(command) {
|
|
|
243
405
|
switch (command.type) {
|
|
244
406
|
case 'submit':
|
|
245
407
|
return { type: 'submit', text: command.text, source: 'programmatic' };
|
|
408
|
+
case 'cancel_queued_turn':
|
|
409
|
+
throw new WebProtocolError('cancel_queued_turn is handled by the Web Session registry');
|
|
246
410
|
case 'queue_followup':
|
|
247
411
|
return { type: 'queue_followup', text: command.text, source: 'programmatic' };
|
|
248
412
|
case 'remove_followup':
|
|
@@ -293,6 +457,12 @@ function projectSessionSummary(session) {
|
|
|
293
457
|
createdAt,
|
|
294
458
|
updatedAt,
|
|
295
459
|
messageCount: session.messageCount ?? 0,
|
|
460
|
+
contextDigest: session.threadReadModel?.projectionDigest ??
|
|
461
|
+
(0, canonical_1.digestRuntimeValue)({
|
|
462
|
+
sessionId: session.id,
|
|
463
|
+
updatedAt,
|
|
464
|
+
messageCount: session.messageCount ?? 0,
|
|
465
|
+
}),
|
|
296
466
|
...(session.taskSummary ? { taskSummary: session.taskSummary } : {}),
|
|
297
467
|
...(session.activeGoalId ? { activeGoalId: session.activeGoalId } : {}),
|
|
298
468
|
...(session.activeGoalObjective ? { activeGoalObjective: session.activeGoalObjective } : {}),
|
|
@@ -311,9 +481,17 @@ function goalControlInput(command) {
|
|
|
311
481
|
return { type: 'goal_control', action, source: 'programmatic' };
|
|
312
482
|
}
|
|
313
483
|
function validateCommandFields(command) {
|
|
484
|
+
if (command.contextReferences?.length &&
|
|
485
|
+
command.type !== 'submit' &&
|
|
486
|
+
command.type !== 'queue_followup') {
|
|
487
|
+
throw new WebProtocolError('contextReferences are only valid for submit or queue_followup');
|
|
488
|
+
}
|
|
314
489
|
if ((command.type === 'submit' || command.type === 'queue_followup') && !command.text?.trim()) {
|
|
315
490
|
throw new WebProtocolError(`${command.type} requires non-empty text`);
|
|
316
491
|
}
|
|
492
|
+
if (command.type === 'cancel_queued_turn' && !command.queueId) {
|
|
493
|
+
throw new WebProtocolError('cancel_queued_turn requires queueId');
|
|
494
|
+
}
|
|
317
495
|
if (command.type === 'remove_followup' && !command.itemId) {
|
|
318
496
|
throw new WebProtocolError('remove_followup requires itemId');
|
|
319
497
|
}
|
|
@@ -335,6 +513,53 @@ function validateCommandFields(command) {
|
|
|
335
513
|
throw new WebProtocolError('set_agent_mode requires agentMode');
|
|
336
514
|
}
|
|
337
515
|
}
|
|
516
|
+
function parseContextReferences(value) {
|
|
517
|
+
if (!Array.isArray(value) || value.length > 20) {
|
|
518
|
+
throw new WebProtocolError('contextReferences must contain at most 20 entries');
|
|
519
|
+
}
|
|
520
|
+
const seen = new Set();
|
|
521
|
+
return Object.freeze(value.map((entry, index) => {
|
|
522
|
+
const row = requireRecord(entry, `contextReferences[${index}]`);
|
|
523
|
+
const kind = requireEnum(row.kind, `contextReferences[${index}].kind`, [
|
|
524
|
+
'file',
|
|
525
|
+
'folder',
|
|
526
|
+
'review',
|
|
527
|
+
'session',
|
|
528
|
+
'skill',
|
|
529
|
+
]);
|
|
530
|
+
const id = requireBoundedString(row.id, `contextReferences[${index}].id`, 256);
|
|
531
|
+
if (seen.has(`${kind}:${id}`)) {
|
|
532
|
+
throw new WebProtocolError(`Duplicate Context reference: ${kind}:${id}`);
|
|
533
|
+
}
|
|
534
|
+
seen.add(`${kind}:${id}`);
|
|
535
|
+
const label = requireBoundedString(row.label, `contextReferences[${index}].label`, 200);
|
|
536
|
+
if (kind === 'file' || kind === 'folder') {
|
|
537
|
+
assertOnlyKeys(row, ['kind', 'id', 'label', 'revision'], 'Context reference');
|
|
538
|
+
return Object.freeze({
|
|
539
|
+
kind,
|
|
540
|
+
id,
|
|
541
|
+
label,
|
|
542
|
+
revision: requireBoundedString(row.revision, `contextReferences[${index}].revision`, 256),
|
|
543
|
+
});
|
|
544
|
+
}
|
|
545
|
+
if (kind === 'review') {
|
|
546
|
+
assertOnlyKeys(row, ['kind', 'id', 'label', 'gitRevision'], 'Context reference');
|
|
547
|
+
return Object.freeze({
|
|
548
|
+
kind,
|
|
549
|
+
id,
|
|
550
|
+
label,
|
|
551
|
+
gitRevision: requireBoundedString(row.gitRevision, `contextReferences[${index}].gitRevision`, 256),
|
|
552
|
+
});
|
|
553
|
+
}
|
|
554
|
+
assertOnlyKeys(row, ['kind', 'id', 'label', 'digest'], 'Context reference');
|
|
555
|
+
return Object.freeze({
|
|
556
|
+
kind,
|
|
557
|
+
id,
|
|
558
|
+
label,
|
|
559
|
+
digest: requireBoundedString(row.digest, `contextReferences[${index}].digest`, 128),
|
|
560
|
+
});
|
|
561
|
+
}));
|
|
562
|
+
}
|
|
338
563
|
function requireRecord(value, name) {
|
|
339
564
|
if (!value || typeof value !== 'object' || Array.isArray(value)) {
|
|
340
565
|
throw new WebProtocolError(`${name} must be an object`);
|
|
@@ -355,6 +580,24 @@ function requireBoundedString(value, name, maxLength) {
|
|
|
355
580
|
throw new WebProtocolError(`${name} exceeds ${maxLength} bytes`);
|
|
356
581
|
return value;
|
|
357
582
|
}
|
|
583
|
+
function requireUuidString(value, name) {
|
|
584
|
+
const result = requireBoundedString(value, name, 128);
|
|
585
|
+
if (!UUID_PATTERN.test(result))
|
|
586
|
+
throw new WebProtocolError(`${name} must be a UUID`);
|
|
587
|
+
return result;
|
|
588
|
+
}
|
|
589
|
+
function requireNonNegativeInteger(value, name) {
|
|
590
|
+
if (!Number.isSafeInteger(value) || value < 0) {
|
|
591
|
+
throw new WebProtocolError(`${name} must be a non-negative safe integer`);
|
|
592
|
+
}
|
|
593
|
+
return value;
|
|
594
|
+
}
|
|
595
|
+
function requirePositiveInteger(value, name) {
|
|
596
|
+
if (!Number.isSafeInteger(value) || value <= 0) {
|
|
597
|
+
throw new WebProtocolError(`${name} must be a positive safe integer`);
|
|
598
|
+
}
|
|
599
|
+
return value;
|
|
600
|
+
}
|
|
358
601
|
function requireBoolean(value, name) {
|
|
359
602
|
if (typeof value !== 'boolean')
|
|
360
603
|
throw new WebProtocolError(`${name} must be a boolean`);
|
|
@@ -20,6 +20,7 @@ export interface WebReviewSnapshotV1 {
|
|
|
20
20
|
readonly isRepository: boolean;
|
|
21
21
|
readonly clean: boolean;
|
|
22
22
|
readonly changedFiles: readonly WebGitFileV1[];
|
|
23
|
+
readonly totalChangedFiles: number;
|
|
23
24
|
readonly stagedCount: number;
|
|
24
25
|
readonly unstagedCount: number;
|
|
25
26
|
readonly untrackedCount: number;
|
|
@@ -45,6 +45,7 @@ class ReviewServiceV1 {
|
|
|
45
45
|
isRepository: status.isRepository,
|
|
46
46
|
clean: status.clean,
|
|
47
47
|
changedFiles: Object.freeze(changedFiles),
|
|
48
|
+
totalChangedFiles: status.totalFiles,
|
|
48
49
|
stagedCount: status.staged.length,
|
|
49
50
|
unstagedCount: status.unstaged.length,
|
|
50
51
|
untrackedCount: status.untracked.length,
|
package/dist/web/server.js
CHANGED
|
@@ -55,14 +55,28 @@ async function startOrionWebServer(options) {
|
|
|
55
55
|
return closing;
|
|
56
56
|
closing = (async () => {
|
|
57
57
|
clearInterval(heartbeat);
|
|
58
|
-
|
|
59
|
-
await
|
|
60
|
-
await
|
|
58
|
+
const failures = [];
|
|
59
|
+
await captureCloseFailure(failures, () => terminalSockets.close());
|
|
60
|
+
await captureCloseFailure(failures, () => workbench.shutdown());
|
|
61
|
+
await captureCloseFailure(failures, () => closeServer(server));
|
|
62
|
+
if (failures.length > 0) {
|
|
63
|
+
const error = new Error('Orion Web Host shutdown was incomplete.');
|
|
64
|
+
Object.defineProperty(error, 'failures', { value: Object.freeze([...failures]) });
|
|
65
|
+
throw error;
|
|
66
|
+
}
|
|
61
67
|
})();
|
|
62
68
|
return closing;
|
|
63
69
|
};
|
|
64
70
|
return Object.freeze({ host: HOST, port, url: origin, nonce, workbench, server, close });
|
|
65
71
|
}
|
|
72
|
+
async function captureCloseFailure(failures, operation) {
|
|
73
|
+
try {
|
|
74
|
+
await operation();
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
failures.push(error);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
66
80
|
async function handleRequest(context) {
|
|
67
81
|
const { request, response } = context;
|
|
68
82
|
applySecurityHeaders(response, context.nonce);
|
|
@@ -87,19 +101,21 @@ async function handleRequest(context) {
|
|
|
87
101
|
return;
|
|
88
102
|
}
|
|
89
103
|
if (method === 'GET' && path === '/workspaces') {
|
|
90
|
-
|
|
104
|
+
const contextGuard = requireContextGuardQuery(url);
|
|
105
|
+
sendJson(response, 200, collectionPage(url, 'workspaces', context.workbench.listWorkspaces(contextGuard), workspace => workspace.id));
|
|
91
106
|
return;
|
|
92
107
|
}
|
|
93
108
|
const workspaceSessionsMatch = path.match(/^\/workspaces\/([^/]+)\/sessions$/);
|
|
94
109
|
if (method === 'GET' && workspaceSessionsMatch) {
|
|
95
110
|
const workspaceId = safeDecodePathSegment(workspaceSessionsMatch[1]);
|
|
96
|
-
|
|
111
|
+
const contextGuard = requireContextGuardQuery(url);
|
|
112
|
+
sendJson(response, 200, collectionPage(url, `workspace-sessions-${workspaceId}`, context.workbench.listWorkspaceSessions(workspaceId, contextGuard), session => session.id));
|
|
97
113
|
return;
|
|
98
114
|
}
|
|
99
115
|
const workspaceSummaryMatch = path.match(/^\/workspaces\/([^/]+)\/summary$/);
|
|
100
116
|
if (method === 'GET' && workspaceSummaryMatch) {
|
|
101
117
|
const workspaceId = requireUuid(safeDecodePathSegment(workspaceSummaryMatch[1]), 'workspaceId');
|
|
102
|
-
sendJson(response, 200, await context.workbench.workspaceProjectSummary(workspaceId));
|
|
118
|
+
sendJson(response, 200, await context.workbench.workspaceProjectSummary(workspaceId, requireContextGuardQuery(url)));
|
|
103
119
|
return;
|
|
104
120
|
}
|
|
105
121
|
const workspacePinMatch = path.match(/^\/workspaces\/([^/]+)\/pin$/);
|
|
@@ -208,7 +224,43 @@ async function handleRequest(context) {
|
|
|
208
224
|
const snapshotMatch = path.match(/^\/sessions\/([^/]+)\/snapshot$/);
|
|
209
225
|
if (method === 'GET' && snapshotMatch) {
|
|
210
226
|
const contextGuard = requireContextGuardQuery(url);
|
|
211
|
-
sendJson(response, 200, context.workbench.sessionSnapshot(safeDecodePathSegment(snapshotMatch[1]), url.searchParams.get('cursor') ?? undefined, pageSize(url),
|
|
227
|
+
sendJson(response, 200, context.workbench.sessionSnapshot(safeDecodePathSegment(snapshotMatch[1]), url.searchParams.get('cursor') ?? undefined, pageSize(url),
|
|
228
|
+
// A recovery snapshot starts at the latest bounded transcript page and
|
|
229
|
+
// pages backward. Older clients did not send the internal `tail=1`
|
|
230
|
+
// hint, so absence must still use the indexed tail path rather than
|
|
231
|
+
// reopening and replaying the complete Thread.
|
|
232
|
+
url.searchParams.get('tail') !== '0', contextGuard));
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
const composerStateMatch = path.match(/^\/sessions\/([^/]+)\/composer-state$/);
|
|
236
|
+
if (method === 'GET' && composerStateMatch) {
|
|
237
|
+
const contextGuard = requireContextGuardQuery(url);
|
|
238
|
+
sendJson(response, 200, context.workbench.composerState(safeDecodePathSegment(composerStateMatch[1]), contextGuard));
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
const modelCatalogMatch = path.match(/^\/sessions\/([^/]+)\/model-catalog$/);
|
|
242
|
+
if (method === 'GET' && modelCatalogMatch) {
|
|
243
|
+
const contextGuard = requireContextGuardQuery(url);
|
|
244
|
+
const sessionId = safeDecodePathSegment(modelCatalogMatch[1]);
|
|
245
|
+
const catalog = context.workbench.modelCatalog(sessionId, contextGuard);
|
|
246
|
+
const page = (0, workbench_controller_1.pageCollectionItems)('composer_models', catalog.models, url.searchParams.get('cursor') ?? undefined, pageSize(url), model => model.id);
|
|
247
|
+
sendJson(response, 200, {
|
|
248
|
+
revision: catalog.revision,
|
|
249
|
+
unavailableProviders: catalog.unavailableProviders,
|
|
250
|
+
...page,
|
|
251
|
+
});
|
|
252
|
+
return;
|
|
253
|
+
}
|
|
254
|
+
const composerActionMatch = path.match(/^\/sessions\/([^/]+)\/composer-actions$/);
|
|
255
|
+
if (method === 'POST' && composerActionMatch) {
|
|
256
|
+
assertMutation(request, context.nonce, context.origin);
|
|
257
|
+
const sessionId = safeDecodePathSegment(composerActionMatch[1]);
|
|
258
|
+
const body = (0, protocol_1.parseWebComposerAction)(await readJson(request));
|
|
259
|
+
if (body.expectedSessionId !== sessionId) {
|
|
260
|
+
throw new protocol_1.WebProtocolError('expectedSessionId must match the Composer action route');
|
|
261
|
+
}
|
|
262
|
+
const result = await context.workbench.executeMutation(body.requestId, 'composer.action', body, () => context.workbench.applyComposerAction(body));
|
|
263
|
+
sendJson(response, 200, result);
|
|
212
264
|
return;
|
|
213
265
|
}
|
|
214
266
|
const sessionMatch = path.match(/^\/sessions\/([^/]+)$/);
|
|
@@ -218,7 +270,7 @@ async function handleRequest(context) {
|
|
|
218
270
|
assertOnlyKeys(body, ['requestId', 'name', 'expectedContextRevision', 'workspaceId']);
|
|
219
271
|
const requestId = requireUuid(body.requestId, 'requestId');
|
|
220
272
|
const contextGuard = requireContextGuardRecord(body);
|
|
221
|
-
const name =
|
|
273
|
+
const name = requireText(body.name, 'name', 120);
|
|
222
274
|
const sessionId = safeDecodePathSegment(sessionMatch[1]);
|
|
223
275
|
const result = await context.workbench.executeMutation(requestId, 'session.rename', { sessionId, name, ...contextGuard }, () => ({
|
|
224
276
|
requestId,
|
|
@@ -239,7 +291,12 @@ async function handleRequest(context) {
|
|
|
239
291
|
if (method === 'PATCH' && path === '/settings') {
|
|
240
292
|
assertMutation(request, context.nonce, context.origin, 'settings_write_forbidden');
|
|
241
293
|
const body = (0, protocol_1.parseWebSettingsUpdate)(await readJson(request));
|
|
242
|
-
const result = await context.workbench.executeMutation(body.requestId, 'settings.update', {
|
|
294
|
+
const result = await context.workbench.executeMutation(body.requestId, 'settings.update', {
|
|
295
|
+
workspaceId: body.workspaceId,
|
|
296
|
+
expectedContextRevision: body.expectedContextRevision,
|
|
297
|
+
expectedRevision: body.expectedRevision,
|
|
298
|
+
operations: body.operations,
|
|
299
|
+
}, async () => ({ requestId: body.requestId, ...(await context.workbench.updateSettings(body)) }));
|
|
243
300
|
sendJson(response, 200, result);
|
|
244
301
|
return;
|
|
245
302
|
}
|
|
@@ -251,11 +308,13 @@ async function handleRequest(context) {
|
|
|
251
308
|
return;
|
|
252
309
|
}
|
|
253
310
|
if (method === 'GET' && path === '/skills') {
|
|
254
|
-
|
|
311
|
+
const contextGuard = requireContextGuardQuery(url);
|
|
312
|
+
sendJson(response, 200, collectionPage(url, 'skills', await context.workbench.skills(contextGuard), skill => skill.id));
|
|
255
313
|
return;
|
|
256
314
|
}
|
|
257
315
|
if (method === 'GET' && path === '/mcp') {
|
|
258
|
-
|
|
316
|
+
const contextGuard = requireContextGuardQuery(url);
|
|
317
|
+
sendJson(response, 200, collectionPage(url, 'mcp', context.workbench.mcp(contextGuard), server => server.id));
|
|
259
318
|
return;
|
|
260
319
|
}
|
|
261
320
|
if (method === 'GET' && path === '/files') {
|
|
@@ -388,18 +447,20 @@ async function handleRequest(context) {
|
|
|
388
447
|
return;
|
|
389
448
|
}
|
|
390
449
|
if (method === 'GET' && path === '/tool-details') {
|
|
391
|
-
|
|
450
|
+
const contextGuard = requireContextGuardQuery(url);
|
|
451
|
+
sendJson(response, 200, collectionPage(url, 'tool-details', await context.workbench.listToolDetails(contextGuard), detail => `${detail.sequence}:${detail.callId}`));
|
|
392
452
|
return;
|
|
393
453
|
}
|
|
394
454
|
const toolDetailMatch = path.match(/^\/tool-details\/([^/]+)$/);
|
|
395
455
|
if (method === 'GET' && toolDetailMatch) {
|
|
456
|
+
const contextGuard = requireContextGuardQuery(url);
|
|
396
457
|
const offsetBytes = boundedInteger(url.searchParams.get('offsetBytes'), 0, 0, 2 ** 31 - 1);
|
|
397
458
|
const limitBytes = boundedInteger(url.searchParams.get('limitBytes'), 64 * 1024, 1, 1024 * 1024);
|
|
398
|
-
sendJson(response, 200, await context.workbench.readToolDetail(safeDecodePathSegment(toolDetailMatch[1]), offsetBytes, limitBytes));
|
|
459
|
+
sendJson(response, 200, await context.workbench.readToolDetail(safeDecodePathSegment(toolDetailMatch[1]), offsetBytes, limitBytes, contextGuard));
|
|
399
460
|
return;
|
|
400
461
|
}
|
|
401
462
|
if (method === 'GET' && path === '/diagnostics') {
|
|
402
|
-
sendJson(response, 200, await context.workbench.diagnostics());
|
|
463
|
+
sendJson(response, 200, await context.workbench.diagnostics(requireContextGuardQuery(url)));
|
|
403
464
|
return;
|
|
404
465
|
}
|
|
405
466
|
throw new HttpProblem(404, 'Route not found.');
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
export interface WebSessionActorKeyV1 {
|
|
2
|
+
readonly workspaceId: string;
|
|
3
|
+
readonly sessionId: string;
|
|
4
|
+
}
|
|
5
|
+
export type WebSessionActorPhaseV1 = 'cold' | 'starting' | 'idle' | 'queued' | 'running' | 'waiting_approval' | 'stopping' | 'interrupted' | 'failed';
|
|
6
|
+
export interface WebSessionRuntimeSummaryV1 extends WebSessionActorKeyV1 {
|
|
7
|
+
readonly runtimeRevision: string;
|
|
8
|
+
readonly phase: WebSessionActorPhaseV1;
|
|
9
|
+
readonly queueId?: string;
|
|
10
|
+
readonly queuePosition?: number;
|
|
11
|
+
readonly pendingApprovalCount: number;
|
|
12
|
+
readonly resident: boolean;
|
|
13
|
+
readonly estimatedBytes: number;
|
|
14
|
+
readonly updatedAt: string;
|
|
15
|
+
}
|
|
16
|
+
export interface WebSessionTurnStartV1<T> {
|
|
17
|
+
/** Synchronous command admission returned to the HTTP caller. */
|
|
18
|
+
readonly accepted: T;
|
|
19
|
+
/** Resolves only after the logical turn, including approval waits, is terminal. */
|
|
20
|
+
readonly settled: Promise<void>;
|
|
21
|
+
}
|
|
22
|
+
export type WebSessionTurnAdmissionV1<T> = {
|
|
23
|
+
readonly status: 'started';
|
|
24
|
+
readonly accepted: T;
|
|
25
|
+
readonly runtime: WebSessionRuntimeSummaryV1;
|
|
26
|
+
} | {
|
|
27
|
+
readonly status: 'queued';
|
|
28
|
+
readonly queueId: string;
|
|
29
|
+
readonly queuePosition: number;
|
|
30
|
+
readonly runtime: WebSessionRuntimeSummaryV1;
|
|
31
|
+
};
|
|
32
|
+
export interface WebSessionRuntimeRegistryOptionsV1<TActor extends object> {
|
|
33
|
+
readonly createActor: (key: WebSessionActorKeyV1) => Promise<TActor>;
|
|
34
|
+
/**
|
|
35
|
+
* Finish actor startup only after the registry owns the returned resource.
|
|
36
|
+
* This lets the registry quarantine and retry cleanup when initialization
|
|
37
|
+
* fails instead of losing the only handle to a partially started actor.
|
|
38
|
+
*/
|
|
39
|
+
readonly initializeActor?: (actor: TActor, key: WebSessionActorKeyV1) => Promise<void>;
|
|
40
|
+
readonly closeActor: (actor: TActor, reason: string) => Promise<void>;
|
|
41
|
+
readonly estimateActorBytes?: (actor: TActor) => number;
|
|
42
|
+
readonly maxRunningSessions?: number;
|
|
43
|
+
readonly maxResidentSessionActors?: number;
|
|
44
|
+
readonly now?: () => number;
|
|
45
|
+
readonly createRevision?: () => string;
|
|
46
|
+
readonly onSummaryChanged?: (summary: WebSessionRuntimeSummaryV1) => void;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Bounded Web-only Session actor pool.
|
|
50
|
+
*
|
|
51
|
+
* It owns concurrency admission and actor lifetime, but deliberately knows
|
|
52
|
+
* nothing about React, HTTP, OrionRuntime, or TUI semantics. Callers provide a
|
|
53
|
+
* Session-scoped actor and a logical-turn terminal promise. This keeps Web
|
|
54
|
+
* parallelism out of the single-session CLI/TUI runner.
|
|
55
|
+
*/
|
|
56
|
+
export declare class WebSessionRuntimeRegistryV1<TActor extends object> {
|
|
57
|
+
private readonly options;
|
|
58
|
+
private readonly records;
|
|
59
|
+
private readonly queue;
|
|
60
|
+
private readonly maxRunningSessions;
|
|
61
|
+
private readonly maxResidentSessionActors;
|
|
62
|
+
private readonly now;
|
|
63
|
+
private readonly createRevision;
|
|
64
|
+
private capacityQueue;
|
|
65
|
+
private ordinal;
|
|
66
|
+
private runningCountValue;
|
|
67
|
+
private closed;
|
|
68
|
+
constructor(options: WebSessionRuntimeRegistryOptionsV1<TActor>);
|
|
69
|
+
get runningCount(): number;
|
|
70
|
+
get residentCount(): number;
|
|
71
|
+
summary(key: WebSessionActorKeyV1): WebSessionRuntimeSummaryV1;
|
|
72
|
+
summaries(): readonly WebSessionRuntimeSummaryV1[];
|
|
73
|
+
/**
|
|
74
|
+
* Return the current resident actor without starting a cold Session.
|
|
75
|
+
*
|
|
76
|
+
* Snapshot/read paths use this to project live state while preserving the
|
|
77
|
+
* cold-read invariant: merely selecting or inspecting a Session must not
|
|
78
|
+
* allocate a Runtime or consume a running slot.
|
|
79
|
+
*/
|
|
80
|
+
residentActor(key: WebSessionActorKeyV1): {
|
|
81
|
+
readonly actor: TActor;
|
|
82
|
+
readonly runtime: WebSessionRuntimeSummaryV1;
|
|
83
|
+
} | undefined;
|
|
84
|
+
ensureResident(key: WebSessionActorKeyV1, expectedRuntimeRevision?: string): Promise<{
|
|
85
|
+
readonly actor: TActor;
|
|
86
|
+
readonly runtime: WebSessionRuntimeSummaryV1;
|
|
87
|
+
}>;
|
|
88
|
+
withActor<T>(key: WebSessionActorKeyV1, expectedRuntimeRevision: string, action: (actor: TActor) => T | Promise<T>): Promise<{
|
|
89
|
+
readonly result: T;
|
|
90
|
+
readonly runtime: WebSessionRuntimeSummaryV1;
|
|
91
|
+
}>;
|
|
92
|
+
admitTurn<T>(input: {
|
|
93
|
+
readonly key: WebSessionActorKeyV1;
|
|
94
|
+
readonly expectedRuntimeRevision: string;
|
|
95
|
+
readonly start: (actor: TActor) => Promise<WebSessionTurnStartV1<T>>;
|
|
96
|
+
}): Promise<WebSessionTurnAdmissionV1<T>>;
|
|
97
|
+
cancelQueued(key: WebSessionActorKeyV1, queueId: string, expectedRuntimeRevision: string): WebSessionRuntimeSummaryV1;
|
|
98
|
+
setPendingApprovalCount(key: WebSessionActorKeyV1, count: number): WebSessionRuntimeSummaryV1;
|
|
99
|
+
evict(key: WebSessionActorKeyV1, reason?: string): Promise<void>;
|
|
100
|
+
shutdown(reason?: string): Promise<void>;
|
|
101
|
+
private record;
|
|
102
|
+
private ensureResidentLocked;
|
|
103
|
+
private makeCapacityLocked;
|
|
104
|
+
private isEvictable;
|
|
105
|
+
private closeResidentLocked;
|
|
106
|
+
private startTurn;
|
|
107
|
+
private finishTurn;
|
|
108
|
+
private drainQueue;
|
|
109
|
+
private publishQueuePositions;
|
|
110
|
+
private snapshot;
|
|
111
|
+
private assertRevision;
|
|
112
|
+
private transition;
|
|
113
|
+
private touch;
|
|
114
|
+
private bump;
|
|
115
|
+
private publish;
|
|
116
|
+
private withCapacityLock;
|
|
117
|
+
private assertOpen;
|
|
118
|
+
}
|
|
119
|
+
export declare class WebSessionRuntimeRegistryError extends Error {
|
|
120
|
+
readonly status: number;
|
|
121
|
+
readonly code: string;
|
|
122
|
+
constructor(status: number, code: string, message: string);
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=session-runtime-registry.d.ts.map
|