@orion-agents/orion-code 0.1.1 → 0.1.2
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 +93 -68
- package/README.zh-CN.md +181 -216
- 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 +213 -114
- 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/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 +15 -1
- package/dist/framework/query.d.ts.map +1 -1
- package/dist/framework/query.js +42 -23
- package/dist/framework/query.js.map +1 -1
- package/dist/framework/tool-scheduler.d.ts +2 -0
- package/dist/framework/tool-scheduler.d.ts.map +1 -1
- package/dist/framework/tool-scheduler.js +23 -9
- 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 +11 -5
- package/dist/framework/tool.d.ts.map +1 -1
- 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/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 +4 -0
- package/dist/print-ui/launch.d.ts.map +1 -1
- package/dist/print-ui/launch.js +102 -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 +34 -0
- package/dist/runtime/agent-runtime-controller.d.ts.map +1 -1
- package/dist/runtime/agent-runtime-controller.js +953 -148
- package/dist/runtime/agent-runtime-controller.js.map +1 -1
- package/dist/runtime/agent-runtime-protocol.d.ts +7 -2
- 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-controller.d.ts +6 -0
- package/dist/runtime/chat-controller.d.ts.map +1 -1
- package/dist/runtime/chat-controller.js +200 -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 +308 -28
- package/dist/runtime/goals/tools.js.map +1 -1
- package/dist/runtime/goals/types.d.ts +241 -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/ui-events.d.ts +6 -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 +53 -48
- 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/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-registry.d.ts +1 -1
- package/dist/services/model-registry.d.ts.map +1 -1
- package/dist/services/model-registry.js +69 -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/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 +2 -0
- package/dist/terminal-ui/launch.d.ts.map +1 -1
- package/dist/terminal-ui/launch.js +21 -7
- package/dist/terminal-ui/launch.js.map +1 -1
- package/dist/tools/git.d.ts.map +1 -1
- package/dist/tools/git.js +275 -27
- package/dist/tools/git.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +23 -4
- 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/web.d.ts.map +1 -1
- package/dist/tools/web.js +38 -14
- package/dist/tools/web.js.map +1 -1
- package/dist/tui-ui/layout.d.ts.map +1 -1
- package/dist/tui-ui/layout.js +36 -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 +1 -0
- package/dist/tui-ui/runner.d.ts.map +1 -1
- package/dist/tui-ui/runner.js +14 -0
- package/dist/tui-ui/runner.js.map +1 -1
- package/dist/tui-ui/state.d.ts +6 -0
- package/dist/tui-ui/state.d.ts.map +1 -1
- package/dist/tui-ui/state.js +60 -30
- package/dist/tui-ui/state.js.map +1 -1
- package/package.json +13 -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,6 +40,7 @@ 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");
|
|
@@ -397,7 +398,14 @@ function appendAssistantNotice(messages, notice) {
|
|
|
397
398
|
function recordTraceEvent(events, sessionId, event) {
|
|
398
399
|
if (!sessionId)
|
|
399
400
|
return null;
|
|
400
|
-
const
|
|
401
|
+
const goal = goalTraceContext.getStore();
|
|
402
|
+
const traceEvent = (0, session_storage_1.appendSessionTraceEvent)(sessionId, {
|
|
403
|
+
...event,
|
|
404
|
+
goalId: goal?.goalId,
|
|
405
|
+
goalRevision: goal?.goalRevision,
|
|
406
|
+
goalInputKind: goal?.goalInputKind,
|
|
407
|
+
goalStopReason: goal?.getStopReason(),
|
|
408
|
+
});
|
|
401
409
|
if (traceEvent) {
|
|
402
410
|
events.traceEventRecorded?.(traceEvent);
|
|
403
411
|
}
|
|
@@ -485,9 +493,12 @@ function structuredToolFinishActivity(event, seq, options = {}) {
|
|
|
485
493
|
const outputBytes = event.outputBytes ?? Buffer.byteLength(durableOutput, 'utf8');
|
|
486
494
|
const aggregatePresentation = (0, aggregate_tool_presenter_1.presentAggregateToolResult)(event.name, durableOutput, outputBytes);
|
|
487
495
|
const aggregate = aggregatePresentation?.view;
|
|
488
|
-
const storedArtifact = event.artifactRef ??
|
|
489
|
-
|
|
490
|
-
|
|
496
|
+
const storedArtifact = event.artifactRef ??
|
|
497
|
+
(options.projectPath &&
|
|
498
|
+
durableOutput &&
|
|
499
|
+
(outputBytes > tool_output_presentation_1.DEFAULT_TOOL_OUTPUT_POLICY.inlineMaxBytes || aggregate)
|
|
500
|
+
? ((0, tool_artifacts_1.storeArtifact)(options.projectPath, event.name, durableOutput, outputBytes) ?? undefined)
|
|
501
|
+
: undefined);
|
|
491
502
|
const artifactRef = storedArtifact
|
|
492
503
|
? { id: storedArtifact.id, outputBytes: storedArtifact.outputBytes }
|
|
493
504
|
: undefined;
|
|
@@ -645,13 +656,13 @@ function sessionMessagesToTranscriptEntries(sessionId, options = {}) {
|
|
|
645
656
|
: durable;
|
|
646
657
|
const durableOutput = typeof durable.output === 'string' ? durable.output : '';
|
|
647
658
|
const displayOutput = typeof modelVisible.output === 'string' ? modelVisible.output : durableOutput;
|
|
648
|
-
const outputBytes = trace?.outputBytes
|
|
649
|
-
|
|
650
|
-
|
|
659
|
+
const outputBytes = trace?.outputBytes ??
|
|
660
|
+
(durable.schemaVersion === 1 ? durable.outputBytes : undefined) ??
|
|
661
|
+
Buffer.byteLength(durableOutput, 'utf8');
|
|
651
662
|
const artifactId = durable.artifactRef?.id ?? trace?.artifactId;
|
|
652
663
|
fallbackToolSequence += 1;
|
|
653
664
|
const sequence = message.toolCallId
|
|
654
|
-
? sequenceByCallId.get(message.toolCallId) ?? fallbackToolSequence
|
|
665
|
+
? (sequenceByCallId.get(message.toolCallId) ?? fallbackToolSequence)
|
|
655
666
|
: fallbackToolSequence;
|
|
656
667
|
const outputView = options.includeToolOutputViews && call && message.toolCallId
|
|
657
668
|
? (0, tool_output_presentation_1.createToolOutputView)({
|
|
@@ -764,6 +775,7 @@ function createAssistantStreamPresenter(events, abortSignal) {
|
|
|
764
775
|
},
|
|
765
776
|
};
|
|
766
777
|
}
|
|
778
|
+
const goalTraceContext = new async_hooks_1.AsyncLocalStorage();
|
|
767
779
|
class LocalFastPathBlockedError extends Error {
|
|
768
780
|
constructor(message) {
|
|
769
781
|
super(message);
|
|
@@ -902,6 +914,7 @@ function createToolEventPresenter(events, options = {}) {
|
|
|
902
914
|
outputBytes: toolActivity.outputView.detailRef.outputBytes,
|
|
903
915
|
}
|
|
904
916
|
: event.artifactRef,
|
|
917
|
+
externalAssertion: event.externalAssertion,
|
|
905
918
|
sequence: seq,
|
|
906
919
|
batchCount: event.batchCount,
|
|
907
920
|
batchIndex: event.batchIndex,
|
|
@@ -979,6 +992,14 @@ class AgentChatController {
|
|
|
979
992
|
const text = input.trim();
|
|
980
993
|
if (!text)
|
|
981
994
|
return;
|
|
995
|
+
// Every root input owns a fresh accounting snapshot. Commands and local
|
|
996
|
+
// fast paths are known zero-provider turns; runChat changes tokenUsage to
|
|
997
|
+
// null before networking so missing provider usage remains fail-closed.
|
|
998
|
+
const storeWithState = this.runtime.store;
|
|
999
|
+
storeWithState.setState?.({
|
|
1000
|
+
tokenUsage: { promptTokens: 0, completionTokens: 0 },
|
|
1001
|
+
lastLoopStats: undefined,
|
|
1002
|
+
});
|
|
982
1003
|
const parsed = (0, parser_1.parseInput)(text);
|
|
983
1004
|
if (!parsed.isCommand) {
|
|
984
1005
|
const localFastPath = parseLocalFastPath(text);
|
|
@@ -1022,7 +1043,67 @@ class AgentChatController {
|
|
|
1022
1043
|
return;
|
|
1023
1044
|
}
|
|
1024
1045
|
const ctx = this.createCommandContext(options.abortSignal, options.turnId);
|
|
1025
|
-
|
|
1046
|
+
let commandProviderAttempts = 0;
|
|
1047
|
+
const commandProviderPreflight = async (context) => {
|
|
1048
|
+
commandProviderAttempts += 1;
|
|
1049
|
+
return this.controllerOptions.beforeProviderRequest
|
|
1050
|
+
? this.controllerOptions.beforeProviderRequest(context)
|
|
1051
|
+
: { available: true };
|
|
1052
|
+
};
|
|
1053
|
+
const restoreProviderPreflight = typeof this.runtime.llm?.setProviderRequestPreflight === 'function'
|
|
1054
|
+
? this.runtime.llm.setProviderRequestPreflight(commandProviderPreflight)
|
|
1055
|
+
: undefined;
|
|
1056
|
+
const commandUsage = { promptTokens: 0, completionTokens: 0 };
|
|
1057
|
+
let commandUsageEvents = 0;
|
|
1058
|
+
const unsubscribeCommandUsage = typeof this.runtime.llm?.subscribeUsage === 'function'
|
|
1059
|
+
? this.runtime.llm.subscribeUsage(event => {
|
|
1060
|
+
commandUsageEvents += 1;
|
|
1061
|
+
commandUsage.promptTokens += event.usage.promptTokens;
|
|
1062
|
+
commandUsage.completionTokens += event.usage.completionTokens;
|
|
1063
|
+
})
|
|
1064
|
+
: undefined;
|
|
1065
|
+
let result;
|
|
1066
|
+
let output;
|
|
1067
|
+
try {
|
|
1068
|
+
({ result, output } = await captureConsoleOutput(() => command.execute(ctx, parsed.args)));
|
|
1069
|
+
}
|
|
1070
|
+
finally {
|
|
1071
|
+
unsubscribeCommandUsage?.();
|
|
1072
|
+
restoreProviderPreflight?.();
|
|
1073
|
+
if (commandUsage.promptTokens > 0 || commandUsage.completionTokens > 0) {
|
|
1074
|
+
this.runtime.store.setTokenUsage(commandUsage);
|
|
1075
|
+
}
|
|
1076
|
+
const providerRequests = Math.max(commandProviderAttempts, commandUsageEvents);
|
|
1077
|
+
if (providerRequests > 0) {
|
|
1078
|
+
const diagnostics = getLastRequestDiagnostics(this.runtime.llm);
|
|
1079
|
+
const retryCount = diagnostics?.retryCount ?? 0;
|
|
1080
|
+
const fallbackCount = diagnostics?.fallbackTriggered ? 1 : 0;
|
|
1081
|
+
this.setLoopStats({
|
|
1082
|
+
turnsStarted: 1,
|
|
1083
|
+
llmRequests: providerRequests,
|
|
1084
|
+
toolCalls: 0,
|
|
1085
|
+
readOnlyToolCalls: 0,
|
|
1086
|
+
unsafeToolCalls: 0,
|
|
1087
|
+
toolResultBytes: 0,
|
|
1088
|
+
modelVisibleToolBytes: 0,
|
|
1089
|
+
summarizedBytes: 0,
|
|
1090
|
+
finishReason: commandUsageEvents > 0 ? 'completed' : 'failed',
|
|
1091
|
+
providerRetryCount: retryCount,
|
|
1092
|
+
providerRetryDelayMs: diagnostics?.retryDelayMs,
|
|
1093
|
+
providerRetryErrorTypes: diagnostics?.retryErrorTypes,
|
|
1094
|
+
providerLastRetryErrorType: diagnostics?.lastRetryErrorType,
|
|
1095
|
+
providerLastRetryStatus: diagnostics?.lastRetryStatus,
|
|
1096
|
+
providerFallbackCount: fallbackCount,
|
|
1097
|
+
providerFallbackFromModel: diagnostics?.fallbackFromModel,
|
|
1098
|
+
providerFallbackToModel: diagnostics?.fallbackToModel,
|
|
1099
|
+
providerFinalModel: diagnostics?.finalModel,
|
|
1100
|
+
providerUsingFallback: diagnostics?.usingFallback,
|
|
1101
|
+
singleReadOnlyStreak: 0,
|
|
1102
|
+
batchReadSuggestionCount: 0,
|
|
1103
|
+
localFastPathUsed: false,
|
|
1104
|
+
});
|
|
1105
|
+
}
|
|
1106
|
+
}
|
|
1026
1107
|
if (output) {
|
|
1027
1108
|
this.events.append({
|
|
1028
1109
|
role: result.success ? 'system' : 'error',
|
|
@@ -1057,6 +1138,25 @@ class AgentChatController {
|
|
|
1057
1138
|
await this.runChat(result.chatInput ?? parsed.args, options);
|
|
1058
1139
|
}
|
|
1059
1140
|
}
|
|
1141
|
+
async runRequest(request, options = {}) {
|
|
1142
|
+
const internalInput = request.text?.trim() ||
|
|
1143
|
+
'Continue pursuing the active goal from its persisted plan and evidence.';
|
|
1144
|
+
const run = () => this.runInput(internalInput, {
|
|
1145
|
+
...options,
|
|
1146
|
+
persistAsUserMessage: request.persistAsUserMessage,
|
|
1147
|
+
inputKind: request.inputKind,
|
|
1148
|
+
});
|
|
1149
|
+
if (!request.goal) {
|
|
1150
|
+
await run();
|
|
1151
|
+
return;
|
|
1152
|
+
}
|
|
1153
|
+
await goalTraceContext.run({
|
|
1154
|
+
goalId: request.goal.goalId,
|
|
1155
|
+
goalRevision: request.goal.revision,
|
|
1156
|
+
goalInputKind: request.inputKind,
|
|
1157
|
+
getStopReason: () => this.goalCoordinator?.goal?.stopReason?.message,
|
|
1158
|
+
}, run);
|
|
1159
|
+
}
|
|
1060
1160
|
async runLocalFastPath(input, action, options = {}) {
|
|
1061
1161
|
const activeSession = this.runtime.getSession() ??
|
|
1062
1162
|
this.runtime.ensureSession() ??
|
|
@@ -1088,7 +1188,9 @@ class AgentChatController {
|
|
|
1088
1188
|
note: compactMiddle(action.label, 160),
|
|
1089
1189
|
});
|
|
1090
1190
|
}
|
|
1091
|
-
|
|
1191
|
+
if (options.persistAsUserMessage !== false) {
|
|
1192
|
+
this.runtime.store.addMessage({ role: 'user', content: input });
|
|
1193
|
+
}
|
|
1092
1194
|
this.events.setStatus(`Running local ${action.label}...`);
|
|
1093
1195
|
try {
|
|
1094
1196
|
const tool = (0, tools_1.getRuntimeTools)().find(candidate => candidate.name === action.tool);
|
|
@@ -1253,9 +1355,7 @@ class AgentChatController {
|
|
|
1253
1355
|
ensureSession: this.runtime.ensureSession,
|
|
1254
1356
|
setSession: session => {
|
|
1255
1357
|
this.runtime.setSession(session);
|
|
1256
|
-
const renderer = this.controllerOptions.uiRenderer
|
|
1257
|
-
?? this.runtime.config.ui?.renderer
|
|
1258
|
-
?? 'terminal';
|
|
1358
|
+
const renderer = this.controllerOptions.uiRenderer ?? this.runtime.config.ui?.renderer ?? 'terminal';
|
|
1259
1359
|
this.events.replaceTranscript(sessionMessagesToTranscriptEntries(session.id, {
|
|
1260
1360
|
includeToolOutputViews: renderer === 'tui',
|
|
1261
1361
|
}));
|
|
@@ -1349,7 +1449,7 @@ class AgentChatController {
|
|
|
1349
1449
|
if (!bundle)
|
|
1350
1450
|
return stats;
|
|
1351
1451
|
const usage = bundle.getAggregateUsage();
|
|
1352
|
-
if (usage.modelRequests === 0 && usage.toolCalls === 0)
|
|
1452
|
+
if (usage.modelRequests === 0 && usage.toolCalls === 0 && usage.usageComplete === true)
|
|
1353
1453
|
return stats;
|
|
1354
1454
|
const subtaskCount = bundle.getSubtaskCount();
|
|
1355
1455
|
const subagentSuffix = `subagents: ${usage.modelRequests} req/${usage.toolCalls} calls across ${subtaskCount} task(s)`;
|
|
@@ -1358,6 +1458,11 @@ class AgentChatController {
|
|
|
1358
1458
|
llmRequests: (stats.llmRequests ?? 0) + usage.modelRequests,
|
|
1359
1459
|
toolCalls: (stats.toolCalls ?? 0) + usage.toolCalls,
|
|
1360
1460
|
readOnlyToolCalls: (stats.readOnlyToolCalls ?? 0) + usage.toolCalls,
|
|
1461
|
+
subagentPromptTokens: usage.promptTokens,
|
|
1462
|
+
subagentCompletionTokens: usage.completionTokens,
|
|
1463
|
+
subagentTotalTokens: usage.promptTokens + usage.completionTokens,
|
|
1464
|
+
usageAccountingComplete: stats.usageAccountingComplete !== false &&
|
|
1465
|
+
usage.usageComplete === true,
|
|
1361
1466
|
continuationHint: stats.continuationHint
|
|
1362
1467
|
? `${stats.continuationHint} (${subagentSuffix})`
|
|
1363
1468
|
: subagentSuffix,
|
|
@@ -1380,6 +1485,9 @@ class AgentChatController {
|
|
|
1380
1485
|
});
|
|
1381
1486
|
return;
|
|
1382
1487
|
}
|
|
1488
|
+
// Usage belongs to a single root turn. Clear the previous snapshot before
|
|
1489
|
+
// any provider request so failures without usage cannot inherit stale data.
|
|
1490
|
+
this.runtime.store.setState({ tokenUsage: null });
|
|
1383
1491
|
const abortSignal = options.abortSignal;
|
|
1384
1492
|
const turnId = traceTurnId(options.turnId);
|
|
1385
1493
|
const activeSession = this.runtime.getSession() ??
|
|
@@ -1396,7 +1504,7 @@ class AgentChatController {
|
|
|
1396
1504
|
sessionId,
|
|
1397
1505
|
});
|
|
1398
1506
|
const appliedSkillNames = skillResolution.skills.map(skill => skill.name);
|
|
1399
|
-
if (sessionId) {
|
|
1507
|
+
if (sessionId && options.persistAsUserMessage !== false) {
|
|
1400
1508
|
(0, session_storage_1.appendSessionMessage)(sessionId, {
|
|
1401
1509
|
role: 'user',
|
|
1402
1510
|
content: input,
|
|
@@ -1411,7 +1519,9 @@ class AgentChatController {
|
|
|
1411
1519
|
});
|
|
1412
1520
|
appendWorkspaceSnapshotTrace(this.events, sessionId, turnId, 'pre_turn', preWorkspace);
|
|
1413
1521
|
}
|
|
1414
|
-
|
|
1522
|
+
if (options.persistAsUserMessage !== false) {
|
|
1523
|
+
this.runtime.store.addMessage({ role: 'user', content: input });
|
|
1524
|
+
}
|
|
1415
1525
|
(0, prompt_context_1.refreshProjectInstructions)(this.runtime.store, this.runtime.cwd);
|
|
1416
1526
|
const snapshot = this.runtime.store.getSnapshot();
|
|
1417
1527
|
const harness = (0, harness_1.createContextHarness)({
|
|
@@ -1424,7 +1534,9 @@ class AgentChatController {
|
|
|
1424
1534
|
completionGate: true,
|
|
1425
1535
|
},
|
|
1426
1536
|
});
|
|
1427
|
-
const intent = harness.updateContractFromUserInput(
|
|
1537
|
+
const intent = harness.updateContractFromUserInput(options.inputKind === 'goal_continuation'
|
|
1538
|
+
? (this.goalCoordinator?.goal?.objective ?? input)
|
|
1539
|
+
: input);
|
|
1428
1540
|
harness.recordAppliedSkills(skillResolution.skills);
|
|
1429
1541
|
// Reconcile diagnostic: when harness state is present but objective may be incomplete
|
|
1430
1542
|
if (snapshot.harnessState &&
|
|
@@ -1480,6 +1592,7 @@ class AgentChatController {
|
|
|
1480
1592
|
// R6: wire child usage callback so CostTracker records subagent
|
|
1481
1593
|
// token consumption. Injected by AgentRuntimeController via chatOptions.
|
|
1482
1594
|
onChildUsage: this.controllerOptions.onChildUsage,
|
|
1595
|
+
beforeProviderRequest: this.controllerOptions.beforeProviderRequest,
|
|
1483
1596
|
})
|
|
1484
1597
|
: null;
|
|
1485
1598
|
const subtaskTool = subagentBundle?.tool ?? null;
|
|
@@ -1503,6 +1616,9 @@ class AgentChatController {
|
|
|
1503
1616
|
{ role: 'system', content: systemPrompt.static, cacheControl: { type: 'ephemeral' } },
|
|
1504
1617
|
...(systemPrompt.dynamic ? [{ role: 'system', content: systemPrompt.dynamic }] : []),
|
|
1505
1618
|
...snapshot.conversationHistory,
|
|
1619
|
+
...(options.persistAsUserMessage === false
|
|
1620
|
+
? [{ role: 'user', content: input }]
|
|
1621
|
+
: []),
|
|
1506
1622
|
];
|
|
1507
1623
|
let finalContent = '';
|
|
1508
1624
|
let finalUsage;
|
|
@@ -1563,6 +1679,26 @@ class AgentChatController {
|
|
|
1563
1679
|
let observedUnsafeToolCalls = 0;
|
|
1564
1680
|
let observedToolResultBytes = 0;
|
|
1565
1681
|
let observedModelVisibleToolBytes = 0;
|
|
1682
|
+
const restoreProviderPreflight = typeof this.runtime.llm.setProviderRequestPreflight === 'function'
|
|
1683
|
+
? this.runtime.llm.setProviderRequestPreflight(this.controllerOptions.beforeProviderRequest)
|
|
1684
|
+
: undefined;
|
|
1685
|
+
const persistInterruptedAccounting = (rootUsage, stats, usageAccountingComplete) => {
|
|
1686
|
+
const accountingStats = {
|
|
1687
|
+
...stats,
|
|
1688
|
+
finishReason: 'cancelled',
|
|
1689
|
+
usageAccountingComplete,
|
|
1690
|
+
};
|
|
1691
|
+
const interruptedStats = this.foldSubagentUsage(accountingStats, subagentBundle);
|
|
1692
|
+
this.setLoopStats(interruptedStats);
|
|
1693
|
+
const subagentUsage = subagentBundle?.getAggregateUsage();
|
|
1694
|
+
const knownZeroRootUsage = usageAccountingComplete && interruptedStats.llmRequests === 0;
|
|
1695
|
+
if (rootUsage || knownZeroRootUsage) {
|
|
1696
|
+
this.runtime.store.setTokenUsage({
|
|
1697
|
+
promptTokens: (rootUsage?.promptTokens ?? 0) + (subagentUsage?.promptTokens ?? 0),
|
|
1698
|
+
completionTokens: (rootUsage?.completionTokens ?? 0) + (subagentUsage?.completionTokens ?? 0),
|
|
1699
|
+
});
|
|
1700
|
+
}
|
|
1701
|
+
};
|
|
1566
1702
|
try {
|
|
1567
1703
|
for await (const event of (0, framework_1.query)({
|
|
1568
1704
|
messages,
|
|
@@ -1861,6 +1997,19 @@ class AgentChatController {
|
|
|
1861
1997
|
}
|
|
1862
1998
|
const wasAborted = abortSignal?.aborted === true;
|
|
1863
1999
|
if (wasAborted) {
|
|
2000
|
+
const stats = pendingCompleteStats ??
|
|
2001
|
+
(0, framework_1.createFailedLoopStats)({
|
|
2002
|
+
loopBudget,
|
|
2003
|
+
diagnostics: observedLlmRequests > 0 ? getLastRequestDiagnostics(this.runtime.llm) : undefined,
|
|
2004
|
+
turnsStarted: observedTurnsStarted,
|
|
2005
|
+
llmRequests: observedLlmRequests,
|
|
2006
|
+
toolCalls: observedToolCalls,
|
|
2007
|
+
readOnlyToolCalls: observedReadOnlyToolCalls,
|
|
2008
|
+
unsafeToolCalls: observedUnsafeToolCalls,
|
|
2009
|
+
toolResultBytes: observedToolResultBytes,
|
|
2010
|
+
modelVisibleToolBytes: observedModelVisibleToolBytes,
|
|
2011
|
+
});
|
|
2012
|
+
persistInterruptedAccounting(finalUsage, stats, finalUsage !== undefined || stats.llmRequests === 0);
|
|
1864
2013
|
assistantStream.discardSegment();
|
|
1865
2014
|
this.events.setStatus('Interrupted.');
|
|
1866
2015
|
removeTrailingUserMessage(this.runtime);
|
|
@@ -2087,10 +2236,30 @@ class AgentChatController {
|
|
|
2087
2236
|
gc.deferContinuation();
|
|
2088
2237
|
}
|
|
2089
2238
|
}
|
|
2090
|
-
catch {
|
|
2239
|
+
catch {
|
|
2240
|
+
/* best effort */
|
|
2241
|
+
}
|
|
2091
2242
|
return;
|
|
2092
2243
|
}
|
|
2093
2244
|
if (isAbortError(error, abortSignal)) {
|
|
2245
|
+
const interruptedStats = error instanceof framework_1.QueryLoopError
|
|
2246
|
+
? error.stats
|
|
2247
|
+
: (0, framework_1.createFailedLoopStats)({
|
|
2248
|
+
loopBudget,
|
|
2249
|
+
diagnostics: observedLlmRequests > 0 ? getLastRequestDiagnostics(this.runtime.llm) : undefined,
|
|
2250
|
+
turnsStarted: observedTurnsStarted,
|
|
2251
|
+
llmRequests: observedLlmRequests,
|
|
2252
|
+
toolCalls: observedToolCalls,
|
|
2253
|
+
readOnlyToolCalls: observedReadOnlyToolCalls,
|
|
2254
|
+
unsafeToolCalls: observedUnsafeToolCalls,
|
|
2255
|
+
toolResultBytes: observedToolResultBytes,
|
|
2256
|
+
modelVisibleToolBytes: observedModelVisibleToolBytes,
|
|
2257
|
+
});
|
|
2258
|
+
const interruptedRootUsage = error instanceof framework_1.QueryLoopError ? error.aggregateUsage : undefined;
|
|
2259
|
+
// A thrown abort after a provider request started can only prove a
|
|
2260
|
+
// lower bound: the in-flight request may be billable even when its
|
|
2261
|
+
// final usage chunk never arrived.
|
|
2262
|
+
persistInterruptedAccounting(interruptedRootUsage, interruptedStats, interruptedStats.llmRequests === 0);
|
|
2094
2263
|
assistantStream.discardSegment();
|
|
2095
2264
|
this.events.setStatus('Interrupted.');
|
|
2096
2265
|
removeTrailingUserMessage(this.runtime);
|
|
@@ -2123,7 +2292,7 @@ class AgentChatController {
|
|
|
2123
2292
|
errorLayer: errorLayerForChatError(error),
|
|
2124
2293
|
});
|
|
2125
2294
|
this.events.setStatus('Turn failed. Ready for the next input.');
|
|
2126
|
-
const failedStats = error instanceof framework_1.QueryLoopError
|
|
2295
|
+
const failedStats = this.foldSubagentUsage(error instanceof framework_1.QueryLoopError
|
|
2127
2296
|
? error.stats
|
|
2128
2297
|
: (0, framework_1.createFailedLoopStats)({
|
|
2129
2298
|
loopBudget,
|
|
@@ -2135,7 +2304,16 @@ class AgentChatController {
|
|
|
2135
2304
|
unsafeToolCalls: observedUnsafeToolCalls,
|
|
2136
2305
|
toolResultBytes: observedToolResultBytes,
|
|
2137
2306
|
modelVisibleToolBytes: observedModelVisibleToolBytes,
|
|
2307
|
+
}), subagentBundle);
|
|
2308
|
+
const rootUsage = error instanceof framework_1.QueryLoopError ? error.aggregateUsage : undefined;
|
|
2309
|
+
const subagentUsage = subagentBundle?.getAggregateUsage();
|
|
2310
|
+
const hasSubagentUsage = (subagentUsage?.promptTokens ?? 0) > 0 || (subagentUsage?.completionTokens ?? 0) > 0;
|
|
2311
|
+
if (rootUsage || hasSubagentUsage) {
|
|
2312
|
+
this.runtime.store.setTokenUsage({
|
|
2313
|
+
promptTokens: (rootUsage?.promptTokens ?? 0) + (subagentUsage?.promptTokens ?? 0),
|
|
2314
|
+
completionTokens: (rootUsage?.completionTokens ?? 0) + (subagentUsage?.completionTokens ?? 0),
|
|
2138
2315
|
});
|
|
2316
|
+
}
|
|
2139
2317
|
this.setLoopStats(failedStats);
|
|
2140
2318
|
if (sessionId) {
|
|
2141
2319
|
recordProviderTraceEvents(this.events, sessionId, turnId, failedStats);
|
|
@@ -2183,6 +2361,9 @@ class AgentChatController {
|
|
|
2183
2361
|
this.runtime.store.setState({ conversationHistory: history.slice(0, -1) });
|
|
2184
2362
|
}
|
|
2185
2363
|
}
|
|
2364
|
+
finally {
|
|
2365
|
+
restoreProviderPreflight?.();
|
|
2366
|
+
}
|
|
2186
2367
|
}
|
|
2187
2368
|
}
|
|
2188
2369
|
exports.AgentChatController = AgentChatController;
|