@ebowwa/coder 0.7.63 → 0.7.65
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/dist/core/__tests__/permissions.test.d.ts +12 -0
- package/dist/core/__tests__/permissions.test.d.ts.map +1 -0
- package/dist/core/__tests__/permissions.test.js +851 -0
- package/dist/core/agent-loop/__tests__/compaction.test.d.ts +5 -0
- package/dist/core/agent-loop/__tests__/compaction.test.d.ts.map +1 -0
- package/dist/core/agent-loop/__tests__/compaction.test.js +209 -0
- package/dist/core/agent-loop/__tests__/formatters.test.d.ts +5 -0
- package/dist/core/agent-loop/__tests__/formatters.test.d.ts.map +1 -0
- package/dist/core/agent-loop/__tests__/formatters.test.js +195 -0
- package/dist/core/agent-loop/__tests__/index.test.d.ts +5 -0
- package/dist/core/agent-loop/__tests__/index.test.d.ts.map +1 -0
- package/dist/core/agent-loop/__tests__/index.test.js +121 -0
- package/dist/core/agent-loop/__tests__/loop-state.test.d.ts +5 -0
- package/dist/core/agent-loop/__tests__/loop-state.test.d.ts.map +1 -0
- package/dist/core/agent-loop/__tests__/loop-state.test.js +340 -0
- package/dist/core/agent-loop/__tests__/message-builder.test.d.ts +5 -0
- package/dist/core/agent-loop/__tests__/message-builder.test.d.ts.map +1 -0
- package/dist/core/agent-loop/__tests__/message-builder.test.js +178 -0
- package/dist/core/agent-loop/__tests__/tool-executor.test.d.ts +5 -0
- package/dist/core/agent-loop/__tests__/tool-executor.test.d.ts.map +1 -0
- package/dist/core/agent-loop/__tests__/tool-executor.test.js +331 -0
- package/dist/core/agent-loop/compaction.d.ts +39 -0
- package/dist/core/agent-loop/compaction.d.ts.map +1 -0
- package/dist/core/agent-loop/compaction.js +51 -0
- package/dist/core/agent-loop/formatters.d.ts +21 -0
- package/dist/core/agent-loop/formatters.d.ts.map +1 -0
- package/dist/core/agent-loop/formatters.js +42 -0
- package/dist/core/agent-loop/index.d.ts +25 -0
- package/dist/core/agent-loop/index.d.ts.map +1 -0
- package/dist/core/agent-loop/index.js +83 -0
- package/dist/core/agent-loop/loop-state.d.ts +74 -0
- package/dist/core/agent-loop/loop-state.d.ts.map +1 -0
- package/dist/core/agent-loop/loop-state.js +147 -0
- package/dist/core/agent-loop/message-builder.d.ts +13 -0
- package/dist/core/agent-loop/message-builder.d.ts.map +1 -0
- package/dist/core/agent-loop/message-builder.js +49 -0
- package/dist/core/agent-loop/tool-executor.d.ts +23 -0
- package/dist/core/agent-loop/tool-executor.d.ts.map +1 -0
- package/dist/core/agent-loop/tool-executor.js +152 -0
- package/dist/core/agent-loop/turn-executor.d.ts +57 -0
- package/dist/core/agent-loop/turn-executor.d.ts.map +1 -0
- package/dist/core/agent-loop/turn-executor.js +124 -0
- package/dist/core/agent-loop/types.d.ts +141 -0
- package/dist/core/agent-loop/types.d.ts.map +1 -0
- package/dist/core/agent-loop/types.js +4 -0
- package/dist/core/agent-loop.d.ts +17 -0
- package/dist/core/agent-loop.d.ts.map +1 -0
- package/dist/core/agent-loop.js +16 -0
- package/dist/core/api-client-impl.d.ts +62 -0
- package/dist/core/api-client-impl.d.ts.map +1 -0
- package/dist/core/api-client-impl.js +479 -0
- package/dist/core/api-client.d.ts +6 -0
- package/dist/core/api-client.d.ts.map +1 -0
- package/dist/core/api-client.js +5 -0
- package/dist/core/checkpoints.d.ts +128 -0
- package/dist/core/checkpoints.d.ts.map +1 -0
- package/dist/core/checkpoints.js +438 -0
- package/dist/core/claude-md.d.ts +71 -0
- package/dist/core/claude-md.d.ts.map +1 -0
- package/dist/core/claude-md.js +198 -0
- package/dist/core/cognitive-security/hooks.d.ts +138 -0
- package/dist/core/cognitive-security/hooks.d.ts.map +1 -0
- package/dist/core/cognitive-security/hooks.js +389 -0
- package/dist/core/cognitive-security/index.d.ts +751 -0
- package/dist/core/cognitive-security/index.d.ts.map +1 -0
- package/dist/core/cognitive-security/index.js +1123 -0
- package/dist/core/cognitive-security/middleware.d.ts +136 -0
- package/dist/core/cognitive-security/middleware.d.ts.map +1 -0
- package/dist/core/cognitive-security/middleware.js +376 -0
- package/dist/core/config-loader.d.ts +127 -0
- package/dist/core/config-loader.d.ts.map +1 -0
- package/dist/core/config-loader.js +219 -0
- package/dist/core/context-compaction.d.ts +87 -0
- package/dist/core/context-compaction.d.ts.map +1 -0
- package/dist/core/context-compaction.js +428 -0
- package/dist/core/git-status.d.ts +25 -0
- package/dist/core/git-status.d.ts.map +1 -0
- package/dist/core/git-status.js +204 -0
- package/dist/core/image.d.ts +69 -0
- package/dist/core/image.d.ts.map +1 -0
- package/dist/core/image.js +290 -0
- package/dist/core/image.test.d.ts +2 -0
- package/dist/core/image.test.d.ts.map +1 -0
- package/dist/core/image.test.js +149 -0
- package/dist/core/models.d.ts +123 -0
- package/dist/core/models.d.ts.map +1 -0
- package/dist/core/models.js +325 -0
- package/dist/core/permissions.d.ts +81 -0
- package/dist/core/permissions.d.ts.map +1 -0
- package/dist/core/permissions.js +327 -0
- package/dist/core/retry.d.ts +25 -0
- package/dist/core/retry.d.ts.map +1 -0
- package/dist/core/retry.js +121 -0
- package/dist/core/session-store.d.ts +9 -0
- package/dist/core/session-store.d.ts.map +1 -0
- package/dist/core/session-store.js +10 -0
- package/dist/core/sessions/export.d.ts +47 -0
- package/dist/core/sessions/export.d.ts.map +1 -0
- package/dist/core/sessions/export.js +256 -0
- package/dist/core/sessions/index.d.ts +132 -0
- package/dist/core/sessions/index.d.ts.map +1 -0
- package/dist/core/sessions/index.js +442 -0
- package/dist/core/sessions/metadata.d.ts +77 -0
- package/dist/core/sessions/metadata.d.ts.map +1 -0
- package/dist/core/sessions/metadata.js +233 -0
- package/dist/core/sessions/persistence.d.ts +72 -0
- package/dist/core/sessions/persistence.d.ts.map +1 -0
- package/dist/core/sessions/persistence.js +201 -0
- package/dist/core/sessions/types.d.ts +110 -0
- package/dist/core/sessions/types.d.ts.map +1 -0
- package/dist/core/sessions/types.js +4 -0
- package/dist/core/stream-highlighter.d.ts +18 -0
- package/dist/core/stream-highlighter.d.ts.map +1 -0
- package/dist/core/stream-highlighter.js +916 -0
- package/dist/core/system-reminders.d.ts +89 -0
- package/dist/core/system-reminders.d.ts.map +1 -0
- package/dist/core/system-reminders.js +285 -0
- package/dist/ecosystem/hooks/__tests__/index.test.d.ts +5 -0
- package/dist/ecosystem/hooks/__tests__/index.test.d.ts.map +1 -0
- package/dist/ecosystem/hooks/__tests__/index.test.js +458 -0
- package/dist/ecosystem/hooks/index.d.ts +59 -0
- package/dist/ecosystem/hooks/index.d.ts.map +1 -0
- package/dist/ecosystem/hooks/index.js +294 -0
- package/dist/ecosystem/hooks/prompt-evaluator.d.ts +32 -0
- package/dist/ecosystem/hooks/prompt-evaluator.d.ts.map +1 -0
- package/dist/ecosystem/hooks/prompt-evaluator.js +229 -0
- package/dist/ecosystem/skills/index.d.ts +55 -0
- package/dist/ecosystem/skills/index.d.ts.map +1 -0
- package/dist/ecosystem/skills/index.js +258 -0
- package/dist/ecosystem/tools/__tests__/index.test.d.ts +7 -0
- package/dist/ecosystem/tools/__tests__/index.test.d.ts.map +1 -0
- package/dist/ecosystem/tools/__tests__/index.test.js +856 -0
- package/dist/ecosystem/tools/index.d.ts +24 -0
- package/dist/ecosystem/tools/index.d.ts.map +1 -0
- package/dist/ecosystem/tools/index.js +1709 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +33688 -49712
- package/dist/interfaces/mcp/client.d.ts +40 -0
- package/dist/interfaces/mcp/client.d.ts.map +1 -0
- package/dist/interfaces/mcp/client.js +309 -0
- package/dist/interfaces/ui/index.d.ts +36 -0
- package/dist/interfaces/ui/index.d.ts.map +1 -0
- package/dist/interfaces/ui/index.js +61 -0
- package/dist/interfaces/ui/spinner.d.ts +140 -0
- package/dist/interfaces/ui/spinner.d.ts.map +1 -0
- package/dist/interfaces/ui/spinner.js +342 -0
- package/dist/interfaces/ui/terminal/cli/index.d.ts +12 -0
- package/dist/interfaces/ui/terminal/cli/index.d.ts.map +1 -0
- package/dist/interfaces/ui/terminal/cli/index.js +32012 -50526
- package/dist/interfaces/ui/terminal/native/README.md +53 -0
- package/dist/interfaces/ui/terminal/native/claude_code_native.darwin-x64.node +0 -0
- package/dist/interfaces/ui/terminal/native/claude_code_native.dylib +0 -0
- package/dist/interfaces/ui/terminal/native/index.d.ts +0 -0
- package/dist/interfaces/ui/terminal/native/index.darwin-arm64.node +0 -0
- package/dist/interfaces/ui/terminal/native/index.js +43 -0
- package/dist/interfaces/ui/terminal/native/index.node +0 -0
- package/dist/interfaces/ui/terminal/native/package.json +34 -0
- package/dist/interfaces/ui/terminal/shared/args.d.ts +39 -0
- package/dist/interfaces/ui/terminal/shared/args.d.ts.map +1 -0
- package/dist/interfaces/ui/terminal/shared/args.js +176 -0
- package/dist/interfaces/ui/terminal/shared/index.d.ts +11 -0
- package/dist/interfaces/ui/terminal/shared/index.d.ts.map +1 -0
- package/dist/interfaces/ui/terminal/shared/index.js +16 -0
- package/dist/interfaces/ui/terminal/shared/loading-state.d.ts +124 -0
- package/dist/interfaces/ui/terminal/shared/loading-state.d.ts.map +1 -0
- package/dist/interfaces/ui/terminal/shared/loading-state.js +246 -0
- package/dist/interfaces/ui/terminal/shared/query.d.ts +22 -0
- package/dist/interfaces/ui/terminal/shared/query.d.ts.map +1 -0
- package/dist/interfaces/ui/terminal/shared/query.js +100 -0
- package/dist/interfaces/ui/terminal/shared/setup.d.ts +33 -0
- package/dist/interfaces/ui/terminal/shared/setup.d.ts.map +1 -0
- package/dist/interfaces/ui/terminal/shared/setup.js +226 -0
- package/dist/interfaces/ui/terminal/shared/status-line.d.ts +117 -0
- package/dist/interfaces/ui/terminal/shared/status-line.d.ts.map +1 -0
- package/dist/interfaces/ui/terminal/shared/status-line.js +267 -0
- package/dist/interfaces/ui/terminal/shared/system-prompt.d.ts +38 -0
- package/dist/interfaces/ui/terminal/shared/system-prompt.d.ts.map +1 -0
- package/dist/interfaces/ui/terminal/shared/system-prompt.js +102 -0
- package/dist/interfaces/ui/terminal/tui/HelpPanel.d.ts +39 -0
- package/dist/interfaces/ui/terminal/tui/HelpPanel.d.ts.map +1 -0
- package/dist/interfaces/ui/terminal/tui/HelpPanel.js +215 -0
- package/dist/interfaces/ui/terminal/tui/InputContext.d.ts +91 -0
- package/dist/interfaces/ui/terminal/tui/InputContext.d.ts.map +1 -0
- package/dist/interfaces/ui/terminal/tui/InputContext.js +154 -0
- package/dist/interfaces/ui/terminal/tui/InputField.d.ts +18 -0
- package/dist/interfaces/ui/terminal/tui/InputField.d.ts.map +1 -0
- package/dist/interfaces/ui/terminal/tui/InputField.js +41 -0
- package/dist/interfaces/ui/terminal/tui/InteractiveTUI.d.ts +16 -0
- package/dist/interfaces/ui/terminal/tui/InteractiveTUI.d.ts.map +1 -0
- package/dist/interfaces/ui/terminal/tui/InteractiveTUI.js +451 -0
- package/dist/interfaces/ui/terminal/tui/MessageArea.d.ts +10 -0
- package/dist/interfaces/ui/terminal/tui/MessageArea.d.ts.map +1 -0
- package/dist/interfaces/ui/terminal/tui/MessageArea.js +91 -0
- package/dist/interfaces/ui/terminal/tui/MessageStore.d.ts +48 -0
- package/dist/interfaces/ui/terminal/tui/MessageStore.d.ts.map +1 -0
- package/dist/interfaces/ui/terminal/tui/MessageStore.js +151 -0
- package/dist/interfaces/ui/terminal/tui/StatusBar.d.ts +9 -0
- package/dist/interfaces/ui/terminal/tui/StatusBar.d.ts.map +1 -0
- package/dist/interfaces/ui/terminal/tui/StatusBar.js +36 -0
- package/dist/interfaces/ui/terminal/tui/commands.d.ts +21 -0
- package/dist/interfaces/ui/terminal/tui/commands.d.ts.map +1 -0
- package/dist/interfaces/ui/terminal/tui/commands.js +359 -0
- package/dist/interfaces/ui/terminal/tui/components/InteractiveElements.d.ts +115 -0
- package/dist/interfaces/ui/terminal/tui/components/InteractiveElements.d.ts.map +1 -0
- package/dist/interfaces/ui/terminal/tui/components/InteractiveElements.js +306 -0
- package/dist/interfaces/ui/terminal/tui/components/MultilineInput.d.ts +92 -0
- package/dist/interfaces/ui/terminal/tui/components/MultilineInput.d.ts.map +1 -0
- package/dist/interfaces/ui/terminal/tui/components/MultilineInput.js +399 -0
- package/dist/interfaces/ui/terminal/tui/components/PaneManager.d.ts +59 -0
- package/dist/interfaces/ui/terminal/tui/components/PaneManager.d.ts.map +1 -0
- package/dist/interfaces/ui/terminal/tui/components/PaneManager.js +139 -0
- package/dist/interfaces/ui/terminal/tui/components/Sidebar.d.ts +68 -0
- package/dist/interfaces/ui/terminal/tui/components/Sidebar.d.ts.map +1 -0
- package/dist/interfaces/ui/terminal/tui/components/Sidebar.js +340 -0
- package/dist/interfaces/ui/terminal/tui/components/index.d.ts +23 -0
- package/dist/interfaces/ui/terminal/tui/components/index.d.ts.map +1 -0
- package/dist/interfaces/ui/terminal/tui/components/index.js +51 -0
- package/dist/interfaces/ui/terminal/tui/console.d.ts +20 -0
- package/dist/interfaces/ui/terminal/tui/console.d.ts.map +1 -0
- package/dist/interfaces/ui/terminal/tui/console.js +46 -0
- package/dist/interfaces/ui/terminal/tui/index.d.ts +20 -0
- package/dist/interfaces/ui/terminal/tui/index.d.ts.map +1 -0
- package/dist/interfaces/ui/terminal/tui/index.js +28 -0
- package/dist/interfaces/ui/terminal/tui/run.d.ts +13 -0
- package/dist/interfaces/ui/terminal/tui/run.d.ts.map +1 -0
- package/dist/interfaces/ui/terminal/tui/run.js +31 -0
- package/dist/interfaces/ui/terminal/tui/spinner.d.ts +44 -0
- package/dist/interfaces/ui/terminal/tui/spinner.d.ts.map +1 -0
- package/dist/interfaces/ui/terminal/tui/spinner.js +59 -0
- package/dist/interfaces/ui/terminal/tui/tui-app.d.ts +39 -0
- package/dist/interfaces/ui/terminal/tui/tui-app.d.ts.map +1 -0
- package/dist/interfaces/ui/terminal/tui/tui-app.js +198 -0
- package/dist/interfaces/ui/terminal/tui/tui-footer.d.ts +167 -0
- package/dist/interfaces/ui/terminal/tui/tui-footer.d.ts.map +1 -0
- package/dist/interfaces/ui/terminal/tui/tui-footer.js +330 -0
- package/dist/interfaces/ui/terminal/tui/types.d.ts +165 -0
- package/dist/interfaces/ui/terminal/tui/types.d.ts.map +1 -0
- package/dist/interfaces/ui/terminal/tui/types.js +5 -0
- package/dist/interfaces/ui/terminal/tui/useInputHandler.d.ts +23 -0
- package/dist/interfaces/ui/terminal/tui/useInputHandler.d.ts.map +1 -0
- package/dist/interfaces/ui/terminal/tui/useInputHandler.js +72 -0
- package/dist/interfaces/ui/terminal/tui/useNativeInput.d.ts +90 -0
- package/dist/interfaces/ui/terminal/tui/useNativeInput.d.ts.map +1 -0
- package/dist/interfaces/ui/terminal/tui/useNativeInput.js +188 -0
- package/dist/native/README.md +53 -0
- package/dist/native/claude_code_native.darwin-x64.node +0 -0
- package/dist/native/claude_code_native.dylib +0 -0
- package/dist/native/index.d.ts +0 -0
- package/dist/native/index.d.ts.map +1 -0
- package/dist/native/index.darwin-arm64.node +0 -0
- package/dist/native/index.js +43 -0
- package/dist/native/index.node +0 -0
- package/dist/native/package.json +34 -0
- package/dist/teammates/index.d.ts +161 -0
- package/dist/teammates/index.d.ts.map +1 -0
- package/dist/teammates/index.js +827 -0
- package/dist/types/index.d.ts +482 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +52 -0
- package/native/index.darwin-arm64.node +0 -0
- package/native/index.js +33 -19
- package/package.json +6 -3
- package/packages/src/core/__tests__/permissions.test.ts +1091 -0
- package/packages/src/core/agent-loop/__tests__/compaction.test.ts +283 -0
- package/packages/src/core/agent-loop/__tests__/formatters.test.ts +234 -0
- package/packages/src/core/agent-loop/__tests__/index.test.ts +162 -0
- package/packages/src/core/agent-loop/__tests__/loop-state.test.ts +413 -0
- package/packages/src/core/agent-loop/__tests__/message-builder.test.ts +229 -0
- package/packages/src/core/agent-loop/__tests__/tool-executor.test.ts +457 -0
- package/packages/src/core/agent-loop/compaction.ts +92 -0
- package/packages/src/core/agent-loop/formatters.ts +50 -0
- package/packages/src/core/agent-loop/index.ts +137 -0
- package/packages/src/core/agent-loop/loop-state.ts +187 -0
- package/packages/src/core/agent-loop/message-builder.ts +62 -0
- package/packages/src/core/agent-loop/tool-executor.ts +211 -0
- package/packages/src/core/agent-loop/turn-executor.ts +226 -0
- package/packages/src/core/agent-loop/types.ts +152 -0
- package/packages/src/core/agent-loop.ts +18 -0
- package/packages/src/core/api-client-impl.ts +729 -0
- package/packages/src/core/api-client.ts +6 -0
- package/packages/src/core/checkpoints.ts +606 -0
- package/packages/src/core/claude-md.ts +272 -0
- package/packages/src/core/cognitive-security/hooks.ts +591 -0
- package/packages/src/core/cognitive-security/index.ts +2041 -0
- package/packages/src/core/cognitive-security/middleware.ts +536 -0
- package/packages/src/core/config/todo +7 -0
- package/packages/src/core/config-loader.ts +324 -0
- package/packages/src/core/context/__tests__/integration.test.ts +334 -0
- package/packages/src/core/context/compaction.ts +170 -0
- package/packages/src/core/context/constants.ts +58 -0
- package/packages/src/core/context/extraction.ts +85 -0
- package/packages/src/core/context/index.ts +66 -0
- package/packages/src/core/context/summarization.ts +251 -0
- package/packages/src/core/context/token-estimation.ts +98 -0
- package/packages/src/core/context/types.ts +59 -0
- package/packages/src/core/git-status.ts +262 -0
- package/packages/src/core/image.test.ts +180 -0
- package/packages/src/core/image.ts +350 -0
- package/packages/src/core/lmdb.db +0 -0
- package/packages/src/core/lmdb.db-lock +0 -0
- package/packages/src/core/models.ts +507 -0
- package/packages/src/core/normalizers/todo +8 -0
- package/packages/src/core/permissions.ts +431 -0
- package/packages/src/core/providers/README.md +230 -0
- package/packages/src/core/providers/__tests__/providers.test.ts +135 -0
- package/packages/src/core/providers/index.ts +419 -0
- package/packages/src/core/providers/types.ts +132 -0
- package/packages/src/core/retry.ts +180 -0
- package/packages/src/core/session-store.ts +36 -0
- package/packages/src/core/sessions/export.ts +329 -0
- package/packages/src/core/sessions/index.ts +587 -0
- package/packages/src/core/sessions/metadata.ts +309 -0
- package/packages/src/core/sessions/persistence.ts +244 -0
- package/packages/src/core/sessions/types.ts +169 -0
- package/packages/src/core/stream-highlighter.ts +1123 -0
- package/packages/src/core/system-reminders.ts +402 -0
- package/packages/src/core/todo +8 -0
- package/packages/src/ecosystem/hooks/__tests__/index.test.ts +561 -0
- package/packages/src/ecosystem/hooks/index.ts +341 -0
- package/packages/src/ecosystem/hooks/prompt-evaluator.ts +300 -0
- package/packages/src/ecosystem/skills/index.ts +295 -0
- package/packages/src/ecosystem/tools/__tests__/index.test.ts +1335 -0
- package/packages/src/ecosystem/tools/index.ts +2051 -0
- package/packages/src/index.ts +141 -0
- package/packages/src/interfaces/mcp/client.ts +389 -0
- package/packages/src/interfaces/ui/index.ts +158 -0
- package/packages/src/interfaces/ui/lmdb.db +0 -0
- package/packages/src/interfaces/ui/lmdb.db-lock +0 -0
- package/packages/src/interfaces/ui/spinner.ts +451 -0
- package/packages/src/interfaces/ui/terminal/bridge/index.ts +370 -0
- package/packages/src/interfaces/ui/terminal/bridge/ipc.ts +829 -0
- package/packages/src/interfaces/ui/terminal/bridge/screen-export.ts +968 -0
- package/packages/src/interfaces/ui/terminal/bridge/types.ts +226 -0
- package/packages/src/interfaces/ui/terminal/bridge/useBridge.ts +210 -0
- package/packages/src/interfaces/ui/terminal/cli/bootstrap.ts +132 -0
- package/packages/src/interfaces/ui/terminal/cli/index.ts +415 -0
- package/packages/src/interfaces/ui/terminal/cli/interactive/index.ts +110 -0
- package/packages/src/interfaces/ui/terminal/cli/interactive/input-handler.ts +393 -0
- package/packages/src/interfaces/ui/terminal/cli/interactive/interactive-runner.ts +820 -0
- package/packages/src/interfaces/ui/terminal/cli/interactive/message-store.ts +299 -0
- package/packages/src/interfaces/ui/terminal/cli/interactive/types.ts +274 -0
- package/packages/src/interfaces/ui/terminal/lmdb.db +0 -0
- package/packages/src/interfaces/ui/terminal/lmdb.db-lock +0 -0
- package/packages/src/interfaces/ui/terminal/shared/args.ts +222 -0
- package/packages/src/interfaces/ui/terminal/shared/index.ts +84 -0
- package/packages/src/interfaces/ui/terminal/shared/loading-state.ts +322 -0
- package/packages/src/interfaces/ui/terminal/shared/query.ts +152 -0
- package/packages/src/interfaces/ui/terminal/shared/setup.ts +299 -0
- package/packages/src/interfaces/ui/terminal/shared/spinner-frames.ts +73 -0
- package/packages/src/interfaces/ui/terminal/shared/status-line.ts +366 -0
- package/packages/src/interfaces/ui/terminal/shared/system-prompt.ts +146 -0
- package/packages/src/lmdb.db +0 -0
- package/packages/src/lmdb.db-lock +0 -0
- package/packages/src/native/index.ts +2722 -0
- package/packages/src/native/tui_v2_types.ts +39 -0
- package/packages/src/teammates/coordination.test.ts +279 -0
- package/packages/src/teammates/coordination.ts +646 -0
- package/packages/src/teammates/index.ts +1052 -0
- package/packages/src/teammates/integration.test.ts +272 -0
- package/packages/src/teammates/runner.test.ts +235 -0
- package/packages/src/teammates/runner.ts +750 -0
- package/packages/src/teammates/schemas.ts +673 -0
- package/packages/src/types/index.ts +723 -0
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Message Store - Non-React Implementation
|
|
3
|
+
*
|
|
4
|
+
* Centralized message state management extracted from v1 TUI patterns.
|
|
5
|
+
* This is a pure TypeScript class without React dependency.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Single source of truth for messages
|
|
9
|
+
* - Separate UI and API message tracking
|
|
10
|
+
* - Token count management
|
|
11
|
+
* - Change notification system
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
import type { Message as ApiMessage } from "../../../../../types/index.js";
|
|
15
|
+
import type { MessageStore, UIMessage, MessageSubType } from "./types.js";
|
|
16
|
+
|
|
17
|
+
// ============================================
|
|
18
|
+
// UTILITIES
|
|
19
|
+
// ============================================
|
|
20
|
+
|
|
21
|
+
let globalMessageId = 0;
|
|
22
|
+
|
|
23
|
+
function generateId(): string {
|
|
24
|
+
globalMessageId += 1;
|
|
25
|
+
return `msg-${globalMessageId}-${Date.now()}`;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Extract text content from API message content blocks
|
|
30
|
+
*/
|
|
31
|
+
function extractTextContent(content: ApiMessage["content"]): string {
|
|
32
|
+
if (typeof content === "string") {
|
|
33
|
+
return content;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return content.map((block) => {
|
|
37
|
+
switch (block.type) {
|
|
38
|
+
case "text":
|
|
39
|
+
return block.text;
|
|
40
|
+
case "tool_use":
|
|
41
|
+
return `[Tool: ${block.name}]\n${JSON.stringify(block.input, null, 2)}`;
|
|
42
|
+
case "tool_result": {
|
|
43
|
+
const resultContent = typeof block.content === "string"
|
|
44
|
+
? block.content
|
|
45
|
+
: extractTextContent(block.content);
|
|
46
|
+
const prefix = block.is_error ? "[Tool Error]" : "[Tool Result]";
|
|
47
|
+
const truncated = resultContent.length > 500
|
|
48
|
+
? resultContent.slice(0, 500) + "..."
|
|
49
|
+
: resultContent;
|
|
50
|
+
return `${prefix}\n${truncated}`;
|
|
51
|
+
}
|
|
52
|
+
case "thinking":
|
|
53
|
+
return `[Thinking]\n${block.thinking}`;
|
|
54
|
+
case "redacted_thinking":
|
|
55
|
+
return "[Redacted Thinking]";
|
|
56
|
+
case "image":
|
|
57
|
+
return "[Image]";
|
|
58
|
+
default:
|
|
59
|
+
return "";
|
|
60
|
+
}
|
|
61
|
+
}).join("\n\n");
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Convert API message to UI message
|
|
66
|
+
*/
|
|
67
|
+
function apiToUi(msg: ApiMessage): UIMessage | null {
|
|
68
|
+
const content = extractTextContent(msg.content);
|
|
69
|
+
if (!content) return null;
|
|
70
|
+
|
|
71
|
+
return {
|
|
72
|
+
id: generateId(),
|
|
73
|
+
role: msg.role,
|
|
74
|
+
content,
|
|
75
|
+
timestamp: Date.now(),
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Estimate token count from text (rough: ~4 chars per token)
|
|
81
|
+
*/
|
|
82
|
+
function estimateTokens(text: string): number {
|
|
83
|
+
if (!text) return 0;
|
|
84
|
+
return Math.ceil(text.length / 4);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Estimate total tokens from messages
|
|
89
|
+
*/
|
|
90
|
+
function estimateMessagesTokens(messages: ApiMessage[]): number {
|
|
91
|
+
let total = 0;
|
|
92
|
+
for (const msg of messages) {
|
|
93
|
+
if (typeof msg.content === "string") {
|
|
94
|
+
total += estimateTokens(msg.content);
|
|
95
|
+
} else if (Array.isArray(msg.content)) {
|
|
96
|
+
for (const block of msg.content) {
|
|
97
|
+
if (block.type === "text") {
|
|
98
|
+
total += estimateTokens(block.text);
|
|
99
|
+
} else if (block.type === "tool_use") {
|
|
100
|
+
total += estimateTokens(JSON.stringify(block.input));
|
|
101
|
+
} else if (block.type === "tool_result") {
|
|
102
|
+
if (typeof block.content === "string") {
|
|
103
|
+
total += estimateTokens(block.content);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return total;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// ============================================
|
|
113
|
+
// MESSAGE STORE CLASS
|
|
114
|
+
// ============================================
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Non-React message store implementation
|
|
118
|
+
*
|
|
119
|
+
* Usage:
|
|
120
|
+
* ```ts
|
|
121
|
+
* const store = new MessageStoreImpl();
|
|
122
|
+
* store.addMessage({ role: "user", content: "Hello" });
|
|
123
|
+
* console.log(store.messages);
|
|
124
|
+
* ```
|
|
125
|
+
*/
|
|
126
|
+
export class MessageStoreImpl implements MessageStore {
|
|
127
|
+
private _messages: UIMessage[] = [];
|
|
128
|
+
private _apiMessages: ApiMessage[] = [];
|
|
129
|
+
private _tokenCount = 0;
|
|
130
|
+
private _listeners: Set<() => void> = new Set();
|
|
131
|
+
private _pendingUserMessages: Set<string> = new Set();
|
|
132
|
+
|
|
133
|
+
/** UI messages for display */
|
|
134
|
+
get messages(): UIMessage[] {
|
|
135
|
+
return [...this._messages];
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/** API messages for context */
|
|
139
|
+
get apiMessages(): ApiMessage[] {
|
|
140
|
+
return [...this._apiMessages];
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/** Current token count */
|
|
144
|
+
get tokenCount(): number {
|
|
145
|
+
return this._tokenCount;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/** Update token count */
|
|
149
|
+
setTokenCount(count: number): void {
|
|
150
|
+
this._tokenCount = count;
|
|
151
|
+
this._notify();
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Add a UI message
|
|
156
|
+
* Returns the message ID
|
|
157
|
+
*/
|
|
158
|
+
addMessage(msg: Omit<UIMessage, "id" | "timestamp">): string {
|
|
159
|
+
const id = generateId();
|
|
160
|
+
const fullMsg: UIMessage = {
|
|
161
|
+
...msg,
|
|
162
|
+
id,
|
|
163
|
+
timestamp: Date.now(),
|
|
164
|
+
};
|
|
165
|
+
this._messages = [...this._messages, fullMsg];
|
|
166
|
+
|
|
167
|
+
// Track user messages added manually (to skip in addApiMessages)
|
|
168
|
+
if (msg.role === "user") {
|
|
169
|
+
this._pendingUserMessages.add(msg.content);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
this._notify();
|
|
173
|
+
return id;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Add multiple messages from API response
|
|
178
|
+
*/
|
|
179
|
+
addApiMessages(msgs: ApiMessage[]): void {
|
|
180
|
+
if (msgs.length === 0) return;
|
|
181
|
+
|
|
182
|
+
// Update API messages
|
|
183
|
+
this._apiMessages = [...this._apiMessages, ...msgs];
|
|
184
|
+
|
|
185
|
+
// Convert to UI messages, skipping user messages already added manually
|
|
186
|
+
const newUiMsgs = msgs
|
|
187
|
+
.map(apiToUi)
|
|
188
|
+
.filter((m): m is UIMessage => m !== null)
|
|
189
|
+
.filter((m) => {
|
|
190
|
+
if (m.role === "user" && this._pendingUserMessages.has(m.content)) {
|
|
191
|
+
this._pendingUserMessages.delete(m.content);
|
|
192
|
+
return false;
|
|
193
|
+
}
|
|
194
|
+
return true;
|
|
195
|
+
});
|
|
196
|
+
|
|
197
|
+
if (newUiMsgs.length > 0) {
|
|
198
|
+
this._messages = [...this._messages, ...newUiMsgs];
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
// Update token estimate
|
|
202
|
+
this._tokenCount = estimateMessagesTokens(this._apiMessages);
|
|
203
|
+
|
|
204
|
+
this._notify();
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Add system message (convenience method)
|
|
209
|
+
*/
|
|
210
|
+
addSystem(
|
|
211
|
+
content: string,
|
|
212
|
+
subType?: MessageSubType,
|
|
213
|
+
toolName?: string,
|
|
214
|
+
isError?: boolean
|
|
215
|
+
): string {
|
|
216
|
+
return this.addMessage({
|
|
217
|
+
role: "system",
|
|
218
|
+
content,
|
|
219
|
+
subType,
|
|
220
|
+
toolName,
|
|
221
|
+
isError,
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Clear all messages
|
|
227
|
+
*/
|
|
228
|
+
clear(): void {
|
|
229
|
+
this._messages = [];
|
|
230
|
+
this._apiMessages = [];
|
|
231
|
+
this._pendingUserMessages.clear();
|
|
232
|
+
this._tokenCount = 0;
|
|
233
|
+
this._notify();
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* Replace all messages (for undo/redo)
|
|
238
|
+
*/
|
|
239
|
+
replace(ui: UIMessage[], api: ApiMessage[]): void {
|
|
240
|
+
this._messages = [...ui];
|
|
241
|
+
this._apiMessages = [...api];
|
|
242
|
+
this._pendingUserMessages.clear();
|
|
243
|
+
this._tokenCount = estimateMessagesTokens(this._apiMessages);
|
|
244
|
+
this._notify();
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* Subscribe to store changes
|
|
249
|
+
* Returns unsubscribe function
|
|
250
|
+
*/
|
|
251
|
+
subscribe(listener: () => void): () => void {
|
|
252
|
+
this._listeners.add(listener);
|
|
253
|
+
return () => {
|
|
254
|
+
this._listeners.delete(listener);
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* Notify all listeners of a change
|
|
260
|
+
*/
|
|
261
|
+
private _notify(): void {
|
|
262
|
+
for (const listener of this._listeners) {
|
|
263
|
+
try {
|
|
264
|
+
listener();
|
|
265
|
+
} catch (err) {
|
|
266
|
+
console.error("MessageStore listener error:", err);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
// ============================================
|
|
273
|
+
// SINGLETON (optional convenience)
|
|
274
|
+
// ============================================
|
|
275
|
+
|
|
276
|
+
let globalStore: MessageStoreImpl | null = null;
|
|
277
|
+
|
|
278
|
+
/**
|
|
279
|
+
* Get or create the global message store
|
|
280
|
+
*/
|
|
281
|
+
export function getMessageStore(): MessageStoreImpl {
|
|
282
|
+
if (!globalStore) {
|
|
283
|
+
globalStore = new MessageStoreImpl();
|
|
284
|
+
}
|
|
285
|
+
return globalStore;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
/**
|
|
289
|
+
* Reset the global message store (for testing)
|
|
290
|
+
*/
|
|
291
|
+
export function resetMessageStore(): void {
|
|
292
|
+
globalStore = null;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
// ============================================
|
|
296
|
+
// EXPORTS
|
|
297
|
+
// ============================================
|
|
298
|
+
|
|
299
|
+
export type { MessageStore, UIMessage, MessageSubType } from "./types.js";
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Interactive Types
|
|
3
|
+
* Type definitions for the non-React interactive mode
|
|
4
|
+
*
|
|
5
|
+
* Extracted from v1 TUI patterns without Ink dependency
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { PermissionMode, ClaudeModel, Message as ApiMessage, ToolDefinition } from "../../../../../types/index.js";
|
|
9
|
+
import type { HookManager } from "../../../../../ecosystem/hooks/index.js";
|
|
10
|
+
import type { LoadedSession, SessionSummary } from "../../../../../core/sessions/types.js";
|
|
11
|
+
import type { TeammateModeRunner } from "../../../../../teammates/runner.js";
|
|
12
|
+
|
|
13
|
+
// ============================================
|
|
14
|
+
// MESSAGE TYPES
|
|
15
|
+
// ============================================
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Message sub-type for granular categorization
|
|
19
|
+
*/
|
|
20
|
+
export type MessageSubType =
|
|
21
|
+
| "tool_call"
|
|
22
|
+
| "tool_result"
|
|
23
|
+
| "hook"
|
|
24
|
+
| "info"
|
|
25
|
+
| "error"
|
|
26
|
+
| "thinking";
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* UI-specific message representation
|
|
30
|
+
*/
|
|
31
|
+
export interface UIMessage {
|
|
32
|
+
id: string;
|
|
33
|
+
role: "user" | "assistant" | "system";
|
|
34
|
+
content: string;
|
|
35
|
+
timestamp: number;
|
|
36
|
+
subType?: MessageSubType;
|
|
37
|
+
toolName?: string;
|
|
38
|
+
isError?: boolean;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// ============================================
|
|
42
|
+
// MESSAGE STORE TYPES
|
|
43
|
+
// ============================================
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Message store interface for non-React usage
|
|
47
|
+
*/
|
|
48
|
+
export interface MessageStore {
|
|
49
|
+
/** UI messages for display */
|
|
50
|
+
messages: UIMessage[];
|
|
51
|
+
/** API messages for context */
|
|
52
|
+
apiMessages: ApiMessage[];
|
|
53
|
+
/** Add a UI message */
|
|
54
|
+
addMessage(msg: Omit<UIMessage, "id" | "timestamp">): string;
|
|
55
|
+
/** Add multiple messages from API response */
|
|
56
|
+
addApiMessages(msgs: ApiMessage[]): void;
|
|
57
|
+
/** Add system message (convenience) */
|
|
58
|
+
addSystem(content: string, subType?: MessageSubType, toolName?: string, isError?: boolean): string;
|
|
59
|
+
/** Clear all messages */
|
|
60
|
+
clear(): void;
|
|
61
|
+
/** Replace messages (for undo/redo) */
|
|
62
|
+
replace(ui: UIMessage[], api: ApiMessage[]): void;
|
|
63
|
+
/** Total token count */
|
|
64
|
+
tokenCount: number;
|
|
65
|
+
/** Update token count */
|
|
66
|
+
setTokenCount(count: number): void;
|
|
67
|
+
/** Subscribe to store changes */
|
|
68
|
+
subscribe(listener: () => void): () => void;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// ============================================
|
|
72
|
+
// INPUT HANDLER TYPES
|
|
73
|
+
// ============================================
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Native key event representation for input handling
|
|
77
|
+
*
|
|
78
|
+
* This is the TypeScript interface used by input handlers.
|
|
79
|
+
* It's converted from the native module's InputEvent format.
|
|
80
|
+
*/
|
|
81
|
+
export interface NativeKeyEvent {
|
|
82
|
+
/** Key code or character */
|
|
83
|
+
code: string;
|
|
84
|
+
/** Whether this is a special/control key */
|
|
85
|
+
is_special: boolean;
|
|
86
|
+
/** Ctrl modifier state */
|
|
87
|
+
ctrl: boolean;
|
|
88
|
+
/** Alt modifier state */
|
|
89
|
+
alt: boolean;
|
|
90
|
+
/** Shift modifier state */
|
|
91
|
+
shift: boolean;
|
|
92
|
+
/** Key event kind */
|
|
93
|
+
kind: "press" | "release" | "repeat";
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Input handler function type
|
|
98
|
+
*/
|
|
99
|
+
export type InputHandler = (event: NativeKeyEvent) => boolean;
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Input handler registration options
|
|
103
|
+
*/
|
|
104
|
+
export interface InputHandlerOptions {
|
|
105
|
+
/** Unique ID for this handler */
|
|
106
|
+
id: string;
|
|
107
|
+
/** Priority (higher = receives input first) */
|
|
108
|
+
priority?: number;
|
|
109
|
+
/** Handler function - return true to consume, false to pass through */
|
|
110
|
+
handler: InputHandler;
|
|
111
|
+
/** Whether this handler is currently active */
|
|
112
|
+
isActive?: boolean;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Input manager interface for non-React usage
|
|
117
|
+
*/
|
|
118
|
+
export interface InputManager {
|
|
119
|
+
/** Register an input handler */
|
|
120
|
+
register(options: InputHandlerOptions): () => void;
|
|
121
|
+
/** Set focus to a specific handler */
|
|
122
|
+
focus(handlerId: string): void;
|
|
123
|
+
/** Get currently focused handler ID */
|
|
124
|
+
focusedId: string | null;
|
|
125
|
+
/** Dispatch a key event to handlers */
|
|
126
|
+
dispatch(event: NativeKeyEvent): boolean;
|
|
127
|
+
/** Whether input is currently blocked */
|
|
128
|
+
isBlocked: boolean;
|
|
129
|
+
/** Block/unblock input (for loading states) */
|
|
130
|
+
setBlocked(blocked: boolean): void;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// ============================================
|
|
134
|
+
// INTERACTIVE RUNNER TYPES
|
|
135
|
+
// ============================================
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Props for the interactive runner
|
|
139
|
+
*/
|
|
140
|
+
export interface InteractiveRunnerProps {
|
|
141
|
+
apiKey: string;
|
|
142
|
+
model: ClaudeModel;
|
|
143
|
+
permissionMode: PermissionMode;
|
|
144
|
+
maxTokens: number;
|
|
145
|
+
systemPrompt: string;
|
|
146
|
+
tools: ToolDefinition[];
|
|
147
|
+
hookManager: HookManager;
|
|
148
|
+
sessionStore: SessionStore;
|
|
149
|
+
sessionId: string;
|
|
150
|
+
setSessionId: (id: string) => void;
|
|
151
|
+
initialMessages: ApiMessage[];
|
|
152
|
+
workingDirectory: string;
|
|
153
|
+
teammateRunner?: TeammateModeRunner | null;
|
|
154
|
+
onExit?: () => Promise<void> | void;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Session store interface (subset used by interactive mode)
|
|
159
|
+
*/
|
|
160
|
+
export interface SessionStore {
|
|
161
|
+
saveMessage(message: ApiMessage): Promise<void>;
|
|
162
|
+
saveMetrics(metrics: unknown): Promise<void>;
|
|
163
|
+
exportSession(sessionId: string, format: "jsonl" | "json" | "markdown"): Promise<string>;
|
|
164
|
+
listSessions(limit?: number): Promise<SessionSummary[]>;
|
|
165
|
+
resumeSession(sessionId: string): Promise<LoadedSession | null>;
|
|
166
|
+
createSession(options: {
|
|
167
|
+
model: string;
|
|
168
|
+
workingDirectory: string;
|
|
169
|
+
agentName?: string;
|
|
170
|
+
agentColor?: string;
|
|
171
|
+
teamName?: string;
|
|
172
|
+
}): Promise<string>;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* Session info for listing
|
|
177
|
+
*/
|
|
178
|
+
export interface SessionInfo {
|
|
179
|
+
id: string;
|
|
180
|
+
messageCount: number;
|
|
181
|
+
lastActivity?: number;
|
|
182
|
+
metadata?: Record<string, unknown>;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Interactive runner state
|
|
187
|
+
*/
|
|
188
|
+
export interface InteractiveState {
|
|
189
|
+
isLoading: boolean;
|
|
190
|
+
inputValue: string;
|
|
191
|
+
cursorPos: number;
|
|
192
|
+
scrollOffset: number;
|
|
193
|
+
totalCost: number;
|
|
194
|
+
spinnerFrame: string;
|
|
195
|
+
streamingText: string;
|
|
196
|
+
inputHistory: string[];
|
|
197
|
+
historyIndex: number;
|
|
198
|
+
sessionSelectMode: boolean;
|
|
199
|
+
selectableSessions: SessionInfo[];
|
|
200
|
+
helpMode: boolean;
|
|
201
|
+
helpSection: number;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
// ============================================
|
|
205
|
+
// COMMAND TYPES
|
|
206
|
+
// ============================================
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* Command handler context
|
|
210
|
+
*/
|
|
211
|
+
export interface CommandContext {
|
|
212
|
+
sessionId: string;
|
|
213
|
+
setSessionId: (id: string) => void;
|
|
214
|
+
model: ClaudeModel;
|
|
215
|
+
setModel: (model: ClaudeModel) => void;
|
|
216
|
+
messageStore: MessageStore;
|
|
217
|
+
totalCost: number;
|
|
218
|
+
setTotalCost: (cost: number) => void;
|
|
219
|
+
permissionMode: PermissionMode;
|
|
220
|
+
tools: ToolDefinition[];
|
|
221
|
+
workingDirectory: string;
|
|
222
|
+
sessionStore: SessionStore;
|
|
223
|
+
messagesLength: number;
|
|
224
|
+
onExit: () => void;
|
|
225
|
+
exit: () => void;
|
|
226
|
+
state: InteractiveState;
|
|
227
|
+
setState: (state: Partial<InteractiveState>) => void;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
// ============================================
|
|
231
|
+
// CONTEXT INFO TYPES
|
|
232
|
+
// ============================================
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* Context info from status-line calculations
|
|
236
|
+
*/
|
|
237
|
+
export interface ContextInfo {
|
|
238
|
+
percentRemaining: number;
|
|
239
|
+
isLow: boolean;
|
|
240
|
+
isCritical: boolean;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
// ============================================
|
|
244
|
+
// PRIORITY CONSTANTS
|
|
245
|
+
// ============================================
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* Input priority levels
|
|
249
|
+
*/
|
|
250
|
+
export const InputPriority = {
|
|
251
|
+
/** Normal components */
|
|
252
|
+
DEFAULT: 0,
|
|
253
|
+
/** Focused input fields */
|
|
254
|
+
INPUT: 10,
|
|
255
|
+
/** Selectable lists */
|
|
256
|
+
LIST: 20,
|
|
257
|
+
/** Modal dialogs */
|
|
258
|
+
MODAL: 100,
|
|
259
|
+
/** System-level (Ctrl+C, etc.) */
|
|
260
|
+
SYSTEM: 1000,
|
|
261
|
+
} as const;
|
|
262
|
+
|
|
263
|
+
// ============================================
|
|
264
|
+
// RE-EXPORTS
|
|
265
|
+
// ============================================
|
|
266
|
+
|
|
267
|
+
export type {
|
|
268
|
+
PermissionMode,
|
|
269
|
+
ClaudeModel,
|
|
270
|
+
Message as ApiMessage,
|
|
271
|
+
ToolDefinition,
|
|
272
|
+
} from "../../../../../types/index.js";
|
|
273
|
+
export type { HookManager } from "../../../../../ecosystem/hooks/index.js";
|
|
274
|
+
export type { SkillManager } from "../../../../../ecosystem/skills/index.js";
|
|
Binary file
|
|
Binary file
|