@orion-agents/orion-code 0.1.1 → 0.1.3
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 +165 -68
- package/README.zh-CN.md +252 -212
- package/dist/cli.js +13 -17
- package/dist/cli.js.map +1 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +381 -168
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/target-command.d.ts.map +1 -1
- package/dist/commands/target-command.js +42 -8
- package/dist/commands/target-command.js.map +1 -1
- package/dist/commands/types.d.ts +3 -1
- package/dist/commands/types.d.ts.map +1 -1
- package/dist/commands/types.js.map +1 -1
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +2 -2
- package/dist/core/agent.js.map +1 -1
- package/dist/framework/external-assertion.d.ts +65 -0
- package/dist/framework/external-assertion.d.ts.map +1 -0
- package/dist/framework/external-assertion.js +571 -0
- package/dist/framework/external-assertion.js.map +1 -0
- package/dist/framework/index.d.ts +6 -4
- package/dist/framework/index.d.ts.map +1 -1
- package/dist/framework/index.js +4 -1
- package/dist/framework/index.js.map +1 -1
- package/dist/framework/query.d.ts +18 -1
- package/dist/framework/query.d.ts.map +1 -1
- package/dist/framework/query.js +43 -23
- package/dist/framework/query.js.map +1 -1
- package/dist/framework/tool-scheduler.d.ts +63 -1
- package/dist/framework/tool-scheduler.d.ts.map +1 -1
- package/dist/framework/tool-scheduler.js +183 -51
- package/dist/framework/tool-scheduler.js.map +1 -1
- package/dist/framework/tool-serializer.d.ts.map +1 -1
- package/dist/framework/tool-serializer.js +20 -4
- package/dist/framework/tool-serializer.js.map +1 -1
- package/dist/framework/tool.d.ts +17 -5
- package/dist/framework/tool.d.ts.map +1 -1
- package/dist/framework/tool.js +2 -0
- package/dist/framework/tool.js.map +1 -1
- package/dist/harness/safety.d.ts.map +1 -1
- package/dist/harness/safety.js +19 -3
- package/dist/harness/safety.js.map +1 -1
- package/dist/init.d.ts +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +115 -34
- package/dist/init.js.map +1 -1
- package/dist/ink-ui/screens/ReplScreen.d.ts +2 -1
- package/dist/ink-ui/screens/ReplScreen.d.ts.map +1 -1
- package/dist/ink-ui/screens/ReplScreen.js +65 -0
- package/dist/ink-ui/screens/ReplScreen.js.map +1 -1
- package/dist/memory/storage.d.ts.map +1 -1
- package/dist/memory/storage.js +1 -0
- package/dist/memory/storage.js.map +1 -1
- package/dist/memory/store.d.ts.map +1 -1
- package/dist/memory/store.js +11 -5
- package/dist/memory/store.js.map +1 -1
- package/dist/print-ui/launch.d.ts +6 -1
- package/dist/print-ui/launch.d.ts.map +1 -1
- package/dist/print-ui/launch.js +109 -9
- package/dist/print-ui/launch.js.map +1 -1
- package/dist/product/identity.d.ts +2 -2
- package/dist/product/identity.d.ts.map +1 -1
- package/dist/product/identity.js +2 -2
- package/dist/product/identity.js.map +1 -1
- package/dist/product/index.d.ts +2 -1
- package/dist/product/index.d.ts.map +1 -1
- package/dist/product/index.js +5 -1
- package/dist/product/index.js.map +1 -1
- package/dist/product/version.d.ts +12 -0
- package/dist/product/version.d.ts.map +1 -0
- package/dist/product/version.js +31 -0
- package/dist/product/version.js.map +1 -0
- package/dist/runtime/agent-runtime-controller.d.ts +35 -0
- package/dist/runtime/agent-runtime-controller.d.ts.map +1 -1
- package/dist/runtime/agent-runtime-controller.js +975 -149
- package/dist/runtime/agent-runtime-controller.js.map +1 -1
- package/dist/runtime/agent-runtime-protocol.d.ts +20 -3
- package/dist/runtime/agent-runtime-protocol.d.ts.map +1 -1
- package/dist/runtime/agent-runtime-protocol.js +12 -0
- package/dist/runtime/agent-runtime-protocol.js.map +1 -1
- package/dist/runtime/chat-controller.d.ts +12 -0
- package/dist/runtime/chat-controller.d.ts.map +1 -1
- package/dist/runtime/chat-controller.js +213 -19
- package/dist/runtime/chat-controller.js.map +1 -1
- package/dist/runtime/goals/accounting.d.ts +28 -0
- package/dist/runtime/goals/accounting.d.ts.map +1 -1
- package/dist/runtime/goals/accounting.js +69 -0
- package/dist/runtime/goals/accounting.js.map +1 -1
- package/dist/runtime/goals/completion-audit.d.ts +13 -8
- package/dist/runtime/goals/completion-audit.d.ts.map +1 -1
- package/dist/runtime/goals/completion-audit.js +598 -16
- package/dist/runtime/goals/completion-audit.js.map +1 -1
- package/dist/runtime/goals/coordinator.d.ts +44 -5
- package/dist/runtime/goals/coordinator.d.ts.map +1 -1
- package/dist/runtime/goals/coordinator.js +1124 -58
- package/dist/runtime/goals/coordinator.js.map +1 -1
- package/dist/runtime/goals/evidence.d.ts +37 -0
- package/dist/runtime/goals/evidence.d.ts.map +1 -0
- package/dist/runtime/goals/evidence.js +300 -0
- package/dist/runtime/goals/evidence.js.map +1 -0
- package/dist/runtime/goals/presentation.d.ts +4 -0
- package/dist/runtime/goals/presentation.d.ts.map +1 -0
- package/dist/runtime/goals/presentation.js +50 -0
- package/dist/runtime/goals/presentation.js.map +1 -0
- package/dist/runtime/goals/prompt.d.ts.map +1 -1
- package/dist/runtime/goals/prompt.js +38 -8
- package/dist/runtime/goals/prompt.js.map +1 -1
- package/dist/runtime/goals/tools.d.ts +18 -1
- package/dist/runtime/goals/tools.d.ts.map +1 -1
- package/dist/runtime/goals/tools.js +310 -30
- package/dist/runtime/goals/tools.js.map +1 -1
- package/dist/runtime/goals/types.d.ts +247 -7
- package/dist/runtime/goals/types.d.ts.map +1 -1
- package/dist/runtime/goals/types.js +8 -2
- package/dist/runtime/goals/types.js.map +1 -1
- package/dist/runtime/subagents/child-executor-guard.d.ts +12 -4
- package/dist/runtime/subagents/child-executor-guard.d.ts.map +1 -1
- package/dist/runtime/subagents/child-executor-guard.js +397 -61
- package/dist/runtime/subagents/child-executor-guard.js.map +1 -1
- package/dist/runtime/subagents/presets.d.ts +4 -5
- package/dist/runtime/subagents/presets.d.ts.map +1 -1
- package/dist/runtime/subagents/presets.js +18 -33
- package/dist/runtime/subagents/presets.js.map +1 -1
- package/dist/runtime/subagents/production.d.ts +3 -1
- package/dist/runtime/subagents/production.d.ts.map +1 -1
- package/dist/runtime/subagents/production.js +37 -7
- package/dist/runtime/subagents/production.js.map +1 -1
- package/dist/runtime/subagents/runner.d.ts.map +1 -1
- package/dist/runtime/subagents/runner.js +24 -3
- package/dist/runtime/subagents/runner.js.map +1 -1
- package/dist/runtime/subagents/runtime-integration.d.ts +3 -0
- package/dist/runtime/subagents/runtime-integration.d.ts.map +1 -1
- package/dist/runtime/subagents/runtime-integration.js +18 -7
- package/dist/runtime/subagents/runtime-integration.js.map +1 -1
- package/dist/runtime/subagents/supervisor.d.ts +4 -4
- package/dist/runtime/subagents/supervisor.d.ts.map +1 -1
- package/dist/runtime/subagents/supervisor.js +39 -19
- package/dist/runtime/subagents/supervisor.js.map +1 -1
- package/dist/runtime/subagents/types.d.ts +7 -0
- package/dist/runtime/subagents/types.d.ts.map +1 -1
- package/dist/runtime/subagents/types.js +12 -1
- package/dist/runtime/subagents/types.js.map +1 -1
- package/dist/runtime/turn-controller.d.ts.map +1 -1
- package/dist/runtime/turn-controller.js +3 -1
- package/dist/runtime/turn-controller.js.map +1 -1
- package/dist/runtime/ui-events.d.ts +23 -0
- package/dist/runtime/ui-events.d.ts.map +1 -1
- package/dist/runtime/ui-events.js +5 -5
- package/dist/runtime/ui-events.js.map +1 -1
- package/dist/services/config.d.ts +1 -1
- package/dist/services/config.d.ts.map +1 -1
- package/dist/services/config.js +55 -49
- package/dist/services/config.js.map +1 -1
- package/dist/services/doctor.d.ts.map +1 -1
- package/dist/services/doctor.js +163 -17
- package/dist/services/doctor.js.map +1 -1
- package/dist/services/global-config.d.ts +31 -0
- package/dist/services/global-config.d.ts.map +1 -1
- package/dist/services/global-config.js.map +1 -1
- package/dist/services/goal-storage.d.ts +9 -4
- package/dist/services/goal-storage.d.ts.map +1 -1
- package/dist/services/goal-storage.js +1113 -75
- package/dist/services/goal-storage.js.map +1 -1
- package/dist/services/llm.d.ts +19 -0
- package/dist/services/llm.d.ts.map +1 -1
- package/dist/services/llm.js +153 -20
- package/dist/services/llm.js.map +1 -1
- package/dist/services/model-catalog.d.ts +2 -0
- package/dist/services/model-catalog.d.ts.map +1 -1
- package/dist/services/model-catalog.js +25 -15
- package/dist/services/model-catalog.js.map +1 -1
- package/dist/services/model-context.d.ts.map +1 -1
- package/dist/services/model-context.js +36 -0
- package/dist/services/model-context.js.map +1 -1
- package/dist/services/model-registry.d.ts +1 -1
- package/dist/services/model-registry.d.ts.map +1 -1
- package/dist/services/model-registry.js +101 -19
- package/dist/services/model-registry.js.map +1 -1
- package/dist/services/provider-resilience/coordinator.d.ts +2 -1
- package/dist/services/provider-resilience/coordinator.d.ts.map +1 -1
- package/dist/services/provider-resilience/coordinator.js +7 -6
- package/dist/services/provider-resilience/coordinator.js.map +1 -1
- package/dist/services/provider-resilience/error-classifier.d.ts.map +1 -1
- package/dist/services/provider-resilience/error-classifier.js +67 -17
- package/dist/services/provider-resilience/error-classifier.js.map +1 -1
- package/dist/services/provider-resilience/types.d.ts +1 -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 +9 -1
- package/dist/services/redaction.js.map +1 -1
- package/dist/services/session-storage.d.ts +12 -1
- package/dist/services/session-storage.d.ts.map +1 -1
- package/dist/services/session-storage.js +23 -7
- package/dist/services/session-storage.js.map +1 -1
- package/dist/services/storage-maintenance.d.ts +73 -3
- package/dist/services/storage-maintenance.d.ts.map +1 -1
- package/dist/services/storage-maintenance.js +771 -104
- package/dist/services/storage-maintenance.js.map +1 -1
- package/dist/services/task-manager.d.ts.map +1 -1
- package/dist/services/task-manager.js +2 -2
- package/dist/services/task-manager.js.map +1 -1
- package/dist/services/tool-allowlist.d.ts +100 -0
- package/dist/services/tool-allowlist.d.ts.map +1 -0
- package/dist/services/tool-allowlist.js +250 -0
- package/dist/services/tool-allowlist.js.map +1 -0
- package/dist/services/web-search-adapters.d.ts.map +1 -1
- package/dist/services/web-search-adapters.js +89 -49
- package/dist/services/web-search-adapters.js.map +1 -1
- package/dist/services/web-search-mcp.d.ts.map +1 -1
- package/dist/services/web-search-mcp.js +34 -37
- package/dist/services/web-search-mcp.js.map +1 -1
- package/dist/services/workspace-state.d.ts +4 -0
- package/dist/services/workspace-state.d.ts.map +1 -1
- package/dist/services/workspace-state.js +30 -9
- package/dist/services/workspace-state.js.map +1 -1
- package/dist/terminal-ui/launch.d.ts +24 -2
- package/dist/terminal-ui/launch.d.ts.map +1 -1
- package/dist/terminal-ui/launch.js +166 -8
- package/dist/terminal-ui/launch.js.map +1 -1
- package/dist/tools/git.d.ts +4 -0
- package/dist/tools/git.d.ts.map +1 -1
- package/dist/tools/git.js +585 -30
- package/dist/tools/git.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +79 -11
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/mcp.d.ts.map +1 -1
- package/dist/tools/mcp.js +20 -12
- package/dist/tools/mcp.js.map +1 -1
- package/dist/tools/sandbox.d.ts +139 -0
- package/dist/tools/sandbox.d.ts.map +1 -0
- package/dist/tools/sandbox.js +485 -0
- package/dist/tools/sandbox.js.map +1 -0
- package/dist/tools/web.d.ts.map +1 -1
- package/dist/tools/web.js +149 -54
- package/dist/tools/web.js.map +1 -1
- package/dist/tui-ui/launch.d.ts.map +1 -1
- package/dist/tui-ui/launch.js +46 -8
- 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 +98 -23
- 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 +4 -3
- package/dist/tui-ui/pickers.js.map +1 -1
- package/dist/tui-ui/runner.d.ts +7 -0
- package/dist/tui-ui/runner.d.ts.map +1 -1
- package/dist/tui-ui/runner.js +95 -1
- package/dist/tui-ui/runner.js.map +1 -1
- package/dist/tui-ui/state.d.ts +25 -1
- package/dist/tui-ui/state.d.ts.map +1 -1
- package/dist/tui-ui/state.js +95 -37
- package/dist/tui-ui/state.js.map +1 -1
- package/dist/tui-ui/terminal-image.d.ts +3 -13
- package/dist/tui-ui/terminal-image.d.ts.map +1 -1
- package/dist/tui-ui/terminal-image.js +5 -160
- package/dist/tui-ui/terminal-image.js.map +1 -1
- package/dist/utils/mask.d.ts +28 -0
- package/dist/utils/mask.d.ts.map +1 -0
- package/dist/utils/mask.js +54 -0
- package/dist/utils/mask.js.map +1 -0
- package/package.json +14 -9
- package/dist/core/state.d.ts +0 -94
- package/dist/core/state.d.ts.map +0 -1
- package/dist/core/state.js +0 -178
- package/dist/core/state.js.map +0 -1
- package/dist/ink/bidi.d.ts +0 -16
- package/dist/ink/bidi.d.ts.map +0 -1
- package/dist/ink/bidi.js +0 -124
- package/dist/ink/bidi.js.map +0 -1
- package/dist/ink/clearTerminal.d.ts +0 -14
- package/dist/ink/clearTerminal.d.ts.map +0 -1
- package/dist/ink/clearTerminal.js +0 -63
- package/dist/ink/clearTerminal.js.map +0 -1
- package/dist/ink/colorize.d.ts +0 -17
- package/dist/ink/colorize.d.ts.map +0 -1
- package/dist/ink/colorize.js +0 -208
- package/dist/ink/colorize.js.map +0 -1
- package/dist/ink/components/App.d.ts +0 -73
- package/dist/ink/components/App.d.ts.map +0 -1
- package/dist/ink/components/App.js +0 -646
- package/dist/ink/components/App.js.map +0 -1
- package/dist/ink/components/AppContext.d.ts +0 -12
- package/dist/ink/components/AppContext.d.ts.map +0 -1
- package/dist/ink/components/AppContext.js +0 -14
- package/dist/ink/components/AppContext.js.map +0 -1
- package/dist/ink/components/Box.d.ts +0 -44
- package/dist/ink/components/Box.d.ts.map +0 -1
- package/dist/ink/components/Box.js +0 -191
- package/dist/ink/components/Box.js.map +0 -1
- package/dist/ink/components/ClockContext.d.ts +0 -9
- package/dist/ink/components/ClockContext.d.ts.map +0 -1
- package/dist/ink/components/ClockContext.js +0 -146
- package/dist/ink/components/ClockContext.js.map +0 -1
- package/dist/ink/components/CursorDeclarationContext.d.ts +0 -23
- package/dist/ink/components/CursorDeclarationContext.d.ts.map +0 -1
- package/dist/ink/components/CursorDeclarationContext.js +0 -6
- package/dist/ink/components/CursorDeclarationContext.js.map +0 -1
- package/dist/ink/components/ErrorOverview.d.ts +0 -6
- package/dist/ink/components/ErrorOverview.d.ts.map +0 -1
- package/dist/ink/components/ErrorOverview.js +0 -27
- package/dist/ink/components/ErrorOverview.js.map +0 -1
- package/dist/ink/components/Newline.d.ts +0 -13
- package/dist/ink/components/Newline.d.ts.map +0 -1
- package/dist/ink/components/Newline.js +0 -36
- package/dist/ink/components/Newline.js.map +0 -1
- package/dist/ink/components/NoSelect.d.ts +0 -20
- package/dist/ink/components/NoSelect.d.ts.map +0 -1
- package/dist/ink/components/NoSelect.js +0 -63
- package/dist/ink/components/NoSelect.js.map +0 -1
- package/dist/ink/components/RawAnsi.d.ts +0 -17
- package/dist/ink/components/RawAnsi.d.ts.map +0 -1
- package/dist/ink/components/RawAnsi.js +0 -52
- package/dist/ink/components/RawAnsi.js.map +0 -1
- package/dist/ink/components/Spacer.d.ts +0 -6
- package/dist/ink/components/Spacer.d.ts.map +0 -1
- package/dist/ink/components/Spacer.js +0 -26
- package/dist/ink/components/Spacer.js.map +0 -1
- package/dist/ink/components/StdinContext.d.ts +0 -28
- package/dist/ink/components/StdinContext.d.ts.map +0 -1
- package/dist/ink/components/StdinContext.js +0 -19
- package/dist/ink/components/StdinContext.js.map +0 -1
- package/dist/ink/components/TerminalFocusContext.d.ts +0 -10
- package/dist/ink/components/TerminalFocusContext.d.ts.map +0 -1
- package/dist/ink/components/TerminalFocusContext.js +0 -81
- package/dist/ink/components/TerminalFocusContext.js.map +0 -1
- package/dist/ink/components/TerminalSizeContext.d.ts +0 -6
- package/dist/ink/components/TerminalSizeContext.d.ts.map +0 -1
- package/dist/ink/components/TerminalSizeContext.js +0 -6
- package/dist/ink/components/TerminalSizeContext.js.map +0 -1
- package/dist/ink/components/Text.d.ts +0 -56
- package/dist/ink/components/Text.d.ts.map +0 -1
- package/dist/ink/components/Text.js +0 -201
- package/dist/ink/components/Text.js.map +0 -1
- package/dist/ink/constants.d.ts +0 -2
- package/dist/ink/constants.d.ts.map +0 -1
- package/dist/ink/constants.js +0 -6
- package/dist/ink/constants.js.map +0 -1
- package/dist/ink/devtools.d.ts +0 -3
- package/dist/ink/devtools.d.ts.map +0 -1
- package/dist/ink/devtools.js +0 -5
- package/dist/ink/devtools.js.map +0 -1
- package/dist/ink/dom.d.ts +0 -77
- package/dist/ink/dom.d.ts.map +0 -1
- package/dist/ink/dom.js +0 -322
- package/dist/ink/dom.js.map +0 -1
- package/dist/ink/events/click-event.d.ts +0 -32
- package/dist/ink/events/click-event.d.ts.map +0 -1
- package/dist/ink/events/click-event.js +0 -30
- package/dist/ink/events/click-event.js.map +0 -1
- package/dist/ink/events/dispatcher.d.ts +0 -41
- package/dist/ink/events/dispatcher.d.ts.map +0 -1
- package/dist/ink/events/dispatcher.js +0 -181
- package/dist/ink/events/dispatcher.js.map +0 -1
- package/dist/ink/events/emitter.d.ts +0 -6
- package/dist/ink/events/emitter.d.ts.map +0 -1
- package/dist/ink/events/emitter.js +0 -36
- package/dist/ink/events/emitter.js.map +0 -1
- package/dist/ink/events/event-handlers.d.ts +0 -47
- package/dist/ink/events/event-handlers.d.ts.map +0 -1
- package/dist/ink/events/event-handlers.js +0 -34
- package/dist/ink/events/event-handlers.js.map +0 -1
- package/dist/ink/events/event.d.ts +0 -6
- package/dist/ink/events/event.d.ts.map +0 -1
- package/dist/ink/events/event.js +0 -16
- package/dist/ink/events/event.js.map +0 -1
- package/dist/ink/events/focus-event.d.ts +0 -14
- package/dist/ink/events/focus-event.d.ts.map +0 -1
- package/dist/ink/events/focus-event.js +0 -20
- package/dist/ink/events/focus-event.js.map +0 -1
- package/dist/ink/events/input-event.d.ts +0 -31
- package/dist/ink/events/input-event.d.ts.map +0 -1
- package/dist/ink/events/input-event.js +0 -163
- package/dist/ink/events/input-event.js.map +0 -1
- package/dist/ink/events/keyboard-event.d.ts +0 -20
- package/dist/ink/events/keyboard-event.d.ts.map +0 -1
- package/dist/ink/events/keyboard-event.js +0 -44
- package/dist/ink/events/keyboard-event.js.map +0 -1
- package/dist/ink/events/terminal-event.d.ts +0 -55
- package/dist/ink/events/terminal-event.d.ts.map +0 -1
- package/dist/ink/events/terminal-event.js +0 -79
- package/dist/ink/events/terminal-event.js.map +0 -1
- package/dist/ink/events/terminal-focus-event.d.ts +0 -14
- package/dist/ink/events/terminal-focus-event.d.ts.map +0 -1
- package/dist/ink/events/terminal-focus-event.js +0 -19
- package/dist/ink/events/terminal-focus-event.js.map +0 -1
- package/dist/ink/focus.d.ts +0 -44
- package/dist/ink/focus.d.ts.map +0 -1
- package/dist/ink/focus.js +0 -164
- package/dist/ink/focus.js.map +0 -1
- package/dist/ink/frame.d.ts +0 -95
- package/dist/ink/frame.d.ts.map +0 -1
- package/dist/ink/frame.js +0 -35
- package/dist/ink/frame.js.map +0 -1
- package/dist/ink/get-max-width.d.ts +0 -18
- package/dist/ink/get-max-width.d.ts.map +0 -1
- package/dist/ink/get-max-width.js +0 -26
- package/dist/ink/get-max-width.js.map +0 -1
- package/dist/ink/hit-test.d.ts +0 -34
- package/dist/ink/hit-test.d.ts.map +0 -1
- package/dist/ink/hit-test.js +0 -119
- package/dist/ink/hit-test.js.map +0 -1
- package/dist/ink/hooks/use-animation-frame.d.ts +0 -27
- package/dist/ink/hooks/use-animation-frame.d.ts.map +0 -1
- package/dist/ink/hooks/use-animation-frame.js +0 -52
- package/dist/ink/hooks/use-animation-frame.js.map +0 -1
- package/dist/ink/hooks/use-app.d.ts +0 -6
- package/dist/ink/hooks/use-app.d.ts.map +0 -1
- package/dist/ink/hooks/use-app.js +0 -13
- package/dist/ink/hooks/use-app.js.map +0 -1
- package/dist/ink/hooks/use-declared-cursor.d.ts +0 -27
- package/dist/ink/hooks/use-declared-cursor.d.ts.map +0 -1
- package/dist/ink/hooks/use-declared-cursor.js +0 -67
- package/dist/ink/hooks/use-declared-cursor.js.map +0 -1
- package/dist/ink/hooks/use-input.d.ts +0 -38
- package/dist/ink/hooks/use-input.d.ts.map +0 -1
- package/dist/ink/hooks/use-input.js +0 -86
- package/dist/ink/hooks/use-input.js.map +0 -1
- package/dist/ink/hooks/use-interval.d.ts +0 -19
- package/dist/ink/hooks/use-interval.d.ts.map +0 -1
- package/dist/ink/hooks/use-interval.js +0 -59
- package/dist/ink/hooks/use-interval.js.map +0 -1
- package/dist/ink/hooks/use-search-highlight.d.ts +0 -31
- package/dist/ink/hooks/use-search-highlight.d.ts.map +0 -1
- package/dist/ink/hooks/use-search-highlight.js +0 -39
- package/dist/ink/hooks/use-search-highlight.js.map +0 -1
- package/dist/ink/hooks/use-selection.d.ts +0 -40
- package/dist/ink/hooks/use-selection.d.ts.map +0 -1
- package/dist/ink/hooks/use-selection.js +0 -68
- package/dist/ink/hooks/use-selection.js.map +0 -1
- package/dist/ink/hooks/use-stdin.d.ts +0 -6
- package/dist/ink/hooks/use-stdin.d.ts.map +0 -1
- package/dist/ink/hooks/use-stdin.js +0 -13
- package/dist/ink/hooks/use-stdin.js.map +0 -1
- package/dist/ink/hooks/use-tab-status.d.ts +0 -14
- package/dist/ink/hooks/use-tab-status.d.ts.map +0 -1
- package/dist/ink/hooks/use-tab-status.js +0 -61
- package/dist/ink/hooks/use-tab-status.js.map +0 -1
- package/dist/ink/hooks/use-terminal-focus.d.ts +0 -11
- package/dist/ink/hooks/use-terminal-focus.d.ts.map +0 -1
- package/dist/ink/hooks/use-terminal-focus.js +0 -22
- package/dist/ink/hooks/use-terminal-focus.js.map +0 -1
- package/dist/ink/hooks/use-terminal-title.d.ts +0 -13
- package/dist/ink/hooks/use-terminal-title.d.ts.map +0 -1
- package/dist/ink/hooks/use-terminal-title.js +0 -36
- package/dist/ink/hooks/use-terminal-title.js.map +0 -1
- package/dist/ink/hooks/use-terminal-viewport.d.ts +0 -30
- package/dist/ink/hooks/use-terminal-viewport.d.ts.map +0 -1
- package/dist/ink/hooks/use-terminal-viewport.js +0 -81
- package/dist/ink/hooks/use-terminal-viewport.js.map +0 -1
- package/dist/ink/ink.d.ts +0 -371
- package/dist/ink/ink.d.ts.map +0 -1
- package/dist/ink/ink.js +0 -1686
- package/dist/ink/ink.js.map +0 -1
- package/dist/ink/instances.d.ts +0 -4
- package/dist/ink/instances.d.ts.map +0 -1
- package/dist/ink/instances.js +0 -10
- package/dist/ink/instances.js.map +0 -1
- package/dist/ink/line-width-cache.d.ts +0 -2
- package/dist/ink/line-width-cache.d.ts.map +0 -1
- package/dist/ink/line-width-cache.js +0 -23
- package/dist/ink/line-width-cache.js.map +0 -1
- package/dist/ink/log-update.d.ts +0 -18
- package/dist/ink/log-update.d.ts.map +0 -1
- package/dist/ink/log-update.js +0 -637
- package/dist/ink/log-update.js.map +0 -1
- package/dist/ink/measure-element.d.ts +0 -17
- package/dist/ink/measure-element.d.ts.map +0 -1
- package/dist/ink/measure-element.js +0 -11
- package/dist/ink/measure-element.js.map +0 -1
- package/dist/ink/measure-text.d.ts +0 -7
- package/dist/ink/measure-text.d.ts.map +0 -1
- package/dist/ink/measure-text.js +0 -38
- package/dist/ink/measure-text.js.map +0 -1
- package/dist/ink/node-cache.d.ts +0 -21
- package/dist/ink/node-cache.d.ts.map +0 -1
- package/dist/ink/node-cache.js +0 -36
- package/dist/ink/node-cache.js.map +0 -1
- package/dist/ink/optimizer.d.ts +0 -16
- package/dist/ink/optimizer.d.ts.map +0 -1
- package/dist/ink/optimizer.js +0 -85
- package/dist/ink/optimizer.js.map +0 -1
- package/dist/ink/output.d.ts +0 -120
- package/dist/ink/output.d.ts.map +0 -1
- package/dist/ink/output.js +0 -559
- package/dist/ink/output.js.map +0 -1
- package/dist/ink/parse-keypress.d.ts +0 -112
- package/dist/ink/parse-keypress.d.ts.map +0 -1
- package/dist/ink/parse-keypress.js +0 -719
- package/dist/ink/parse-keypress.js.map +0 -1
- package/dist/ink/parse-keypress.test.d.ts +0 -2
- package/dist/ink/parse-keypress.test.d.ts.map +0 -1
- package/dist/ink/parse-keypress.test.js +0 -37
- package/dist/ink/parse-keypress.test.js.map +0 -1
- package/dist/ink/reconciler.d.ts +0 -12
- package/dist/ink/reconciler.d.ts.map +0 -1
- package/dist/ink/reconciler.js +0 -456
- package/dist/ink/reconciler.js.map +0 -1
- package/dist/ink/render-border.d.ts +0 -25
- package/dist/ink/render-border.d.ts.map +0 -1
- package/dist/ink/render-border.js +0 -141
- package/dist/ink/render-border.js.map +0 -1
- package/dist/ink/render-node-to-output.d.ts +0 -46
- package/dist/ink/render-node-to-output.d.ts.map +0 -1
- package/dist/ink/render-node-to-output.js +0 -1257
- package/dist/ink/render-node-to-output.js.map +0 -1
- package/dist/ink/render-to-screen.d.ts +0 -47
- package/dist/ink/render-to-screen.d.ts.map +0 -1
- package/dist/ink/render-to-screen.js +0 -213
- package/dist/ink/render-to-screen.js.map +0 -1
- package/dist/ink/renderer.d.ts +0 -15
- package/dist/ink/renderer.d.ts.map +0 -1
- package/dist/ink/renderer.js +0 -169
- package/dist/ink/renderer.js.map +0 -1
- package/dist/ink/root.d.ts +0 -75
- package/dist/ink/root.d.ts.map +0 -1
- package/dist/ink/root.js +0 -89
- package/dist/ink/root.js.map +0 -1
- package/dist/ink/screen.d.ts +0 -270
- package/dist/ink/screen.d.ts.map +0 -1
- package/dist/ink/screen.js +0 -1194
- package/dist/ink/screen.js.map +0 -1
- package/dist/ink/searchHighlight.d.ts +0 -21
- package/dist/ink/searchHighlight.d.ts.map +0 -1
- package/dist/ink/searchHighlight.js +0 -82
- package/dist/ink/searchHighlight.js.map +0 -1
- package/dist/ink/selection.d.ts +0 -230
- package/dist/ink/selection.d.ts.map +0 -1
- package/dist/ink/selection.js +0 -814
- package/dist/ink/selection.js.map +0 -1
- package/dist/ink/squash-text-nodes.d.ts +0 -23
- package/dist/ink/squash-text-nodes.d.ts.map +0 -1
- package/dist/ink/squash-text-nodes.js +0 -60
- package/dist/ink/squash-text-nodes.js.map +0 -1
- package/dist/ink/stringWidth.d.ts +0 -2
- package/dist/ink/stringWidth.d.ts.map +0 -1
- package/dist/ink/stringWidth.js +0 -207
- package/dist/ink/stringWidth.js.map +0 -1
- package/dist/ink/styles.d.ts +0 -307
- package/dist/ink/styles.d.ts.map +0 -1
- package/dist/ink/styles.js +0 -302
- package/dist/ink/styles.js.map +0 -1
- package/dist/ink/supports-hyperlinks.d.ts +0 -14
- package/dist/ink/supports-hyperlinks.d.ts.map +0 -1
- package/dist/ink/supports-hyperlinks.js +0 -48
- package/dist/ink/supports-hyperlinks.js.map +0 -1
- package/dist/ink/tabstops.d.ts +0 -2
- package/dist/ink/tabstops.d.ts.map +0 -1
- package/dist/ink/tabstops.js +0 -43
- package/dist/ink/tabstops.js.map +0 -1
- package/dist/ink/terminal-focus-state.d.ts +0 -7
- package/dist/ink/terminal-focus-state.d.ts.map +0 -1
- package/dist/ink/terminal-focus-state.js +0 -43
- package/dist/ink/terminal-focus-state.js.map +0 -1
- package/dist/ink/terminal-querier.d.ts +0 -130
- package/dist/ink/terminal-querier.d.ts.map +0 -1
- package/dist/ink/terminal-querier.js +0 -184
- package/dist/ink/terminal-querier.js.map +0 -1
- package/dist/ink/terminal.d.ts +0 -56
- package/dist/ink/terminal.d.ts.map +0 -1
- package/dist/ink/terminal.js +0 -249
- package/dist/ink/terminal.js.map +0 -1
- package/dist/ink/termio/csi.d.ts +0 -166
- package/dist/ink/termio/csi.d.ts.map +0 -1
- package/dist/ink/termio/csi.js +0 -285
- package/dist/ink/termio/csi.js.map +0 -1
- package/dist/ink/termio/dec.d.ts +0 -38
- package/dist/ink/termio/dec.d.ts.map +0 -1
- package/dist/ink/termio/dec.js +0 -59
- package/dist/ink/termio/dec.js.map +0 -1
- package/dist/ink/termio.d.ts +0 -25
- package/dist/ink/termio.d.ts.map +0 -1
- package/dist/ink/termio.js +0 -32
- package/dist/ink/termio.js.map +0 -1
- package/dist/ink/useTerminalNotification.d.ts +0 -27
- package/dist/ink/useTerminalNotification.d.ts.map +0 -1
- package/dist/ink/useTerminalNotification.js +0 -62
- package/dist/ink/useTerminalNotification.js.map +0 -1
- package/dist/ink/warn.d.ts +0 -2
- package/dist/ink/warn.d.ts.map +0 -1
- package/dist/ink/warn.js +0 -14
- package/dist/ink/warn.js.map +0 -1
- package/dist/ink/widest-line.d.ts +0 -2
- package/dist/ink/widest-line.d.ts.map +0 -1
- package/dist/ink/widest-line.js +0 -18
- package/dist/ink/widest-line.js.map +0 -1
- package/dist/ink/wrap-text.d.ts +0 -3
- package/dist/ink/wrap-text.d.ts.map +0 -1
- package/dist/ink/wrap-text.js +0 -61
- package/dist/ink/wrap-text.js.map +0 -1
- package/dist/ink/wrapAnsi.d.ts +0 -8
- package/dist/ink/wrapAnsi.d.ts.map +0 -1
- package/dist/ink/wrapAnsi.js +0 -13
- package/dist/ink/wrapAnsi.js.map +0 -1
- package/dist/ink-ui/components/TerminalCursor.d.ts +0 -15
- package/dist/ink-ui/components/TerminalCursor.d.ts.map +0 -1
- package/dist/ink-ui/components/TerminalCursor.js +0 -49
- package/dist/ink-ui/components/TerminalCursor.js.map +0 -1
- package/dist/ink-ui/runtime/stdout.d.ts +0 -11
- package/dist/ink-ui/runtime/stdout.d.ts.map +0 -1
- package/dist/ink-ui/runtime/stdout.js +0 -82
- package/dist/ink-ui/runtime/stdout.js.map +0 -1
- package/dist/runtime/goal-coordinator.d.ts +0 -66
- package/dist/runtime/goal-coordinator.d.ts.map +0 -1
- package/dist/runtime/goal-coordinator.js +0 -200
- package/dist/runtime/goal-coordinator.js.map +0 -1
- package/dist/screens/REPL.d.ts +0 -21
- package/dist/screens/REPL.d.ts.map +0 -1
- package/dist/screens/REPL.js +0 -139
- package/dist/screens/REPL.js.map +0 -1
- package/dist/services/goal-sidecar.d.ts +0 -96
- package/dist/services/goal-sidecar.d.ts.map +0 -1
- package/dist/services/goal-sidecar.js +0 -145
- package/dist/services/goal-sidecar.js.map +0 -1
- package/dist/tools/goal.d.ts +0 -17
- package/dist/tools/goal.d.ts.map +0 -1
- package/dist/tools/goal.js +0 -191
- package/dist/tools/goal.js.map +0 -1
- package/dist/ui/ink/components/App.d.ts +0 -6
- package/dist/ui/ink/components/App.d.ts.map +0 -1
- package/dist/ui/ink/components/App.js +0 -38
- package/dist/ui/ink/components/App.js.map +0 -1
- package/dist/ui/ink/components/CommandPanel.d.ts +0 -13
- package/dist/ui/ink/components/CommandPanel.d.ts.map +0 -1
- package/dist/ui/ink/components/CommandPanel.js +0 -41
- package/dist/ui/ink/components/CommandPanel.js.map +0 -1
- package/dist/ui/ink/components/InputLine.d.ts +0 -8
- package/dist/ui/ink/components/InputLine.d.ts.map +0 -1
- package/dist/ui/ink/components/InputLine.js +0 -15
- package/dist/ui/ink/components/InputLine.js.map +0 -1
- package/dist/ui/ink/components/StatusBar.d.ts +0 -9
- package/dist/ui/ink/components/StatusBar.d.ts.map +0 -1
- package/dist/ui/ink/components/StatusBar.js +0 -18
- package/dist/ui/ink/components/StatusBar.js.map +0 -1
- package/dist/ui/ink/components/index.d.ts +0 -5
- package/dist/ui/ink/components/index.d.ts.map +0 -1
- package/dist/ui/ink/components/index.js +0 -5
- package/dist/ui/ink/components/index.js.map +0 -1
- package/dist/utils/chalk.d.ts +0 -9
- package/dist/utils/chalk.d.ts.map +0 -1
- package/dist/utils/chalk.js +0 -16
- package/dist/utils/chalk.js.map +0 -1
|
@@ -40,10 +40,12 @@ exports.createToolEventPresenter = createToolEventPresenter;
|
|
|
40
40
|
exports.loadSessionIntoRuntime = loadSessionIntoRuntime;
|
|
41
41
|
exports.closeSession = closeSession;
|
|
42
42
|
const commands_1 = require("../commands");
|
|
43
|
+
const async_hooks_1 = require("async_hooks");
|
|
43
44
|
const parser_1 = require("../commands/parser");
|
|
44
45
|
const path = __importStar(require("path"));
|
|
45
46
|
const session_storage_1 = require("../services/session-storage");
|
|
46
47
|
const config_1 = require("../services/config");
|
|
48
|
+
const tool_allowlist_1 = require("../services/tool-allowlist");
|
|
47
49
|
const framework_1 = require("../framework");
|
|
48
50
|
const prompt_1 = require("./goals/prompt");
|
|
49
51
|
const harness_1 = require("../harness");
|
|
@@ -397,7 +399,14 @@ function appendAssistantNotice(messages, notice) {
|
|
|
397
399
|
function recordTraceEvent(events, sessionId, event) {
|
|
398
400
|
if (!sessionId)
|
|
399
401
|
return null;
|
|
400
|
-
const
|
|
402
|
+
const goal = goalTraceContext.getStore();
|
|
403
|
+
const traceEvent = (0, session_storage_1.appendSessionTraceEvent)(sessionId, {
|
|
404
|
+
...event,
|
|
405
|
+
goalId: goal?.goalId,
|
|
406
|
+
goalRevision: goal?.goalRevision,
|
|
407
|
+
goalInputKind: goal?.goalInputKind,
|
|
408
|
+
goalStopReason: goal?.getStopReason(),
|
|
409
|
+
});
|
|
401
410
|
if (traceEvent) {
|
|
402
411
|
events.traceEventRecorded?.(traceEvent);
|
|
403
412
|
}
|
|
@@ -485,9 +494,12 @@ function structuredToolFinishActivity(event, seq, options = {}) {
|
|
|
485
494
|
const outputBytes = event.outputBytes ?? Buffer.byteLength(durableOutput, 'utf8');
|
|
486
495
|
const aggregatePresentation = (0, aggregate_tool_presenter_1.presentAggregateToolResult)(event.name, durableOutput, outputBytes);
|
|
487
496
|
const aggregate = aggregatePresentation?.view;
|
|
488
|
-
const storedArtifact = event.artifactRef ??
|
|
489
|
-
|
|
490
|
-
|
|
497
|
+
const storedArtifact = event.artifactRef ??
|
|
498
|
+
(options.projectPath &&
|
|
499
|
+
durableOutput &&
|
|
500
|
+
(outputBytes > tool_output_presentation_1.DEFAULT_TOOL_OUTPUT_POLICY.inlineMaxBytes || aggregate)
|
|
501
|
+
? ((0, tool_artifacts_1.storeArtifact)(options.projectPath, event.name, durableOutput, outputBytes) ?? undefined)
|
|
502
|
+
: undefined);
|
|
491
503
|
const artifactRef = storedArtifact
|
|
492
504
|
? { id: storedArtifact.id, outputBytes: storedArtifact.outputBytes }
|
|
493
505
|
: undefined;
|
|
@@ -645,13 +657,13 @@ function sessionMessagesToTranscriptEntries(sessionId, options = {}) {
|
|
|
645
657
|
: durable;
|
|
646
658
|
const durableOutput = typeof durable.output === 'string' ? durable.output : '';
|
|
647
659
|
const displayOutput = typeof modelVisible.output === 'string' ? modelVisible.output : durableOutput;
|
|
648
|
-
const outputBytes = trace?.outputBytes
|
|
649
|
-
|
|
650
|
-
|
|
660
|
+
const outputBytes = trace?.outputBytes ??
|
|
661
|
+
(durable.schemaVersion === 1 ? durable.outputBytes : undefined) ??
|
|
662
|
+
Buffer.byteLength(durableOutput, 'utf8');
|
|
651
663
|
const artifactId = durable.artifactRef?.id ?? trace?.artifactId;
|
|
652
664
|
fallbackToolSequence += 1;
|
|
653
665
|
const sequence = message.toolCallId
|
|
654
|
-
? sequenceByCallId.get(message.toolCallId) ?? fallbackToolSequence
|
|
666
|
+
? (sequenceByCallId.get(message.toolCallId) ?? fallbackToolSequence)
|
|
655
667
|
: fallbackToolSequence;
|
|
656
668
|
const outputView = options.includeToolOutputViews && call && message.toolCallId
|
|
657
669
|
? (0, tool_output_presentation_1.createToolOutputView)({
|
|
@@ -764,6 +776,7 @@ function createAssistantStreamPresenter(events, abortSignal) {
|
|
|
764
776
|
},
|
|
765
777
|
};
|
|
766
778
|
}
|
|
779
|
+
const goalTraceContext = new async_hooks_1.AsyncLocalStorage();
|
|
767
780
|
class LocalFastPathBlockedError extends Error {
|
|
768
781
|
constructor(message) {
|
|
769
782
|
super(message);
|
|
@@ -902,6 +915,7 @@ function createToolEventPresenter(events, options = {}) {
|
|
|
902
915
|
outputBytes: toolActivity.outputView.detailRef.outputBytes,
|
|
903
916
|
}
|
|
904
917
|
: event.artifactRef,
|
|
918
|
+
externalAssertion: event.externalAssertion,
|
|
905
919
|
sequence: seq,
|
|
906
920
|
batchCount: event.batchCount,
|
|
907
921
|
batchIndex: event.batchIndex,
|
|
@@ -964,6 +978,13 @@ class AgentChatController {
|
|
|
964
978
|
setGoalCoordinator(coord) {
|
|
965
979
|
this.goalCoordinator = coord;
|
|
966
980
|
}
|
|
981
|
+
resolveToolAllowlist() {
|
|
982
|
+
const cwd = this.runtime.cwd;
|
|
983
|
+
if (this.toolAllowlistCache?.cwd !== cwd) {
|
|
984
|
+
this.toolAllowlistCache = { cwd, evaluator: (0, tool_allowlist_1.resolveProjectToolAllowlist)(cwd).evaluator };
|
|
985
|
+
}
|
|
986
|
+
return this.toolAllowlistCache.evaluator;
|
|
987
|
+
}
|
|
967
988
|
constructor(runtime, events, controllerOptions = {}) {
|
|
968
989
|
this.runtime = runtime;
|
|
969
990
|
this.events = events;
|
|
@@ -979,6 +1000,14 @@ class AgentChatController {
|
|
|
979
1000
|
const text = input.trim();
|
|
980
1001
|
if (!text)
|
|
981
1002
|
return;
|
|
1003
|
+
// Every root input owns a fresh accounting snapshot. Commands and local
|
|
1004
|
+
// fast paths are known zero-provider turns; runChat changes tokenUsage to
|
|
1005
|
+
// null before networking so missing provider usage remains fail-closed.
|
|
1006
|
+
const storeWithState = this.runtime.store;
|
|
1007
|
+
storeWithState.setState?.({
|
|
1008
|
+
tokenUsage: { promptTokens: 0, completionTokens: 0 },
|
|
1009
|
+
lastLoopStats: undefined,
|
|
1010
|
+
});
|
|
982
1011
|
const parsed = (0, parser_1.parseInput)(text);
|
|
983
1012
|
if (!parsed.isCommand) {
|
|
984
1013
|
const localFastPath = parseLocalFastPath(text);
|
|
@@ -1022,7 +1051,67 @@ class AgentChatController {
|
|
|
1022
1051
|
return;
|
|
1023
1052
|
}
|
|
1024
1053
|
const ctx = this.createCommandContext(options.abortSignal, options.turnId);
|
|
1025
|
-
|
|
1054
|
+
let commandProviderAttempts = 0;
|
|
1055
|
+
const commandProviderPreflight = async (context) => {
|
|
1056
|
+
commandProviderAttempts += 1;
|
|
1057
|
+
return this.controllerOptions.beforeProviderRequest
|
|
1058
|
+
? this.controllerOptions.beforeProviderRequest(context)
|
|
1059
|
+
: { available: true };
|
|
1060
|
+
};
|
|
1061
|
+
const restoreProviderPreflight = typeof this.runtime.llm?.setProviderRequestPreflight === 'function'
|
|
1062
|
+
? this.runtime.llm.setProviderRequestPreflight(commandProviderPreflight)
|
|
1063
|
+
: undefined;
|
|
1064
|
+
const commandUsage = { promptTokens: 0, completionTokens: 0 };
|
|
1065
|
+
let commandUsageEvents = 0;
|
|
1066
|
+
const unsubscribeCommandUsage = typeof this.runtime.llm?.subscribeUsage === 'function'
|
|
1067
|
+
? this.runtime.llm.subscribeUsage(event => {
|
|
1068
|
+
commandUsageEvents += 1;
|
|
1069
|
+
commandUsage.promptTokens += event.usage.promptTokens;
|
|
1070
|
+
commandUsage.completionTokens += event.usage.completionTokens;
|
|
1071
|
+
})
|
|
1072
|
+
: undefined;
|
|
1073
|
+
let result;
|
|
1074
|
+
let output;
|
|
1075
|
+
try {
|
|
1076
|
+
({ result, output } = await captureConsoleOutput(() => command.execute(ctx, parsed.args)));
|
|
1077
|
+
}
|
|
1078
|
+
finally {
|
|
1079
|
+
unsubscribeCommandUsage?.();
|
|
1080
|
+
restoreProviderPreflight?.();
|
|
1081
|
+
if (commandUsage.promptTokens > 0 || commandUsage.completionTokens > 0) {
|
|
1082
|
+
this.runtime.store.setTokenUsage(commandUsage);
|
|
1083
|
+
}
|
|
1084
|
+
const providerRequests = Math.max(commandProviderAttempts, commandUsageEvents);
|
|
1085
|
+
if (providerRequests > 0) {
|
|
1086
|
+
const diagnostics = getLastRequestDiagnostics(this.runtime.llm);
|
|
1087
|
+
const retryCount = diagnostics?.retryCount ?? 0;
|
|
1088
|
+
const fallbackCount = diagnostics?.fallbackTriggered ? 1 : 0;
|
|
1089
|
+
this.setLoopStats({
|
|
1090
|
+
turnsStarted: 1,
|
|
1091
|
+
llmRequests: providerRequests,
|
|
1092
|
+
toolCalls: 0,
|
|
1093
|
+
readOnlyToolCalls: 0,
|
|
1094
|
+
unsafeToolCalls: 0,
|
|
1095
|
+
toolResultBytes: 0,
|
|
1096
|
+
modelVisibleToolBytes: 0,
|
|
1097
|
+
summarizedBytes: 0,
|
|
1098
|
+
finishReason: commandUsageEvents > 0 ? 'completed' : 'failed',
|
|
1099
|
+
providerRetryCount: retryCount,
|
|
1100
|
+
providerRetryDelayMs: diagnostics?.retryDelayMs,
|
|
1101
|
+
providerRetryErrorTypes: diagnostics?.retryErrorTypes,
|
|
1102
|
+
providerLastRetryErrorType: diagnostics?.lastRetryErrorType,
|
|
1103
|
+
providerLastRetryStatus: diagnostics?.lastRetryStatus,
|
|
1104
|
+
providerFallbackCount: fallbackCount,
|
|
1105
|
+
providerFallbackFromModel: diagnostics?.fallbackFromModel,
|
|
1106
|
+
providerFallbackToModel: diagnostics?.fallbackToModel,
|
|
1107
|
+
providerFinalModel: diagnostics?.finalModel,
|
|
1108
|
+
providerUsingFallback: diagnostics?.usingFallback,
|
|
1109
|
+
singleReadOnlyStreak: 0,
|
|
1110
|
+
batchReadSuggestionCount: 0,
|
|
1111
|
+
localFastPathUsed: false,
|
|
1112
|
+
});
|
|
1113
|
+
}
|
|
1114
|
+
}
|
|
1026
1115
|
if (output) {
|
|
1027
1116
|
this.events.append({
|
|
1028
1117
|
role: result.success ? 'system' : 'error',
|
|
@@ -1049,6 +1138,10 @@ class AgentChatController {
|
|
|
1049
1138
|
this.events.showSessionPicker(result.sessionPicker);
|
|
1050
1139
|
return;
|
|
1051
1140
|
}
|
|
1141
|
+
if (result.modelPicker) {
|
|
1142
|
+
this.events.showModelPicker?.(result.modelPicker);
|
|
1143
|
+
return;
|
|
1144
|
+
}
|
|
1052
1145
|
if (result.editPreview) {
|
|
1053
1146
|
this.events.showEditPreview(result.editPreview);
|
|
1054
1147
|
return;
|
|
@@ -1057,6 +1150,25 @@ class AgentChatController {
|
|
|
1057
1150
|
await this.runChat(result.chatInput ?? parsed.args, options);
|
|
1058
1151
|
}
|
|
1059
1152
|
}
|
|
1153
|
+
async runRequest(request, options = {}) {
|
|
1154
|
+
const internalInput = request.text?.trim() ||
|
|
1155
|
+
'Continue pursuing the active goal from its persisted plan and evidence.';
|
|
1156
|
+
const run = () => this.runInput(internalInput, {
|
|
1157
|
+
...options,
|
|
1158
|
+
persistAsUserMessage: request.persistAsUserMessage,
|
|
1159
|
+
inputKind: request.inputKind,
|
|
1160
|
+
});
|
|
1161
|
+
if (!request.goal) {
|
|
1162
|
+
await run();
|
|
1163
|
+
return;
|
|
1164
|
+
}
|
|
1165
|
+
await goalTraceContext.run({
|
|
1166
|
+
goalId: request.goal.goalId,
|
|
1167
|
+
goalRevision: request.goal.revision,
|
|
1168
|
+
goalInputKind: request.inputKind,
|
|
1169
|
+
getStopReason: () => this.goalCoordinator?.goal?.stopReason?.message,
|
|
1170
|
+
}, run);
|
|
1171
|
+
}
|
|
1060
1172
|
async runLocalFastPath(input, action, options = {}) {
|
|
1061
1173
|
const activeSession = this.runtime.getSession() ??
|
|
1062
1174
|
this.runtime.ensureSession() ??
|
|
@@ -1088,7 +1200,9 @@ class AgentChatController {
|
|
|
1088
1200
|
note: compactMiddle(action.label, 160),
|
|
1089
1201
|
});
|
|
1090
1202
|
}
|
|
1091
|
-
|
|
1203
|
+
if (options.persistAsUserMessage !== false) {
|
|
1204
|
+
this.runtime.store.addMessage({ role: 'user', content: input });
|
|
1205
|
+
}
|
|
1092
1206
|
this.events.setStatus(`Running local ${action.label}...`);
|
|
1093
1207
|
try {
|
|
1094
1208
|
const tool = (0, tools_1.getRuntimeTools)().find(candidate => candidate.name === action.tool);
|
|
@@ -1253,9 +1367,7 @@ class AgentChatController {
|
|
|
1253
1367
|
ensureSession: this.runtime.ensureSession,
|
|
1254
1368
|
setSession: session => {
|
|
1255
1369
|
this.runtime.setSession(session);
|
|
1256
|
-
const renderer = this.controllerOptions.uiRenderer
|
|
1257
|
-
?? this.runtime.config.ui?.renderer
|
|
1258
|
-
?? 'terminal';
|
|
1370
|
+
const renderer = this.controllerOptions.uiRenderer ?? this.runtime.config.ui?.renderer ?? 'terminal';
|
|
1259
1371
|
this.events.replaceTranscript(sessionMessagesToTranscriptEntries(session.id, {
|
|
1260
1372
|
includeToolOutputViews: renderer === 'tui',
|
|
1261
1373
|
}));
|
|
@@ -1349,7 +1461,7 @@ class AgentChatController {
|
|
|
1349
1461
|
if (!bundle)
|
|
1350
1462
|
return stats;
|
|
1351
1463
|
const usage = bundle.getAggregateUsage();
|
|
1352
|
-
if (usage.modelRequests === 0 && usage.toolCalls === 0)
|
|
1464
|
+
if (usage.modelRequests === 0 && usage.toolCalls === 0 && usage.usageComplete === true)
|
|
1353
1465
|
return stats;
|
|
1354
1466
|
const subtaskCount = bundle.getSubtaskCount();
|
|
1355
1467
|
const subagentSuffix = `subagents: ${usage.modelRequests} req/${usage.toolCalls} calls across ${subtaskCount} task(s)`;
|
|
@@ -1358,6 +1470,11 @@ class AgentChatController {
|
|
|
1358
1470
|
llmRequests: (stats.llmRequests ?? 0) + usage.modelRequests,
|
|
1359
1471
|
toolCalls: (stats.toolCalls ?? 0) + usage.toolCalls,
|
|
1360
1472
|
readOnlyToolCalls: (stats.readOnlyToolCalls ?? 0) + usage.toolCalls,
|
|
1473
|
+
subagentPromptTokens: usage.promptTokens,
|
|
1474
|
+
subagentCompletionTokens: usage.completionTokens,
|
|
1475
|
+
subagentTotalTokens: usage.promptTokens + usage.completionTokens,
|
|
1476
|
+
usageAccountingComplete: stats.usageAccountingComplete !== false &&
|
|
1477
|
+
usage.usageComplete === true,
|
|
1361
1478
|
continuationHint: stats.continuationHint
|
|
1362
1479
|
? `${stats.continuationHint} (${subagentSuffix})`
|
|
1363
1480
|
: subagentSuffix,
|
|
@@ -1380,6 +1497,9 @@ class AgentChatController {
|
|
|
1380
1497
|
});
|
|
1381
1498
|
return;
|
|
1382
1499
|
}
|
|
1500
|
+
// Usage belongs to a single root turn. Clear the previous snapshot before
|
|
1501
|
+
// any provider request so failures without usage cannot inherit stale data.
|
|
1502
|
+
this.runtime.store.setState({ tokenUsage: null });
|
|
1383
1503
|
const abortSignal = options.abortSignal;
|
|
1384
1504
|
const turnId = traceTurnId(options.turnId);
|
|
1385
1505
|
const activeSession = this.runtime.getSession() ??
|
|
@@ -1396,7 +1516,7 @@ class AgentChatController {
|
|
|
1396
1516
|
sessionId,
|
|
1397
1517
|
});
|
|
1398
1518
|
const appliedSkillNames = skillResolution.skills.map(skill => skill.name);
|
|
1399
|
-
if (sessionId) {
|
|
1519
|
+
if (sessionId && options.persistAsUserMessage !== false) {
|
|
1400
1520
|
(0, session_storage_1.appendSessionMessage)(sessionId, {
|
|
1401
1521
|
role: 'user',
|
|
1402
1522
|
content: input,
|
|
@@ -1411,7 +1531,9 @@ class AgentChatController {
|
|
|
1411
1531
|
});
|
|
1412
1532
|
appendWorkspaceSnapshotTrace(this.events, sessionId, turnId, 'pre_turn', preWorkspace);
|
|
1413
1533
|
}
|
|
1414
|
-
|
|
1534
|
+
if (options.persistAsUserMessage !== false) {
|
|
1535
|
+
this.runtime.store.addMessage({ role: 'user', content: input });
|
|
1536
|
+
}
|
|
1415
1537
|
(0, prompt_context_1.refreshProjectInstructions)(this.runtime.store, this.runtime.cwd);
|
|
1416
1538
|
const snapshot = this.runtime.store.getSnapshot();
|
|
1417
1539
|
const harness = (0, harness_1.createContextHarness)({
|
|
@@ -1424,7 +1546,9 @@ class AgentChatController {
|
|
|
1424
1546
|
completionGate: true,
|
|
1425
1547
|
},
|
|
1426
1548
|
});
|
|
1427
|
-
const intent = harness.updateContractFromUserInput(
|
|
1549
|
+
const intent = harness.updateContractFromUserInput(options.inputKind === 'goal_continuation'
|
|
1550
|
+
? (this.goalCoordinator?.goal?.objective ?? input)
|
|
1551
|
+
: input);
|
|
1428
1552
|
harness.recordAppliedSkills(skillResolution.skills);
|
|
1429
1553
|
// Reconcile diagnostic: when harness state is present but objective may be incomplete
|
|
1430
1554
|
if (snapshot.harnessState &&
|
|
@@ -1480,6 +1604,7 @@ class AgentChatController {
|
|
|
1480
1604
|
// R6: wire child usage callback so CostTracker records subagent
|
|
1481
1605
|
// token consumption. Injected by AgentRuntimeController via chatOptions.
|
|
1482
1606
|
onChildUsage: this.controllerOptions.onChildUsage,
|
|
1607
|
+
beforeProviderRequest: this.controllerOptions.beforeProviderRequest,
|
|
1483
1608
|
})
|
|
1484
1609
|
: null;
|
|
1485
1610
|
const subtaskTool = subagentBundle?.tool ?? null;
|
|
@@ -1503,6 +1628,9 @@ class AgentChatController {
|
|
|
1503
1628
|
{ role: 'system', content: systemPrompt.static, cacheControl: { type: 'ephemeral' } },
|
|
1504
1629
|
...(systemPrompt.dynamic ? [{ role: 'system', content: systemPrompt.dynamic }] : []),
|
|
1505
1630
|
...snapshot.conversationHistory,
|
|
1631
|
+
...(options.persistAsUserMessage === false
|
|
1632
|
+
? [{ role: 'user', content: input }]
|
|
1633
|
+
: []),
|
|
1506
1634
|
];
|
|
1507
1635
|
let finalContent = '';
|
|
1508
1636
|
let finalUsage;
|
|
@@ -1563,6 +1691,26 @@ class AgentChatController {
|
|
|
1563
1691
|
let observedUnsafeToolCalls = 0;
|
|
1564
1692
|
let observedToolResultBytes = 0;
|
|
1565
1693
|
let observedModelVisibleToolBytes = 0;
|
|
1694
|
+
const restoreProviderPreflight = typeof this.runtime.llm.setProviderRequestPreflight === 'function'
|
|
1695
|
+
? this.runtime.llm.setProviderRequestPreflight(this.controllerOptions.beforeProviderRequest)
|
|
1696
|
+
: undefined;
|
|
1697
|
+
const persistInterruptedAccounting = (rootUsage, stats, usageAccountingComplete) => {
|
|
1698
|
+
const accountingStats = {
|
|
1699
|
+
...stats,
|
|
1700
|
+
finishReason: 'cancelled',
|
|
1701
|
+
usageAccountingComplete,
|
|
1702
|
+
};
|
|
1703
|
+
const interruptedStats = this.foldSubagentUsage(accountingStats, subagentBundle);
|
|
1704
|
+
this.setLoopStats(interruptedStats);
|
|
1705
|
+
const subagentUsage = subagentBundle?.getAggregateUsage();
|
|
1706
|
+
const knownZeroRootUsage = usageAccountingComplete && interruptedStats.llmRequests === 0;
|
|
1707
|
+
if (rootUsage || knownZeroRootUsage) {
|
|
1708
|
+
this.runtime.store.setTokenUsage({
|
|
1709
|
+
promptTokens: (rootUsage?.promptTokens ?? 0) + (subagentUsage?.promptTokens ?? 0),
|
|
1710
|
+
completionTokens: (rootUsage?.completionTokens ?? 0) + (subagentUsage?.completionTokens ?? 0),
|
|
1711
|
+
});
|
|
1712
|
+
}
|
|
1713
|
+
};
|
|
1566
1714
|
try {
|
|
1567
1715
|
for await (const event of (0, framework_1.query)({
|
|
1568
1716
|
messages,
|
|
@@ -1573,6 +1721,7 @@ class AgentChatController {
|
|
|
1573
1721
|
costTracker: snapshot.costTracker,
|
|
1574
1722
|
permissionMode: snapshot.permissionMode,
|
|
1575
1723
|
toolConfirmation: this.runtime.config.toolConfirmation,
|
|
1724
|
+
toolAllowlist: this.resolveToolAllowlist(),
|
|
1576
1725
|
confirmToolUse: this.controllerOptions.confirmToolUse,
|
|
1577
1726
|
toolContext: {
|
|
1578
1727
|
cwd: this.runtime.cwd,
|
|
@@ -1861,6 +2010,19 @@ class AgentChatController {
|
|
|
1861
2010
|
}
|
|
1862
2011
|
const wasAborted = abortSignal?.aborted === true;
|
|
1863
2012
|
if (wasAborted) {
|
|
2013
|
+
const stats = pendingCompleteStats ??
|
|
2014
|
+
(0, framework_1.createFailedLoopStats)({
|
|
2015
|
+
loopBudget,
|
|
2016
|
+
diagnostics: observedLlmRequests > 0 ? getLastRequestDiagnostics(this.runtime.llm) : undefined,
|
|
2017
|
+
turnsStarted: observedTurnsStarted,
|
|
2018
|
+
llmRequests: observedLlmRequests,
|
|
2019
|
+
toolCalls: observedToolCalls,
|
|
2020
|
+
readOnlyToolCalls: observedReadOnlyToolCalls,
|
|
2021
|
+
unsafeToolCalls: observedUnsafeToolCalls,
|
|
2022
|
+
toolResultBytes: observedToolResultBytes,
|
|
2023
|
+
modelVisibleToolBytes: observedModelVisibleToolBytes,
|
|
2024
|
+
});
|
|
2025
|
+
persistInterruptedAccounting(finalUsage, stats, finalUsage !== undefined || stats.llmRequests === 0);
|
|
1864
2026
|
assistantStream.discardSegment();
|
|
1865
2027
|
this.events.setStatus('Interrupted.');
|
|
1866
2028
|
removeTrailingUserMessage(this.runtime);
|
|
@@ -2087,10 +2249,30 @@ class AgentChatController {
|
|
|
2087
2249
|
gc.deferContinuation();
|
|
2088
2250
|
}
|
|
2089
2251
|
}
|
|
2090
|
-
catch {
|
|
2252
|
+
catch {
|
|
2253
|
+
/* best effort */
|
|
2254
|
+
}
|
|
2091
2255
|
return;
|
|
2092
2256
|
}
|
|
2093
2257
|
if (isAbortError(error, abortSignal)) {
|
|
2258
|
+
const interruptedStats = error instanceof framework_1.QueryLoopError
|
|
2259
|
+
? error.stats
|
|
2260
|
+
: (0, framework_1.createFailedLoopStats)({
|
|
2261
|
+
loopBudget,
|
|
2262
|
+
diagnostics: observedLlmRequests > 0 ? getLastRequestDiagnostics(this.runtime.llm) : undefined,
|
|
2263
|
+
turnsStarted: observedTurnsStarted,
|
|
2264
|
+
llmRequests: observedLlmRequests,
|
|
2265
|
+
toolCalls: observedToolCalls,
|
|
2266
|
+
readOnlyToolCalls: observedReadOnlyToolCalls,
|
|
2267
|
+
unsafeToolCalls: observedUnsafeToolCalls,
|
|
2268
|
+
toolResultBytes: observedToolResultBytes,
|
|
2269
|
+
modelVisibleToolBytes: observedModelVisibleToolBytes,
|
|
2270
|
+
});
|
|
2271
|
+
const interruptedRootUsage = error instanceof framework_1.QueryLoopError ? error.aggregateUsage : undefined;
|
|
2272
|
+
// A thrown abort after a provider request started can only prove a
|
|
2273
|
+
// lower bound: the in-flight request may be billable even when its
|
|
2274
|
+
// final usage chunk never arrived.
|
|
2275
|
+
persistInterruptedAccounting(interruptedRootUsage, interruptedStats, interruptedStats.llmRequests === 0);
|
|
2094
2276
|
assistantStream.discardSegment();
|
|
2095
2277
|
this.events.setStatus('Interrupted.');
|
|
2096
2278
|
removeTrailingUserMessage(this.runtime);
|
|
@@ -2123,7 +2305,7 @@ class AgentChatController {
|
|
|
2123
2305
|
errorLayer: errorLayerForChatError(error),
|
|
2124
2306
|
});
|
|
2125
2307
|
this.events.setStatus('Turn failed. Ready for the next input.');
|
|
2126
|
-
const failedStats = error instanceof framework_1.QueryLoopError
|
|
2308
|
+
const failedStats = this.foldSubagentUsage(error instanceof framework_1.QueryLoopError
|
|
2127
2309
|
? error.stats
|
|
2128
2310
|
: (0, framework_1.createFailedLoopStats)({
|
|
2129
2311
|
loopBudget,
|
|
@@ -2135,7 +2317,16 @@ class AgentChatController {
|
|
|
2135
2317
|
unsafeToolCalls: observedUnsafeToolCalls,
|
|
2136
2318
|
toolResultBytes: observedToolResultBytes,
|
|
2137
2319
|
modelVisibleToolBytes: observedModelVisibleToolBytes,
|
|
2320
|
+
}), subagentBundle);
|
|
2321
|
+
const rootUsage = error instanceof framework_1.QueryLoopError ? error.aggregateUsage : undefined;
|
|
2322
|
+
const subagentUsage = subagentBundle?.getAggregateUsage();
|
|
2323
|
+
const hasSubagentUsage = (subagentUsage?.promptTokens ?? 0) > 0 || (subagentUsage?.completionTokens ?? 0) > 0;
|
|
2324
|
+
if (rootUsage || hasSubagentUsage) {
|
|
2325
|
+
this.runtime.store.setTokenUsage({
|
|
2326
|
+
promptTokens: (rootUsage?.promptTokens ?? 0) + (subagentUsage?.promptTokens ?? 0),
|
|
2327
|
+
completionTokens: (rootUsage?.completionTokens ?? 0) + (subagentUsage?.completionTokens ?? 0),
|
|
2138
2328
|
});
|
|
2329
|
+
}
|
|
2139
2330
|
this.setLoopStats(failedStats);
|
|
2140
2331
|
if (sessionId) {
|
|
2141
2332
|
recordProviderTraceEvents(this.events, sessionId, turnId, failedStats);
|
|
@@ -2183,6 +2374,9 @@ class AgentChatController {
|
|
|
2183
2374
|
this.runtime.store.setState({ conversationHistory: history.slice(0, -1) });
|
|
2184
2375
|
}
|
|
2185
2376
|
}
|
|
2377
|
+
finally {
|
|
2378
|
+
restoreProviderPreflight?.();
|
|
2379
|
+
}
|
|
2186
2380
|
}
|
|
2187
2381
|
}
|
|
2188
2382
|
exports.AgentChatController = AgentChatController;
|