@orion-agents/orion-code 0.3.2 → 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 +83 -0
- package/README.md +46 -18
- package/README.zh-CN.md +36 -16
- package/dist/runtime/agent-runtime-controller.d.ts +1 -0
- package/dist/runtime/agent-runtime-controller.js +92 -41
- 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 +2 -0
- package/dist/runtime/orion-session-runner.js +12 -4
- package/dist/runtime/product-bootstrap.d.ts +6 -0
- package/dist/runtime/product-bootstrap.js +389 -337
- package/dist/runtime/product-orion-runtime.d.ts +5 -0
- package/dist/runtime/product-orion-runtime.js +2 -0
- package/dist/runtime/release-receipts.d.ts +7 -3
- package/dist/runtime/release-receipts.js +79 -1
- 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 +19 -0
- package/dist/runtime/thread-projection.js +12 -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 +3 -0
- 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/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 +43 -6
- package/dist/web/file-read-service.d.ts +2 -0
- package/dist/web/file-read-service.js +39 -12
- package/dist/web/git-read-model-service.js +7 -0
- package/dist/web/protocol.d.ts +51 -3
- package/dist/web/protocol.js +38 -2
- package/dist/web/review-service.d.ts +1 -0
- package/dist/web/review-service.js +1 -0
- package/dist/web/server.js +30 -6
- package/dist/web/session-runtime-registry.d.ts +124 -0
- package/dist/web/session-runtime-registry.js +448 -0
- package/dist/web/terminal-manager.js +23 -4
- package/dist/web/terminal-server.js +35 -6
- package/dist/web/workbench-controller.d.ts +27 -3
- package/dist/web/workbench-controller.js +557 -134
- 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-eaQNsnCh.js → DiffViewer-D6mG729y.js} +1 -1
- package/dist/web-client/assets/FilesPanel-CCDoAZ1J.js +2 -0
- package/dist/web-client/assets/{GitPanel-CnU4XVr7.js → GitPanel-DtNgiH7A.js} +1 -1
- package/dist/web-client/assets/ReviewPanel-CKEBSt6P.js +1 -0
- package/dist/web-client/assets/{TerminalPanel-Q5mSSsoK.js → TerminalPanel-CNxMaBLp.js} +14 -14
- 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/v0.3.3-web-api.yaml +3205 -0
- package/docs/architecture/v0.3.4-stabilization-contract.md +32 -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.3-plan.md +1113 -0
- package/docs/plan/v0.3.4-stabilization-plan.md +89 -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 +10 -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/plan-review.d.ts.map +0 -1
- package/dist/runtime/plan-review.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-composer-control.d.ts.map +0 -1
- package/dist/runtime/session-composer-control.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-DYs1MhoM.js +0 -2
- package/dist/web-client/assets/ReviewPanel-BDxG670T.js +0 -1
- package/dist/web-client/assets/index-BWV5sIvw.css +0 -1
- package/dist/web-client/assets/index-VVUKj6FE.js +0 -17
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { WorkspaceMutationCoordinatorV1 } from '../runtime/step-snapshot';
|
|
2
|
+
export type WorkspaceMutationPhaseV1 = 'queued' | 'running' | 'completed' | 'failed' | 'cancelled';
|
|
3
|
+
export interface WorkspaceMutationStateV1 {
|
|
4
|
+
readonly workspaceId: string;
|
|
5
|
+
readonly invocationId: string;
|
|
6
|
+
readonly phase: WorkspaceMutationPhaseV1;
|
|
7
|
+
readonly queuePosition?: number;
|
|
8
|
+
}
|
|
9
|
+
export interface WorkspaceMutationAdmissionV1 {
|
|
10
|
+
readonly workspaceId: string;
|
|
11
|
+
readonly invocationId: string;
|
|
12
|
+
readonly baselineRevision: string;
|
|
13
|
+
readonly readCurrentRevision: () => string | Promise<string>;
|
|
14
|
+
readonly abortSignal?: AbortSignal;
|
|
15
|
+
}
|
|
16
|
+
export interface WorkspaceMutationArbiterOptionsV1 {
|
|
17
|
+
readonly onStateChanged?: (state: WorkspaceMutationStateV1) => void;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* FIFO admission for side-effecting tool execution in one Workspace.
|
|
21
|
+
*
|
|
22
|
+
* Callers capture a target-specific revision before joining the queue. The
|
|
23
|
+
* revision is checked again only after the entry reaches the head, ensuring a
|
|
24
|
+
* stale edit never executes after another Session changed its target. Queues
|
|
25
|
+
* for different Workspaces remain independent.
|
|
26
|
+
*/
|
|
27
|
+
export declare class WorkspaceMutationArbiterV1 implements WorkspaceMutationCoordinatorV1 {
|
|
28
|
+
private readonly options;
|
|
29
|
+
private readonly queues;
|
|
30
|
+
private readonly preparing;
|
|
31
|
+
private closed;
|
|
32
|
+
constructor(options?: WorkspaceMutationArbiterOptionsV1);
|
|
33
|
+
runWorkspaceMutation<T>(input: {
|
|
34
|
+
readonly workspaceId: string;
|
|
35
|
+
readonly invocationId: string;
|
|
36
|
+
readonly toolName: string;
|
|
37
|
+
readonly args: Readonly<Record<string, unknown>>;
|
|
38
|
+
readonly abortSignal?: AbortSignal;
|
|
39
|
+
}, operation: () => T | Promise<T>): Promise<T>;
|
|
40
|
+
run<T>(admission: WorkspaceMutationAdmissionV1, operation: () => T | Promise<T>): Promise<T>;
|
|
41
|
+
snapshot(workspaceId?: string): readonly WorkspaceMutationStateV1[];
|
|
42
|
+
close(reason?: string): void;
|
|
43
|
+
private startHead;
|
|
44
|
+
private finishHead;
|
|
45
|
+
private publishQueue;
|
|
46
|
+
private publish;
|
|
47
|
+
private find;
|
|
48
|
+
private assertOpen;
|
|
49
|
+
}
|
|
50
|
+
export declare class WorkspaceMutationArbiterError extends Error {
|
|
51
|
+
readonly code: 'workspace_mutation_cancelled' | 'workspace_mutation_conflict' | 'workspace_mutation_duplicate';
|
|
52
|
+
constructor(code: 'workspace_mutation_cancelled' | 'workspace_mutation_conflict' | 'workspace_mutation_duplicate', message: string);
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=workspace-mutation-arbiter.d.ts.map
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WorkspaceMutationArbiterError = exports.WorkspaceMutationArbiterV1 = void 0;
|
|
4
|
+
const crypto_1 = require("crypto");
|
|
5
|
+
const fs_1 = require("fs");
|
|
6
|
+
const path_1 = require("path");
|
|
7
|
+
/**
|
|
8
|
+
* FIFO admission for side-effecting tool execution in one Workspace.
|
|
9
|
+
*
|
|
10
|
+
* Callers capture a target-specific revision before joining the queue. The
|
|
11
|
+
* revision is checked again only after the entry reaches the head, ensuring a
|
|
12
|
+
* stale edit never executes after another Session changed its target. Queues
|
|
13
|
+
* for different Workspaces remain independent.
|
|
14
|
+
*/
|
|
15
|
+
class WorkspaceMutationArbiterV1 {
|
|
16
|
+
constructor(options = {}) {
|
|
17
|
+
this.options = options;
|
|
18
|
+
this.queues = new Map();
|
|
19
|
+
this.preparing = new Set();
|
|
20
|
+
this.closed = false;
|
|
21
|
+
}
|
|
22
|
+
async runWorkspaceMutation(input, operation) {
|
|
23
|
+
this.assertOpen();
|
|
24
|
+
const invocationId = input.invocationId.trim();
|
|
25
|
+
if (!invocationId || this.preparing.has(invocationId) || this.find(invocationId)) {
|
|
26
|
+
throw new WorkspaceMutationArbiterError('workspace_mutation_duplicate', 'Workspace mutation invocationId is already queued or running.');
|
|
27
|
+
}
|
|
28
|
+
this.preparing.add(invocationId);
|
|
29
|
+
try {
|
|
30
|
+
const baselineRevision = await mutationTargetRevision(input);
|
|
31
|
+
this.preparing.delete(invocationId);
|
|
32
|
+
return await this.run({
|
|
33
|
+
workspaceId: input.workspaceId,
|
|
34
|
+
invocationId,
|
|
35
|
+
baselineRevision,
|
|
36
|
+
readCurrentRevision: () => mutationTargetRevision(input),
|
|
37
|
+
abortSignal: input.abortSignal,
|
|
38
|
+
}, operation);
|
|
39
|
+
}
|
|
40
|
+
finally {
|
|
41
|
+
this.preparing.delete(invocationId);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
run(admission, operation) {
|
|
45
|
+
this.assertOpen();
|
|
46
|
+
const workspaceId = admission.workspaceId.trim();
|
|
47
|
+
const invocationId = admission.invocationId.trim();
|
|
48
|
+
if (!workspaceId || !invocationId || !admission.baselineRevision.trim()) {
|
|
49
|
+
throw new Error('Workspace mutation identity and baseline revision must not be empty.');
|
|
50
|
+
}
|
|
51
|
+
if (admission.abortSignal?.aborted) {
|
|
52
|
+
return Promise.reject(new WorkspaceMutationArbiterError('workspace_mutation_cancelled', 'Workspace mutation was cancelled before admission.'));
|
|
53
|
+
}
|
|
54
|
+
if (this.preparing.has(invocationId) || this.find(invocationId)) {
|
|
55
|
+
throw new WorkspaceMutationArbiterError('workspace_mutation_duplicate', 'Workspace mutation invocationId is already queued or running.');
|
|
56
|
+
}
|
|
57
|
+
let resolve;
|
|
58
|
+
let reject;
|
|
59
|
+
const result = new Promise((resolvePromise, rejectPromise) => {
|
|
60
|
+
resolve = resolvePromise;
|
|
61
|
+
reject = rejectPromise;
|
|
62
|
+
});
|
|
63
|
+
const entry = {
|
|
64
|
+
admission: Object.freeze({ ...admission, workspaceId, invocationId }),
|
|
65
|
+
operation,
|
|
66
|
+
resolve,
|
|
67
|
+
reject,
|
|
68
|
+
running: false,
|
|
69
|
+
};
|
|
70
|
+
const queue = this.queues.get(workspaceId) ?? [];
|
|
71
|
+
queue.push(entry);
|
|
72
|
+
this.queues.set(workspaceId, queue);
|
|
73
|
+
this.publishQueue(workspaceId);
|
|
74
|
+
if (queue.length === 1)
|
|
75
|
+
void this.startHead(workspaceId);
|
|
76
|
+
return result;
|
|
77
|
+
}
|
|
78
|
+
snapshot(workspaceId) {
|
|
79
|
+
const states = [];
|
|
80
|
+
for (const [candidate, queue] of this.queues) {
|
|
81
|
+
if (workspaceId && workspaceId !== candidate)
|
|
82
|
+
continue;
|
|
83
|
+
queue.forEach((entry, index) => states.push(Object.freeze({
|
|
84
|
+
workspaceId: candidate,
|
|
85
|
+
invocationId: entry.admission.invocationId,
|
|
86
|
+
phase: entry.running ? 'running' : 'queued',
|
|
87
|
+
...(entry.running ? {} : { queuePosition: waitingPosition(queue, index) }),
|
|
88
|
+
})));
|
|
89
|
+
}
|
|
90
|
+
return Object.freeze(states);
|
|
91
|
+
}
|
|
92
|
+
close(reason = 'Workspace mutation arbiter closed') {
|
|
93
|
+
if (this.closed)
|
|
94
|
+
return;
|
|
95
|
+
this.closed = true;
|
|
96
|
+
for (const [workspaceId, queue] of this.queues) {
|
|
97
|
+
for (const entry of queue) {
|
|
98
|
+
if (entry.running)
|
|
99
|
+
continue;
|
|
100
|
+
entry.reject(new WorkspaceMutationArbiterError('workspace_mutation_cancelled', reason));
|
|
101
|
+
this.publish(entry, 'cancelled');
|
|
102
|
+
}
|
|
103
|
+
this.queues.set(workspaceId, queue.filter(entry => entry.running));
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
async startHead(workspaceId) {
|
|
107
|
+
const queue = this.queues.get(workspaceId);
|
|
108
|
+
const entry = queue?.[0];
|
|
109
|
+
if (!queue || !entry || entry.running)
|
|
110
|
+
return;
|
|
111
|
+
if (this.closed || entry.admission.abortSignal?.aborted) {
|
|
112
|
+
this.finishHead(workspaceId, entry, new WorkspaceMutationArbiterError('workspace_mutation_cancelled', 'Workspace mutation was cancelled while queued.'));
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
entry.running = true;
|
|
116
|
+
this.publish(entry, 'running');
|
|
117
|
+
try {
|
|
118
|
+
const revision = await entry.admission.readCurrentRevision();
|
|
119
|
+
if (revision !== entry.admission.baselineRevision) {
|
|
120
|
+
throw new WorkspaceMutationArbiterError('workspace_mutation_conflict', 'The mutation target changed while this Session waited for Workspace admission.');
|
|
121
|
+
}
|
|
122
|
+
const result = await entry.operation();
|
|
123
|
+
entry.resolve(result);
|
|
124
|
+
this.publish(entry, 'completed');
|
|
125
|
+
this.finishHead(workspaceId, entry);
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
entry.reject(error);
|
|
129
|
+
this.publish(entry, error instanceof WorkspaceMutationArbiterError &&
|
|
130
|
+
error.code === 'workspace_mutation_cancelled'
|
|
131
|
+
? 'cancelled'
|
|
132
|
+
: 'failed');
|
|
133
|
+
this.finishHead(workspaceId, entry);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
finishHead(workspaceId, entry, earlyError) {
|
|
137
|
+
const queue = this.queues.get(workspaceId);
|
|
138
|
+
if (!queue || queue[0] !== entry)
|
|
139
|
+
return;
|
|
140
|
+
if (earlyError) {
|
|
141
|
+
entry.reject(earlyError);
|
|
142
|
+
this.publish(entry, earlyError instanceof WorkspaceMutationArbiterError &&
|
|
143
|
+
earlyError.code === 'workspace_mutation_cancelled'
|
|
144
|
+
? 'cancelled'
|
|
145
|
+
: 'failed');
|
|
146
|
+
}
|
|
147
|
+
queue.shift();
|
|
148
|
+
if (queue.length === 0)
|
|
149
|
+
this.queues.delete(workspaceId);
|
|
150
|
+
else {
|
|
151
|
+
this.publishQueue(workspaceId);
|
|
152
|
+
void this.startHead(workspaceId);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
publishQueue(workspaceId) {
|
|
156
|
+
const queue = this.queues.get(workspaceId) ?? [];
|
|
157
|
+
queue.forEach((entry, index) => {
|
|
158
|
+
if (!entry.running)
|
|
159
|
+
this.publish(entry, 'queued', waitingPosition(queue, index));
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
publish(entry, phase, queuePosition) {
|
|
163
|
+
this.options.onStateChanged?.(Object.freeze({
|
|
164
|
+
workspaceId: entry.admission.workspaceId,
|
|
165
|
+
invocationId: entry.admission.invocationId,
|
|
166
|
+
phase,
|
|
167
|
+
...(queuePosition === undefined ? {} : { queuePosition }),
|
|
168
|
+
}));
|
|
169
|
+
}
|
|
170
|
+
find(invocationId) {
|
|
171
|
+
for (const queue of this.queues.values()) {
|
|
172
|
+
const entry = queue.find(candidate => candidate.admission.invocationId === invocationId);
|
|
173
|
+
if (entry)
|
|
174
|
+
return entry;
|
|
175
|
+
}
|
|
176
|
+
return undefined;
|
|
177
|
+
}
|
|
178
|
+
assertOpen() {
|
|
179
|
+
if (this.closed) {
|
|
180
|
+
throw new WorkspaceMutationArbiterError('workspace_mutation_cancelled', 'Workspace mutation arbiter is closed.');
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
exports.WorkspaceMutationArbiterV1 = WorkspaceMutationArbiterV1;
|
|
185
|
+
function waitingPosition(queue, index) {
|
|
186
|
+
return index + (queue[0]?.running ? 0 : 1);
|
|
187
|
+
}
|
|
188
|
+
async function mutationTargetRevision(input) {
|
|
189
|
+
if ((input.toolName !== 'edit_file' && input.toolName !== 'write_file') ||
|
|
190
|
+
typeof input.args.path !== 'string' ||
|
|
191
|
+
!input.args.path.trim()) {
|
|
192
|
+
return 'serialized-workspace-mutation-v1';
|
|
193
|
+
}
|
|
194
|
+
const root = (0, path_1.resolve)(input.workspaceId);
|
|
195
|
+
const target = (0, path_1.resolve)(root, input.args.path);
|
|
196
|
+
const traversal = (0, path_1.relative)(root, target);
|
|
197
|
+
if (traversal === '..' || traversal.startsWith(`..${pathSeparator()}`)) {
|
|
198
|
+
return `outside-workspace:${digestText(target)}`;
|
|
199
|
+
}
|
|
200
|
+
for (let attempt = 0; attempt < 2; attempt += 1) {
|
|
201
|
+
try {
|
|
202
|
+
const before = fileIdentity(target);
|
|
203
|
+
if (before.kind !== 'file')
|
|
204
|
+
return digestText(JSON.stringify(before));
|
|
205
|
+
const digest = (0, crypto_1.createHash)('sha256');
|
|
206
|
+
for await (const chunk of (0, fs_1.createReadStream)(target))
|
|
207
|
+
digest.update(chunk);
|
|
208
|
+
const after = fileIdentity(target);
|
|
209
|
+
if (JSON.stringify(before) === JSON.stringify(after)) {
|
|
210
|
+
return digestText(JSON.stringify({ identity: after, content: digest.digest('hex') }));
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
catch (error) {
|
|
214
|
+
const code = errorCode(error);
|
|
215
|
+
if (code === 'ENOENT')
|
|
216
|
+
return digestText('missing');
|
|
217
|
+
return digestText(`unreadable:${code}`);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
return digestText(`unstable:${Date.now()}`);
|
|
221
|
+
}
|
|
222
|
+
function fileIdentity(target) {
|
|
223
|
+
try {
|
|
224
|
+
const stat = (0, fs_1.lstatSync)(target, { bigint: true });
|
|
225
|
+
if (stat.isSymbolicLink()) {
|
|
226
|
+
return Object.freeze({
|
|
227
|
+
kind: 'symlink',
|
|
228
|
+
target: (0, fs_1.readlinkSync)(target),
|
|
229
|
+
mtimeNs: stat.mtimeNs.toString(),
|
|
230
|
+
ctimeNs: stat.ctimeNs.toString(),
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
return Object.freeze({
|
|
234
|
+
kind: stat.isFile() ? 'file' : stat.isDirectory() ? 'directory' : 'other',
|
|
235
|
+
dev: stat.dev.toString(),
|
|
236
|
+
ino: stat.ino.toString(),
|
|
237
|
+
size: stat.size.toString(),
|
|
238
|
+
mtimeNs: stat.mtimeNs.toString(),
|
|
239
|
+
ctimeNs: stat.ctimeNs.toString(),
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
catch (error) {
|
|
243
|
+
if (errorCode(error) === 'ENOENT')
|
|
244
|
+
return Object.freeze({ kind: 'missing' });
|
|
245
|
+
return Object.freeze({ kind: 'unreadable', code: errorCode(error) });
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
function digestText(value) {
|
|
249
|
+
return (0, crypto_1.createHash)('sha256').update(value).digest('hex');
|
|
250
|
+
}
|
|
251
|
+
function errorCode(error) {
|
|
252
|
+
return typeof error === 'object' && error !== null && 'code' in error
|
|
253
|
+
? String(error.code)
|
|
254
|
+
: 'UNKNOWN';
|
|
255
|
+
}
|
|
256
|
+
function pathSeparator() {
|
|
257
|
+
return process.platform === 'win32' ? '\\' : '/';
|
|
258
|
+
}
|
|
259
|
+
class WorkspaceMutationArbiterError extends Error {
|
|
260
|
+
constructor(code, message) {
|
|
261
|
+
super(message);
|
|
262
|
+
this.code = code;
|
|
263
|
+
this.name = 'WorkspaceMutationArbiterError';
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
exports.WorkspaceMutationArbiterError = WorkspaceMutationArbiterError;
|
|
267
|
+
//# sourceMappingURL=workspace-mutation-arbiter.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as u,j as s,I as N}from"./index-
|
|
1
|
+
import{r as u,j as s,I as N}from"./index-C6TDJwMC.js";function v(t){const n=[];let i;for(const r of t)r.startsWith("@@")?(i&&n.push(i),i={title:r,lines:[r]}):i&&i.lines.push(r);return i&&n.push(i),n}function D(t,n){const i={schemaVersion:1,type:"review_context",repositoryRevision:t.repositoryRevision,path:t.path,hunk:n.title},r=n.lines.join(`
|
|
2
2
|
`).slice(0,12e3);return[`请审阅 ${t.path} 的这个 diff hunk,并指出正确性、安全性和测试风险:`,"","```review_context",JSON.stringify(i,null,2),"```","","```diff",r,"```"].join(`
|
|
3
3
|
`)}function H({page:t,loading:n=!1,onLoadMore:i,onSendToComposer:r}){const a=u.useMemo(()=>v(t.lines),[t.lines]),[m,h]=u.useState(0),[f,p]=u.useState(!1),[x,k]=u.useState(!1),[b,y]=u.useState(""),d=Math.min(m,Math.max(0,a.length-1)),c=a[d];u.useEffect(()=>{h(0),p(!1),y("")},[t.fileId,t.repositoryRevision]);const j=(e,l)=>{let o=l;if(e.key==="ArrowRight"||e.key==="ArrowDown")o=(l+1)%a.length;else if(e.key==="ArrowLeft"||e.key==="ArrowUp")o=(l-1+a.length)%a.length;else if(e.key==="Home")o=0;else if(e.key==="End")o=a.length-1;else return;e.preventDefault(),h(o);const w=e.currentTarget.parentElement;window.requestAnimationFrame(()=>w?.querySelector(`[data-hunk-index="${o}"]`)?.focus())};return t.binary?s.jsxs("div",{className:"resource-empty compact",children:[s.jsx(N,{name:"code"}),s.jsx("strong",{children:"二进制差异"}),s.jsx("p",{children:"只展示变更事实,不返回 binary patch。"})]}):s.jsxs("div",{className:"diff-viewer",children:[s.jsxs("header",{children:[s.jsx("strong",{title:t.path,children:t.path}),s.jsx("span",{children:t.truncated?"受限预览":`${t.lines.length} 行`})]}),a.length>1?s.jsx("div",{className:"diff-hunk-nav",role:"tablist","aria-label":"Diff hunks",children:a.map((e,l)=>s.jsx("button",{type:"button",role:"tab","data-hunk-index":l,"aria-selected":d===l,tabIndex:d===l?0:-1,onClick:()=>h(l),onKeyDown:o=>j(o,l),children:e.title||`Hunk ${l+1}`},`${e.title}-${l}`))}):null,s.jsxs("div",{className:"diff-actions","aria-label":"Diff 显示选项",children:[c?s.jsx("button",{type:"button",className:"text-button","aria-expanded":!f,onClick:()=>p(e=>!e),children:f?"展开 Hunk":"折叠 Hunk"}):null,s.jsx("button",{type:"button",className:"text-button","aria-pressed":x,onClick:()=>k(e=>!e),children:"显示空白字符"}),c?s.jsx("button",{type:"button",className:"text-button",onClick:()=>{$(c.lines.join(`
|
|
4
4
|
`),y)},children:"复制 Hunk"}):null]}),f?null:s.jsx("pre",{className:"diff-lines",tabIndex:0,"aria-label":`Diff ${t.path}`,children:(c?.lines??t.lines).map((e,l)=>s.jsxs("span",{className:e.startsWith("+")?"addition":e.startsWith("-")?"deletion":"",children:[S(e,x)||" ",`
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as c,j as e,I as C,s as I,W as ee}from"./index-C6TDJwMC.js";function ae({workspaceId:s,refreshEpoch:l,actions:i}){const[r,a]=c.useState({}),[m,j]=c.useState(new Set(["workspace-root"])),[o,f]=c.useState(null),[h,d]=c.useState(""),[N,$]=c.useState(null),[J,E]=c.useState(!1),[T,R]=c.useState(""),[B,g]=c.useState(""),[D,U]=c.useState(""),[M,X]=c.useState(!1),[K,Y]=c.useState("1"),[O,L]=c.useState({}),[P,F]=c.useState(""),W=c.useRef(null),x=c.useRef(0),k=c.useRef(0),w=async(t,n=!1,y=x.current)=>{if(y!==x.current)return;const p=r[t],v=n?p?.nextCursor:void 0;if(!(n&&!v)){a(u=>({...u,[t]:{items:p?.items??[],nextCursor:p?.nextCursor??null,revision:p?.revision??"",loading:!0}}));try{const u=await i.listFiles(t,v??void 0);if(y!==x.current)return;a(b=>({...b,[t]:{items:n?se(b[t]?.items??[],u.items):u.items,nextCursor:u.nextCursor,revision:u.revision,loading:!1}}))}catch(u){if(y!==x.current)return;if(n&&V(u)){g("目录已变化,已重新载入第一页。"),w(t,!1,y);return}a(b=>({...b,[t]:{items:b[t]?.items??[],nextCursor:b[t]?.nextCursor??null,revision:b[t]?.revision??"",loading:!1,error:G(u)}}))}}},_=async(t=x.current)=>{try{const n=await i.gitStatus();if(t!==x.current)return;L(re(n)),F(n.nextCursor?"Git 装饰仅显示首批 200 个变更;在 Git 面板继续分页查看。":"")}catch(n){if(t!==x.current)return;L({}),F(`Git 状态装饰不可用:${G(n)}`)}};c.useEffect(()=>{const t=x.current+1;x.current=t,k.current+=1,a({}),j(new Set(["workspace-root"])),f(null),d(""),$(null),E(!1),R(""),g(""),L({}),F(""),s&&(w("workspace-root",!1,t),_(t))},[l,s]);const S=async(t,n=!1,y=!1,p=x.current,v=k.current+1)=>{if(p===x.current&&!(!t.readable||t.sensitive||z(t))){k.current=v,f(t),R(""),n||(d(""),$(null),E(!1)),y||g("");try{const u=await i.readFileContent(t.id,n?N??void 0:void 0);if(p!==x.current||v!==k.current)return;E(u.binary),d(b=>n?`${b}${u.content??""}`:u.content??""),$(u.nextCursor),y&&g("文件已变化,已从第一页重新载入。")}catch(u){if(p!==x.current||v!==k.current)return;if(n&&V(u)){await S(t,!1,!0,p,v);return}R(G(u))}}},A=t=>{const n=new Set(m);n.has(t)?n.delete(t):(n.add(t),r[t]||w(t)),j(n)},Z=c.useMemo(()=>Object.values(r).flatMap(t=>t.items),[r]),Q=D.trim()?Z.filter(t=>t.name.toLocaleLowerCase().includes(D.toLocaleLowerCase())):null;return e.jsxs("div",{className:"work-resource-panel files-panel",children:[e.jsxs("div",{className:"resource-toolbar",children:[e.jsxs("label",{className:"resource-search",children:[e.jsx("span",{className:"sr-only",children:"搜索已加载文件"}),e.jsx(C,{name:"search",size:14}),e.jsx("input",{type:"search",value:D,onChange:t=>U(t.target.value),placeholder:"搜索已加载文件"})]}),e.jsx("button",{type:"button",className:"icon-button","aria-label":"刷新文件树",onClick:()=>{w("workspace-root"),_()},children:e.jsx(C,{name:"refresh",size:15})})]}),e.jsxs("div",{className:"files-layout",children:[e.jsxs("section",{className:"file-tree","aria-label":"工作区文件",children:[P?e.jsx("p",{className:"resource-hint",role:"status",children:P}):null,Q?e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"resource-hint",children:"搜索仅覆盖已加载的目录和文件。"}),e.jsx("ul",{role:"list",className:"file-node-list search-results",children:Q.map(t=>e.jsx(H,{node:t,depth:0,expanded:!1,selected:o?.id===t.id,gitLabels:O[t.displayPath]??[],onToggle:A,onSelect:n=>{S(n)}},t.id))})]}):e.jsx(q,{parentId:"workspace-root",depth:0,directories:r,expanded:m,selectedId:o?.id,gitDecorations:O,onToggle:A,onSelect:t=>{S(t)},onLoadMore:t=>{w(t,!0)}})]}),e.jsxs("section",{className:"file-preview","aria-label":"文件预览",children:[B?e.jsx("p",{className:"resource-notice",role:"status",children:B}):null,o?e.jsxs(e.Fragment,{children:[e.jsxs("header",{children:[e.jsx("strong",{children:o.name}),e.jsx("span",{children:ne(o.sizeBytes??0)})]}),T?e.jsx("p",{className:"resource-error",role:"alert",children:T}):J?e.jsxs("div",{className:"resource-empty",children:[e.jsx(C,{name:"code"}),e.jsx("strong",{children:"二进制文件"}),e.jsx("p",{children:"出于安全和性能考虑,只显示元数据。"})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"file-preview-actions",children:[e.jsxs("label",{children:[e.jsx("span",{className:"sr-only",children:"跳到行"}),e.jsx("input",{type:"number",min:"1",value:K,"aria-label":"跳到行",onChange:t=>Y(t.target.value)})]}),e.jsx("button",{type:"button",className:"text-button",onClick:()=>ie(W.current,K),children:"跳转"}),e.jsx("button",{type:"button",className:"text-button",onClick:()=>{le(h,g)},children:"复制"}),e.jsx("button",{type:"button",className:"text-button","aria-pressed":M,onClick:()=>X(t=>!t),children:"自动换行"})]}),e.jsx("pre",{ref:W,tabIndex:0,className:`file-code-view ${M?"wrap":""}`,"aria-label":`文件内容 ${o.name}`,children:I(h).split(`
|
|
2
|
+
`).map((t,n)=>e.jsxs("span",{className:"file-code-line","data-line":n+1,children:[e.jsx("span",{className:"file-line-number","aria-hidden":"true",children:n+1}),e.jsx("span",{className:"file-line-content",children:t||" "})]},n))})]}),N?e.jsx("button",{type:"button",className:"secondary-button",onClick:()=>{S(o,!0)},children:"加载更多内容"}):null]}):e.jsxs("div",{className:"resource-empty",children:[e.jsx(C,{name:"workspace"}),e.jsx("strong",{children:"选择文件预览"}),e.jsx("p",{children:"敏感文件、工作区外链接和二进制正文不会返回浏览器。"})]})]})]})]})}function q({parentId:s,depth:l,directories:i,expanded:r,selectedId:a,gitDecorations:m,onToggle:j,onSelect:o,onLoadMore:f}){const h=i[s];return h?h.error?e.jsx("p",{className:"resource-error",role:"alert",children:h.error}):e.jsxs("ul",{role:"list",className:"file-node-list",children:[h.items.map(d=>{const N=r.has(d.id);return e.jsxs("li",{children:[e.jsx(H,{node:d,depth:l,expanded:N,selected:a===d.id,gitLabels:m[d.displayPath]??[],onToggle:j,onSelect:o}),z(d)&&N?e.jsx(q,{parentId:d.id,depth:l+1,directories:i,expanded:r,selectedId:a,gitDecorations:m,onToggle:j,onSelect:o,onLoadMore:f}):null]},d.id)}),h.loading?e.jsx("li",{className:"resource-loading",children:"正在读取…"}):null,h.nextCursor?e.jsx("li",{children:e.jsx("button",{type:"button",className:"text-button",onClick:()=>f(s),children:"加载更多"})}):null]}):e.jsx("p",{className:"resource-loading",children:"正在读取…"})}function H({node:s,depth:l,expanded:i,selected:r,gitLabels:a,onToggle:m,onSelect:j}){const o=s.sensitive||!s.readable,f=z(s);return e.jsxs("button",{type:"button",className:`file-node ${r?"selected":""} ${o?"blocked":""}`,style:{paddingInlineStart:`${8+l*15}px`},"aria-expanded":f?i:void 0,"aria-label":`${te(s)} ${s.name}${o?",不可读取":""}${a.length?`,Git ${a.join("、")}`:""}`,onClick:()=>f?m(s.id):j(s),disabled:o,children:[e.jsx(C,{name:f?"workspace":"code",size:14}),e.jsx("span",{children:s.name}),s.kind==="symlink"?e.jsx("small",{children:"链接"}):null,s.sensitive?e.jsx("small",{children:"敏感"}):null,a.length?e.jsx("small",{className:"file-git-status",title:`Git ${a.join("、")}`,children:a.join(" · ")}):null]})}function te(s){return s.kind==="directory"?"目录":s.kind==="symlink"?s.targetKind==="directory"?"符号链接目录":"符号链接":"文件"}function z(s){return s.kind==="directory"||s.kind==="symlink"&&s.targetKind==="directory"}function se(s,l){const i=new Map(s.map(r=>[r.id,r]));for(const r of l)i.set(r.id,r);return[...i.values()]}function re(s){if(!s.isRepository)return{};const l=new Map,i=(r,a)=>{const m=r.replace(/\\/gu,"/").replace(/^\.\//u,"");if(!m)return;const j=l.get(m)??new Set;j.add(a),l.set(m,j);const o=m.split("/");for(let f=1;f<o.length;f+=1){const h=o.slice(0,f).join("/"),d=l.get(h)??new Set;d.add("含变更"),l.set(h,d)}};return s.conflicted.forEach(r=>i(r.path,"冲突")),s.staged.forEach(r=>i(r.path,"已暂存")),s.unstaged.forEach(r=>i(r.path,"未暂存")),s.untracked.forEach(r=>i(r.path,"未跟踪")),Object.fromEntries([...l].map(([r,a])=>[r,Object.freeze([...a])]))}function ne(s){return s<1024?`${s} B`:s<1048576?`${(s/1024).toFixed(1)} KB`:`${(s/1048576).toFixed(1)} MB`}function V(s){return s instanceof ee&&s.code==="file_revision_conflict"}function ie(s,l){const i=Number(l);!s||!Number.isSafeInteger(i)||i<1||(s.querySelector(`[data-line="${i}"]`)?.scrollIntoView({block:"center"}),s.focus())}async function le(s,l){try{await navigator.clipboard.writeText(s),l("已复制当前加载的文件内容。")}catch{l("浏览器未允许复制,请手动选择文本。")}}function G(s){return s instanceof Error?s.message:"文件请求失败。"}export{ae as FilesPanel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as d,j as e,I as g,W as _}from"./index-
|
|
1
|
+
import{r as d,j as e,I as g,W as _}from"./index-C6TDJwMC.js";import{D as W}from"./DiffViewer-D6mG729y.js";function K({workspaceId:c,refreshEpoch:m,actions:u,onSendToComposer:o}){const[a,I]=d.useState(null),[j,k]=d.useState(null),[G,y]=d.useState(null),[v,N]=d.useState(null),[R,h]=d.useState(!1),[w,f]=d.useState(""),[E,p]=d.useState(""),n=d.useRef(0),x=d.useRef(0),b=async(t=n.current)=>{if(t===n.current){h(!0),f("");try{const[s,l]=await Promise.all([u.gitStatus(),u.gitLog()]);if(t!==n.current)return;I(s),k(l),y(null),N(null)}catch(s){if(t!==n.current)return;f(S(s))}finally{t===n.current&&h(!1)}}},$=()=>{const t=n.current+1;n.current=t,x.current+=1,p(""),b(t)};d.useEffect(()=>{const t=n.current+1;n.current=t,x.current+=1,I(null),k(null),y(null),N(null),f(""),p(""),c&&b(t)},[m,c]);const M=async(t,s,l=n.current,r=x.current+1)=>{if(l===n.current){x.current=r,s||(y(t),N(null)),h(!0),f("");try{const i=await u.gitDiff(t.fileId,s);if(l!==n.current||r!==x.current||i.fileId!==t.fileId)return;y(t),N(D=>s&&D&&D.fileId===i.fileId?{...i,lines:[...D.lines,...i.lines]}:i)}catch(i){if(l!==n.current||r!==x.current)return;if(L(i)){p("仓库已变化,已重新载入 Git 状态。"),await b(l);return}f(S(i))}finally{l===n.current&&r===x.current&&h(!1)}}},z=async()=>{const t=a?.nextCursor;if(!t||!a)return;const s=n.current,l=a.repositoryRevision;h(!0),f("");try{const r=await u.gitStatus(t);if(s!==n.current)return;if(r.repositoryRevision!==l)throw A();I(i=>!i||i.repositoryRevision!==l?i:{...r,conflicted:C(i.conflicted,r.conflicted),staged:C(i.staged,r.staged),unstaged:C(i.unstaged,r.unstaged),untracked:C(i.untracked,r.untracked)})}catch(r){if(s!==n.current)return;if(L(r)){p("仓库已变化,已重新载入 Git 状态。"),await b(s);return}f(S(r))}finally{s===n.current&&h(!1)}},F=async()=>{const t=j?.nextCursor;if(!t||!j)return;const s=n.current,l=j.repositoryRevision;h(!0),f("");try{const r=await u.gitLog(t);if(s!==n.current)return;if(r.repositoryRevision!==l)throw A();k(i=>!i||i.repositoryRevision!==l?i:{...r,items:V(i.items,r.items)})}catch(r){if(s!==n.current)return;if(L(r)){p("提交历史已变化,已重新载入第一页。"),await b(s);return}f(S(r))}finally{s===n.current&&h(!1)}};if(w&&!a)return e.jsx(H,{message:w,onRetry:$});if(!a)return e.jsx("p",{className:"resource-loading",children:"正在读取 Git 状态…"});if(!a.isRepository)return e.jsxs("div",{className:"resource-empty",children:[e.jsx(g,{name:"branch"}),e.jsx("strong",{children:"当前项目不是 Git 仓库"}),e.jsx("p",{children:"文件和 Agent 仍可使用;Git 面板保持只读空状态。"})]});const P=[{label:"冲突",tone:"conflict",items:a.conflicted},{label:"已暂存",tone:"staged",items:a.staged},{label:"未暂存",tone:"unstaged",items:a.unstaged},{label:"未跟踪",tone:"untracked",items:a.untracked}];return e.jsxs("div",{className:"work-resource-panel git-panel",children:[e.jsxs("div",{className:"git-summary",children:[e.jsxs("div",{children:[e.jsx(g,{name:"branch",size:15}),e.jsx("strong",{children:a.detached?`detached ${a.head??""}`:a.branch||"HEAD"})]}),e.jsxs("span",{children:[a.upstream||"无 upstream",a.ahead||a.behind?` · ↑${a.ahead} ↓${a.behind}`:""]}),e.jsx("button",{type:"button",className:"icon-button","aria-label":"刷新 Git 状态",onClick:$,disabled:R,children:e.jsx(g,{name:"refresh",size:15})})]}),E?e.jsx("p",{className:"resource-notice",role:"status",children:E}):null,w?e.jsx("p",{className:"resource-error",role:"alert",children:w}):null,e.jsxs("div",{className:"git-layout",children:[e.jsxs("section",{className:"git-changes","aria-label":"Git 变更",children:[a.clean?e.jsxs("div",{className:"resource-empty compact",children:[e.jsx(g,{name:"check"}),e.jsx("strong",{children:"工作区干净"})]}):P.map(t=>t.items.length?e.jsxs("div",{className:"git-group",children:[e.jsxs("h3",{children:[t.label," ",e.jsx("span",{children:t.items.length})]}),t.items.map(s=>e.jsxs("button",{type:"button",className:G?.fileId===s.fileId?"selected":"",onClick:()=>{M(s)},children:[e.jsx("span",{className:`git-status-code ${t.tone}`,children:s.indexStatus.trim()||s.worktreeStatus.trim()||"?"}),e.jsx("span",{title:s.path,children:s.path})]},`${t.label}:${s.fileId}`))]},t.label):null),a.nextCursor?e.jsx("button",{type:"button",className:"text-button resource-load-more",onClick:()=>{z()},disabled:R,children:"加载更多变更"}):null,e.jsxs("div",{className:"git-history",children:[e.jsx("h3",{children:"提交历史"}),j?.items.map(t=>e.jsxs("article",{children:[e.jsx("code",{children:t.shortId}),e.jsx("strong",{children:t.subject}),e.jsxs("span",{children:[t.authorName," · ",new Date(t.authoredAt).toLocaleDateString("zh-CN")]})]},t.id)),j?.nextCursor?e.jsx("button",{type:"button",className:"text-button resource-load-more",onClick:()=>{F()},disabled:R,children:"加载更多提交"}):null]})]}),e.jsx("section",{className:"git-diff","aria-label":"Git Diff",children:v?e.jsx(W,{page:v,loading:R,onLoadMore:v.nextCursor&&G?()=>{M(G,v.nextCursor??void 0)}:void 0,onSendToComposer:o}):e.jsxs("div",{className:"resource-empty",children:[e.jsx(g,{name:"code"}),e.jsx("strong",{children:"选择变更查看 Diff"}),e.jsx("p",{children:"Diff 来自受限 Git read model,不解析对话或工具输出。"})]})})]})]})}function H({message:c,onRetry:m}){return e.jsxs("div",{className:"resource-empty",role:"alert",children:[e.jsx(g,{name:"warning"}),e.jsx("strong",{children:"Git 状态读取失败"}),e.jsx("p",{children:c}),e.jsx("button",{type:"button",className:"secondary-button",onClick:m,children:"重试"})]})}function S(c){return c instanceof Error?c.message:"Git 请求失败。"}function L(c){return c instanceof _&&c.code==="git_revision_conflict"}function A(){return new _("仓库版本已变化。",409,"git_revision_conflict")}function C(c,m){const u=new Map(c.map(o=>[o.fileId,o]));for(const o of m)u.set(o.fileId,o);return[...u.values()]}function V(c,m){const u=new Map(c.map(o=>[o.id,o]));for(const o of m)u.set(o.id,o);return[...u.values()]}export{K as GitPanel};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r,j as e,I as o,W as E}from"./index-C6TDJwMC.js";import{D as F}from"./DiffViewer-D6mG729y.js";function L({workspaceId:c,refreshEpoch:$,actions:w,onSendToComposer:D}){const[t,b]=r.useState(null),[v,f]=r.useState(null),[h,x]=r.useState(null),[C,j]=r.useState(!1),[m,u]=r.useState(""),[I,g]=r.useState(""),n=r.useRef(0),i=r.useRef(0),N=async(s=n.current)=>{if(s===n.current){j(!0),u("");try{const l=await w.review();if(s!==n.current)return;b(l),f(null),x(null)}catch(l){if(s!==n.current)return;u(k(l))}finally{s===n.current&&j(!1)}}},S=()=>{const s=n.current+1;n.current=s,i.current+=1,g(""),N(s)};r.useEffect(()=>{const s=n.current+1;n.current=s,i.current+=1,b(null),f(null),x(null),u(""),g(""),c&&N(s)},[$,c]);const R=async(s,l,d=n.current,p=i.current+1)=>{if(d===n.current){i.current=p,l||(f(s),x(null)),j(!0),u("");try{const a=await w.gitDiff(s.fileId,l);if(d!==n.current||p!==i.current||a.fileId!==s.fileId)return;f(s),x(y=>l&&y&&y.fileId===a.fileId?{...a,lines:[...y.lines,...a.lines]}:a)}catch(a){if(d!==n.current||p!==i.current)return;if(z(a)){g("仓库已变化,已重新建立审阅快照。"),await N(d);return}u(k(a))}finally{d===n.current&&p===i.current&&j(!1)}}};return!t&&!m?e.jsx("p",{className:"resource-loading",children:"正在建立审阅快照…"}):t?e.jsxs("div",{className:"work-resource-panel review-panel",children:[e.jsxs("div",{className:"review-summary",children:[e.jsxs("div",{children:[e.jsx("span",{className:`review-score ${t.clean?"clean":"changed"}`,children:t.clean?e.jsx(o,{name:"check"}):e.jsx(o,{name:"edit"})}),e.jsxs("div",{children:[e.jsx("strong",{children:t.clean?"没有待审阅变更":`${t.totalChangedFiles} 个变更文件`}),e.jsxs("span",{children:[t.truncated?"当前显示 · ":"",t.stagedCount," staged · ",t.unstagedCount," unstaged ·"," ",t.untrackedCount," untracked · ",t.conflictCount," conflict"]})]})]}),e.jsx("button",{type:"button",className:"icon-button","aria-label":"刷新审阅快照",disabled:C,onClick:S,children:e.jsx(o,{name:"refresh",size:15})})]}),t.truncated?e.jsxs("p",{className:"resource-notice",role:"status",children:["当前显示 ",t.changedFiles.length," / ",t.totalChangedFiles," ","个变更文件;分类计数仅覆盖当前显示范围。"]}):null,I?e.jsx("p",{className:"resource-notice",role:"status",children:I}):null,m?e.jsx("p",{className:"resource-error",role:"alert",children:m}):null,e.jsxs("div",{className:"review-layout",children:[e.jsxs("section",{className:"review-files","aria-label":"待审阅文件",children:[t.changedFiles.map(s=>e.jsxs("button",{type:"button",className:v?.fileId===s.fileId?"selected":"",onClick:()=>{R(s)},children:[e.jsx(o,{name:"code",size:14}),e.jsx("span",{title:s.path,children:s.path}),e.jsx("small",{children:`${s.indexStatus}${s.worktreeStatus}`.trim()||"?"})]},s.fileId)),e.jsxs("div",{className:"review-verification",children:[e.jsx("h3",{children:"验证证据"}),t.verification.length?t.verification.map(s=>e.jsxs("article",{children:[e.jsx("span",{className:`state-dot state-${s.state}`,"aria-hidden":"true"}),e.jsxs("div",{children:[e.jsx("strong",{children:s.toolName}),e.jsxs("small",{children:[s.state," · ",s.outputBytes," B",s.hasArtifact?" · artifact":""]})]})]},`${s.callId}:${s.toolName}`)):e.jsx("p",{className:"muted-copy",children:"当前没有持久化验证结果。"})]})]}),e.jsx("section",{className:"review-diff","aria-label":"审阅 Diff",children:h?e.jsx(F,{page:h,loading:C,onLoadMore:h.nextCursor&&v?()=>{R(v,h.nextCursor??void 0)}:void 0,onSendToComposer:D}):e.jsxs("div",{className:"resource-empty",children:[e.jsx(o,{name:"edit"}),e.jsx("strong",{children:"选择文件开始审阅"}),e.jsx("p",{children:"你可以把某个 Hunk 作为草稿送回对话,提交前仍由你确认。"})]})})]})]}):e.jsxs("div",{className:"resource-empty",role:"alert",children:[e.jsx(o,{name:"warning"}),e.jsx("strong",{children:"无法读取审阅快照"}),e.jsx("p",{children:m}),e.jsx("button",{type:"button",className:"secondary-button",onClick:S,children:"重试"})]})}function k(c){return c instanceof Error?c.message:"审阅请求失败。"}function z(c){return c instanceof E&&c.code==="git_revision_conflict"}export{L as ReviewPanel};
|