@orion-agents/orion-code 0.1.4 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +73 -38
- package/README.zh-CN.md +32 -10
- package/dist/agents/coder.d.ts.map +1 -1
- package/dist/agents/coder.js.map +1 -1
- package/dist/agents/fork.d.ts +12 -4
- package/dist/agents/fork.d.ts.map +1 -1
- package/dist/agents/fork.js +28 -32
- package/dist/agents/fork.js.map +1 -1
- package/dist/agents/leader.d.ts.map +1 -1
- package/dist/agents/leader.js.map +1 -1
- package/dist/agents/worker-pool.d.ts.map +1 -1
- package/dist/agents/worker-pool.js +38 -29
- package/dist/agents/worker-pool.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +4 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/context-commands.d.ts +4 -0
- package/dist/commands/context-commands.d.ts.map +1 -0
- package/dist/commands/context-commands.js +74 -0
- package/dist/commands/context-commands.js.map +1 -0
- package/dist/commands/context-tool-command-handlers.d.ts +13 -0
- package/dist/commands/context-tool-command-handlers.d.ts.map +1 -0
- package/dist/commands/context-tool-command-handlers.js +617 -0
- package/dist/commands/context-tool-command-handlers.js.map +1 -0
- package/dist/commands/core-command-handlers.d.ts +12 -0
- package/dist/commands/core-command-handlers.d.ts.map +1 -0
- package/dist/commands/core-command-handlers.js +805 -0
- package/dist/commands/core-command-handlers.js.map +1 -0
- package/dist/commands/diagnostic-command-handlers.d.ts +14 -0
- package/dist/commands/diagnostic-command-handlers.d.ts.map +1 -0
- package/dist/commands/diagnostic-command-handlers.js +1043 -0
- package/dist/commands/diagnostic-command-handlers.js.map +1 -0
- package/dist/commands/diagnostic-commands.d.ts +4 -0
- package/dist/commands/diagnostic-commands.d.ts.map +1 -0
- package/dist/commands/diagnostic-commands.js +175 -0
- package/dist/commands/diagnostic-commands.js.map +1 -0
- package/dist/commands/index.d.ts +9 -10
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +42 -3563
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/legacy-commands.d.ts +4 -0
- package/dist/commands/legacy-commands.d.ts.map +1 -0
- package/dist/commands/legacy-commands.js +44 -0
- package/dist/commands/legacy-commands.js.map +1 -0
- package/dist/commands/model-command-handlers.d.ts +15 -0
- package/dist/commands/model-command-handlers.d.ts.map +1 -0
- package/dist/commands/model-command-handlers.js +526 -0
- package/dist/commands/model-command-handlers.js.map +1 -0
- package/dist/commands/model-commands.d.ts +4 -0
- package/dist/commands/model-commands.d.ts.map +1 -0
- package/dist/commands/model-commands.js +85 -0
- package/dist/commands/model-commands.js.map +1 -0
- package/dist/commands/parser.d.ts +12 -0
- package/dist/commands/parser.d.ts.map +1 -1
- package/dist/commands/parser.js +48 -7
- package/dist/commands/parser.js.map +1 -1
- package/dist/commands/registry.d.ts +4 -0
- package/dist/commands/registry.d.ts.map +1 -0
- package/dist/commands/registry.js +566 -0
- package/dist/commands/registry.js.map +1 -0
- package/dist/commands/session-command-handlers.d.ts +10 -0
- package/dist/commands/session-command-handlers.d.ts.map +1 -0
- package/dist/commands/session-command-handlers.js +626 -0
- package/dist/commands/session-command-handlers.js.map +1 -0
- package/dist/commands/session-commands.d.ts +4 -0
- package/dist/commands/session-commands.d.ts.map +1 -0
- package/dist/commands/session-commands.js +102 -0
- package/dist/commands/session-commands.js.map +1 -0
- package/dist/commands/system-commands.d.ts +4 -0
- package/dist/commands/system-commands.d.ts.map +1 -0
- package/dist/commands/system-commands.js +80 -0
- package/dist/commands/system-commands.js.map +1 -0
- package/dist/commands/target-command.d.ts +1 -1
- package/dist/commands/target-command.d.ts.map +1 -1
- package/dist/commands/target-command.js +42 -6
- package/dist/commands/target-command.js.map +1 -1
- package/dist/commands/tool-commands.d.ts +4 -0
- package/dist/commands/tool-commands.d.ts.map +1 -0
- package/dist/commands/tool-commands.js +49 -0
- package/dist/commands/tool-commands.js.map +1 -0
- package/dist/commands/types.d.ts +69 -5
- package/dist/commands/types.d.ts.map +1 -1
- package/dist/commands/types.js +3 -4
- package/dist/commands/types.js.map +1 -1
- package/dist/commands/workflow-command-handlers.d.ts +7 -0
- package/dist/commands/workflow-command-handlers.d.ts.map +1 -0
- package/dist/commands/workflow-command-handlers.js +32 -0
- package/dist/commands/workflow-command-handlers.js.map +1 -0
- package/dist/commands/workflow-commands.d.ts +4 -0
- package/dist/commands/workflow-commands.d.ts.map +1 -0
- package/dist/commands/workflow-commands.js +124 -0
- package/dist/commands/workflow-commands.js.map +1 -0
- package/dist/core/checkpoint.d.ts +12 -4
- package/dist/core/checkpoint.d.ts.map +1 -1
- package/dist/core/checkpoint.js +114 -28
- package/dist/core/checkpoint.js.map +1 -1
- package/dist/core/cost-tracker.d.ts +17 -1
- package/dist/core/cost-tracker.d.ts.map +1 -1
- package/dist/core/cost-tracker.js +24 -8
- package/dist/core/cost-tracker.js.map +1 -1
- package/dist/core/warn-dedup.d.ts +3 -0
- package/dist/core/warn-dedup.d.ts.map +1 -1
- package/dist/core/warn-dedup.js +6 -6
- package/dist/core/warn-dedup.js.map +1 -1
- package/dist/framework/index.d.ts +1 -1
- package/dist/framework/index.d.ts.map +1 -1
- package/dist/framework/index.js.map +1 -1
- package/dist/framework/prompt.d.ts +2 -2
- package/dist/framework/query.d.ts +2 -2
- package/dist/framework/query.d.ts.map +1 -1
- package/dist/framework/query.js +57 -10
- package/dist/framework/query.js.map +1 -1
- package/dist/framework/store.d.ts +15 -6
- package/dist/framework/store.d.ts.map +1 -1
- package/dist/framework/store.js +18 -0
- package/dist/framework/store.js.map +1 -1
- package/dist/framework/tool-scheduler.d.ts +16 -13
- package/dist/framework/tool-scheduler.d.ts.map +1 -1
- package/dist/framework/tool-scheduler.js +155 -38
- package/dist/framework/tool-scheduler.js.map +1 -1
- package/dist/framework/tool.d.ts +39 -2
- package/dist/framework/tool.d.ts.map +1 -1
- package/dist/framework/tool.js +27 -1
- package/dist/framework/tool.js.map +1 -1
- package/dist/harness/assembler.d.ts.map +1 -1
- package/dist/harness/assembler.js +4 -2
- package/dist/harness/assembler.js.map +1 -1
- package/dist/harness/drift-guard.d.ts.map +1 -1
- package/dist/harness/drift-guard.js +9 -1
- package/dist/harness/drift-guard.js.map +1 -1
- package/dist/harness/evidence.d.ts.map +1 -1
- package/dist/harness/evidence.js +3 -2
- package/dist/harness/evidence.js.map +1 -1
- package/dist/harness/safety.d.ts +11 -1
- package/dist/harness/safety.d.ts.map +1 -1
- package/dist/harness/safety.js +112 -16
- package/dist/harness/safety.js.map +1 -1
- package/dist/index.d.ts +1 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +4 -8
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +4 -4
- package/dist/init.js.map +1 -1
- package/dist/ink-ui/App.d.ts +2 -2
- package/dist/ink-ui/components/Markdown.d.ts.map +1 -1
- package/dist/ink-ui/components/Markdown.js.map +1 -1
- package/dist/ink-ui/components/PixelHorseBanner.d.ts +2 -2
- package/dist/ink-ui/components/StatusLine.d.ts +2 -2
- package/dist/ink-ui/launch.d.ts +2 -2
- package/dist/ink-ui/screens/ReplScreen.d.ts +4 -3
- package/dist/ink-ui/screens/ReplScreen.d.ts.map +1 -1
- package/dist/ink-ui/screens/ReplScreen.js +103 -31
- package/dist/ink-ui/screens/ReplScreen.js.map +1 -1
- package/dist/memory/relevant-finder.d.ts +2 -1
- package/dist/memory/relevant-finder.d.ts.map +1 -1
- package/dist/memory/relevant-finder.js +17 -8
- package/dist/memory/relevant-finder.js.map +1 -1
- package/dist/memory/semantic-config.d.ts +9 -0
- package/dist/memory/semantic-config.d.ts.map +1 -0
- package/dist/memory/semantic-config.js +16 -0
- package/dist/memory/semantic-config.js.map +1 -0
- package/dist/memory/semantic-search.d.ts +1 -6
- package/dist/memory/semantic-search.d.ts.map +1 -1
- package/dist/memory/semantic-search.js +3 -15
- package/dist/memory/semantic-search.js.map +1 -1
- package/dist/memory/storage.d.ts +23 -0
- package/dist/memory/storage.d.ts.map +1 -1
- package/dist/memory/storage.js +116 -9
- package/dist/memory/storage.js.map +1 -1
- package/dist/memory/validation.d.ts +3 -0
- package/dist/memory/validation.d.ts.map +1 -1
- package/dist/memory/validation.js +123 -10
- package/dist/memory/validation.js.map +1 -1
- package/dist/memory/vector-store.d.ts +30 -0
- package/dist/memory/vector-store.d.ts.map +1 -1
- package/dist/memory/vector-store.js +160 -21
- package/dist/memory/vector-store.js.map +1 -1
- package/dist/migration/command.d.ts.map +1 -1
- package/dist/migration/command.js +0 -1
- package/dist/migration/command.js.map +1 -1
- package/dist/migration/migrate.d.ts.map +1 -1
- package/dist/migration/migrate.js +59 -107
- package/dist/migration/migrate.js.map +1 -1
- package/dist/migration/types.d.ts +0 -1
- package/dist/migration/types.d.ts.map +1 -1
- package/dist/print-ui/launch.d.ts +13 -3
- package/dist/print-ui/launch.d.ts.map +1 -1
- package/dist/print-ui/launch.js +28 -3
- package/dist/print-ui/launch.js.map +1 -1
- package/dist/product/environment.d.ts +3 -5
- package/dist/product/environment.d.ts.map +1 -1
- package/dist/product/environment.js +4 -32
- package/dist/product/environment.js.map +1 -1
- package/dist/product/index.d.ts +1 -1
- package/dist/product/index.d.ts.map +1 -1
- package/dist/product/index.js +1 -3
- package/dist/product/index.js.map +1 -1
- package/dist/product/paths.d.ts.map +1 -1
- package/dist/product/paths.js +16 -11
- package/dist/product/paths.js.map +1 -1
- package/dist/runtime/agent-runtime-controller.d.ts +4 -2
- package/dist/runtime/agent-runtime-controller.d.ts.map +1 -1
- package/dist/runtime/agent-runtime-controller.js +129 -15
- package/dist/runtime/agent-runtime-controller.js.map +1 -1
- package/dist/runtime/agent-runtime-protocol.d.ts +15 -0
- package/dist/runtime/agent-runtime-protocol.d.ts.map +1 -1
- package/dist/runtime/agent-runtime-protocol.js +6 -0
- package/dist/runtime/agent-runtime-protocol.js.map +1 -1
- package/dist/runtime/chat-checkpoint.d.ts +17 -0
- package/dist/runtime/chat-checkpoint.d.ts.map +1 -0
- package/dist/runtime/chat-checkpoint.js +108 -0
- package/dist/runtime/chat-checkpoint.js.map +1 -0
- package/dist/runtime/chat-controller.d.ts +10 -51
- package/dist/runtime/chat-controller.d.ts.map +1 -1
- package/dist/runtime/chat-controller.js +256 -1070
- package/dist/runtime/chat-controller.js.map +1 -1
- package/dist/runtime/chat-effort.d.ts +5 -0
- package/dist/runtime/chat-effort.d.ts.map +1 -0
- package/dist/runtime/chat-effort.js +47 -0
- package/dist/runtime/chat-effort.js.map +1 -0
- package/dist/runtime/chat-presentation.d.ts +60 -0
- package/dist/runtime/chat-presentation.d.ts.map +1 -0
- package/dist/runtime/chat-presentation.js +537 -0
- package/dist/runtime/chat-presentation.js.map +1 -0
- package/dist/runtime/chat-trace.d.ts +52 -0
- package/dist/runtime/chat-trace.d.ts.map +1 -0
- package/dist/runtime/chat-trace.js +234 -0
- package/dist/runtime/chat-trace.js.map +1 -0
- package/dist/runtime/chat-workspace.d.ts +22 -0
- package/dist/runtime/chat-workspace.d.ts.map +1 -0
- package/dist/runtime/chat-workspace.js +154 -0
- package/dist/runtime/chat-workspace.js.map +1 -0
- package/dist/runtime/goals/accounting.js +1 -1
- package/dist/runtime/goals/accounting.js.map +1 -1
- package/dist/runtime/goals/completion-audit.d.ts.map +1 -1
- package/dist/runtime/goals/completion-audit.js +5 -4
- package/dist/runtime/goals/completion-audit.js.map +1 -1
- package/dist/runtime/goals/coordinator.d.ts +3 -0
- package/dist/runtime/goals/coordinator.d.ts.map +1 -1
- package/dist/runtime/goals/coordinator.js +56 -2
- package/dist/runtime/goals/coordinator.js.map +1 -1
- package/dist/runtime/goals/prompt.d.ts +1 -1
- package/dist/runtime/goals/prompt.d.ts.map +1 -1
- package/dist/runtime/goals/prompt.js +4 -3
- package/dist/runtime/goals/prompt.js.map +1 -1
- package/dist/runtime/goals/tools.d.ts +32 -8
- package/dist/runtime/goals/tools.d.ts.map +1 -1
- package/dist/runtime/goals/tools.js +187 -11
- package/dist/runtime/goals/tools.js.map +1 -1
- package/dist/runtime/goals/types.d.ts +9 -0
- package/dist/runtime/goals/types.d.ts.map +1 -1
- package/dist/runtime/goals/types.js +1 -0
- package/dist/runtime/goals/types.js.map +1 -1
- package/dist/runtime/loop-budget.d.ts +2 -2
- package/dist/runtime/rich-text/markdown-parser.d.ts +2 -0
- package/dist/runtime/rich-text/markdown-parser.d.ts.map +1 -1
- package/dist/runtime/rich-text/markdown-parser.js +50 -10
- package/dist/runtime/rich-text/markdown-parser.js.map +1 -1
- package/dist/runtime/subagents/index.d.ts +2 -2
- package/dist/runtime/subagents/index.d.ts.map +1 -1
- package/dist/runtime/subagents/index.js +2 -1
- package/dist/runtime/subagents/index.js.map +1 -1
- package/dist/runtime/subagents/policy.d.ts +1 -1
- package/dist/runtime/subagents/policy.d.ts.map +1 -1
- package/dist/runtime/subagents/policy.js.map +1 -1
- package/dist/runtime/subagents/presets.d.ts +2 -2
- package/dist/runtime/subagents/research-artifact.d.ts +7 -0
- package/dist/runtime/subagents/research-artifact.d.ts.map +1 -1
- package/dist/runtime/subagents/research-artifact.js +73 -27
- package/dist/runtime/subagents/research-artifact.js.map +1 -1
- package/dist/runtime/subagents/research-contract.d.ts +18 -4
- package/dist/runtime/subagents/research-contract.d.ts.map +1 -1
- package/dist/runtime/subagents/research-contract.js +122 -17
- package/dist/runtime/subagents/research-contract.js.map +1 -1
- package/dist/runtime/subagents/research-renderer.d.ts +27 -11
- package/dist/runtime/subagents/research-renderer.d.ts.map +1 -1
- package/dist/runtime/subagents/research-renderer.js +34 -2
- package/dist/runtime/subagents/research-renderer.js.map +1 -1
- package/dist/runtime/subagents/result-parser.d.ts +1 -5
- package/dist/runtime/subagents/result-parser.d.ts.map +1 -1
- package/dist/runtime/subagents/result-parser.js +5 -72
- package/dist/runtime/subagents/result-parser.js.map +1 -1
- package/dist/runtime/subagents/runtime-integration.d.ts +13 -7
- package/dist/runtime/subagents/runtime-integration.d.ts.map +1 -1
- package/dist/runtime/subagents/runtime-integration.js +112 -2
- package/dist/runtime/subagents/runtime-integration.js.map +1 -1
- package/dist/runtime/subagents/supervisor.d.ts +15 -1
- package/dist/runtime/subagents/supervisor.d.ts.map +1 -1
- package/dist/runtime/subagents/supervisor.js +58 -3
- package/dist/runtime/subagents/supervisor.js.map +1 -1
- package/dist/runtime/subagents/tool.d.ts +2 -2
- package/dist/runtime/subagents/tool.d.ts.map +1 -1
- package/dist/runtime/subagents/tool.js +129 -9
- package/dist/runtime/subagents/tool.js.map +1 -1
- package/dist/runtime/subagents/types.d.ts +20 -0
- package/dist/runtime/subagents/types.d.ts.map +1 -1
- package/dist/runtime/subagents/types.js.map +1 -1
- package/dist/runtime/subagents/web-research-adapter.d.ts +4 -2
- package/dist/runtime/subagents/web-research-adapter.d.ts.map +1 -1
- package/dist/runtime/subagents/web-research-adapter.js +81 -15
- package/dist/runtime/subagents/web-research-adapter.js.map +1 -1
- package/dist/runtime/ui-events.d.ts +36 -8
- package/dist/runtime/ui-events.d.ts.map +1 -1
- package/dist/runtime/ui-events.js.map +1 -1
- package/dist/runtime/ui-view-model.d.ts +53 -4
- package/dist/runtime/ui-view-model.d.ts.map +1 -1
- package/dist/runtime/ui-view-model.js +190 -10
- package/dist/runtime/ui-view-model.js.map +1 -1
- package/dist/services/agent-runner.d.ts +5 -2
- package/dist/services/agent-runner.d.ts.map +1 -1
- package/dist/services/agent-runner.js +18 -18
- package/dist/services/agent-runner.js.map +1 -1
- package/dist/services/atomic-write.d.ts +9 -1
- package/dist/services/atomic-write.d.ts.map +1 -1
- package/dist/services/atomic-write.js +55 -2
- package/dist/services/atomic-write.js.map +1 -1
- package/dist/services/auth/auth.d.ts +11 -7
- package/dist/services/auth/auth.d.ts.map +1 -1
- package/dist/services/auth/auth.js +117 -31
- package/dist/services/auth/auth.js.map +1 -1
- package/dist/services/auth/aws.d.ts +2 -0
- package/dist/services/auth/aws.d.ts.map +1 -1
- package/dist/services/auth/aws.js +126 -12
- package/dist/services/auth/aws.js.map +1 -1
- package/dist/services/auth/index.d.ts +1 -1
- package/dist/services/auth/index.d.ts.map +1 -1
- package/dist/services/auth/index.js +2 -1
- package/dist/services/auth/index.js.map +1 -1
- package/dist/services/auto-fix/autoFixConfig.d.ts +0 -3
- package/dist/services/auto-fix/autoFixConfig.d.ts.map +1 -1
- package/dist/services/auto-fix/autoFixConfig.js +25 -8
- package/dist/services/auto-fix/autoFixConfig.js.map +1 -1
- package/dist/services/auto-fix/autoFixHook.d.ts +7 -0
- package/dist/services/auto-fix/autoFixHook.d.ts.map +1 -1
- package/dist/services/auto-fix/autoFixHook.js +10 -1
- package/dist/services/auto-fix/autoFixHook.js.map +1 -1
- package/dist/services/compact/auto-compact.d.ts +2 -0
- package/dist/services/compact/auto-compact.d.ts.map +1 -1
- package/dist/services/compact/auto-compact.js +15 -1
- package/dist/services/compact/auto-compact.js.map +1 -1
- package/dist/services/compact/compact.d.ts.map +1 -1
- package/dist/services/compact/compact.js +9 -11
- package/dist/services/compact/compact.js.map +1 -1
- package/dist/services/compact/summary-generator.d.ts.map +1 -1
- package/dist/services/compact/summary-generator.js +28 -4
- package/dist/services/compact/summary-generator.js.map +1 -1
- package/dist/services/compact/tool-call-groups.d.ts +19 -0
- package/dist/services/compact/tool-call-groups.d.ts.map +1 -0
- package/dist/services/compact/tool-call-groups.js +105 -0
- package/dist/services/compact/tool-call-groups.js.map +1 -0
- package/dist/services/concurrent-sessions.d.ts +4 -0
- package/dist/services/concurrent-sessions.d.ts.map +1 -1
- package/dist/services/concurrent-sessions.js +59 -12
- package/dist/services/concurrent-sessions.js.map +1 -1
- package/dist/services/config.d.ts +8 -4
- package/dist/services/config.d.ts.map +1 -1
- package/dist/services/config.js +15 -71
- package/dist/services/config.js.map +1 -1
- package/dist/services/doctor.d.ts +2 -2
- package/dist/services/doctor.js.map +1 -1
- package/dist/services/effort.d.ts +40 -0
- package/dist/services/effort.d.ts.map +1 -0
- package/dist/services/effort.js +88 -0
- package/dist/services/effort.js.map +1 -0
- package/dist/services/file-glob.d.ts.map +1 -1
- package/dist/services/file-glob.js +22 -2
- package/dist/services/file-glob.js.map +1 -1
- package/dist/services/file-lock.d.ts +7 -0
- package/dist/services/file-lock.d.ts.map +1 -0
- package/dist/services/file-lock.js +193 -0
- package/dist/services/file-lock.js.map +1 -0
- package/dist/services/global-config.d.ts +9 -0
- package/dist/services/global-config.d.ts.map +1 -1
- package/dist/services/global-config.js +79 -4
- package/dist/services/global-config.js.map +1 -1
- package/dist/services/goal-storage.d.ts.map +1 -1
- package/dist/services/goal-storage.js +35 -11
- package/dist/services/goal-storage.js.map +1 -1
- package/dist/services/llm.d.ts +35 -17
- package/dist/services/llm.d.ts.map +1 -1
- package/dist/services/llm.js +249 -113
- package/dist/services/llm.js.map +1 -1
- package/dist/services/mcp/transports.d.ts +0 -1
- package/dist/services/mcp/transports.d.ts.map +1 -1
- package/dist/services/mcp/transports.js +12 -13
- package/dist/services/mcp/transports.js.map +1 -1
- package/dist/services/model-context.d.ts +8 -0
- package/dist/services/model-context.d.ts.map +1 -1
- package/dist/services/model-context.js +111 -7
- package/dist/services/model-context.js.map +1 -1
- package/dist/services/model-registry.d.ts +3 -0
- package/dist/services/model-registry.d.ts.map +1 -1
- package/dist/services/model-registry.js +59 -2
- package/dist/services/model-registry.js.map +1 -1
- package/dist/services/provider-diagnostics.d.ts +1 -1
- package/dist/services/provider-diagnostics.d.ts.map +1 -1
- package/dist/services/provider-diagnostics.js +30 -16
- package/dist/services/provider-diagnostics.js.map +1 -1
- package/dist/services/provider-resilience/coordinator.d.ts +8 -3
- package/dist/services/provider-resilience/coordinator.d.ts.map +1 -1
- package/dist/services/provider-resilience/coordinator.js +86 -19
- package/dist/services/provider-resilience/coordinator.js.map +1 -1
- package/dist/services/provider-resilience/error-classifier.d.ts +1 -0
- package/dist/services/provider-resilience/error-classifier.d.ts.map +1 -1
- package/dist/services/provider-resilience/error-classifier.js +50 -26
- package/dist/services/provider-resilience/error-classifier.js.map +1 -1
- package/dist/services/provider-resilience/index.d.ts +3 -3
- package/dist/services/provider-resilience/index.d.ts.map +1 -1
- package/dist/services/provider-resilience/index.js +3 -1
- package/dist/services/provider-resilience/index.js.map +1 -1
- package/dist/services/provider-resilience/request-gate.d.ts +6 -0
- package/dist/services/provider-resilience/request-gate.d.ts.map +1 -1
- package/dist/services/provider-resilience/request-gate.js +24 -9
- package/dist/services/provider-resilience/request-gate.js.map +1 -1
- package/dist/services/provider-resilience/types.d.ts +10 -1
- package/dist/services/provider-resilience/types.d.ts.map +1 -1
- package/dist/services/provider-resilience/types.js.map +1 -1
- package/dist/services/redaction.d.ts.map +1 -1
- package/dist/services/redaction.js +29 -1
- package/dist/services/redaction.js.map +1 -1
- package/dist/services/session-index.d.ts.map +1 -1
- package/dist/services/session-index.js +75 -44
- package/dist/services/session-index.js.map +1 -1
- package/dist/services/session-memory/sessionMemory.d.ts.map +1 -1
- package/dist/services/session-memory/sessionMemory.js +6 -3
- package/dist/services/session-memory/sessionMemory.js.map +1 -1
- package/dist/services/session-storage.d.ts +12 -0
- package/dist/services/session-storage.d.ts.map +1 -1
- package/dist/services/session-storage.js +301 -230
- package/dist/services/session-storage.js.map +1 -1
- package/dist/services/storage-maintenance.d.ts.map +1 -1
- package/dist/services/storage-maintenance.js +25 -7
- package/dist/services/storage-maintenance.js.map +1 -1
- package/dist/services/task-manager.d.ts +6 -1
- package/dist/services/task-manager.d.ts.map +1 -1
- package/dist/services/task-manager.js +18 -4
- package/dist/services/task-manager.js.map +1 -1
- package/dist/services/tool-allowlist.d.ts +20 -10
- package/dist/services/tool-allowlist.d.ts.map +1 -1
- package/dist/services/tool-allowlist.js +64 -15
- package/dist/services/tool-allowlist.js.map +1 -1
- package/dist/services/usage-state.d.ts +10 -0
- package/dist/services/usage-state.d.ts.map +1 -1
- package/dist/services/usage-state.js +116 -45
- package/dist/services/usage-state.js.map +1 -1
- package/dist/services/verification-profile.d.ts.map +1 -1
- package/dist/services/verification-profile.js +23 -3
- package/dist/services/verification-profile.js.map +1 -1
- package/dist/services/workspace-diff.d.ts +14 -0
- package/dist/services/workspace-diff.d.ts.map +1 -1
- package/dist/services/workspace-diff.js +60 -11
- package/dist/services/workspace-diff.js.map +1 -1
- package/dist/services/yaml-config.d.ts.map +1 -1
- package/dist/services/yaml-config.js +2 -1
- package/dist/services/yaml-config.js.map +1 -1
- package/dist/skills/loader.d.ts.map +1 -1
- package/dist/skills/loader.js +23 -9
- package/dist/skills/loader.js.map +1 -1
- package/dist/skills/runtime.d.ts +3 -3
- package/dist/skills/runtime.d.ts.map +1 -1
- package/dist/skills/runtime.js +37 -4
- package/dist/skills/runtime.js.map +1 -1
- package/dist/skills/types.d.ts +1 -1
- package/dist/skills/types.d.ts.map +1 -1
- package/dist/terminal-ui/launch.d.ts +26 -8
- package/dist/terminal-ui/launch.d.ts.map +1 -1
- package/dist/terminal-ui/launch.js +82 -39
- package/dist/terminal-ui/launch.js.map +1 -1
- package/dist/tools/bash_security.d.ts +17 -0
- package/dist/tools/bash_security.d.ts.map +1 -1
- package/dist/tools/bash_security.js +233 -27
- package/dist/tools/bash_security.js.map +1 -1
- package/dist/tools/git.d.ts +8 -8
- package/dist/tools/git.d.ts.map +1 -1
- package/dist/tools/git.js +248 -55
- package/dist/tools/git.js.map +1 -1
- package/dist/tools/index.d.ts +13 -3
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +262 -30
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/lsp.d.ts +74 -6
- package/dist/tools/lsp.d.ts.map +1 -1
- package/dist/tools/lsp.js +24 -5
- package/dist/tools/lsp.js.map +1 -1
- package/dist/tools/mcp.d.ts +11 -4
- package/dist/tools/mcp.d.ts.map +1 -1
- package/dist/tools/mcp.js +99 -3
- package/dist/tools/mcp.js.map +1 -1
- package/dist/tools/plan.d.ts +4 -4
- package/dist/tools/sandbox.d.ts +5 -1
- package/dist/tools/sandbox.d.ts.map +1 -1
- package/dist/tools/sandbox.js +29 -13
- package/dist/tools/sandbox.js.map +1 -1
- package/dist/tools/todo.d.ts +3 -3
- package/dist/tools/web.d.ts +15 -4
- package/dist/tools/web.d.ts.map +1 -1
- package/dist/tools/web.js +240 -26
- package/dist/tools/web.js.map +1 -1
- package/dist/tui-ui/launch.d.ts +3 -3
- package/dist/tui-ui/launch.d.ts.map +1 -1
- package/dist/tui-ui/launch.js +3 -3
- package/dist/tui-ui/launch.js.map +1 -1
- package/dist/tui-ui/layout.d.ts.map +1 -1
- package/dist/tui-ui/layout.js +19 -5
- package/dist/tui-ui/layout.js.map +1 -1
- package/dist/tui-ui/pickers.d.ts.map +1 -1
- package/dist/tui-ui/pickers.js +1 -0
- package/dist/tui-ui/pickers.js.map +1 -1
- package/dist/tui-ui/runner.d.ts +2 -1
- package/dist/tui-ui/runner.d.ts.map +1 -1
- package/dist/tui-ui/runner.js +18 -29
- package/dist/tui-ui/runner.js.map +1 -1
- package/dist/tui-ui/state.d.ts +13 -1
- package/dist/tui-ui/state.d.ts.map +1 -1
- package/dist/tui-ui/state.js +28 -1
- package/dist/tui-ui/state.js.map +1 -1
- package/dist/ui/markdown.js.map +1 -1
- package/dist/utils/debug-log.d.ts +3 -3
- package/dist/utils/debug-log.d.ts.map +1 -1
- package/dist/utils/debug-log.js +7 -4
- package/dist/utils/debug-log.js.map +1 -1
- package/dist/utils/json.d.ts +6 -0
- package/dist/utils/json.d.ts.map +1 -0
- package/dist/utils/json.js +66 -0
- package/dist/utils/json.js.map +1 -0
- package/dist/utils/mask.d.ts +8 -1
- package/dist/utils/mask.d.ts.map +1 -1
- package/dist/utils/mask.js +10 -12
- package/dist/utils/mask.js.map +1 -1
- package/dist/utils/observability.d.ts +22 -0
- package/dist/utils/observability.d.ts.map +1 -0
- package/dist/utils/observability.js +80 -0
- package/dist/utils/observability.js.map +1 -0
- package/dist/utils/token-estimate.d.ts +8 -0
- package/dist/utils/token-estimate.d.ts.map +1 -1
- package/dist/utils/token-estimate.js +30 -17
- package/dist/utils/token-estimate.js.map +1 -1
- package/package.json +9 -8
|
@@ -0,0 +1,617 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/** Handler implementations for the context-tool-command-handlers boundary. */
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.handleTodos = handleTodos;
|
|
8
|
+
exports.showHarness = showHarness;
|
|
9
|
+
exports.handleSkills = handleSkills;
|
|
10
|
+
exports.handleSkill = handleSkill;
|
|
11
|
+
exports.handleMemory = handleMemory;
|
|
12
|
+
exports.handleTools = handleTools;
|
|
13
|
+
exports.handleEditPreview = handleEditPreview;
|
|
14
|
+
exports.handleMcp = handleMcp;
|
|
15
|
+
exports.showSafety = showSafety;
|
|
16
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
17
|
+
const errors_1 = require("../utils/errors");
|
|
18
|
+
const framework_1 = require("../framework");
|
|
19
|
+
const tools_1 = require("../tools");
|
|
20
|
+
const mcp_1 = require("../tools/mcp");
|
|
21
|
+
const session_storage_1 = require("../services/session-storage");
|
|
22
|
+
const auto_compact_1 = require("../services/compact/auto-compact");
|
|
23
|
+
const skills_1 = require("../skills");
|
|
24
|
+
const model_context_1 = require("../services/model-context");
|
|
25
|
+
const validation_1 = require("../memory/validation");
|
|
26
|
+
const ACCENT = chalk_1.default.hex('#00D4AA');
|
|
27
|
+
const DIM = chalk_1.default.dim;
|
|
28
|
+
const ERROR = chalk_1.default.red;
|
|
29
|
+
const WARN = chalk_1.default.yellow;
|
|
30
|
+
const SUCCESS = chalk_1.default.green;
|
|
31
|
+
const HEADER = chalk_1.default.cyan.bold;
|
|
32
|
+
function formatTokenCount(tokens) {
|
|
33
|
+
if (tokens >= 1000000)
|
|
34
|
+
return `${(tokens / 1000000).toFixed(1)}M`;
|
|
35
|
+
if (tokens >= 1000)
|
|
36
|
+
return `${Math.round(tokens / 1000)}K`;
|
|
37
|
+
return String(tokens);
|
|
38
|
+
}
|
|
39
|
+
function formatThreshold(value) {
|
|
40
|
+
return `${Math.round(value * 100)}%`;
|
|
41
|
+
}
|
|
42
|
+
function snapshotCurrentModel(ctx) {
|
|
43
|
+
return ctx.store.getSnapshot().currentModel || ctx.config.model;
|
|
44
|
+
}
|
|
45
|
+
function getCommandAutoCompact(ctx, modelId) {
|
|
46
|
+
if (ctx.compactCoordinator) {
|
|
47
|
+
ctx.compactCoordinator.configure({
|
|
48
|
+
modelId,
|
|
49
|
+
llm: ctx.llm,
|
|
50
|
+
outputReserveTokens: ctx.llm?.getMaxTokens?.(),
|
|
51
|
+
});
|
|
52
|
+
return ctx.compactCoordinator.getAutomatic();
|
|
53
|
+
}
|
|
54
|
+
return (0, auto_compact_1.getAutoCompact)({ modelId });
|
|
55
|
+
}
|
|
56
|
+
function showMemory(ctx) {
|
|
57
|
+
console.log();
|
|
58
|
+
console.log(HEADER('Memory Status'));
|
|
59
|
+
console.log(DIM('─'.repeat(40)));
|
|
60
|
+
const memStatus = ctx.runtime.memory.getStatus();
|
|
61
|
+
const storeStats = ctx.runtime.store.getStats();
|
|
62
|
+
console.log();
|
|
63
|
+
console.log(HEADER(' Inline MemorySystem:'));
|
|
64
|
+
console.log(` Working ${memStatus.working} / ${ctx.runtime.config.memory.workingCapacity}`);
|
|
65
|
+
console.log(` Short-term ${memStatus['short-term']} / ${ctx.runtime.config.memory.shortTermCapacity}`);
|
|
66
|
+
console.log(` Long-term ${memStatus['long-term']} entries`);
|
|
67
|
+
console.log();
|
|
68
|
+
console.log(HEADER(' Modular MemoryStore:'));
|
|
69
|
+
console.log(` Working ${storeStats.working}`);
|
|
70
|
+
console.log(` Short-term ${storeStats['short-term']}`);
|
|
71
|
+
console.log(` Long-term ${storeStats['long-term']} entries`);
|
|
72
|
+
console.log();
|
|
73
|
+
return { success: true };
|
|
74
|
+
}
|
|
75
|
+
async function handleMemoryReindex(_ctx) {
|
|
76
|
+
const { isSemanticEnabled, getSemanticSearchService } = require('../memory/semantic-search');
|
|
77
|
+
if (!isSemanticEnabled()) {
|
|
78
|
+
console.log();
|
|
79
|
+
console.log(WARN('⚠ Semantic search is not enabled.'));
|
|
80
|
+
console.log(DIM(' Set ORION_CODE_EMBEDDING_PROVIDER=ollama or openai to enable.'));
|
|
81
|
+
console.log();
|
|
82
|
+
return { success: false };
|
|
83
|
+
}
|
|
84
|
+
console.log();
|
|
85
|
+
console.log(HEADER('Reindexing project memories...'));
|
|
86
|
+
try {
|
|
87
|
+
const service = getSemanticSearchService();
|
|
88
|
+
const count = await service.indexExistingMemories(process.cwd());
|
|
89
|
+
console.log(SUCCESS(`✔ Indexed ${count} memories`));
|
|
90
|
+
}
|
|
91
|
+
catch (err) {
|
|
92
|
+
console.log(ERROR(`✗ Reindex failed: ${(0, errors_1.errorMessage)(err)}`));
|
|
93
|
+
return { success: false };
|
|
94
|
+
}
|
|
95
|
+
console.log();
|
|
96
|
+
return { success: true };
|
|
97
|
+
}
|
|
98
|
+
function handleMemoryValidate(_ctx) {
|
|
99
|
+
console.log();
|
|
100
|
+
console.log(HEADER('Validating project memories...'));
|
|
101
|
+
try {
|
|
102
|
+
const results = (0, validation_1.validateAllMemories)(process.cwd());
|
|
103
|
+
let driftCount = 0;
|
|
104
|
+
let incompleteCount = 0;
|
|
105
|
+
for (const [name, result] of results) {
|
|
106
|
+
if (!result.symbolScanComplete)
|
|
107
|
+
incompleteCount += 1;
|
|
108
|
+
for (const drift of result.drifts) {
|
|
109
|
+
driftCount += 1;
|
|
110
|
+
console.log(WARN(` ${name}: ${drift.message}`));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
if (incompleteCount > 0) {
|
|
114
|
+
console.log(WARN(`⚠ Symbol scan reached a safety limit for ${incompleteCount} memory entr${incompleteCount === 1 ? 'y' : 'ies'}; missing symbols were not inferred.`));
|
|
115
|
+
}
|
|
116
|
+
if (driftCount > 0) {
|
|
117
|
+
console.log(ERROR(`✗ Found ${driftCount} stale memory reference(s)`));
|
|
118
|
+
console.log();
|
|
119
|
+
return { success: false };
|
|
120
|
+
}
|
|
121
|
+
console.log(SUCCESS(`✔ ${results.size} memories validated`));
|
|
122
|
+
console.log();
|
|
123
|
+
return { success: incompleteCount === 0 };
|
|
124
|
+
}
|
|
125
|
+
catch (err) {
|
|
126
|
+
console.log(ERROR(`✗ Memory validation failed: ${(0, errors_1.errorMessage)(err)}`));
|
|
127
|
+
console.log();
|
|
128
|
+
return { success: false };
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
async function handleMemory(ctx, args) {
|
|
132
|
+
const sub = args.trim().toLowerCase();
|
|
133
|
+
if (sub === 'validate') {
|
|
134
|
+
return handleMemoryValidate(ctx);
|
|
135
|
+
}
|
|
136
|
+
if (sub === 'reindex') {
|
|
137
|
+
return handleMemoryReindex(ctx);
|
|
138
|
+
}
|
|
139
|
+
return showMemory(ctx);
|
|
140
|
+
}
|
|
141
|
+
function showSafety(ctx) {
|
|
142
|
+
console.log();
|
|
143
|
+
console.log(HEADER('Safety Checker'));
|
|
144
|
+
console.log(DIM('─'.repeat(40)));
|
|
145
|
+
const policy = ctx.runtime.safety.getPolicy();
|
|
146
|
+
const summary = ctx.runtime.safety.getAuditSummary();
|
|
147
|
+
console.log();
|
|
148
|
+
console.log(` Enabled ${policy.enabled ? SUCCESS('yes') : ERROR('no')}`);
|
|
149
|
+
console.log(` Sandbox ${policy.sandboxMode ? WARN('on') : DIM('off')}`);
|
|
150
|
+
console.log();
|
|
151
|
+
console.log(` Blocked patterns:`);
|
|
152
|
+
for (const pattern of policy.blocked) {
|
|
153
|
+
console.log(` ${ERROR('✗')} ${DIM(pattern)}`);
|
|
154
|
+
}
|
|
155
|
+
console.log();
|
|
156
|
+
console.log(` Dangerous patterns:`);
|
|
157
|
+
for (const pattern of policy.dangerousPatterns) {
|
|
158
|
+
console.log(` ${WARN('⚠')} ${DIM(pattern)}`);
|
|
159
|
+
}
|
|
160
|
+
console.log();
|
|
161
|
+
console.log(` Audit summary: ${summary.total} checks | ${SUCCESS(`${summary.passed} passed`)} | ${ERROR(`${summary.blocked} blocked`)}`);
|
|
162
|
+
console.log();
|
|
163
|
+
return { success: true };
|
|
164
|
+
}
|
|
165
|
+
function showHarness(ctx, args = '') {
|
|
166
|
+
const lines = [];
|
|
167
|
+
const console = {
|
|
168
|
+
log: (...values) => {
|
|
169
|
+
lines.push(values.map(value => String(value)).join(' '));
|
|
170
|
+
},
|
|
171
|
+
};
|
|
172
|
+
const result = () => ({ success: true, output: lines.join('\n') });
|
|
173
|
+
const explain = args.trim().toLowerCase() === 'explain';
|
|
174
|
+
console.log();
|
|
175
|
+
console.log(HEADER(explain ? 'Harness Explain' : 'Harness'));
|
|
176
|
+
console.log(DIM('─'.repeat(40)));
|
|
177
|
+
const cfg = ctx.runtime.harness.getConfig();
|
|
178
|
+
console.log();
|
|
179
|
+
if (!explain) {
|
|
180
|
+
console.log(` Max steps ${cfg.maxSteps}`);
|
|
181
|
+
console.log(` Boundary check ${cfg.boundaryCheck ? SUCCESS('on') : ERROR('off')}`);
|
|
182
|
+
console.log(` Goal constraint ${cfg.goalConstraint ? SUCCESS('on') : ERROR('off')}`);
|
|
183
|
+
console.log(` Result validate ${cfg.resultValidation ? SUCCESS('on') : ERROR('off')}`);
|
|
184
|
+
console.log(` Sandbox ${cfg.sandbox ? WARN('on') : DIM('off')}`);
|
|
185
|
+
console.log(` Timeout ${cfg.timeout}ms`);
|
|
186
|
+
console.log(` Blocked actions ${DIM(cfg.blockedActions.join(', ') || 'none')}`);
|
|
187
|
+
}
|
|
188
|
+
const state = ctx.store.getSnapshot().harnessState;
|
|
189
|
+
if (!state) {
|
|
190
|
+
console.log();
|
|
191
|
+
console.log(DIM(' No Context Harness state for this session yet.'));
|
|
192
|
+
console.log();
|
|
193
|
+
return result();
|
|
194
|
+
}
|
|
195
|
+
if (explain) {
|
|
196
|
+
// Build explain output from harnessState in store
|
|
197
|
+
const contract = state.contract;
|
|
198
|
+
// Contract section
|
|
199
|
+
console.log(HEADER(' Contract'));
|
|
200
|
+
if (contract) {
|
|
201
|
+
console.log(` Objective ${ACCENT(contract.objective || '(none)')}`);
|
|
202
|
+
if (contract.requirements?.length) {
|
|
203
|
+
console.log(` Requires ${DIM(contract.requirements.slice(0, 3).join(' | '))}`);
|
|
204
|
+
}
|
|
205
|
+
if (contract.prohibitions?.length) {
|
|
206
|
+
console.log(` Prohibits ${WARN(contract.prohibitions.slice(0, 3).join(' | '))}`);
|
|
207
|
+
}
|
|
208
|
+
if (contract.successCriteria?.length) {
|
|
209
|
+
console.log(` Success ${DIM(contract.successCriteria.slice(0, 3).join(' | '))}`);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
console.log(DIM(' (no contract established)'));
|
|
214
|
+
}
|
|
215
|
+
console.log();
|
|
216
|
+
// Context source
|
|
217
|
+
console.log(HEADER(' Context Source'));
|
|
218
|
+
const session = ctx.getSession?.() ?? (ctx.sessionId ? (0, session_storage_1.loadSessionMeta)(ctx.sessionId) : null);
|
|
219
|
+
const isRestored = session?.transcriptDisplayStartTime != null;
|
|
220
|
+
const isCompactActive = Boolean(state.promptAssemblyStats);
|
|
221
|
+
console.log(` Root ${ACCENT(state.rootObjective || contract?.objective || '(none)')}`);
|
|
222
|
+
console.log(` Active ${DIM(state.activeInstruction || contract?.userIntent || '(none)')}`);
|
|
223
|
+
console.log(` Source ${isRestored ? WARN('restored session') : DIM('live turn')}`);
|
|
224
|
+
if (isRestored && session) {
|
|
225
|
+
const restoredTime = session.transcriptDisplayStartTime
|
|
226
|
+
? new Date(session.transcriptDisplayStartTime).toLocaleString()
|
|
227
|
+
: 'unknown';
|
|
228
|
+
console.log(` Restored ${DIM(restoredTime)}`);
|
|
229
|
+
}
|
|
230
|
+
if (isCompactActive) {
|
|
231
|
+
console.log(` Compact ${SUCCESS('active')}`);
|
|
232
|
+
}
|
|
233
|
+
console.log();
|
|
234
|
+
// Evidence index summary
|
|
235
|
+
console.log(HEADER(' Evidence Index'));
|
|
236
|
+
const evidenceItems = state.evidenceIndex?.length ?? 0;
|
|
237
|
+
const evidenceKinds = new Map();
|
|
238
|
+
if (state.evidenceIndex) {
|
|
239
|
+
for (const item of state.evidenceIndex) {
|
|
240
|
+
const kind = item.kind || 'unknown';
|
|
241
|
+
evidenceKinds.set(kind, (evidenceKinds.get(kind) || 0) + 1);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
console.log(` Total ${ACCENT(String(evidenceItems))} items`);
|
|
245
|
+
if (evidenceKinds.size > 0) {
|
|
246
|
+
const kinds = Array.from(evidenceKinds.entries())
|
|
247
|
+
.sort((a, b) => b[1] - a[1])
|
|
248
|
+
.slice(0, 10);
|
|
249
|
+
for (const [kind, count] of kinds) {
|
|
250
|
+
console.log(` ${DIM(kind.padEnd(16))} ${count}`);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
else {
|
|
254
|
+
console.log(DIM(' (no evidence records yet)'));
|
|
255
|
+
}
|
|
256
|
+
console.log();
|
|
257
|
+
// Intent history
|
|
258
|
+
console.log(HEADER(' Recent Intents'));
|
|
259
|
+
const intents = state.intentHistory?.slice(-5) ?? [];
|
|
260
|
+
if (intents.length > 0) {
|
|
261
|
+
for (const intent of intents) {
|
|
262
|
+
const conf = intent.confidence != null ? ` (${Math.round(intent.confidence * 100)}%)` : '';
|
|
263
|
+
console.log(` ${ACCENT(intent.kind)}${DIM(conf)} ${DIM(intent.summary?.slice(0, 50) || '')}`);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
console.log(DIM(' (no intents recorded)'));
|
|
268
|
+
}
|
|
269
|
+
console.log();
|
|
270
|
+
// Capsule snapshot
|
|
271
|
+
console.log(HEADER(' Capsule'));
|
|
272
|
+
const capsule = state.capsule;
|
|
273
|
+
if (capsule) {
|
|
274
|
+
console.log(` Next ${DIM(capsule.nextAction)}`);
|
|
275
|
+
if (capsule.completed?.length) {
|
|
276
|
+
console.log(` Done ${SUCCESS(`${capsule.completed.length} steps`)}`);
|
|
277
|
+
}
|
|
278
|
+
if (capsule.openTodos?.length) {
|
|
279
|
+
console.log(` Open ${WARN(`${capsule.openTodos.length} todos`)}`);
|
|
280
|
+
}
|
|
281
|
+
if (capsule.changedFiles?.length) {
|
|
282
|
+
console.log(` Files ${DIM(capsule.changedFiles.slice(0, 5).join(', '))}`);
|
|
283
|
+
}
|
|
284
|
+
const passed = capsule.verification?.passed?.length ?? 0;
|
|
285
|
+
const failed = capsule.verification?.failed?.length ?? 0;
|
|
286
|
+
console.log(` Verify ${SUCCESS(`${passed} passed`)} / ${failed > 0 ? ERROR(`${failed} failed`) : DIM('0 failed')}`);
|
|
287
|
+
}
|
|
288
|
+
else {
|
|
289
|
+
console.log(DIM(' (no capsule yet)'));
|
|
290
|
+
}
|
|
291
|
+
console.log();
|
|
292
|
+
// Prompt assembly stats
|
|
293
|
+
const stats = state.promptAssemblyStats;
|
|
294
|
+
console.log(HEADER(' Prompt Assembly'));
|
|
295
|
+
if (stats) {
|
|
296
|
+
console.log(` Model ${ACCENT(stats.modelId)}`);
|
|
297
|
+
console.log(` Budget ${DIM(`${stats.estimatedTokens}/${stats.budgetTokens} tokens`)}`);
|
|
298
|
+
console.log(` Sections ${DIM(stats.sections.join(', ') || 'none')}`);
|
|
299
|
+
console.log(` Ledger ${DIM(`${state.ledger?.length ?? 0} entries`)}`);
|
|
300
|
+
console.log(` Evidence ${DIM(`${state.evidenceIndex?.length ?? 0} records`)}`);
|
|
301
|
+
console.log(` Turns ${DIM(`${state.turnSummaries?.length ?? 0} summaries`)}`);
|
|
302
|
+
console.log();
|
|
303
|
+
console.log(HEADER(' Included Evidence'));
|
|
304
|
+
for (const item of stats.includedEvidence.slice(0, 10)) {
|
|
305
|
+
console.log(` ${ACCENT(item.id)} ${DIM(`[${item.kind}] score=${item.score} tokens=${item.tokens}`)}`);
|
|
306
|
+
console.log(` ${DIM(item.reason)}`);
|
|
307
|
+
}
|
|
308
|
+
if (stats.includedEvidence.length === 0) {
|
|
309
|
+
console.log(DIM(' none'));
|
|
310
|
+
}
|
|
311
|
+
if (stats.omittedEvidence.length > 0) {
|
|
312
|
+
console.log();
|
|
313
|
+
console.log(HEADER(' Omitted Evidence'));
|
|
314
|
+
for (const item of stats.omittedEvidence.slice(0, 8)) {
|
|
315
|
+
console.log(` ${DIM(item.id)} ${DIM(`[${item.kind}] score=${item.score} tokens=${item.tokens}`)}`);
|
|
316
|
+
console.log(` ${DIM(item.reason)}`);
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
else {
|
|
321
|
+
console.log(DIM(' No prompt assembly stats recorded yet. Run a chat turn first.'));
|
|
322
|
+
}
|
|
323
|
+
console.log();
|
|
324
|
+
console.log(HEADER(' Auto Compact'));
|
|
325
|
+
const compactStats = getCommandAutoCompact(ctx, state.promptAssemblyStats?.modelId ?? snapshotCurrentModel(ctx)).getStats();
|
|
326
|
+
const contextInfo = (0, model_context_1.resolveModelContext)(compactStats.modelId);
|
|
327
|
+
console.log(` Model ${ACCENT(compactStats.modelId)}`);
|
|
328
|
+
console.log(` Window ${DIM(`${formatTokenCount(contextInfo.contextWindow)} tokens (${contextInfo.source}${contextInfo.source === 'fuzzy' ? `:${contextInfo.matchedId}` : ''})`)}`);
|
|
329
|
+
console.log(` Thresholds ${DIM(`predict ${formatThreshold(compactStats.predictiveCompactThreshold)}, hard ${formatThreshold(compactStats.threshold)}, prewarm ${formatThreshold(compactStats.preCompactThreshold)}`)}`);
|
|
330
|
+
console.log(` Usage ${DIM(`${compactStats.lastTokenCount} tokens, ${compactStats.ctxPercent}%`)}`);
|
|
331
|
+
console.log(` Armed ${compactStats.preCompactArmed ? SUCCESS('yes') : DIM('no')}`);
|
|
332
|
+
console.log(` Last mode ${DIM(compactStats.lastCompactMode ?? 'none')}`);
|
|
333
|
+
console.log();
|
|
334
|
+
return result();
|
|
335
|
+
}
|
|
336
|
+
console.log();
|
|
337
|
+
console.log(HEADER(' Context State'));
|
|
338
|
+
console.log(` Version ${ACCENT(String(state.version ?? 1))}`);
|
|
339
|
+
console.log(` Epoch ${ACCENT(String(state.taskEpoch ?? 1))}`);
|
|
340
|
+
console.log(` Objective ${ACCENT(state.rootObjective ?? state.contract?.objective ?? '(none)')}`);
|
|
341
|
+
console.log(` Active ${DIM(state.activeInstruction ?? state.contract?.userIntent ?? '(none)')}`);
|
|
342
|
+
console.log(` Ledger ${DIM(`${state.ledger.length} entries`)}`);
|
|
343
|
+
console.log(` Evidence ${DIM(`${state.evidenceIndex?.length ?? 0} records`)}`);
|
|
344
|
+
console.log(` Turns ${DIM(`${state.turnSummaries?.length ?? 0} summaries`)}`);
|
|
345
|
+
if (state.activeConstraints && state.activeConstraints.length > 0) {
|
|
346
|
+
console.log(` Constraints ${DIM(state.activeConstraints.slice(0, 3).join(' | '))}`);
|
|
347
|
+
}
|
|
348
|
+
if (state.capsule) {
|
|
349
|
+
console.log(` Next ${DIM(state.capsule.nextAction)}`);
|
|
350
|
+
const passed = state.capsule.verification.passed.length;
|
|
351
|
+
const failed = state.capsule.verification.failed.length;
|
|
352
|
+
console.log(` Verify ${SUCCESS(`${passed} passed`)} / ${failed > 0 ? ERROR(`${failed} failed`) : DIM('0 failed')}`);
|
|
353
|
+
}
|
|
354
|
+
if (state.diagnostics && state.diagnostics.length > 0) {
|
|
355
|
+
console.log(` Diagnostics ${WARN(state.diagnostics.slice(-2).join(' | '))}`);
|
|
356
|
+
}
|
|
357
|
+
console.log();
|
|
358
|
+
return result();
|
|
359
|
+
}
|
|
360
|
+
function handleSkills(_ctx) {
|
|
361
|
+
console.log();
|
|
362
|
+
console.log(HEADER('Loaded Skills'));
|
|
363
|
+
console.log(DIM('─'.repeat(40)));
|
|
364
|
+
try {
|
|
365
|
+
const registry = (0, skills_1.getSkillsRegistry)();
|
|
366
|
+
const summary = registry.getSummary();
|
|
367
|
+
if (summary.count === 0) {
|
|
368
|
+
console.log();
|
|
369
|
+
console.log(DIM(' No skills loaded.'));
|
|
370
|
+
console.log(DIM(' Place SKILL.md files in ~/.orion-code/skills/<name>/ or .orion-code/skills/<name>/'));
|
|
371
|
+
console.log();
|
|
372
|
+
return { success: true };
|
|
373
|
+
}
|
|
374
|
+
console.log();
|
|
375
|
+
console.log(` Total ${SUCCESS(summary.count)} skills (${WARN(summary.autoCount)} auto-trigger)`);
|
|
376
|
+
console.log();
|
|
377
|
+
for (const skill of registry.getAllSkills()) {
|
|
378
|
+
const source = registry.getSource(skill.name);
|
|
379
|
+
const sourceType = source?.type || 'unknown';
|
|
380
|
+
const resourceRoot = skill.resourceRoot || skill.source || source?.path;
|
|
381
|
+
const skillFile = resourceRoot
|
|
382
|
+
? `${resourceRoot.replace(/\/SKILL\.md$/i, '')}/SKILL.md`
|
|
383
|
+
: source?.skillFile;
|
|
384
|
+
console.log(` ${ACCENT(skill.name)} ${DIM(`(${sourceType})`)}`);
|
|
385
|
+
console.log(` ${DIM(skill.description || '(no description)')}`);
|
|
386
|
+
if (skillFile)
|
|
387
|
+
console.log(` ${DIM(`SKILL.md ${skillFile}`)}`);
|
|
388
|
+
if (resourceRoot)
|
|
389
|
+
console.log(` ${DIM(`Root ${resourceRoot}`)}`);
|
|
390
|
+
}
|
|
391
|
+
console.log();
|
|
392
|
+
}
|
|
393
|
+
catch (err) {
|
|
394
|
+
console.log(ERROR(`✗ ${(0, errors_1.errorMessage)(err)}`));
|
|
395
|
+
return { success: false };
|
|
396
|
+
}
|
|
397
|
+
return { success: true };
|
|
398
|
+
}
|
|
399
|
+
function handleSkill(ctx, args) {
|
|
400
|
+
const trimmed = args.trim();
|
|
401
|
+
const registry = (0, skills_1.getSkillsRegistry)();
|
|
402
|
+
registry.initialize();
|
|
403
|
+
if (!trimmed) {
|
|
404
|
+
const names = registry
|
|
405
|
+
.getAllSkills()
|
|
406
|
+
.map(skill => skill.name)
|
|
407
|
+
.sort();
|
|
408
|
+
return {
|
|
409
|
+
success: false,
|
|
410
|
+
error: ['Usage: /skill <name> <task>', `Loaded skills: ${names.join(', ') || 'none'}`].join('\n'),
|
|
411
|
+
};
|
|
412
|
+
}
|
|
413
|
+
const parsed = (0, skills_1.parseSkillCommandInput)(`/skill ${trimmed}`);
|
|
414
|
+
const rawName = trimmed.split(/\s+/, 1)[0] || '';
|
|
415
|
+
const requestedName = parsed.skillName || (0, skills_1.normalizeRequestedSkillName)(rawName);
|
|
416
|
+
const referencedSkill = (0, skills_1.loadExplicitSkillReference)(`/skill ${trimmed}`, ctx.cwd);
|
|
417
|
+
if (parsed.skillPath && !referencedSkill) {
|
|
418
|
+
return {
|
|
419
|
+
success: false,
|
|
420
|
+
error: `Invalid skill reference: ${parsed.skillPath}`,
|
|
421
|
+
};
|
|
422
|
+
}
|
|
423
|
+
const skill = referencedSkill ||
|
|
424
|
+
registry
|
|
425
|
+
.getAllSkills()
|
|
426
|
+
.find(candidate => (0, skills_1.skillActivationNames)(candidate).some(name => (0, skills_1.normalizeRequestedSkillName)(name) === requestedName));
|
|
427
|
+
if (!skill) {
|
|
428
|
+
const suggestions = registry
|
|
429
|
+
.getAllSkills()
|
|
430
|
+
.map(candidate => candidate.name)
|
|
431
|
+
.filter(name => name.includes(requestedName) || requestedName.includes(name))
|
|
432
|
+
.slice(0, 5);
|
|
433
|
+
return {
|
|
434
|
+
success: false,
|
|
435
|
+
error: suggestions.length > 0
|
|
436
|
+
? `Unknown skill: ${rawName}\nDid you mean: ${suggestions.join(', ')}?`
|
|
437
|
+
: `Unknown skill: ${rawName}`,
|
|
438
|
+
};
|
|
439
|
+
}
|
|
440
|
+
const task = parsed.task;
|
|
441
|
+
const source = registry.getSource(skill.name);
|
|
442
|
+
const resourceRoot = skill.resourceRoot || skill.source || source?.path;
|
|
443
|
+
const skillFile = resourceRoot
|
|
444
|
+
? `${resourceRoot.replace(/\/SKILL\.md$/i, '')}/SKILL.md`
|
|
445
|
+
: source?.skillFile;
|
|
446
|
+
if (!task) {
|
|
447
|
+
const usageSelector = parsed.skillPath
|
|
448
|
+
? `[$${skill.name}](${formatSkillReferencePath(parsed.skillPath)})`
|
|
449
|
+
: skill.name;
|
|
450
|
+
return {
|
|
451
|
+
success: true,
|
|
452
|
+
output: [
|
|
453
|
+
parsed.skillPath
|
|
454
|
+
? `Skill reference ${skill.name} is valid for one turn.`
|
|
455
|
+
: `Skill ${skill.name} is loaded.`,
|
|
456
|
+
skillFile ? `SKILL.md ${skillFile}` : '',
|
|
457
|
+
resourceRoot ? `Root ${resourceRoot}` : '',
|
|
458
|
+
`Use: /skill ${usageSelector} <task>`,
|
|
459
|
+
]
|
|
460
|
+
.filter(Boolean)
|
|
461
|
+
.join('\n'),
|
|
462
|
+
};
|
|
463
|
+
}
|
|
464
|
+
return {
|
|
465
|
+
success: true,
|
|
466
|
+
continueAsChat: true,
|
|
467
|
+
chatInput: parsed.skillPath
|
|
468
|
+
? `/skill [$${skill.name}](${formatSkillReferencePath(parsed.skillPath)}) ${task}`
|
|
469
|
+
: `/skill ${skill.name} ${task}`,
|
|
470
|
+
};
|
|
471
|
+
}
|
|
472
|
+
function formatSkillReferencePath(path) {
|
|
473
|
+
return /[\s()]/u.test(path) ? `<${path}>` : path;
|
|
474
|
+
}
|
|
475
|
+
function handleMcp(_ctx) {
|
|
476
|
+
console.log();
|
|
477
|
+
console.log(HEADER('MCP Servers'));
|
|
478
|
+
console.log(DIM('─'.repeat(40)));
|
|
479
|
+
const status = mcp_1.mcpManager.getStatus();
|
|
480
|
+
if (status.length === 0) {
|
|
481
|
+
console.log();
|
|
482
|
+
console.log(DIM(' No servers configured. Add to ~/.orion-code/mcp.json'));
|
|
483
|
+
console.log();
|
|
484
|
+
return { success: true };
|
|
485
|
+
}
|
|
486
|
+
console.log();
|
|
487
|
+
for (const s of status) {
|
|
488
|
+
const stateLabel = s.dead
|
|
489
|
+
? ERROR('dead')
|
|
490
|
+
: s.connected
|
|
491
|
+
? SUCCESS('connected')
|
|
492
|
+
: WARN('disconnected');
|
|
493
|
+
console.log(` ${ACCENT(s.name.padEnd(20))} ${stateLabel} ${DIM(`${s.toolCount} tools`)}`);
|
|
494
|
+
}
|
|
495
|
+
console.log();
|
|
496
|
+
return { success: true };
|
|
497
|
+
}
|
|
498
|
+
function handleTools(ctx) {
|
|
499
|
+
const tools = ctx.store.getSnapshot().tools.length > 0 ? ctx.store.getSnapshot().tools : (0, tools_1.getRuntimeTools)();
|
|
500
|
+
const staticTools = tools.filter(tool => !tool.name.startsWith('mcp__'));
|
|
501
|
+
const mcpTools = tools.filter(tool => tool.name.startsWith('mcp__'));
|
|
502
|
+
console.log();
|
|
503
|
+
console.log(HEADER('Available Tools'));
|
|
504
|
+
console.log(DIM('─'.repeat(40)));
|
|
505
|
+
console.log(` Static tools ${ACCENT(String(staticTools.length))}`);
|
|
506
|
+
console.log(` MCP tools ${ACCENT(String(mcpTools.length))}`);
|
|
507
|
+
console.log();
|
|
508
|
+
const visible = [...staticTools, ...mcpTools].slice(0, 28);
|
|
509
|
+
for (const tool of visible) {
|
|
510
|
+
const label = tool.name.startsWith('mcp__') ? 'mcp' : 'tool';
|
|
511
|
+
console.log(` ${ACCENT(tool.name)} ${DIM(`[${label}]`)}`);
|
|
512
|
+
console.log(` ${DIM(tool.description.slice(0, 96))}`);
|
|
513
|
+
}
|
|
514
|
+
if (tools.length > visible.length) {
|
|
515
|
+
console.log();
|
|
516
|
+
console.log(DIM(` ... ${tools.length - visible.length} more tools hidden`));
|
|
517
|
+
}
|
|
518
|
+
console.log();
|
|
519
|
+
return { success: true };
|
|
520
|
+
}
|
|
521
|
+
function handleTodos(ctx) {
|
|
522
|
+
const todos = ctx.store.getSnapshot().todos;
|
|
523
|
+
console.log();
|
|
524
|
+
console.log(HEADER('Todos'));
|
|
525
|
+
console.log(DIM('─'.repeat(40)));
|
|
526
|
+
if (todos.length === 0) {
|
|
527
|
+
console.log(DIM(' No active todos yet.'));
|
|
528
|
+
console.log();
|
|
529
|
+
return { success: true };
|
|
530
|
+
}
|
|
531
|
+
for (const todo of todos) {
|
|
532
|
+
const marker = todo.status === 'completed'
|
|
533
|
+
? SUCCESS('✓')
|
|
534
|
+
: todo.status === 'in_progress'
|
|
535
|
+
? WARN('›')
|
|
536
|
+
: DIM('○');
|
|
537
|
+
console.log(` ${marker} ${todo.content}`);
|
|
538
|
+
if (todo.activeForm && todo.activeForm !== todo.content) {
|
|
539
|
+
console.log(` ${DIM(todo.activeForm)}`);
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
console.log();
|
|
543
|
+
return { success: true };
|
|
544
|
+
}
|
|
545
|
+
async function handleEditPreview(ctx) {
|
|
546
|
+
const lastEdit = (0, framework_1.getToolState)().lastEditFileArgs;
|
|
547
|
+
if (!lastEdit) {
|
|
548
|
+
console.log(ERROR('No previous edit_file call found for preview'));
|
|
549
|
+
console.log(DIM('Run an edit_file tool call first, then use /edit-preview to inspect the match candidates.'));
|
|
550
|
+
console.log();
|
|
551
|
+
return { success: false };
|
|
552
|
+
}
|
|
553
|
+
const hasMetadata = Boolean(lastEdit.sessionId || lastEdit.turnId);
|
|
554
|
+
if (!hasMetadata) {
|
|
555
|
+
console.log(WARN('Using legacy edit-preview state without session/turn tags. Running preview as best-effort.'));
|
|
556
|
+
}
|
|
557
|
+
const staleBySession = Boolean(lastEdit.sessionId && ctx.sessionId && lastEdit.sessionId !== ctx.sessionId);
|
|
558
|
+
const staleByTurn = Boolean(lastEdit.turnId != null && ctx.turnId != null && String(lastEdit.turnId) !== String(ctx.turnId));
|
|
559
|
+
if (staleBySession || staleByTurn) {
|
|
560
|
+
const mismatch = [];
|
|
561
|
+
if (staleBySession)
|
|
562
|
+
mismatch.push(`session ${lastEdit.sessionId} vs ${ctx.sessionId}`);
|
|
563
|
+
if (staleByTurn)
|
|
564
|
+
mismatch.push(`turn ${String(lastEdit.turnId)} vs ${String(ctx.turnId)}`);
|
|
565
|
+
console.log(ERROR('Edit preview target does not match current context.'));
|
|
566
|
+
console.log(DIM(`Stale edit target: ${mismatch.join(', ')}.`));
|
|
567
|
+
console.log();
|
|
568
|
+
return { success: false };
|
|
569
|
+
}
|
|
570
|
+
if (hasMetadata && !(ctx.sessionId || ctx.turnId)) {
|
|
571
|
+
console.log(WARN('Edit preview context is available, but current command context is missing session/turn metadata.'));
|
|
572
|
+
console.log(DIM('Preview is allowed, but stale checks cannot be fully validated.'));
|
|
573
|
+
}
|
|
574
|
+
const rawResult = await (0, tools_1.executeTool)('edit_file', {
|
|
575
|
+
...lastEdit,
|
|
576
|
+
preview: true,
|
|
577
|
+
}, ctx.abortSignal, {
|
|
578
|
+
cwd: ctx.cwd,
|
|
579
|
+
config: {
|
|
580
|
+
name: ctx.config.name,
|
|
581
|
+
mode: ctx.config.mode,
|
|
582
|
+
},
|
|
583
|
+
sessionId: ctx.sessionId,
|
|
584
|
+
turnId: ctx.turnId,
|
|
585
|
+
});
|
|
586
|
+
let parsed;
|
|
587
|
+
try {
|
|
588
|
+
parsed = JSON.parse(rawResult);
|
|
589
|
+
}
|
|
590
|
+
catch {
|
|
591
|
+
parsed = { success: false, error: rawResult };
|
|
592
|
+
}
|
|
593
|
+
console.log();
|
|
594
|
+
console.log(HEADER('Edit Preview'));
|
|
595
|
+
console.log(DIM('─'.repeat(40)));
|
|
596
|
+
if (parsed.success) {
|
|
597
|
+
console.log(parsed.output || DIM('No preview output'));
|
|
598
|
+
}
|
|
599
|
+
else {
|
|
600
|
+
console.log(ERROR(parsed.error || 'Preview failed'));
|
|
601
|
+
}
|
|
602
|
+
console.log();
|
|
603
|
+
// Return structured data for terminal/TUI/Ink picker rendering.
|
|
604
|
+
if (parsed.success && parsed.metadata?.candidates && Array.isArray(parsed.metadata.candidates)) {
|
|
605
|
+
return {
|
|
606
|
+
success: true,
|
|
607
|
+
editPreview: {
|
|
608
|
+
path: lastEdit.path,
|
|
609
|
+
newString: lastEdit.new_string,
|
|
610
|
+
kind: (lastEdit.fuzzy_match ? 'fuzzy' : 'exact'),
|
|
611
|
+
candidates: parsed.metadata.candidates,
|
|
612
|
+
},
|
|
613
|
+
};
|
|
614
|
+
}
|
|
615
|
+
return { success: parsed.success === true };
|
|
616
|
+
}
|
|
617
|
+
//# sourceMappingURL=context-tool-command-handlers.js.map
|