@orion-agents/orion-code 0.3.2 → 0.3.7
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 +207 -0
- package/README.md +102 -18
- package/README.zh-CN.md +40 -16
- package/dist/commands/context-tool-command-handlers.js +1 -5
- package/dist/commands/registry.js +1 -4
- package/dist/harness/intent.js +69 -16
- package/dist/harness/turn-summary.js +3 -1
- package/dist/memory/embeddings.js +2 -3
- package/dist/memory/prompts.js +1 -1
- package/dist/memory/relevant-finder.js +125 -15
- package/dist/memory/vector-store.js +13 -8
- package/dist/migration/migrate.js +8 -12
- 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/composer/history.js +1 -3
- package/dist/runtime/composer/layout.js +7 -4
- package/dist/runtime/durable-tool-receipt-reader.js +1 -1
- package/dist/runtime/legacy-thread-materializer.d.ts +3 -1
- package/dist/runtime/legacy-thread-materializer.js +17 -5
- 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 +18 -0
- package/dist/runtime/product-bootstrap.js +402 -335
- 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/rich-text/ansi-parser.js +12 -2
- package/dist/runtime/rich-text/layout.js +15 -19
- 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/subagents/budget.js +4 -1
- package/dist/runtime/subagents/policy.js +11 -4
- package/dist/runtime/subagents/provider-gate.js +6 -4
- package/dist/runtime/subagents/research-quality.js +3 -1
- package/dist/runtime/subagents/research-renderer.js +9 -2
- package/dist/runtime/subagents/result-parser.js +18 -7
- package/dist/runtime/thread-event-store.d.ts +14 -3
- package/dist/runtime/thread-event-store.js +77 -20
- package/dist/runtime/thread-projection.d.ts +36 -0
- package/dist/runtime/thread-projection.js +54 -1
- 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/tool-output-presentation.js +7 -7
- package/dist/runtime/turn-commit.js +1 -1
- package/dist/runtime/turn-controller.js +1 -2
- 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/auth/auth.js +1 -4
- package/dist/services/auth/aws.js +24 -14
- package/dist/services/auto-fix/autoFixRunner.js +1 -1
- package/dist/services/auto-fix/index.d.ts +1 -1
- package/dist/services/diagnostic-tracking/diagnosticTracking.js +4 -2
- package/dist/services/diagnostic-tracking/index.d.ts +1 -1
- package/dist/services/effort.js +1 -9
- package/dist/services/file-glob.js +3 -4
- package/dist/services/global-config.d.ts +2 -0
- package/dist/services/global-config.js +7 -1
- package/dist/services/mcp/transports.js +4 -4
- package/dist/services/model-catalog.js +179 -30
- package/dist/services/model-context.js +1 -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/provider-resilience/stream-recovery.js +1 -3
- package/dist/services/redaction.js +19 -2
- package/dist/services/session-storage.d.ts +28 -3
- package/dist/services/session-storage.js +70 -6
- 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/services/smart-routing.js +19 -11
- package/dist/services/verification-profile.js +17 -22
- package/dist/services/web-search-provider.js +21 -9
- package/dist/services/workspace-diff.js +10 -4
- package/dist/skills/builtin/code-review/SKILL.md +1 -1
- package/dist/skills/builtin/security-check/SKILL.md +1 -1
- package/dist/skills/builtin/test-gen/SKILL.md +1 -1
- package/dist/terminal-ui/editor.js +6 -2
- package/dist/terminal-ui/output-queue.js +9 -3
- package/dist/tools/lsp.js +12 -6
- package/dist/tui-core/frame.js +9 -7
- package/dist/tui-ui/transcript-cache.js +6 -6
- package/dist/tui-ui/transcript-inspector-layout.js +13 -6
- package/dist/tui-ui/transcript-inspector-surface.js +4 -1
- package/dist/tui-ui/transcript-inspector.js +3 -8
- package/dist/ui/box.js +14 -7
- package/dist/ui/markdown.js +4 -2
- package/dist/ui/shared/input-frame.js +12 -8
- package/dist/ui/stream-markdown.js +1 -1
- package/dist/ui/tool-preview.js +11 -3
- package/dist/ui/user-input.js +16 -10
- 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 +53 -3
- package/dist/web/protocol.js +39 -2
- package/dist/web/review-service.d.ts +1 -0
- package/dist/web/review-service.js +1 -0
- package/dist/web/server.js +99 -6
- package/dist/web/session-runtime-registry.d.ts +138 -0
- package/dist/web/session-runtime-registry.js +471 -0
- package/dist/web/terminal-manager.js +23 -4
- package/dist/web/terminal-server.js +35 -6
- package/dist/web/workbench-controller.d.ts +82 -3
- package/dist/web/workbench-controller.js +771 -138
- 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-DqbZ02RN.js} +1 -1
- package/dist/web-client/assets/FilesPanel-Bu1Ab2kJ.js +2 -0
- package/dist/web-client/assets/{GitPanel-CnU4XVr7.js → GitPanel-BixIWb4k.js} +1 -1
- package/dist/web-client/assets/ReviewPanel-DsqJpku_.js +1 -0
- package/dist/web-client/assets/{TerminalPanel-Q5mSSsoK.js → TerminalPanel-DdjQP2mp.js} +14 -14
- package/dist/web-client/assets/index-30GT9Vnx.js +17 -0
- package/dist/web-client/assets/index-DQfpqPTD.css +1 -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 +379 -143
- package/package.json +12 -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
package/CHANGELOG.md
CHANGED
|
@@ -22,6 +22,213 @@ which is **not** a pass.
|
|
|
22
22
|
|
|
23
23
|
## [Unreleased]
|
|
24
24
|
|
|
25
|
+
## [0.3.7] — CANDIDATE
|
|
26
|
+
|
|
27
|
+
> **Status: candidate.** This work is isolated on the codex/v0.3.7 worktree (left project
|
|
28
|
+
> rail interaction quality). It is not merged, tagged or published to npm.
|
|
29
|
+
|
|
30
|
+
### Added
|
|
31
|
+
|
|
32
|
+
- Session **tags**: up to 8 user-assigned tags per Session (each ≤ 32 chars), persisted on
|
|
33
|
+
the Session record (`SessionMeta.tags`), projected into `WebSessionSummaryV1.tags`,
|
|
34
|
+
managed from a new "管理标签…" dialog (chip add via Enter/comma, per-chip remove) and
|
|
35
|
+
rendered as small badges on rail rows. Host endpoint `POST /sessions/:id/tags`.
|
|
36
|
+
- Session **archive / restore**: soft delete via `SessionMeta.archivedAt` that keeps every
|
|
37
|
+
file, hides the Session from default listings and counts, and surfaces it under a new
|
|
38
|
+
"已归档" rail section with a 还原 action (`POST /sessions/:id/archive|restore`;
|
|
39
|
+
`GET /workspaces/:id/sessions/archived`).
|
|
40
|
+
- Session **delete** from the web workbench: destructive confirmation dialog (explicit
|
|
41
|
+
"永久删除" guard, 不可恢复 copy) wired to the existing storage `deleteSession` through a
|
|
42
|
+
new `DELETE /sessions/:id` endpoint; refuse-while-busy checks in the controller.
|
|
43
|
+
- The rail rename affordance becomes a general **overflow menu** (`SessionRowMenu`,
|
|
44
|
+
keyboard navigable ↑↓/Home/End/Esc with focus restore) hosting 重命名… / 管理标签… /
|
|
45
|
+
归档 / 删除… so future per-Session actions have a stable home.
|
|
46
|
+
|
|
47
|
+
### Changed
|
|
48
|
+
|
|
49
|
+
- Active-workspace session listings (`listProjectSessions`, `listSessions`,
|
|
50
|
+
`countSessionsByProject`) exclude archived Sessions by default.
|
|
51
|
+
- Rail footer status copy is shortened to 已连接 / 离线 / … with full sentences moved to a
|
|
52
|
+
tooltip (`connectionTitle`); the collapsed rail dot keeps an accessible short label.
|
|
53
|
+
- Project tag chips, archived-section rows and the two new dialogs ship with their own
|
|
54
|
+
styles; stale `.session-rename`/`.session-row` rules were removed.
|
|
55
|
+
|
|
56
|
+
### Fixed
|
|
57
|
+
|
|
58
|
+
- Rename failures are no longer silent: `RenameDialog` surfaces the server error inline
|
|
59
|
+
(`field-error`) instead of closing without feedback.
|
|
60
|
+
- Session-row menu hint ids are instance-unique (`useId`) so `aria-describedby` can never
|
|
61
|
+
point at another row's hint.
|
|
62
|
+
- The archived rail listing is bound to its owning Workspace: switching projects drops stale
|
|
63
|
+
foreign archive rows immediately and never flashes another project's archive while loading;
|
|
64
|
+
`session_deleted` also clears the stale runtime projection.
|
|
65
|
+
|
|
66
|
+
### Tests
|
|
67
|
+
|
|
68
|
+
- New contract suites: `web-reducer-session-lifecycle` (14, incl. owner-binding + runtime
|
|
69
|
+
cleanup regression), `web-ui-SessionDialogs` (7), `web-ui-SessionRowMenu` (3),
|
|
70
|
+
`web-ui-WorkspaceDialog` (6), `session-storage-tags-archive` (5, incl. delete),
|
|
71
|
+
plus controller-level guards (tags validation / archive-restore / delete-while-busy /
|
|
72
|
+
foreign-workspace rejection / 404) in `web-workbench-controller.test.ts`; `web-ui-*` now
|
|
73
|
+
112 cases green. E2E: `web-v037-session-lifecycle.spec.ts` (archive/restore, delete-confirm,
|
|
74
|
+
tags round-trip) runs in CI.
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
## [0.3.6] — CANDIDATE
|
|
78
|
+
|
|
79
|
+
> **Status: candidate.** This work is isolated on the codex/v0.3.6 worktree (pure web
|
|
80
|
+
> workbench interaction quality). It is not merged, tagged or published to npm.
|
|
81
|
+
|
|
82
|
+
### Added
|
|
83
|
+
|
|
84
|
+
- Component rendering contract layer for the web workbench: six `.test.tsx` suites
|
|
85
|
+
(89 cases) assert on `react-dom/server.renderToStaticMarkup` output without jsdom —
|
|
86
|
+
Markdown / StateDot / ShortcutHelp / DiffViewer / ApprovalCard / PanelResize.
|
|
87
|
+
- `StateDot` status indicator that never relies on colour alone (WCAG 1.4.1): every dot
|
|
88
|
+
carries a shape channel via `data-tone` (square / circle / pulsing ring / hollow ring /
|
|
89
|
+
triangle) plus a visually-hidden text label for assistive tech; applied to reasoning,
|
|
90
|
+
research sources, review evidence and the work-panel rail.
|
|
91
|
+
- Single-source keyboard binding table (`shortcuts.ts`) plus a `⌘/` shortcut help dialog
|
|
92
|
+
rendered from it, so the panel cannot drift from the live bindings; `matchesShortcut`
|
|
93
|
+
now resolves `Esc` → `Escape` so the help vocabulary matches real key events.
|
|
94
|
+
- Header theme-cycle button (system → light → dark, persisted through the settings
|
|
95
|
+
document); the `SettingsDialog` entry stays intact.
|
|
96
|
+
- Stacked notification toasts (P1-C): multiple notices queue without overwriting, each
|
|
97
|
+
non-recoverable non-error notice auto-dismisses after 5s, error / recovery notices stay
|
|
98
|
+
until acted on, and `aria-live` is graded (alert for errors, status otherwise).
|
|
99
|
+
|
|
100
|
+
### Changed
|
|
101
|
+
|
|
102
|
+
- `PanelResizeHandle` is keyboard reachable with full separator semantics: `role=separator`
|
|
103
|
+
with live `aria-valuenow`/`aria-valuetext`, ←/→ steps of 2% (Shift 10%), Home/End jump,
|
|
104
|
+
Enter/Space reset to default; stepping logic is extracted as pure functions.
|
|
105
|
+
- Notification region becomes a stacked container (`.workbench-notice-stack`); cards slide
|
|
106
|
+
in on `opacity`/`transform` only and the whole stack is inert while drawers are open.
|
|
107
|
+
- Icon set gains `sun` / `moon` / `monitor` / `keyboard` glyphs.
|
|
108
|
+
|
|
109
|
+
### Fixed
|
|
110
|
+
|
|
111
|
+
- Markdown heading off-by-one: `##` renders as `<h2>` (was `<h3>`), a lone `#` no longer
|
|
112
|
+
collapses to `<h6>`; >6 hashes stay a plain paragraph per GFM.
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
## [0.3.5] — CANDIDATE
|
|
116
|
+
|
|
117
|
+
> **Status: candidate.** This work is isolated on the codex/v0.3.5 worktree. It is not
|
|
118
|
+
> merged, tagged or published to npm, and exact-artifact qualification remains a separate gate.
|
|
119
|
+
|
|
120
|
+
### Added
|
|
121
|
+
|
|
122
|
+
- Version thread projection digests so v0.3.2/v0.3.3 cutover receipts keep verifying while new
|
|
123
|
+
projections carry the full diagnostic/compact shape; forged digests fail closed.
|
|
124
|
+
- Session snapshot sync state is decoupled from the Host transport: a Session snapshot failure
|
|
125
|
+
can no longer flip the live SSE to `replay-required`; Composer and command gates require both
|
|
126
|
+
transport live and the foreground Session snapshot ready.
|
|
127
|
+
- Host and browser diagnostics counters for Session switches, snapshot cache hits/loads/latency,
|
|
128
|
+
and Session actor allocation/eviction/closure, so "pure selection allocates no Runtime" is
|
|
129
|
+
provable from counters instead of prose.
|
|
130
|
+
- Runtime ownership across Workspace Context switches: the Host-level Session registry is created
|
|
131
|
+
once and preserved; control planes and Session actors borrow per-Workspace shared kernels, and
|
|
132
|
+
only Host shutdown closes every actor and kernel.
|
|
133
|
+
|
|
134
|
+
### Changed
|
|
135
|
+
|
|
136
|
+
- Instant Session switching renders a cached projection immediately, refreshes with a bounded
|
|
137
|
+
tail snapshot in the background, and prefetches the most recent Sessions after a baseline.
|
|
138
|
+
- Version and release hygiene: package identity moves to 0.3.5, `release:check` recognizes
|
|
139
|
+
`codex/vX.Y.Z` and `GITHUB_HEAD_REF` release branches, and the Web rail no longer falls back to
|
|
140
|
+
a hardcoded version string.
|
|
141
|
+
|
|
142
|
+
### Fixed
|
|
143
|
+
|
|
144
|
+
- Workspace Context activation no longer shuts down resident Session actors of other Workspaces
|
|
145
|
+
or requires every actor to be idle before switching the active control plane.
|
|
146
|
+
- A failed Context activation restores the previous control plane without rebuilding the Session
|
|
147
|
+
registry, so resident actors and their Runtime revisions survive the rollback.
|
|
148
|
+
|
|
149
|
+
## [0.3.4] — CANDIDATE
|
|
150
|
+
|
|
151
|
+
> **Status: candidate.** This stabilization work is isolated on the v0.3.4 worktree. It is not
|
|
152
|
+
> merged, tagged or published to npm, and exact-artifact qualification remains a separate gate.
|
|
153
|
+
|
|
154
|
+
### Changed
|
|
155
|
+
|
|
156
|
+
- Bind Settings writes to the active Workspace and Context revision in addition to the Settings
|
|
157
|
+
document revision, so a stale browser tab cannot apply a valid patch to another Workspace.
|
|
158
|
+
- Preserve lexical symbolic-link identity while projecting a contained target as a file or
|
|
159
|
+
directory, and expose the true changed-file total separately from the bounded Review page.
|
|
160
|
+
- Split exact-tgz qualification into a script-disabled identity stage and a separate lifecycle-
|
|
161
|
+
enabled consumer/native stage.
|
|
162
|
+
|
|
163
|
+
### Fixed
|
|
164
|
+
|
|
165
|
+
- Keep split terminal surrogate pairs intact across delayed PTY callbacks, wait for browser write
|
|
166
|
+
capacity without animation-frame spin, and drain reconnect data in replay, live-tail, exit order.
|
|
167
|
+
- Reject blank Session renames without changing durable metadata, and keep active-turn state intact
|
|
168
|
+
when a busy-rejected slash command fails.
|
|
169
|
+
- Isolate concurrent command transcript capture so interleaved output cannot cross Sessions or
|
|
170
|
+
leave the process-wide console bridge installed.
|
|
171
|
+
- Project cold and resident Composer model, Effort and permission changes from the actor Runtime's
|
|
172
|
+
canonical Session instead of a pre-actor metadata copy.
|
|
173
|
+
- Detect binary content on every file page, render contained directory symlinks as expandable and
|
|
174
|
+
label Review truncation against the true repository total.
|
|
175
|
+
|
|
176
|
+
### Security
|
|
177
|
+
|
|
178
|
+
- Redact URL userinfo and structured sensitive keys before browser/evidence projection; evaluate
|
|
179
|
+
file aliases plus canonical targets and block sensitive current or rename-source Git diffs before
|
|
180
|
+
starting a content process.
|
|
181
|
+
- Require matching, canonical-digest-verified terminal receipts and durable receipt facts before a
|
|
182
|
+
modern tool result can project success.
|
|
183
|
+
- Fail release qualification for a failed live canary or duplicated runtime run and manifest
|
|
184
|
+
evidence instead of accepting a structurally complete but non-independent matrix.
|
|
185
|
+
|
|
186
|
+
## [0.3.3] — CANDIDATE
|
|
187
|
+
|
|
188
|
+
> **Status: candidate.** The implementation and local qualification remain isolated on the v0.3.3
|
|
189
|
+
> worktree. It is not merged, tagged, published to npm or represented as a completed release receipt.
|
|
190
|
+
|
|
191
|
+
### Added
|
|
192
|
+
|
|
193
|
+
- Add the bundled `orion-blocksmith` pixel-workshop style as a closed built-in appearance option,
|
|
194
|
+
composed with system/light/dark themes and reduced motion without remote assets or executable
|
|
195
|
+
theme packages.
|
|
196
|
+
- Add a bounded Web Session actor registry with three running slots, four resident actors, FIFO
|
|
197
|
+
overflow admission, cancellable queued turns, idle LRU eviction and explicit per-Session runtime
|
|
198
|
+
revisions.
|
|
199
|
+
- Add the v0.3.3 OpenAPI, migration guide and exact-artifact WEB33-P0-01..12 plus
|
|
200
|
+
WEB33-P0-16..24 qualification contract.
|
|
201
|
+
|
|
202
|
+
### Changed
|
|
203
|
+
|
|
204
|
+
- Make foreground Session selection browser-tab-local so a running, approval-waiting or queued
|
|
205
|
+
Session continues while another Session is viewed or submitted.
|
|
206
|
+
- Route Session commands and Composer mutations through exact Workspace, Context, Session runtime
|
|
207
|
+
and control revisions; stale operations fail closed instead of following a global active Session.
|
|
208
|
+
- Keep a single Workbench SSE connection while projecting Session-tagged runtime state into bounded
|
|
209
|
+
per-Session browser caches.
|
|
210
|
+
- Package runtime JavaScript and declarations without generated source-map files, preserving local
|
|
211
|
+
build maps while keeping the published artifact within the existing unpacked-size budget.
|
|
212
|
+
|
|
213
|
+
### Fixed
|
|
214
|
+
|
|
215
|
+
- Remove the global pending barrier from warm same-Workspace Session selection and restore cached
|
|
216
|
+
content immediately while a guarded snapshot refreshes in the background.
|
|
217
|
+
- Keep the collapsed Work Panel as a right-side full-height 48px rail across desktop and drawer
|
|
218
|
+
breakpoints without moving it below the conversation or creating horizontal page overflow.
|
|
219
|
+
- Keep the only persistent Settings entry at the lower-left project rail and restore focus after a
|
|
220
|
+
successful Settings save.
|
|
221
|
+
- Raise Orion Blocksmith light-theme muted text contrast to WCAG AA for small labels and empty-state
|
|
222
|
+
copy.
|
|
223
|
+
|
|
224
|
+
### Security
|
|
225
|
+
|
|
226
|
+
- Serialize same-Workspace mutating Tool steps through a shared arbiter while preserving independent
|
|
227
|
+
actors for non-conflicting work; stale file baselines are rejected before side effects.
|
|
228
|
+
- Bind queued-turn cancellation, approvals, Goal/Plan controls and structured Context references to
|
|
229
|
+
the intended Session actor, with zero cross-Session provider, Tool, journal or file effects on
|
|
230
|
+
revision conflict.
|
|
231
|
+
|
|
25
232
|
## [0.3.2] — CANDIDATE
|
|
26
233
|
|
|
27
234
|
> **Status: candidate.** Source, API and browser qualification are being frozen together. This is
|
package/README.md
CHANGED
|
@@ -2,16 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
Local-first, goal-driven coding agent for the terminal and browser.
|
|
4
4
|
|
|
5
|
-
> v0.3.
|
|
6
|
-
>
|
|
7
|
-
>
|
|
5
|
+
> v0.3.7 candidate — a left project-rail interaction release on top of the v0.3.6 work:
|
|
6
|
+
> shortened connection copy, a keyboard-reachable per-Session overflow menu
|
|
7
|
+
> (rename / tags / archive / delete with confirmation), persisted Session tags with
|
|
8
|
+
> rail badges, an archived-Session section with restore, and a friendlier
|
|
9
|
+
> "打开或新增项目" workspace dialog. Candidate source is not an npm publication,
|
|
10
|
+
> Git tag, or merge-ready release.
|
|
8
11
|
|
|
9
12
|
[中文说明](README.zh-CN.md) ·
|
|
10
|
-
[v0.3.
|
|
11
|
-
[v0.3.
|
|
13
|
+
[v0.3.7 plan](docs/plan/v0.3.7-left-rail-improvement-plan.md) ·
|
|
14
|
+
[v0.3.6 plan](docs/plan/v0.3.6-plan.md) ·
|
|
15
|
+
[v0.3.5 plan](docs/plan/v0.3.5-plan.md) ·
|
|
16
|
+
[v0.3.4 stabilization plan](docs/plan/v0.3.4-stabilization-plan.md) ·
|
|
17
|
+
[v0.3.4 contract](docs/architecture/v0.3.4-stabilization-contract.md) ·
|
|
18
|
+
[v0.3.4 E2E plan](docs/test/v0.3.4-stabilization-e2e-plan.md) ·
|
|
19
|
+
[v0.3.4 migration](docs/migration/v0.3.3-to-v0.3.4.md) ·
|
|
20
|
+
[v0.3.3 plan](docs/plan/v0.3.3-plan.md) ·
|
|
21
|
+
[v0.3.3 Web API](docs/architecture/v0.3.3-web-api.yaml) ·
|
|
12
22
|
[mode/permission contract](docs/architecture/agent-mode-permission-contract.md) ·
|
|
13
|
-
[v0.3.
|
|
14
|
-
[v0.3.
|
|
23
|
+
[v0.3.3 E2E plan](docs/test/v0.3.3-web-workbench-e2e-plan.md) ·
|
|
24
|
+
[v0.3.3 migration](docs/migration/v0.3.2-to-v0.3.3.md) ·
|
|
15
25
|
[v0.3.0 Web plan](docs/plan/v0.3.0-web-workbench-plan.md) ·
|
|
16
26
|
[Settings plan](docs/plan/v0.3.0-settings-integration-plan.md) ·
|
|
17
27
|
[Node compatibility](docs/plan/v0.3.0-node-runtime-compatibility-plan.md) ·
|
|
@@ -20,11 +30,82 @@ Local-first, goal-driven coding agent for the terminal and browser.
|
|
|
20
30
|
[Settings migration](docs/migration/v0.2.2-to-v0.3.0-settings.md) ·
|
|
21
31
|
[real-state gallery](docs/assets/screenshots/v0.3.0-web/README.md)
|
|
22
32
|
|
|
23
|
-
## What v0.3.
|
|
24
|
-
|
|
25
|
-
- **
|
|
26
|
-
|
|
27
|
-
|
|
33
|
+
## What v0.3.7 changes
|
|
34
|
+
|
|
35
|
+
- **Left rail status copy** is shortened (已连接 / 离线 / …) with full sentences on hover.
|
|
36
|
+
- **Per-Session overflow menu** replaces the rename icon — 重命名… / 管理标签… / 归档 /
|
|
37
|
+
删除…, fully keyboard navigable, deleting requires an explicit confirmation dialog.
|
|
38
|
+
- **Session tags**: up to 8 persisted tags per Session, edited as chips and shown as
|
|
39
|
+
badges on rows; archive hides a Session (all files kept) into a rail 已归档 section
|
|
40
|
+
with one-click restore.
|
|
41
|
+
- **Workspace dialog** rework: "打开或新增项目" with suggested workspaces, a collapsible
|
|
42
|
+
"其他工作区" list and busy/validation feedback.
|
|
43
|
+
|
|
44
|
+
## What v0.3.6 changes
|
|
45
|
+
|
|
46
|
+
- **A component-rendering contract layer.** Six `.test.tsx` suites (89 cases) assert the web
|
|
47
|
+
workbench UI through `renderToStaticMarkup` — no jsdom needed — pinning Markdown tables and
|
|
48
|
+
headings, status dots, the shortcut help dialog, the diff viewer, the permission card and the
|
|
49
|
+
resize separator keyboard contract.
|
|
50
|
+
- **Keyboard-reachable resize separators.** Project navigation and work-panel splitters expose
|
|
51
|
+
full separator semantics (`aria-valuenow`/`aria-valuetext`) and answer ←/→ (±2%, Shift ±10%),
|
|
52
|
+
Home/End and Enter/Space from the keyboard.
|
|
53
|
+
- **Status without colour alone.** A shared `StateDot` adds a shape channel (`data-tone`) and a
|
|
54
|
+
screen-reader label to every status dot — reasoning, research sources, review evidence and the
|
|
55
|
+
work-panel rail.
|
|
56
|
+
- **Single-source shortcut help.** `⌘/` opens a help dialog rendered from the same binding table
|
|
57
|
+
the live handlers match against.
|
|
58
|
+
- **Theme cycle in the header.** One click walks system → light → dark and persists through the
|
|
59
|
+
settings document; light tokens stay consolidated in the blocksmith token sheet.
|
|
60
|
+
- **Stacked notifications.** Toasts queue instead of overwriting, auto-dismiss after 5s unless
|
|
61
|
+
error/recovery, and grade `aria-live` by severity.
|
|
62
|
+
|
|
63
|
+
## What v0.3.5 changes
|
|
64
|
+
|
|
65
|
+
- **Session snapshot state is its own machine.** A failed HTTP snapshot marks only the foreground
|
|
66
|
+
Session `failed` and never flips the live SSE into `replay-required`; Composer and command gates
|
|
67
|
+
require both a live transport and a ready foreground Session snapshot.
|
|
68
|
+
- **Instant Session switching.** A cached projection renders synchronously, a bounded tail snapshot
|
|
69
|
+
refreshes it in the background, the most recent Sessions are prefetched after a baseline, and stale
|
|
70
|
+
responses can never overwrite the browser-local foreground.
|
|
71
|
+
- **Runtime ownership across Workspaces.** The Host-level Session actor registry is created once per
|
|
72
|
+
Host. A Workspace Context switch swaps only the active control plane; Session actors of other
|
|
73
|
+
Workspaces keep running on the Workspace kernel they were created with, and only Host shutdown
|
|
74
|
+
closes every actor and kernel. Failed switches roll back without rebuilding the registry.
|
|
75
|
+
- **Provable runtime ownership.** Host and browser diagnostics count Session snapshot requests,
|
|
76
|
+
latency and failures, Session switches and cache hits, and actor allocation/eviction/closure — so a
|
|
77
|
+
pure selection provably allocates zero Session Runtimes.
|
|
78
|
+
- **Release hygiene.** Version identity moves to 0.3.5; `release:check` understands `codex/vX.Y.Z`
|
|
79
|
+
and `GITHUB_HEAD_REF`; the Web rail no longer hardcodes a fallback version.
|
|
80
|
+
|
|
81
|
+
This branch also carries the merged [v0.3.4 stabilization](#what-v034-stabilizes) below.
|
|
82
|
+
|
|
83
|
+
## What v0.3.4 stabilizes
|
|
84
|
+
|
|
85
|
+
- **Context-bound writes.** Settings mutations now carry the active Workspace and Context revision;
|
|
86
|
+
stale tabs fail with no write or Runtime apply. Blank Session renames and busy slash commands also
|
|
87
|
+
fail without corrupting durable or active-turn state.
|
|
88
|
+
- **One sensitive-data boundary.** Structured credentials, URL userinfo, canonical file targets,
|
|
89
|
+
Git diff paths, tool artifacts and concurrent command output are checked and redacted before they
|
|
90
|
+
reach browser or evidence surfaces.
|
|
91
|
+
- **Deterministic Terminal transport.** Split surrogate pairs, browser write backpressure and
|
|
92
|
+
reconnect races preserve complete Unicode and the required replay, live-tail, exit and close
|
|
93
|
+
order.
|
|
94
|
+
- **Honest durable/read projections.** Tool receipt and journal facts must validate as a pair;
|
|
95
|
+
symbolic links expose an effective target kind without losing lexical identity, and Review
|
|
96
|
+
distinguishes total changed files from its bounded visible page.
|
|
97
|
+
- **Fail-closed release proof.** Failed live canaries, duplicate runtime evidence and lifecycle
|
|
98
|
+
scripts hidden inside a supposedly safe package-install stage are release blockers.
|
|
99
|
+
|
|
100
|
+
## What v0.3.3 includes
|
|
101
|
+
|
|
102
|
+
- **One execution spine, bounded Web Session actors.** Web Sessions use the same product bootstrap,
|
|
103
|
+
AgentRuntimeController, Session/Thread stores, ToolGateway, approvals, Goals, Plans, Skills and MCP
|
|
104
|
+
boundaries as the terminal product. Up to three Session turns may run concurrently with four
|
|
105
|
+
resident actors; the TUI and terminal surfaces keep their single-active-Session contract.
|
|
106
|
+
- **Orion Blocksmith.** A bundled pixel-workshop style combines with system/light/dark themes without
|
|
107
|
+
remote assets, dynamic theme code or a second settings source. Classic remains available as an
|
|
108
|
+
explicit built-in style.
|
|
28
109
|
- **Recoverable Web workbench.** The React workbench includes workspace/session navigation,
|
|
29
110
|
transcript and tool activity, BUILD/PLAN/AUTO, follow-ups, interrupt, approvals, Goal/Plan,
|
|
30
111
|
model/effort settings, Skills/MCP and diagnostics. Snapshots plus cursor replay repair refreshes
|
|
@@ -88,10 +169,10 @@ user extension boundaries.
|
|
|
88
169
|
Node.js 22.12+, 24, and 26 are supported. Use Node 24 LTS for production or Node 26 Current for
|
|
89
170
|
current development environments. Node 20 is upstream EOL and is no longer a v0.3 runtime.
|
|
90
171
|
|
|
91
|
-
After the immutable `0.3.
|
|
172
|
+
After the immutable `0.3.5` npm receipt exists:
|
|
92
173
|
|
|
93
174
|
```bash
|
|
94
|
-
npm install -g @orion-agents/orion-code@0.3.
|
|
175
|
+
npm install -g @orion-agents/orion-code@0.3.7
|
|
95
176
|
orion --version
|
|
96
177
|
orion doctor
|
|
97
178
|
```
|
|
@@ -278,10 +359,13 @@ npm run test:web-e2e -- --grep @settings
|
|
|
278
359
|
|
|
279
360
|
Release qualification additionally builds one exact tarball and installs that unchanged hash on
|
|
280
361
|
Node 22/24/26 for package identity, native SQLite, TUI, terminal, print, Web, Goal, subagent, Skill,
|
|
281
|
-
MCP, Compact, and resume journeys.
|
|
282
|
-
|
|
283
|
-
See the [`v0.3.
|
|
284
|
-
[`v0.3.
|
|
362
|
+
MCP, Compact, and resume journeys. WEB33-P0-01..12 qualify the built-in appearance contract, while
|
|
363
|
+
WEB33-P0-16..24 qualify parallel Session actors, foreground-local switching, bounded queues, the
|
|
364
|
+
right rail and the single Settings entry. See the [`v0.3.3 plan`](docs/plan/v0.3.3-plan.md) and
|
|
365
|
+
[`v0.3.3 E2E qualification plan`](docs/test/v0.3.3-web-workbench-e2e-plan.md). The security and
|
|
366
|
+
stabilization delta is defined by the
|
|
367
|
+
[`v0.3.4 test plan`](docs/test/v0.3.4-stabilization-e2e-plan.md), which does not treat source gates
|
|
368
|
+
as release evidence.
|
|
285
369
|
|
|
286
370
|
## Security
|
|
287
371
|
|
package/README.zh-CN.md
CHANGED
|
@@ -2,15 +2,23 @@
|
|
|
2
2
|
|
|
3
3
|
面向终端与浏览器、本地优先的目标驱动 Coding Agent。
|
|
4
4
|
|
|
5
|
-
> v0.3.
|
|
6
|
-
>
|
|
5
|
+
> v0.3.7 候选版本:左侧项目栏交互发布(基于 v0.3.6 之上)—— 状态文案精简、会话行键盘可达
|
|
6
|
+
> 操作菜单(重命名 / 标签 / 归档 / 删除含确认)、可持久化会话标签与行内徽章、已归档会话区一键还原、
|
|
7
|
+
> 以及更友好的「打开或新增项目」工作区对话框。Candidate 源码不代表已创建 npm 发布、Git tag 或达到
|
|
8
|
+
> 可合并状态。
|
|
7
9
|
|
|
8
10
|
[English](README.md) ·
|
|
9
|
-
[v0.3.
|
|
10
|
-
[v0.3.
|
|
11
|
+
[v0.3.7 方案](docs/plan/v0.3.7-left-rail-improvement-plan.md) ·
|
|
12
|
+
[v0.3.6 方案](docs/plan/v0.3.6-plan.md) ·
|
|
13
|
+
[v0.3.4 稳定化方案](docs/plan/v0.3.4-stabilization-plan.md) ·
|
|
14
|
+
[v0.3.4 合同](docs/architecture/v0.3.4-stabilization-contract.md) ·
|
|
15
|
+
[v0.3.4 E2E 方案](docs/test/v0.3.4-stabilization-e2e-plan.md) ·
|
|
16
|
+
[v0.3.4 迁移](docs/migration/v0.3.3-to-v0.3.4.md) ·
|
|
17
|
+
[v0.3.3 方案](docs/plan/v0.3.3-plan.md) ·
|
|
18
|
+
[v0.3.3 Web API](docs/architecture/v0.3.3-web-api.yaml) ·
|
|
11
19
|
[模式/权限合同](docs/architecture/agent-mode-permission-contract.md) ·
|
|
12
|
-
[v0.3.
|
|
13
|
-
[v0.3.
|
|
20
|
+
[v0.3.3 E2E 方案](docs/test/v0.3.3-web-workbench-e2e-plan.md) ·
|
|
21
|
+
[v0.3.3 迁移](docs/migration/v0.3.2-to-v0.3.3.md) ·
|
|
14
22
|
[v0.3.0 Web 方案](docs/plan/v0.3.0-web-workbench-plan.md) ·
|
|
15
23
|
[Settings 方案](docs/plan/v0.3.0-settings-integration-plan.md) ·
|
|
16
24
|
[Node 兼容方案](docs/plan/v0.3.0-node-runtime-compatibility-plan.md) ·
|
|
@@ -19,11 +27,26 @@
|
|
|
19
27
|
[Settings 迁移](docs/migration/v0.2.2-to-v0.3.0-settings.md) ·
|
|
20
28
|
[真实状态图册](docs/assets/screenshots/v0.3.0-web/README.md)
|
|
21
29
|
|
|
22
|
-
## v0.3.
|
|
23
|
-
|
|
24
|
-
-
|
|
25
|
-
|
|
26
|
-
|
|
30
|
+
## v0.3.4 稳定了什么
|
|
31
|
+
|
|
32
|
+
- **Context 绑定写入。** Settings mutation 现在同时携带活动 Workspace 与 Context revision;陈旧页面
|
|
33
|
+
不会写入或应用到另一个 Runtime。空 Session 名称和 busy slash command 也会保持持久态与活动回合不变。
|
|
34
|
+
- **统一敏感数据边界。** 结构化凭据、URL userinfo、canonical 文件目标、Git diff 路径、tool artifact
|
|
35
|
+
和并发命令输出在进入浏览器或证据前统一检查与脱敏。
|
|
36
|
+
- **确定的 Terminal 传输。** PTY 代理对分片、浏览器写入背压与重连竞态都保持完整 Unicode,以及
|
|
37
|
+
replay、live tail、exit、close 的严格顺序。
|
|
38
|
+
- **诚实的 durable/read 投影。** Tool receipt 与 journal fact 必须成对校验;symlink 在保留 lexical
|
|
39
|
+
类型的同时投影有效目标类型;Review 将仓库真实总数与有界可见页分开显示。
|
|
40
|
+
- **Fail-closed 发布证据。** live canary 失败、重复 Runtime 证据,或混入“安全安装阶段”的生命周期
|
|
41
|
+
script 都会阻止发布。
|
|
42
|
+
|
|
43
|
+
## v0.3.3 包含什么
|
|
44
|
+
|
|
45
|
+
- **一条执行主干、有界 Web Session actors。** Web Session 与终端产品共用 product bootstrap、
|
|
46
|
+
AgentRuntimeController、Session/Thread、ToolGateway、审批、Goal、Plan、Skills 和 MCP。Web 最多允许
|
|
47
|
+
3 个 Session turn 并行、4 个 actor 常驻;TUI/terminal 继续保持单活动 Session 合同。
|
|
48
|
+
- **Orion 方块工坊。** 内置像素工坊风格可与 system/light/dark 组合,不加载远程资产、动态主题代码或
|
|
49
|
+
第二份 Settings 真相;classic 继续作为显式内置风格提供。
|
|
27
50
|
- **可恢复的 Web 工作台。** React 界面覆盖工作区/会话、对话与工具活动、BUILD/PLAN/AUTO、follow-up、
|
|
28
51
|
interrupt、审批、Goal/Plan、模型/effort、Skills/MCP 和诊断。快照与 cursor replay 负责刷新和 SSE
|
|
29
52
|
重连恢复。
|
|
@@ -76,10 +99,10 @@ MCP 仍是用户可见的扩展边界。
|
|
|
76
99
|
支持 Node.js 22.12+、24 和 26。生产环境建议使用 Node 24 LTS,当前开发环境也支持 Node 26
|
|
77
100
|
Current。Node 20 已结束上游维护,不再属于 v0.3 Runtime 合同。
|
|
78
101
|
|
|
79
|
-
当 npm 已存在不可变的 `0.3.
|
|
102
|
+
当 npm 已存在不可变的 `0.3.4` 发布凭据后:
|
|
80
103
|
|
|
81
104
|
```bash
|
|
82
|
-
npm install -g @orion-agents/orion-code@0.3.
|
|
105
|
+
npm install -g @orion-agents/orion-code@0.3.7
|
|
83
106
|
orion --version
|
|
84
107
|
orion doctor
|
|
85
108
|
```
|
|
@@ -251,9 +274,10 @@ npm run test:web-e2e -- --grep @settings
|
|
|
251
274
|
|
|
252
275
|
正式准出还会只构建一次 exact tarball,并在 Node 22/24/26 安装同一个 hash,验证 package identity、
|
|
253
276
|
native SQLite、TUI、terminal、print、Web、Goal、subagent、Skill、MCP、Compact 与 resume;
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
[`v0.3.
|
|
277
|
+
WEB33-P0-01..12 验证内置外观合同,WEB33-P0-16..24 验证并行 Session actors、标签页本地前台切换、
|
|
278
|
+
有界队列、右侧 rail 与唯一 Settings 入口。详见 [`v0.3.3 方案`](docs/plan/v0.3.3-plan.md)与
|
|
279
|
+
[`v0.3.3 E2E 资格计划`](docs/test/v0.3.3-web-workbench-e2e-plan.md)。v0.3.4 的安全与稳定化增量见
|
|
280
|
+
[`v0.3.4 测试计划`](docs/test/v0.3.4-stabilization-e2e-plan.md);它不会把 source gate 当成发布凭据。
|
|
257
281
|
|
|
258
282
|
## 安全
|
|
259
283
|
|
|
@@ -206,11 +206,7 @@ async function showHarness(ctx, args = '') {
|
|
|
206
206
|
},
|
|
207
207
|
};
|
|
208
208
|
const result = () => ({ success: true, output: lines.join('\n') });
|
|
209
|
-
const tokens = args
|
|
210
|
-
.trim()
|
|
211
|
-
.toLowerCase()
|
|
212
|
-
.split(/\s+/u)
|
|
213
|
-
.filter(Boolean);
|
|
209
|
+
const tokens = args.trim().toLowerCase().split(/\s+/u).filter(Boolean);
|
|
214
210
|
const explain = tokens[0] === 'explain';
|
|
215
211
|
const json = tokens.includes('--json');
|
|
216
212
|
if (tokens.some(token => token !== 'explain' && token !== '--json')) {
|
|
@@ -448,10 +448,7 @@ function registerBuiltinCommands(definitions) {
|
|
|
448
448
|
if (ids.has(command.id))
|
|
449
449
|
throw new Error(`Duplicate command id: ${command.id}`);
|
|
450
450
|
ids.add(command.id);
|
|
451
|
-
for (const value of [
|
|
452
|
-
command.name,
|
|
453
|
-
...(command.aliases ?? []),
|
|
454
|
-
]) {
|
|
451
|
+
for (const value of [command.name, ...(command.aliases ?? [])]) {
|
|
455
452
|
const normalized = value.toLowerCase();
|
|
456
453
|
const owner = names.get(normalized);
|
|
457
454
|
if (owner)
|
package/dist/harness/intent.js
CHANGED
|
@@ -38,14 +38,24 @@ function extractTools(input) {
|
|
|
38
38
|
return known.filter(tool => lower.includes(tool.toLowerCase()));
|
|
39
39
|
}
|
|
40
40
|
function extractConstraints(input) {
|
|
41
|
-
const lines = input
|
|
41
|
+
const lines = input
|
|
42
|
+
.split(/\r?\n/)
|
|
43
|
+
.map(line => line.trim())
|
|
44
|
+
.filter(Boolean);
|
|
42
45
|
const constraintPattern = /(必须|要求|确保|保持|不要|不能|不准|避免|只|仅|must|should|required|ensure|keep|avoid|without|do not|don't|never|only)/i;
|
|
43
|
-
return [
|
|
46
|
+
return [
|
|
47
|
+
...new Set(lines.filter(line => constraintPattern.test(line)).map(line => truncate(line, 180))),
|
|
48
|
+
].slice(0, 10);
|
|
44
49
|
}
|
|
45
50
|
function extractNonGoals(input) {
|
|
46
|
-
const lines = input
|
|
51
|
+
const lines = input
|
|
52
|
+
.split(/\r?\n/)
|
|
53
|
+
.map(line => line.trim())
|
|
54
|
+
.filter(Boolean);
|
|
47
55
|
const nonGoalPattern = /(不要|不能|不准|避免|不引入|不新增|禁止|do not|don't|never|avoid|without)/i;
|
|
48
|
-
return [
|
|
56
|
+
return [
|
|
57
|
+
...new Set(lines.filter(line => nonGoalPattern.test(line)).map(line => truncate(line, 180))),
|
|
58
|
+
].slice(0, 8);
|
|
49
59
|
}
|
|
50
60
|
function extractQuestions(input) {
|
|
51
61
|
return input
|
|
@@ -75,45 +85,86 @@ function classifyKind(input, state) {
|
|
|
75
85
|
return { kind: 'casual_or_feedback', confidence: 0.5, reason: 'empty input' };
|
|
76
86
|
}
|
|
77
87
|
if (isGenericContinue(text)) {
|
|
78
|
-
return {
|
|
88
|
+
return {
|
|
89
|
+
kind: 'continue_current_task',
|
|
90
|
+
confidence: 0.78,
|
|
91
|
+
reason: 'generic continuation request',
|
|
92
|
+
};
|
|
79
93
|
}
|
|
80
94
|
if (isShortFeedback(text)) {
|
|
81
|
-
return {
|
|
95
|
+
return {
|
|
96
|
+
kind: 'casual_or_feedback',
|
|
97
|
+
confidence: 0.72,
|
|
98
|
+
reason: 'short feedback should not replace the root objective',
|
|
99
|
+
};
|
|
82
100
|
}
|
|
83
|
-
if (matches(lower, /\b(verify|test|run tests?|check|lint|typecheck|build)\b/) ||
|
|
101
|
+
if (matches(lower, /\b(verify|test|run tests?|check|lint|typecheck|build)\b/) ||
|
|
102
|
+
matches(text, /(验证|测试|检查|跑一下|运行测试|构建|编译)/)) {
|
|
84
103
|
return { kind: 'verify_or_test', confidence: 0.82, reason: 'verification-oriented wording' };
|
|
85
104
|
}
|
|
86
105
|
if (hasRoot && isVersionScopedRefinement(text)) {
|
|
87
|
-
return {
|
|
106
|
+
return {
|
|
107
|
+
kind: 'refine_current_task',
|
|
108
|
+
confidence: 0.78,
|
|
109
|
+
reason: 'version-scoped refinement within the active task',
|
|
110
|
+
};
|
|
88
111
|
}
|
|
89
112
|
if (matches(lower, /\b(harness|mcp|session|resume|compact|config|configuration|ui|npm|publish|push|pull request|pr)\b/) ||
|
|
90
113
|
matches(text, /(配置|会话|恢复|压缩|版本|分支|发布|新ui|界面|工具|权限|确认|配置文件)/)) {
|
|
91
114
|
if (matches(text, /(基于当前|切\s*v|切到|这个版本|新版本|开始按|完整开发|实现这个方案)/) ||
|
|
92
115
|
matches(lower, /\b(please implement|implement this plan|start implementing|new version)\b/)) {
|
|
93
|
-
return {
|
|
116
|
+
return {
|
|
117
|
+
kind: 'new_task',
|
|
118
|
+
confidence: 0.88,
|
|
119
|
+
reason: 'explicit versioned implementation task',
|
|
120
|
+
};
|
|
94
121
|
}
|
|
95
|
-
return {
|
|
122
|
+
return {
|
|
123
|
+
kind: 'meta_configuration',
|
|
124
|
+
confidence: 0.75,
|
|
125
|
+
reason: 'configuration or CLI meta request',
|
|
126
|
+
};
|
|
96
127
|
}
|
|
97
128
|
if (matches(text, /(不对|不是|错了|改成|改为|换成|重新|重做|不要.+而是|应该.+而不是)/) ||
|
|
98
129
|
matches(lower, /\b(instead|replace|switch to|redo|wrong)\b/)) {
|
|
99
|
-
return {
|
|
130
|
+
return {
|
|
131
|
+
kind: 'interrupt_and_replace_current_step',
|
|
132
|
+
confidence: 0.8,
|
|
133
|
+
reason: 'correction or replacement wording',
|
|
134
|
+
};
|
|
100
135
|
}
|
|
101
136
|
if (matches(text, /(基于|切到|这个版本|新版本|开始|实现|开发|生成|创建|写文档|完成本次|按这个计划|完整支持|帮我完成)/) ||
|
|
102
137
|
matches(lower, /\b(generate|create|implement|build|start|complete this|write a|please implement)\b/)) {
|
|
103
|
-
return {
|
|
138
|
+
return {
|
|
139
|
+
kind: 'new_task',
|
|
140
|
+
confidence: hasRoot ? 0.76 : 0.86,
|
|
141
|
+
reason: 'explicit task creation wording',
|
|
142
|
+
};
|
|
104
143
|
}
|
|
105
144
|
// Clarification: user is asking for explanation or asking about meaning
|
|
106
145
|
// Must be checked BEFORE refinement since clarification phrases may contain "这个"
|
|
107
146
|
if (matches(text, /(什么意思|解释一下|解释说明|clarify|explain to me|what does.*mean|what is.*for|can you explain|meaning of)/) ||
|
|
108
147
|
matches(lower, /^(what|why|how|explain|clarify|could you explain|can you explain)\b/)) {
|
|
109
|
-
return {
|
|
148
|
+
return {
|
|
149
|
+
kind: 'clarification',
|
|
150
|
+
confidence: 0.7,
|
|
151
|
+
reason: 'clarification or explanation request',
|
|
152
|
+
};
|
|
110
153
|
}
|
|
111
154
|
if (matches(text, /(补充|另外|同时|还有|希望|可以|顺便|完善|优化|灰色|填充|这个|这里|如图|也|继续)/) ||
|
|
112
155
|
matches(lower, /\b(also|additionally|please also|refine|improve|continue)\b/)) {
|
|
113
|
-
return {
|
|
156
|
+
return {
|
|
157
|
+
kind: 'refine_current_task',
|
|
158
|
+
confidence: hasRoot ? 0.76 : 0.58,
|
|
159
|
+
reason: 'refinement or addition wording',
|
|
160
|
+
};
|
|
114
161
|
}
|
|
115
162
|
return hasRoot
|
|
116
|
-
? {
|
|
163
|
+
? {
|
|
164
|
+
kind: 'refine_current_task',
|
|
165
|
+
confidence: 0.55,
|
|
166
|
+
reason: 'existing task makes ambiguous input a refinement',
|
|
167
|
+
}
|
|
117
168
|
: { kind: 'new_task', confidence: 0.62, reason: 'first meaningful user task' };
|
|
118
169
|
}
|
|
119
170
|
function classifyIntent(input, state) {
|
|
@@ -121,7 +172,9 @@ function classifyIntent(input, state) {
|
|
|
121
172
|
const baseEpoch = state?.taskEpoch ?? (state?.contract ? 1 : 0);
|
|
122
173
|
const classified = classifyKind(input, state);
|
|
123
174
|
const rootObjectiveChanged = classified.kind === 'new_task' || !state?.contract;
|
|
124
|
-
const taskEpoch = rootObjectiveChanged
|
|
175
|
+
const taskEpoch = rootObjectiveChanged
|
|
176
|
+
? Math.max(1, baseEpoch + (state?.contract ? 1 : 0))
|
|
177
|
+
: Math.max(1, baseEpoch || 1);
|
|
125
178
|
const summary = truncate(input || 'Continue the current task');
|
|
126
179
|
return {
|
|
127
180
|
id: (0, crypto_1.randomUUID)(),
|
|
@@ -12,7 +12,9 @@ function unique(items) {
|
|
|
12
12
|
function parseJsonObject(text) {
|
|
13
13
|
try {
|
|
14
14
|
const parsed = JSON.parse(text);
|
|
15
|
-
return parsed && typeof parsed === 'object' && !Array.isArray(parsed)
|
|
15
|
+
return parsed && typeof parsed === 'object' && !Array.isArray(parsed)
|
|
16
|
+
? parsed
|
|
17
|
+
: null;
|
|
16
18
|
}
|
|
17
19
|
catch {
|
|
18
20
|
return null;
|