@code-yeongyu/senpi 2026.7.25 → 2026.7.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +81 -0
- package/README.md +1 -1
- package/dist/beta/omo-local-update.d.ts +207 -0
- package/dist/beta/omo-local-update.d.ts.map +1 -0
- package/dist/beta/omo-local-update.js +708 -0
- package/dist/beta/omo-local-update.js.map +1 -0
- package/dist/cli/args.d.ts +4 -16
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +9 -25
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/grok-neo-gate.d.ts +12 -0
- package/dist/cli/grok-neo-gate.d.ts.map +1 -0
- package/dist/cli/grok-neo-gate.js +18 -0
- package/dist/cli/grok-neo-gate.js.map +1 -0
- package/dist/cli-main.js +4 -0
- package/dist/cli-main.js.map +1 -1
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/core/agent-session-runtime.d.ts +2 -0
- package/dist/core/agent-session-runtime.d.ts.map +1 -1
- package/dist/core/agent-session-runtime.js +33 -8
- package/dist/core/agent-session-runtime.js.map +1 -1
- package/dist/core/agent-session.d.ts +22 -3
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +202 -58
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-providers.d.ts +2 -2
- package/dist/core/auth-providers.js +2 -2
- package/dist/core/auth-providers.js.map +1 -1
- package/dist/core/extensions/builtin/bash-timeout/timeout.d.ts.map +1 -1
- package/dist/core/extensions/builtin/bash-timeout/timeout.js +3 -2
- package/dist/core/extensions/builtin/bash-timeout/timeout.js.map +1 -1
- package/dist/core/extensions/builtin/compaction/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/compaction/index.js +30 -2
- package/dist/core/extensions/builtin/compaction/index.js.map +1 -1
- package/dist/core/extensions/builtin/compaction/speculative.d.ts.map +1 -1
- package/dist/core/extensions/builtin/compaction/speculative.js +28 -0
- package/dist/core/extensions/builtin/compaction/speculative.js.map +1 -1
- package/dist/core/extensions/builtin/config-reload/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/config-reload/index.js +20 -17
- package/dist/core/extensions/builtin/config-reload/index.js.map +1 -1
- package/dist/core/extensions/builtin/config-reload/log.d.ts +4 -1
- package/dist/core/extensions/builtin/config-reload/log.d.ts.map +1 -1
- package/dist/core/extensions/builtin/config-reload/log.js +3 -0
- package/dist/core/extensions/builtin/config-reload/log.js.map +1 -1
- package/dist/core/extensions/builtin/config-reload/routine-settings.d.ts +15 -0
- package/dist/core/extensions/builtin/config-reload/routine-settings.d.ts.map +1 -0
- package/dist/core/extensions/builtin/config-reload/routine-settings.js +102 -0
- package/dist/core/extensions/builtin/config-reload/routine-settings.js.map +1 -0
- package/dist/core/extensions/builtin/goal/command-registration.js +2 -2
- package/dist/core/extensions/builtin/goal/command-registration.js.map +1 -1
- package/dist/core/extensions/builtin/goal/format.d.ts +1 -1
- package/dist/core/extensions/builtin/goal/format.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/format.js +9 -2
- package/dist/core/extensions/builtin/goal/format.js.map +1 -1
- package/dist/core/extensions/builtin/goal/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/index.js +38 -23
- package/dist/core/extensions/builtin/goal/index.js.map +1 -1
- package/dist/core/extensions/builtin/goal/lifecycle-helpers.d.ts +6 -0
- package/dist/core/extensions/builtin/goal/lifecycle-helpers.d.ts.map +1 -0
- package/dist/core/extensions/builtin/goal/lifecycle-helpers.js +19 -0
- package/dist/core/extensions/builtin/goal/lifecycle-helpers.js.map +1 -0
- package/dist/core/extensions/builtin/goal/persistence.d.ts +6 -0
- package/dist/core/extensions/builtin/goal/persistence.d.ts.map +1 -0
- package/dist/core/extensions/builtin/goal/persistence.js +141 -0
- package/dist/core/extensions/builtin/goal/persistence.js.map +1 -0
- package/dist/core/extensions/builtin/goal/store.d.ts +7 -3
- package/dist/core/extensions/builtin/goal/store.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/store.js +66 -181
- package/dist/core/extensions/builtin/goal/store.js.map +1 -1
- package/dist/core/extensions/builtin/goal/tool-registration.d.ts +1 -0
- package/dist/core/extensions/builtin/goal/tool-registration.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/tool-registration.js +26 -15
- package/dist/core/extensions/builtin/goal/tool-registration.js.map +1 -1
- package/dist/core/extensions/builtin/goal/transitions.d.ts +3 -0
- package/dist/core/extensions/builtin/goal/transitions.d.ts.map +1 -0
- package/dist/core/extensions/builtin/goal/transitions.js +45 -0
- package/dist/core/extensions/builtin/goal/transitions.js.map +1 -0
- package/dist/core/extensions/builtin/goal/types.d.ts +10 -4
- package/dist/core/extensions/builtin/goal/types.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/types.js +2 -2
- package/dist/core/extensions/builtin/goal/types.js.map +1 -1
- package/dist/core/extensions/builtin/goal/ui.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/ui.js +2 -0
- package/dist/core/extensions/builtin/goal/ui.js.map +1 -1
- package/dist/core/extensions/builtin/goal/validation.d.ts +8 -1
- package/dist/core/extensions/builtin/goal/validation.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/validation.js +24 -12
- package/dist/core/extensions/builtin/goal/validation.js.map +1 -1
- package/dist/core/extensions/builtin/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/index.js +0 -2
- package/dist/core/extensions/builtin/index.js.map +1 -1
- package/dist/core/extensions/builtin/mcp/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/mcp/index.js +8 -5
- package/dist/core/extensions/builtin/mcp/index.js.map +1 -1
- package/dist/core/extensions/builtin/permission-system/parsers.d.ts.map +1 -1
- package/dist/core/extensions/builtin/permission-system/parsers.js +1 -0
- package/dist/core/extensions/builtin/permission-system/parsers.js.map +1 -1
- package/dist/core/extensions/builtin/prompt-preset/gpt-5.6.d.ts +48 -0
- package/dist/core/extensions/builtin/prompt-preset/gpt-5.6.d.ts.map +1 -1
- package/dist/core/extensions/builtin/prompt-preset/gpt-5.6.js +88 -64
- package/dist/core/extensions/builtin/prompt-preset/gpt-5.6.js.map +1 -1
- package/dist/core/extensions/builtin/terminal/extension.d.ts.map +1 -1
- package/dist/core/extensions/builtin/terminal/extension.js +32 -0
- package/dist/core/extensions/builtin/terminal/extension.js.map +1 -1
- package/dist/core/extensions/builtin/terminal/index.d.ts +1 -1
- package/dist/core/extensions/builtin/terminal/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/terminal/index.js +1 -1
- package/dist/core/extensions/builtin/terminal/index.js.map +1 -1
- package/dist/core/extensions/builtin/terminal/monitor-notify.d.ts +29 -0
- package/dist/core/extensions/builtin/terminal/monitor-notify.d.ts.map +1 -0
- package/dist/core/extensions/builtin/terminal/monitor-notify.js +185 -0
- package/dist/core/extensions/builtin/terminal/monitor-notify.js.map +1 -0
- package/dist/core/extensions/builtin/terminal/monitor-registry.d.ts +35 -0
- package/dist/core/extensions/builtin/terminal/monitor-registry.d.ts.map +1 -0
- package/dist/core/extensions/builtin/terminal/monitor-registry.js +98 -0
- package/dist/core/extensions/builtin/terminal/monitor-registry.js.map +1 -0
- package/dist/core/extensions/builtin/terminal/notify.d.ts +9 -0
- package/dist/core/extensions/builtin/terminal/notify.d.ts.map +1 -1
- package/dist/core/extensions/builtin/terminal/notify.js +30 -14
- package/dist/core/extensions/builtin/terminal/notify.js.map +1 -1
- package/dist/core/extensions/builtin/terminal/prompt.d.ts +1 -1
- package/dist/core/extensions/builtin/terminal/prompt.d.ts.map +1 -1
- package/dist/core/extensions/builtin/terminal/prompt.js +13 -5
- package/dist/core/extensions/builtin/terminal/prompt.js.map +1 -1
- package/dist/core/extensions/builtin/terminal/runtime-session.d.ts +3 -12
- package/dist/core/extensions/builtin/terminal/runtime-session.d.ts.map +1 -1
- package/dist/core/extensions/builtin/terminal/runtime-session.js +4 -59
- package/dist/core/extensions/builtin/terminal/runtime-session.js.map +1 -1
- package/dist/core/extensions/builtin/terminal/settings.d.ts +8 -0
- package/dist/core/extensions/builtin/terminal/settings.d.ts.map +1 -1
- package/dist/core/extensions/builtin/terminal/settings.js +16 -2
- package/dist/core/extensions/builtin/terminal/settings.js.map +1 -1
- package/dist/core/extensions/builtin/terminal/shared.d.ts +2 -2
- package/dist/core/extensions/builtin/terminal/shared.d.ts.map +1 -1
- package/dist/core/extensions/builtin/terminal/shared.js +2 -1
- package/dist/core/extensions/builtin/terminal/shared.js.map +1 -1
- package/dist/core/extensions/builtin/terminal/tools/bash-output.d.ts +10 -4
- package/dist/core/extensions/builtin/terminal/tools/bash-output.d.ts.map +1 -1
- package/dist/core/extensions/builtin/terminal/tools/bash-output.js +17 -96
- package/dist/core/extensions/builtin/terminal/tools/bash-output.js.map +1 -1
- package/dist/core/extensions/builtin/terminal/tools/context.d.ts +7 -0
- package/dist/core/extensions/builtin/terminal/tools/context.d.ts.map +1 -1
- package/dist/core/extensions/builtin/terminal/tools/context.js.map +1 -1
- package/dist/core/extensions/builtin/terminal/tools/monitor.d.ts +41 -0
- package/dist/core/extensions/builtin/terminal/tools/monitor.d.ts.map +1 -0
- package/dist/core/extensions/builtin/terminal/tools/monitor.js +97 -0
- package/dist/core/extensions/builtin/terminal/tools/monitor.js.map +1 -0
- package/dist/core/extensions/builtin/terminal/tools/render.d.ts +3 -0
- package/dist/core/extensions/builtin/terminal/tools/render.d.ts.map +1 -1
- package/dist/core/extensions/builtin/terminal/tools/render.js +5 -2
- package/dist/core/extensions/builtin/terminal/tools/render.js.map +1 -1
- package/dist/core/extensions/builtin/todotools/fuzzy-match.d.ts +19 -0
- package/dist/core/extensions/builtin/todotools/fuzzy-match.d.ts.map +1 -0
- package/dist/core/extensions/builtin/todotools/fuzzy-match.js +70 -0
- package/dist/core/extensions/builtin/todotools/fuzzy-match.js.map +1 -0
- package/dist/core/extensions/builtin/todotools/normalize.d.ts +8 -0
- package/dist/core/extensions/builtin/todotools/normalize.d.ts.map +1 -0
- package/dist/core/extensions/builtin/todotools/normalize.js +174 -0
- package/dist/core/extensions/builtin/todotools/normalize.js.map +1 -0
- package/dist/core/extensions/builtin/todotools/prompt.d.ts +2 -2
- package/dist/core/extensions/builtin/todotools/prompt.d.ts.map +1 -1
- package/dist/core/extensions/builtin/todotools/prompt.js +4 -2
- package/dist/core/extensions/builtin/todotools/prompt.js.map +1 -1
- package/dist/core/extensions/builtin/todotools/state.d.ts +9 -8
- package/dist/core/extensions/builtin/todotools/state.d.ts.map +1 -1
- package/dist/core/extensions/builtin/todotools/state.js +99 -48
- package/dist/core/extensions/builtin/todotools/state.js.map +1 -1
- package/dist/core/extensions/builtin/todotools/tools/todo.d.ts +1 -1
- package/dist/core/extensions/builtin/todotools/tools/todo.d.ts.map +1 -1
- package/dist/core/extensions/builtin/todotools/tools/todo.js +65 -38
- package/dist/core/extensions/builtin/todotools/tools/todo.js.map +1 -1
- package/dist/core/extensions/builtin/websearch/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/websearch/index.js +2 -4
- package/dist/core/extensions/builtin/websearch/index.js.map +1 -1
- package/dist/core/extensions/builtin/websearch/websearch/config.d.ts.map +1 -1
- package/dist/core/extensions/builtin/websearch/websearch/config.js +4 -1
- package/dist/core/extensions/builtin/websearch/websearch/config.js.map +1 -1
- package/dist/core/extensions/builtin/websearch/websearch/native.d.ts.map +1 -1
- package/dist/core/extensions/builtin/websearch/websearch/native.js +2 -4
- package/dist/core/extensions/builtin/websearch/websearch/native.js.map +1 -1
- package/dist/core/extensions/builtin/websearch/websearch/renderers.d.ts.map +1 -1
- package/dist/core/extensions/builtin/websearch/websearch/renderers.js +20 -8
- package/dist/core/extensions/builtin/websearch/websearch/renderers.js.map +1 -1
- package/dist/core/extensions/builtin/websearch/websearch/search.d.ts +6 -1
- package/dist/core/extensions/builtin/websearch/websearch/search.d.ts.map +1 -1
- package/dist/core/extensions/builtin/websearch/websearch/search.js +15 -11
- package/dist/core/extensions/builtin/websearch/websearch/search.js.map +1 -1
- package/dist/core/extensions/builtin/websearch/websearch/tool.d.ts.map +1 -1
- package/dist/core/extensions/builtin/websearch/websearch/tool.js +5 -10
- package/dist/core/extensions/builtin/websearch/websearch/tool.js.map +1 -1
- package/dist/core/extensions/builtin/websearch/websearch/types.d.ts +1 -0
- package/dist/core/extensions/builtin/websearch/websearch/types.d.ts.map +1 -1
- package/dist/core/extensions/builtin/websearch/websearch/types.js.map +1 -1
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +12 -0
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +5 -0
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +12 -1
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +25 -1
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/keybindings.d.ts +0 -5
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +0 -2
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/messages.d.ts +32 -0
- package/dist/core/messages.d.ts.map +1 -1
- package/dist/core/messages.js +91 -0
- package/dist/core/messages.js.map +1 -1
- package/dist/core/model-resolver.d.ts +10 -1
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +13 -3
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/model-runtime.d.ts +2 -0
- package/dist/core/model-runtime.d.ts.map +1 -1
- package/dist/core/model-runtime.js +4 -3
- package/dist/core/model-runtime.js.map +1 -1
- package/dist/core/remote-catalog-provider.d.ts.map +1 -1
- package/dist/core/remote-catalog-provider.js +19 -1
- package/dist/core/remote-catalog-provider.js.map +1 -1
- package/dist/core/resource-loader.d.ts +9 -0
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +13 -2
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/retry-fallback/controller.d.ts +7 -0
- package/dist/core/retry-fallback/controller.d.ts.map +1 -1
- package/dist/core/retry-fallback/controller.js +13 -0
- package/dist/core/retry-fallback/controller.js.map +1 -1
- package/dist/core/retry-fallback/cooldown.d.ts.map +1 -1
- package/dist/core/retry-fallback/cooldown.js +5 -0
- package/dist/core/retry-fallback/cooldown.js.map +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +11 -35
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/settings-manager.d.ts +12 -16
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +10 -13
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +1 -0
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/thinking-levels.d.ts.map +1 -1
- package/dist/core/thinking-levels.js +9 -2
- package/dist/core/thinking-levels.js.map +1 -1
- package/dist/core/timings.d.ts +7 -2
- package/dist/core/timings.d.ts.map +1 -1
- package/dist/core/timings.js +11 -0
- package/dist/core/timings.js.map +1 -1
- package/dist/extensions/llama/provider.d.ts.map +1 -1
- package/dist/extensions/llama/provider.js +6 -0
- package/dist/extensions/llama/provider.js.map +1 -1
- package/dist/inspector-policy.d.ts +22 -0
- package/dist/inspector-policy.d.ts.map +1 -0
- package/dist/inspector-policy.js +84 -0
- package/dist/inspector-policy.js.map +1 -0
- package/dist/main.d.ts +6 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +20 -23
- package/dist/main.js.map +1 -1
- package/dist/modes/app-server/runtime.d.ts.map +1 -1
- package/dist/modes/app-server/runtime.js +1 -0
- package/dist/modes/app-server/runtime.js.map +1 -1
- package/dist/modes/app-server/threads/goal-handlers.js +4 -2
- package/dist/modes/app-server/threads/goal-handlers.js.map +1 -1
- package/dist/modes/app-server/threads/goal-wire.d.ts.map +1 -1
- package/dist/modes/app-server/threads/goal-wire.js +1 -0
- package/dist/modes/app-server/threads/goal-wire.js.map +1 -1
- package/dist/modes/app-server/threads/handlers.d.ts +1 -0
- package/dist/modes/app-server/threads/handlers.d.ts.map +1 -1
- package/dist/modes/app-server/threads/handlers.js +2 -0
- package/dist/modes/app-server/threads/handlers.js.map +1 -1
- package/dist/modes/app-server/threads/turn-runtime.d.ts +1 -0
- package/dist/modes/app-server/threads/turn-runtime.d.ts.map +1 -1
- package/dist/modes/app-server/threads/turn-runtime.js.map +1 -1
- package/dist/modes/app-server/threads/turns.d.ts.map +1 -1
- package/dist/modes/app-server/threads/turns.js +47 -3
- package/dist/modes/app-server/threads/turns.js.map +1 -1
- package/dist/modes/interactive/components/custom-message.d.ts +3 -1
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-message.js +9 -2
- package/dist/modes/interactive/components/custom-message.js.map +1 -1
- package/dist/modes/interactive/components/status-indicator.d.ts +1 -0
- package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -1
- package/dist/modes/interactive/components/status-indicator.js +29 -4
- package/dist/modes/interactive/components/status-indicator.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts +5 -1
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +43 -17
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/grok/chrome-tokens.d.ts +22 -0
- package/dist/modes/interactive/grok/chrome-tokens.d.ts.map +1 -0
- package/dist/modes/interactive/grok/chrome-tokens.js +27 -0
- package/dist/modes/interactive/grok/chrome-tokens.js.map +1 -0
- package/dist/modes/interactive/grok/chrome.d.ts +51 -0
- package/dist/modes/interactive/grok/chrome.d.ts.map +1 -0
- package/dist/modes/interactive/grok/chrome.js +105 -0
- package/dist/modes/interactive/grok/chrome.js.map +1 -0
- package/dist/modes/interactive/grok/footer.d.ts +14 -0
- package/dist/modes/interactive/grok/footer.d.ts.map +1 -0
- package/dist/modes/interactive/grok/footer.js +27 -0
- package/dist/modes/interactive/grok/footer.js.map +1 -0
- package/dist/modes/interactive/grok/input-card.d.ts +9 -0
- package/dist/modes/interactive/grok/input-card.d.ts.map +1 -0
- package/dist/modes/interactive/grok/input-card.js +30 -0
- package/dist/modes/interactive/grok/input-card.js.map +1 -0
- package/dist/modes/interactive/grok/palette.d.ts +145 -0
- package/dist/modes/interactive/grok/palette.d.ts.map +1 -0
- package/dist/modes/interactive/grok/palette.js +92 -0
- package/dist/modes/interactive/grok/palette.js.map +1 -0
- package/dist/modes/interactive/grok/tool-row.d.ts +17 -0
- package/dist/modes/interactive/grok/tool-row.d.ts.map +1 -0
- package/dist/modes/interactive/grok/tool-row.js +26 -0
- package/dist/modes/interactive/grok/tool-row.js.map +1 -0
- package/dist/modes/interactive/grok/welcome-card.d.ts +10 -0
- package/dist/modes/interactive/grok/welcome-card.d.ts.map +1 -0
- package/dist/modes/interactive/grok/welcome-card.js +30 -0
- package/dist/modes/interactive/grok/welcome-card.js.map +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts +5 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +117 -54
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/theme/grok-day.json +77 -0
- package/dist/modes/interactive/theme/grok-night.json +93 -0
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +4 -0
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/rpc/connection-handler.d.ts +3 -3
- package/dist/modes/rpc/connection-handler.js +6 -6
- package/dist/modes/rpc/connection-handler.js.map +1 -1
- package/dist/modes/rpc/custom-capability.d.ts +6 -7
- package/dist/modes/rpc/custom-capability.d.ts.map +1 -1
- package/dist/modes/rpc/custom-capability.js +6 -7
- package/dist/modes/rpc/custom-capability.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts +2 -2
- package/dist/modes/rpc/rpc-mode.js +5 -5
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/package-manager-cli.d.ts.map +1 -1
- package/dist/package-manager-cli.js +11 -0
- package/dist/package-manager-cli.js.map +1 -1
- package/dist/senpi +2 -0
- package/docs/docs.json +4 -0
- package/docs/environment-variables.md +1 -0
- package/docs/extensions.md +2 -2
- package/docs/grok-neo.md +77 -0
- package/docs/keybindings.md +0 -1
- package/docs/settings.md +14 -3
- package/docs/terminal-tools.md +6 -3
- package/docs/usage.md +1 -1
- package/examples/extensions/message-renderer.ts +2 -2
- package/node_modules/@code-yeongyu/senpi-codemode/CHANGELOG.md +47 -0
- package/node_modules/@code-yeongyu/senpi-codemode/README.md +39 -19
- package/node_modules/@code-yeongyu/senpi-codemode/package.json +3 -3
- package/node_modules/@code-yeongyu/senpi-codemode/src/bridge/http-server.ts +6 -1
- package/node_modules/@code-yeongyu/senpi-codemode/src/bridges/output-bridge.ts +0 -1
- package/node_modules/@code-yeongyu/senpi-codemode/src/extension/eval-notifier.ts +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/src/index.ts +46 -66
- package/node_modules/@code-yeongyu/senpi-codemode/src/kernels/js/context-manager.ts +5 -2
- package/node_modules/@code-yeongyu/senpi-codemode/src/kernels/py/kernel-contract.ts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/src/kernels/py/kernel.ts +19 -4
- package/node_modules/@code-yeongyu/senpi-codemode/src/kernels/py/prelude.py +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/src/kernels/shared/subprocess-kernel.ts +8 -5
- package/node_modules/@code-yeongyu/senpi-codemode/src/prompt/eval-prompt.ts +23 -5
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/detached-cell-manager.ts +322 -0
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/eval-tool.ts +253 -18
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/interrupt-note.ts +58 -0
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/render.ts +28 -6
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/status-events.ts +20 -0
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/types.ts +65 -22
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js +4 -41
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.d.ts +6 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.js +4 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/assistant-terminal-state.d.ts +10 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/assistant-terminal-state.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/assistant-terminal-state.js +38 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/assistant-terminal-state.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/types.d.ts +5 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/types.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/package.json +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js +210 -26
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.js +16 -8
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.js +39 -20
- package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.js +9 -2
- package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/google-shared.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/google-shared.js +4 -3
- package/node_modules/@earendil-works/pi-ai/dist/api/google-shared.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.js +12 -2
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js +19 -11
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js +121 -23
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.d.ts +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.js +67 -31
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js +13 -8
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/simple-options.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/simple-options.js +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/simple-options.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/radius.d.ts +3 -2
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/radius.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/radius.js +37 -35
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/radius.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.js +11 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/index.d.ts +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/index.js +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models-store.d.ts +5 -0
- package/node_modules/@earendil-works/pi-ai/dist/models-store.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models-store.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.js +5 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/.manifest.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/amazon-bedrock.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/anthropic.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/cloudflare-ai-gateway.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/github-copilot.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/openrouter.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/vercel-ai-gateway.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/types.d.ts +9 -0
- package/node_modules/@earendil-works/pi-ai/dist/types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/types.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/error-body.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/error-body.js +8 -3
- package/node_modules/@earendil-works/pi-ai/dist/utils/error-body.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/retry.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/retry.js +10 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/retry.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/server-fallback-receipt.d.ts +30 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/server-fallback-receipt.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/server-fallback-receipt.js +70 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/server-fallback-receipt.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/stop-details.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/stop-details.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/stop-details.js +7 -3
- package/node_modules/@earendil-works/pi-ai/dist/utils/stop-details.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/tool-call-id.d.ts +9 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/tool-call-id.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/tool-call-id.js +16 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/tool-call-id.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/package.json +1 -1
- package/node_modules/@earendil-works/pi-pty/package.json +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/autocomplete.d.ts +1 -0
- package/node_modules/@earendil-works/pi-tui/dist/autocomplete.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/autocomplete.js +35 -3
- package/node_modules/@earendil-works/pi-tui/dist/autocomplete.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.d.ts +6 -0
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/select-list.d.ts +32 -0
- package/node_modules/@earendil-works/pi-tui/dist/components/select-list.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/select-list.js +15 -7
- package/node_modules/@earendil-works/pi-tui/dist/components/select-list.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/index.d.ts +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/package.json +1 -1
- package/package.json +8 -8
- package/dist/cli/neo/build-argv.d.ts +0 -19
- package/dist/cli/neo/build-argv.d.ts.map +0 -1
- package/dist/cli/neo/build-argv.js +0 -84
- package/dist/cli/neo/build-argv.js.map +0 -1
- package/dist/cli/neo/daemon-launch.d.ts +0 -25
- package/dist/cli/neo/daemon-launch.d.ts.map +0 -1
- package/dist/cli/neo/daemon-launch.js +0 -97
- package/dist/cli/neo/daemon-launch.js.map +0 -1
- package/dist/cli/neo/gate.d.ts +0 -15
- package/dist/cli/neo/gate.d.ts.map +0 -1
- package/dist/cli/neo/gate.js +0 -21
- package/dist/cli/neo/gate.js.map +0 -1
- package/dist/cli/neo/launch.d.ts +0 -24
- package/dist/cli/neo/launch.d.ts.map +0 -1
- package/dist/cli/neo/launch.js +0 -66
- package/dist/cli/neo/launch.js.map +0 -1
- package/dist/cli/neo/platform.d.ts +0 -38
- package/dist/cli/neo/platform.d.ts.map +0 -1
- package/dist/cli/neo/platform.js +0 -54
- package/dist/cli/neo/platform.js.map +0 -1
- package/dist/cli/neo/resolve-binary.d.ts +0 -39
- package/dist/cli/neo/resolve-binary.d.ts.map +0 -1
- package/dist/cli/neo/resolve-binary.js +0 -66
- package/dist/cli/neo/resolve-binary.js.map +0 -1
- package/dist/core/extensions/builtin/session-observer/index.d.ts +0 -5
- package/dist/core/extensions/builtin/session-observer/index.d.ts.map +0 -1
- package/dist/core/extensions/builtin/session-observer/index.js +0 -36
- package/dist/core/extensions/builtin/session-observer/index.js.map +0 -1
- package/dist/core/extensions/builtin/session-observer/loader.d.ts +0 -3
- package/dist/core/extensions/builtin/session-observer/loader.d.ts.map +0 -1
- package/dist/core/extensions/builtin/session-observer/loader.js +0 -20
- package/dist/core/extensions/builtin/session-observer/loader.js.map +0 -1
- package/dist/core/extensions/builtin/session-observer/overlay-format.d.ts +0 -7
- package/dist/core/extensions/builtin/session-observer/overlay-format.d.ts.map +0 -1
- package/dist/core/extensions/builtin/session-observer/overlay-format.js +0 -30
- package/dist/core/extensions/builtin/session-observer/overlay-format.js.map +0 -1
- package/dist/core/extensions/builtin/session-observer/overlay.d.ts +0 -51
- package/dist/core/extensions/builtin/session-observer/overlay.d.ts.map +0 -1
- package/dist/core/extensions/builtin/session-observer/overlay.js +0 -229
- package/dist/core/extensions/builtin/session-observer/overlay.js.map +0 -1
- package/dist/core/extensions/builtin/session-observer/scanner.d.ts +0 -10
- package/dist/core/extensions/builtin/session-observer/scanner.d.ts.map +0 -1
- package/dist/core/extensions/builtin/session-observer/scanner.js +0 -142
- package/dist/core/extensions/builtin/session-observer/scanner.js.map +0 -1
- package/dist/core/extensions/builtin/session-observer/text.d.ts +0 -7
- package/dist/core/extensions/builtin/session-observer/text.d.ts.map +0 -1
- package/dist/core/extensions/builtin/session-observer/text.js +0 -37
- package/dist/core/extensions/builtin/session-observer/text.js.map +0 -1
- package/dist/core/extensions/builtin/session-observer/transcript-entries.d.ts +0 -7
- package/dist/core/extensions/builtin/session-observer/transcript-entries.d.ts.map +0 -1
- package/dist/core/extensions/builtin/session-observer/transcript-entries.js +0 -71
- package/dist/core/extensions/builtin/session-observer/transcript-entries.js.map +0 -1
- package/dist/core/extensions/builtin/session-observer/transcript-format.d.ts +0 -11
- package/dist/core/extensions/builtin/session-observer/transcript-format.d.ts.map +0 -1
- package/dist/core/extensions/builtin/session-observer/transcript-format.js +0 -65
- package/dist/core/extensions/builtin/session-observer/transcript-format.js.map +0 -1
- package/dist/core/extensions/builtin/session-observer/transcript.d.ts +0 -4
- package/dist/core/extensions/builtin/session-observer/transcript.d.ts.map +0 -1
- package/dist/core/extensions/builtin/session-observer/transcript.js +0 -81
- package/dist/core/extensions/builtin/session-observer/transcript.js.map +0 -1
- package/dist/core/extensions/builtin/session-observer/types.d.ts +0 -33
- package/dist/core/extensions/builtin/session-observer/types.d.ts.map +0 -1
- package/dist/core/extensions/builtin/session-observer/types.js +0 -2
- package/dist/core/extensions/builtin/session-observer/types.js.map +0 -1
- package/dist/modes/rpc/neo-daemon-child-worker.d.ts +0 -29
- package/dist/modes/rpc/neo-daemon-child-worker.d.ts.map +0 -1
- package/dist/modes/rpc/neo-daemon-child-worker.js +0 -95
- package/dist/modes/rpc/neo-daemon-child-worker.js.map +0 -1
- package/dist/modes/rpc/neo-daemon-mode.d.ts +0 -110
- package/dist/modes/rpc/neo-daemon-mode.d.ts.map +0 -1
- package/dist/modes/rpc/neo-daemon-mode.js +0 -267
- package/dist/modes/rpc/neo-daemon-mode.js.map +0 -1
- package/dist/modes/rpc/neo-daemon-protocol.d.ts +0 -50
- package/dist/modes/rpc/neo-daemon-protocol.d.ts.map +0 -1
- package/dist/modes/rpc/neo-daemon-protocol.js +0 -66
- package/dist/modes/rpc/neo-daemon-protocol.js.map +0 -1
- package/dist/modes/rpc/neo-daemon-registry.d.ts +0 -98
- package/dist/modes/rpc/neo-daemon-registry.d.ts.map +0 -1
- package/dist/modes/rpc/neo-daemon-registry.js +0 -209
- package/dist/modes/rpc/neo-daemon-registry.js.map +0 -1
- package/dist/modes/rpc/neo-runtime-options-argv.d.ts +0 -17
- package/dist/modes/rpc/neo-runtime-options-argv.d.ts.map +0 -1
- package/dist/modes/rpc/neo-runtime-options-argv.js +0 -79
- package/dist/modes/rpc/neo-runtime-options-argv.js.map +0 -1
- package/dist/modes/rpc/neo-runtime-options.d.ts +0 -84
- package/dist/modes/rpc/neo-runtime-options.d.ts.map +0 -1
- package/dist/modes/rpc/neo-runtime-options.js +0 -92
- package/dist/modes/rpc/neo-runtime-options.js.map +0 -1
- package/docs/neo.md +0 -111
- package/node_modules/@code-yeongyu/senpi-codemode/src/codemode/runtime.ts +0 -258
- package/node_modules/@code-yeongyu/senpi-codemode/src/codemode/tools.ts +0 -106
|
@@ -24,8 +24,10 @@ import { formatMissingSessionCwdPrompt, MissingSessionCwdError } from "../../cor
|
|
|
24
24
|
import { SessionManager, sessionEntryToContextMessages } from "../../core/session-manager.js";
|
|
25
25
|
import { BUILTIN_SLASH_COMMANDS } from "../../core/slash-commands.js";
|
|
26
26
|
import { isInstallTelemetryEnabled } from "../../core/telemetry.js";
|
|
27
|
+
import { formatTimings, time } from "../../core/timings.js";
|
|
27
28
|
import { hasTrustRequiringProjectResources, ProjectTrustStore } from "../../core/trust-manager.js";
|
|
28
29
|
import { getUsageCostBreakdown } from "../../core/usage-totals.js";
|
|
30
|
+
import { consumeEarlyInspectorVmImportRecoveries, INSPECTOR_VM_IMPORT_WARNING, isRecoverableInspectorVmImportError, } from "../../inspector-policy.js";
|
|
29
31
|
import { getChangelogPath, getNewEntries, normalizeChangelogLinks, parseChangelog } from "../../utils/changelog.js";
|
|
30
32
|
import { copyToClipboard, readClipboardText } from "../../utils/clipboard.js";
|
|
31
33
|
import { extensionForImageMimeType, readClipboardImage } from "../../utils/clipboard-image.js";
|
|
@@ -68,6 +70,7 @@ import { TrustSelectorComponent } from "./components/trust-selector.js";
|
|
|
68
70
|
import { UserMessageComponent } from "./components/user-message.js";
|
|
69
71
|
import { UserMessageSelectorComponent } from "./components/user-message-selector.js";
|
|
70
72
|
import { editInExternalEditor } from "./external-editor.js";
|
|
73
|
+
import { GrokChrome } from "./grok/chrome.js";
|
|
71
74
|
import { restoreInteractiveStderr, takeOverInteractiveStderr } from "./interactive-stderr-guard.js";
|
|
72
75
|
import { getModelSearchText } from "./model-search.js";
|
|
73
76
|
import { resolveStartupToolPaths } from "./startup-tools.js";
|
|
@@ -197,9 +200,9 @@ export function formatResumeCommand(sessionManager) {
|
|
|
197
200
|
function hasDefaultModelProvider(providerId) {
|
|
198
201
|
return providerId in defaultModelPerProvider;
|
|
199
202
|
}
|
|
200
|
-
// isApiKeyLoginProvider now lives in core/auth-providers.ts so
|
|
201
|
-
//
|
|
202
|
-
//
|
|
203
|
+
// isApiKeyLoginProvider now lives in core/auth-providers.ts so RPC clients and
|
|
204
|
+
// the classic selectors share ONE source of truth. Re-exported here to keep the
|
|
205
|
+
// existing public import (test/oauth-selector.test.ts) working, and used
|
|
203
206
|
// locally by getLoginProviderOptions below.
|
|
204
207
|
export { isApiKeyLoginProvider };
|
|
205
208
|
const AUTH_TYPE_ORDER = { oauth: 0, api_key: 1 };
|
|
@@ -345,6 +348,7 @@ export class InteractiveMode {
|
|
|
345
348
|
this.isShuttingDown = false;
|
|
346
349
|
this.runtimeHost = runtimeHost;
|
|
347
350
|
this.options = options;
|
|
351
|
+
this.chrome = options.chrome === "grok" ? new GrokChrome() : options.chrome;
|
|
348
352
|
this.autoTrustOnReloadCwd = options.autoTrustOnReloadCwd;
|
|
349
353
|
this.runtimeHost.setBeforeSessionInvalidate(() => {
|
|
350
354
|
InteractiveMode.restoreCompactionEscapeOverride(this);
|
|
@@ -385,15 +389,26 @@ export class InteractiveMode {
|
|
|
385
389
|
setKeybindings(this.keybindings);
|
|
386
390
|
const editorPaddingX = this.settingsManager.getEditorPaddingX();
|
|
387
391
|
const autocompleteMaxVisible = this.settingsManager.getAutocompleteMaxVisible();
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
+
if (this.chrome) {
|
|
393
|
+
this.defaultEditor = this.chrome.createBaseEditor({
|
|
394
|
+
ui: this.ui,
|
|
395
|
+
keybindings: this.keybindings,
|
|
396
|
+
editorOptions: { paddingX: editorPaddingX, autocompleteMaxVisible },
|
|
397
|
+
});
|
|
398
|
+
}
|
|
399
|
+
else {
|
|
400
|
+
this.defaultEditor = new CustomEditor(this.ui, getEditorTheme(), this.keybindings, {
|
|
401
|
+
paddingX: editorPaddingX,
|
|
402
|
+
autocompleteMaxVisible,
|
|
403
|
+
});
|
|
404
|
+
}
|
|
392
405
|
this.editor = this.defaultEditor;
|
|
393
406
|
this.editorContainer = new Container();
|
|
394
407
|
this.editorContainer.addChild(this.editor);
|
|
395
408
|
this.footerDataProvider = new FooterDataProvider(this.sessionManager.getCwd());
|
|
396
|
-
this.footer =
|
|
409
|
+
this.footer = this.chrome
|
|
410
|
+
? this.chrome.createFooter(this.session, this.footerDataProvider)
|
|
411
|
+
: new FooterComponent(this.session, this.footerDataProvider);
|
|
397
412
|
this.footer.setAutoCompactEnabled(this.session.autoCompactionEnabled);
|
|
398
413
|
// Load hide thinking block setting
|
|
399
414
|
this.hideThinkingBlock = this.settingsManager.getHideThinkingBlock();
|
|
@@ -579,17 +594,36 @@ export class InteractiveMode {
|
|
|
579
594
|
}
|
|
580
595
|
// Add header container as first child. Populate it after applying theme settings.
|
|
581
596
|
// Keep loaded resources before chat so restored session messages never precede them.
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
597
|
+
if (this.chrome) {
|
|
598
|
+
this.renderWidgets(); // Initialize with default spacer
|
|
599
|
+
for (const component of this.chrome.arrangeRoot([
|
|
600
|
+
this.headerContainer,
|
|
601
|
+
this.loadedResourcesContainer,
|
|
602
|
+
this.chatContainer,
|
|
603
|
+
this.pendingMessagesContainer,
|
|
604
|
+
this.statusContainer,
|
|
605
|
+
this.hookStatusContainer,
|
|
606
|
+
this.widgetContainerAbove,
|
|
607
|
+
this.editorContainer,
|
|
608
|
+
this.widgetContainerBelow,
|
|
609
|
+
this.footer,
|
|
610
|
+
], this.ui)) {
|
|
611
|
+
this.ui.addChild(component);
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
else {
|
|
615
|
+
this.ui.addChild(this.headerContainer);
|
|
616
|
+
this.ui.addChild(this.loadedResourcesContainer);
|
|
617
|
+
this.ui.addChild(this.chatContainer);
|
|
618
|
+
this.ui.addChild(this.pendingMessagesContainer);
|
|
619
|
+
this.ui.addChild(this.statusContainer);
|
|
620
|
+
this.ui.addChild(this.hookStatusContainer);
|
|
621
|
+
this.renderWidgets(); // Initialize with default spacer
|
|
622
|
+
this.ui.addChild(this.widgetContainerAbove);
|
|
623
|
+
this.ui.addChild(this.editorContainer);
|
|
624
|
+
this.ui.addChild(this.widgetContainerBelow);
|
|
625
|
+
this.ui.addChild(this.footer);
|
|
626
|
+
}
|
|
593
627
|
this.ui.setFocus(this.editor);
|
|
594
628
|
this.setupKeyHandlers();
|
|
595
629
|
this.setupEditorSubmitHandler();
|
|
@@ -605,7 +639,13 @@ export class InteractiveMode {
|
|
|
605
639
|
this.isInitialized = true;
|
|
606
640
|
await this.themeController.applyFromSettings();
|
|
607
641
|
// Add header with keybindings from config (unless silenced)
|
|
608
|
-
if (this.
|
|
642
|
+
if (this.chrome) {
|
|
643
|
+
this.builtInHeader = this.chrome.createWelcomeContent(APP_NAME, this.version);
|
|
644
|
+
this.headerContainer.addChild(new Spacer(1));
|
|
645
|
+
this.headerContainer.addChild(this.builtInHeader);
|
|
646
|
+
this.headerContainer.addChild(new Spacer(1));
|
|
647
|
+
}
|
|
648
|
+
else if (this.options.verbose || !this.settingsManager.getQuietStartup()) {
|
|
609
649
|
const logo = theme.bold(theme.fg("accent", APP_NAME)) + theme.fg("dim", ` v${this.version}`);
|
|
610
650
|
// Build startup instructions using keybinding hint helpers
|
|
611
651
|
const hint = (keybinding, description) => keyHint(keybinding, description);
|
|
@@ -1760,7 +1800,9 @@ export class InteractiveMode {
|
|
|
1760
1800
|
return;
|
|
1761
1801
|
}
|
|
1762
1802
|
if (this.session.isStreaming && this.activeStatusIndicator?.kind !== "working") {
|
|
1763
|
-
this.showStatusIndicator(
|
|
1803
|
+
this.showStatusIndicator(this.chrome
|
|
1804
|
+
? this.chrome.createWorkingIndicator(this.ui, this.workingMessage ?? this.defaultWorkingMessage, this.getWorkingIndicatorOptions())
|
|
1805
|
+
: new WorkingStatusIndicator(this.ui, this.workingMessage ?? this.defaultWorkingMessage, this.getWorkingIndicatorOptions()));
|
|
1764
1806
|
}
|
|
1765
1807
|
this.ui.requestRender();
|
|
1766
1808
|
}
|
|
@@ -2174,7 +2216,7 @@ export class InteractiveMode {
|
|
|
2174
2216
|
this.editorContainer.clear();
|
|
2175
2217
|
if (factory) {
|
|
2176
2218
|
// Create the custom editor with tui, theme, and keybindings
|
|
2177
|
-
const newEditor = factory(this.ui, getEditorTheme(), this.keybindings);
|
|
2219
|
+
const newEditor = factory(this.ui, this.chrome ? this.chrome.getEditorTheme() : getEditorTheme(), this.keybindings);
|
|
2178
2220
|
// Wire up callbacks from the default editor
|
|
2179
2221
|
newEditor.onSubmit = this.defaultEditor.onSubmit;
|
|
2180
2222
|
newEditor.onChange = this.defaultEditor.onChange;
|
|
@@ -2284,7 +2326,8 @@ export class InteractiveMode {
|
|
|
2284
2326
|
const w = component.width;
|
|
2285
2327
|
return w ? { width: w } : undefined;
|
|
2286
2328
|
};
|
|
2287
|
-
const
|
|
2329
|
+
const overlayOptions = resolveOptions();
|
|
2330
|
+
const handle = this.ui.showOverlay(component, overlayOptions);
|
|
2288
2331
|
// Expose handle to caller for visibility control
|
|
2289
2332
|
options?.onHandle?.(handle);
|
|
2290
2333
|
}
|
|
@@ -2380,14 +2423,6 @@ export class InteractiveMode {
|
|
|
2380
2423
|
this.showError(`Failed to open history search: ${error instanceof Error ? error.message : String(error)}`);
|
|
2381
2424
|
}
|
|
2382
2425
|
});
|
|
2383
|
-
this.defaultEditor.onAction("app.sessions.observe", async () => {
|
|
2384
|
-
try {
|
|
2385
|
-
await this.session.prompt("/sessions");
|
|
2386
|
-
}
|
|
2387
|
-
catch (error) {
|
|
2388
|
-
this.showError(`Failed to open session observer: ${error instanceof Error ? error.message : String(error)}`);
|
|
2389
|
-
}
|
|
2390
|
-
});
|
|
2391
2426
|
this.defaultEditor.onAction("app.tools.expand", () => this.toggleToolOutputExpansion());
|
|
2392
2427
|
this.defaultEditor.onAction("app.thinking.toggle", () => this.toggleThinkingBlockVisibility());
|
|
2393
2428
|
this.defaultEditor.onAction("app.editor.external", () => void this.handleOpenExternalEditor());
|
|
@@ -2563,7 +2598,7 @@ export class InteractiveMode {
|
|
|
2563
2598
|
this.editor.setText("");
|
|
2564
2599
|
return;
|
|
2565
2600
|
}
|
|
2566
|
-
if (text === "/quit") {
|
|
2601
|
+
if (text === "/quit" || text === "/exit") {
|
|
2567
2602
|
this.editor.setText("");
|
|
2568
2603
|
await this.shutdown();
|
|
2569
2604
|
return;
|
|
@@ -2650,7 +2685,9 @@ export class InteractiveMode {
|
|
|
2650
2685
|
this.retryEscapeHandler = undefined;
|
|
2651
2686
|
}
|
|
2652
2687
|
if (this.workingVisible) {
|
|
2653
|
-
this.showStatusIndicator(
|
|
2688
|
+
this.showStatusIndicator(this.chrome
|
|
2689
|
+
? this.chrome.createWorkingIndicator(this.ui, this.workingMessage ?? this.defaultWorkingMessage, this.getWorkingIndicatorOptions())
|
|
2690
|
+
: new WorkingStatusIndicator(this.ui, this.workingMessage ?? this.defaultWorkingMessage, this.getWorkingIndicatorOptions()));
|
|
2654
2691
|
}
|
|
2655
2692
|
else {
|
|
2656
2693
|
this.clearStatusIndicator();
|
|
@@ -2706,10 +2743,7 @@ export class InteractiveMode {
|
|
|
2706
2743
|
if (content.type === "toolCall") {
|
|
2707
2744
|
let component = this.pendingTools.get(content.id);
|
|
2708
2745
|
if (!component) {
|
|
2709
|
-
component =
|
|
2710
|
-
showImages: this.settingsManager.getShowImages(),
|
|
2711
|
-
imageWidthCells: this.settingsManager.getImageWidthCells(),
|
|
2712
|
-
}, this.getRegisteredToolDefinition(content.name), this.ui, this.sessionManager.getCwd());
|
|
2746
|
+
component = this.createToolExecutionComponent(content.name, content.id, content.arguments);
|
|
2713
2747
|
component.setExpanded(this.toolOutputExpanded);
|
|
2714
2748
|
this.chatContainer.addChild(component);
|
|
2715
2749
|
this.pendingTools.set(content.id, component);
|
|
@@ -2780,10 +2814,7 @@ export class InteractiveMode {
|
|
|
2780
2814
|
this.handleToolExecutionStart(event);
|
|
2781
2815
|
let component = this.pendingTools.get(event.toolCallId);
|
|
2782
2816
|
if (!component) {
|
|
2783
|
-
component =
|
|
2784
|
-
showImages: this.settingsManager.getShowImages(),
|
|
2785
|
-
imageWidthCells: this.settingsManager.getImageWidthCells(),
|
|
2786
|
-
}, this.getRegisteredToolDefinition(event.toolName), this.ui, this.sessionManager.getCwd());
|
|
2817
|
+
component = this.createToolExecutionComponent(event.toolName, event.toolCallId, event.args);
|
|
2787
2818
|
component.setExpanded(this.toolOutputExpanded);
|
|
2788
2819
|
this.chatContainer.addChild(component);
|
|
2789
2820
|
this.pendingTools.set(event.toolCallId, component);
|
|
@@ -2968,6 +2999,11 @@ export class InteractiveMode {
|
|
|
2968
2999
|
this.showError(`Fallback chain exhausted for ${event.chainKey}: ${event.lastError}`);
|
|
2969
3000
|
this.setExtensionStatus(FALLBACK_STATUS_KEY, undefined);
|
|
2970
3001
|
break;
|
|
3002
|
+
case "server_fallback_aborted":
|
|
3003
|
+
this.showWarning(event.chainConfigured
|
|
3004
|
+
? `Server fallback ${event.from} -> ${event.to} aborted; retrying on your fallback chain`
|
|
3005
|
+
: `Server fallback ${event.from} -> ${event.to} aborted; no chain configured (set one with /fallback)`);
|
|
3006
|
+
break;
|
|
2971
3007
|
case "auto_retry_start": {
|
|
2972
3008
|
// During retry waits, isStreaming flips false between attempts. The main Esc handler
|
|
2973
3009
|
// keys off both isStreaming and retryAttempt so we keep the same close-out path here;
|
|
@@ -3102,7 +3138,7 @@ export class InteractiveMode {
|
|
|
3102
3138
|
case "custom": {
|
|
3103
3139
|
if (message.display) {
|
|
3104
3140
|
const renderer = this.session.extensionRunner.getMessageRenderer(message.customType);
|
|
3105
|
-
const component = new CustomMessageComponent(message, renderer, this.getMarkdownThemeWithSettings());
|
|
3141
|
+
const component = new CustomMessageComponent(message, renderer, this.getMarkdownThemeWithSettings(), this.outputPad);
|
|
3106
3142
|
component.setExpanded(this.toolOutputExpanded);
|
|
3107
3143
|
this.chatContainer.addChild(component);
|
|
3108
3144
|
}
|
|
@@ -3167,6 +3203,18 @@ export class InteractiveMode {
|
|
|
3167
3203
|
}
|
|
3168
3204
|
}
|
|
3169
3205
|
}
|
|
3206
|
+
createToolExecutionComponent(toolName, toolCallId, args) {
|
|
3207
|
+
if (this.chrome) {
|
|
3208
|
+
return new ToolExecutionComponent(toolName, toolCallId, args, {
|
|
3209
|
+
showImages: this.settingsManager.getShowImages(),
|
|
3210
|
+
imageWidthCells: this.settingsManager.getImageWidthCells(),
|
|
3211
|
+
}, this.getRegisteredToolDefinition(toolName), this.ui, this.sessionManager.getCwd(), this.chrome.toolPresentation);
|
|
3212
|
+
}
|
|
3213
|
+
return new ToolExecutionComponent(toolName, toolCallId, args, {
|
|
3214
|
+
showImages: this.settingsManager.getShowImages(),
|
|
3215
|
+
imageWidthCells: this.settingsManager.getImageWidthCells(),
|
|
3216
|
+
}, this.getRegisteredToolDefinition(toolName), this.ui, this.sessionManager.getCwd());
|
|
3217
|
+
}
|
|
3170
3218
|
renderSessionItems(items, options = {}) {
|
|
3171
3219
|
this.clearPendingTools();
|
|
3172
3220
|
const renderedPendingTools = new Map();
|
|
@@ -3191,10 +3239,7 @@ export class InteractiveMode {
|
|
|
3191
3239
|
// Render tool call components
|
|
3192
3240
|
for (const content of message.content) {
|
|
3193
3241
|
if (content.type === "toolCall") {
|
|
3194
|
-
const component =
|
|
3195
|
-
showImages: this.settingsManager.getShowImages(),
|
|
3196
|
-
imageWidthCells: this.settingsManager.getImageWidthCells(),
|
|
3197
|
-
}, this.getRegisteredToolDefinition(content.name), this.ui, this.sessionManager.getCwd());
|
|
3242
|
+
const component = this.createToolExecutionComponent(content.name, content.id, content.arguments);
|
|
3198
3243
|
component.setExpanded(this.toolOutputExpanded);
|
|
3199
3244
|
this.chatContainer.addChild(component);
|
|
3200
3245
|
if (message.stopReason === "aborted" || message.stopReason === "error") {
|
|
@@ -3391,10 +3436,14 @@ export class InteractiveMode {
|
|
|
3391
3436
|
* call ui.stop() to restore cooked mode, the cursor, and disable bracketed
|
|
3392
3437
|
* paste / Kitty / modifyOtherKeys sequences.
|
|
3393
3438
|
*/
|
|
3394
|
-
uncaughtCrash(error) {
|
|
3439
|
+
uncaughtCrash(error, origin) {
|
|
3395
3440
|
if (this.isShuttingDown) {
|
|
3396
3441
|
process.exit(1);
|
|
3397
3442
|
}
|
|
3443
|
+
if (isRecoverableInspectorVmImportError(error, origin)) {
|
|
3444
|
+
this.showWarning(INSPECTOR_VM_IMPORT_WARNING);
|
|
3445
|
+
return;
|
|
3446
|
+
}
|
|
3398
3447
|
this.isShuttingDown = true;
|
|
3399
3448
|
try {
|
|
3400
3449
|
this.unregisterSignalHandlers();
|
|
@@ -3452,9 +3501,14 @@ export class InteractiveMode {
|
|
|
3452
3501
|
// Restore the terminal before the process dies on any uncaught throw.
|
|
3453
3502
|
// Without this, an unhandled exception from extension code (or anywhere
|
|
3454
3503
|
// in pi) leaves the terminal in raw mode with no cursor.
|
|
3455
|
-
const uncaughtExceptionHandler = (error) => this.uncaughtCrash(error);
|
|
3504
|
+
const uncaughtExceptionHandler = (error, origin) => this.uncaughtCrash(error, origin);
|
|
3456
3505
|
process.prependListener("uncaughtException", uncaughtExceptionHandler);
|
|
3457
3506
|
this.signalCleanupHandlers.push(() => process.off("uncaughtException", uncaughtExceptionHandler));
|
|
3507
|
+
// Surface Inspector rejections that the early bootstrap seam recovered before this
|
|
3508
|
+
// handler (and the TUI warning surface) existed.
|
|
3509
|
+
if (consumeEarlyInspectorVmImportRecoveries() > 0) {
|
|
3510
|
+
this.showWarning(INSPECTOR_VM_IMPORT_WARNING);
|
|
3511
|
+
}
|
|
3458
3512
|
}
|
|
3459
3513
|
unregisterSignalHandlers() {
|
|
3460
3514
|
for (const cleanup of this.signalCleanupHandlers) {
|
|
@@ -3537,7 +3591,13 @@ export class InteractiveMode {
|
|
|
3537
3591
|
}
|
|
3538
3592
|
}
|
|
3539
3593
|
updateEditorBorderColor() {
|
|
3540
|
-
if (this.
|
|
3594
|
+
if (this.chrome) {
|
|
3595
|
+
this.editor.borderColor = this.chrome.getEditorBorderColor({
|
|
3596
|
+
isBashMode: this.isBashMode,
|
|
3597
|
+
thinkingLevel: this.session.thinkingLevel || "off",
|
|
3598
|
+
});
|
|
3599
|
+
}
|
|
3600
|
+
else if (this.isBashMode) {
|
|
3541
3601
|
this.editor.borderColor = theme.getBashModeBorderColor();
|
|
3542
3602
|
}
|
|
3543
3603
|
else {
|
|
@@ -4049,7 +4109,9 @@ export class InteractiveMode {
|
|
|
4049
4109
|
this.outputPad = padding;
|
|
4050
4110
|
if (this.streamingComponent || this.session.isStreaming) {
|
|
4051
4111
|
for (const child of this.chatContainer.children) {
|
|
4052
|
-
if (child instanceof AssistantMessageComponent ||
|
|
4112
|
+
if (child instanceof AssistantMessageComponent ||
|
|
4113
|
+
child instanceof CustomMessageComponent ||
|
|
4114
|
+
child instanceof UserMessageComponent) {
|
|
4053
4115
|
child.setOutputPad(padding);
|
|
4054
4116
|
}
|
|
4055
4117
|
}
|
|
@@ -4969,6 +5031,7 @@ export class InteractiveMode {
|
|
|
4969
5031
|
this.hideThinkingBlock = this.settingsManager.getHideThinkingBlock();
|
|
4970
5032
|
this.outputPad = this.settingsManager.getOutputPad();
|
|
4971
5033
|
this.rebuildChatFromMessages();
|
|
5034
|
+
time("chatRebuild", "reload");
|
|
4972
5035
|
chatRestoredBeforeSessionStart = true;
|
|
4973
5036
|
};
|
|
4974
5037
|
try {
|
|
@@ -5008,9 +5071,11 @@ export class InteractiveMode {
|
|
|
5008
5071
|
if (modelsJsonError) {
|
|
5009
5072
|
this.showError(`models.json error: ${modelsJsonError}`);
|
|
5010
5073
|
}
|
|
5011
|
-
|
|
5074
|
+
const reloadedMessage = savedImplicitProjectTrust
|
|
5012
5075
|
? "Reloaded keybindings, extensions, skills, prompts, themes, and context files; saved project trust"
|
|
5013
|
-
: "Reloaded keybindings, extensions, skills, prompts, themes, and context files"
|
|
5076
|
+
: "Reloaded keybindings, extensions, skills, prompts, themes, and context files";
|
|
5077
|
+
const reloadTimings = formatTimings("reload");
|
|
5078
|
+
this.showStatus(reloadTimings === undefined ? reloadedMessage : `${reloadedMessage} | reload timings: ${reloadTimings}`);
|
|
5014
5079
|
dismissReloadBox(this.editor);
|
|
5015
5080
|
reloadBoxDismissed = true;
|
|
5016
5081
|
}
|
|
@@ -5347,7 +5412,6 @@ export class InteractiveMode {
|
|
|
5347
5412
|
const cycleThinkingLevel = this.getAppKeyDisplay("app.thinking.cycle");
|
|
5348
5413
|
const cycleModelForward = this.getAppKeyDisplay("app.model.cycleForward");
|
|
5349
5414
|
const selectModel = this.getAppKeyDisplay("app.model.select");
|
|
5350
|
-
const observeSessions = this.getAppKeyDisplay("app.sessions.observe");
|
|
5351
5415
|
const expandTools = this.getAppKeyDisplay("app.tools.expand");
|
|
5352
5416
|
const toggleThinking = this.getAppKeyDisplay("app.thinking.toggle");
|
|
5353
5417
|
const externalEditor = this.getAppKeyDisplay("app.editor.external");
|
|
@@ -5392,7 +5456,6 @@ export class InteractiveMode {
|
|
|
5392
5456
|
| \`${cycleThinkingLevel}\` | Cycle thinking level |
|
|
5393
5457
|
| \`${cycleModelForward}\` / \`${cycleModelBackward}\` | Cycle models |
|
|
5394
5458
|
| \`${selectModel}\` | Open model selector |
|
|
5395
|
-
| \`${observeSessions}\` | Observe session transcripts |
|
|
5396
5459
|
| \`${expandTools}\` | Toggle tool output expansion |
|
|
5397
5460
|
| \`${toggleThinking}\` | Toggle thinking block visibility |
|
|
5398
5461
|
| \`${externalEditor}\` | Edit message in external editor |
|