@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,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* System Reminders - Context injection for agent loop
|
|
3
|
+
* Provides token warnings, cost tracking, tool summaries, and environment info
|
|
4
|
+
*/
|
|
5
|
+
import type { ToolUseBlock, GitStatus, UsageMetrics } from "../types/index.js";
|
|
6
|
+
export interface TokenWarningOptions {
|
|
7
|
+
current: number;
|
|
8
|
+
max: number;
|
|
9
|
+
threshold?: number;
|
|
10
|
+
}
|
|
11
|
+
export interface CostUpdateOptions {
|
|
12
|
+
cost: number;
|
|
13
|
+
previousCost?: number;
|
|
14
|
+
currency?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface ToolSummaryOptions {
|
|
17
|
+
tools: ToolUseBlock[];
|
|
18
|
+
maxDisplay?: number;
|
|
19
|
+
}
|
|
20
|
+
export interface EnvInfoOptions {
|
|
21
|
+
workingDirectory: string;
|
|
22
|
+
gitStatus?: GitStatus | null;
|
|
23
|
+
platform?: NodeJS.Platform;
|
|
24
|
+
shell?: string;
|
|
25
|
+
}
|
|
26
|
+
export interface SystemReminderConfig {
|
|
27
|
+
tokenWarningThreshold: number;
|
|
28
|
+
costUpdateInterval: number;
|
|
29
|
+
toolSummaryInterval: number;
|
|
30
|
+
envInfoOnStart: boolean;
|
|
31
|
+
}
|
|
32
|
+
export declare const DEFAULT_REMINDER_CONFIG: SystemReminderConfig;
|
|
33
|
+
/**
|
|
34
|
+
* Build a token usage warning message
|
|
35
|
+
* @param current - Current token count
|
|
36
|
+
* @param max - Maximum token limit
|
|
37
|
+
* @param threshold - Optional custom threshold percentage
|
|
38
|
+
* @returns Formatted warning string or empty string if under threshold
|
|
39
|
+
*/
|
|
40
|
+
export declare function buildTokenWarning(options: TokenWarningOptions): string;
|
|
41
|
+
/**
|
|
42
|
+
* Build a cost tracking update message
|
|
43
|
+
* @param cost - Current total cost in USD
|
|
44
|
+
* @param previousCost - Previous cost for delta calculation
|
|
45
|
+
* @param currency - Currency symbol (default: USD)
|
|
46
|
+
* @returns Formatted cost update string
|
|
47
|
+
*/
|
|
48
|
+
export declare function buildCostUpdate(options: CostUpdateOptions): string;
|
|
49
|
+
/**
|
|
50
|
+
* Build a summary of tool usage
|
|
51
|
+
* @param tools - Array of tool use blocks
|
|
52
|
+
* @param maxDisplay - Maximum number of tools to display (default: 10)
|
|
53
|
+
* @returns Formatted tool summary string
|
|
54
|
+
*/
|
|
55
|
+
export declare function buildToolSummary(options: ToolSummaryOptions): string;
|
|
56
|
+
/**
|
|
57
|
+
* Build environment information message
|
|
58
|
+
* @param workingDirectory - Current working directory
|
|
59
|
+
* @param gitStatus - Optional git status information
|
|
60
|
+
* @param platform - Optional platform info
|
|
61
|
+
* @param shell - Optional shell info
|
|
62
|
+
* @returns Formatted environment info string
|
|
63
|
+
*/
|
|
64
|
+
export declare function buildEnvInfo(options: EnvInfoOptions): string;
|
|
65
|
+
export interface CombinedReminderOptions {
|
|
66
|
+
usage: UsageMetrics;
|
|
67
|
+
maxTokens: number;
|
|
68
|
+
totalCost: number;
|
|
69
|
+
previousCost?: number;
|
|
70
|
+
toolsUsed: ToolUseBlock[];
|
|
71
|
+
workingDirectory: string;
|
|
72
|
+
gitStatus?: GitStatus | null;
|
|
73
|
+
turnNumber: number;
|
|
74
|
+
config?: Partial<SystemReminderConfig>;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Build a combined system reminder based on current state
|
|
78
|
+
* Intelligently includes relevant reminders based on thresholds and intervals
|
|
79
|
+
*/
|
|
80
|
+
export declare function buildCombinedReminder(options: CombinedReminderOptions): string;
|
|
81
|
+
/**
|
|
82
|
+
* Inject system reminders into the conversation
|
|
83
|
+
* This should be called before sending messages to the API
|
|
84
|
+
*/
|
|
85
|
+
export declare function injectSystemReminder(messages: Array<{
|
|
86
|
+
role: string;
|
|
87
|
+
content: unknown;
|
|
88
|
+
}>, reminder: string): void;
|
|
89
|
+
//# sourceMappingURL=system-reminders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-reminders.d.ts","sourceRoot":"","sources":["../../packages/src/core/system-reminders.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAM/E,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;CACzB;AAMD,eAAO,MAAM,uBAAuB,EAAE,oBAKrC,CAAC;AAaF;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CA+CtE;AAMD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAoBlE;AA+BD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAiCpE;AAMD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAoD5D;AAMD,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACxC;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,uBAAuB,GAAG,MAAM,CAwD9E;AAMD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,EACnD,QAAQ,EAAE,MAAM,GACf,IAAI,CAuBN"}
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* System Reminders - Context injection for agent loop
|
|
3
|
+
* Provides token warnings, cost tracking, tool summaries, and environment info
|
|
4
|
+
*/
|
|
5
|
+
// ============================================
|
|
6
|
+
// CONSTANTS
|
|
7
|
+
// ============================================
|
|
8
|
+
export const DEFAULT_REMINDER_CONFIG = {
|
|
9
|
+
tokenWarningThreshold: 0.8, // 80% of max tokens
|
|
10
|
+
costUpdateInterval: 5, // Every 5 turns
|
|
11
|
+
toolSummaryInterval: 3, // Every 3 turns
|
|
12
|
+
envInfoOnStart: true,
|
|
13
|
+
};
|
|
14
|
+
// Token limit thresholds
|
|
15
|
+
const TOKEN_THRESHOLDS = {
|
|
16
|
+
WARNING: 0.8, // 80% - warning
|
|
17
|
+
CRITICAL: 0.9, // 90% - critical
|
|
18
|
+
EMERGENCY: 0.95, // 95% - emergency
|
|
19
|
+
};
|
|
20
|
+
// ============================================
|
|
21
|
+
// TOKEN WARNING BUILDER
|
|
22
|
+
// ============================================
|
|
23
|
+
/**
|
|
24
|
+
* Build a token usage warning message
|
|
25
|
+
* @param current - Current token count
|
|
26
|
+
* @param max - Maximum token limit
|
|
27
|
+
* @param threshold - Optional custom threshold percentage
|
|
28
|
+
* @returns Formatted warning string or empty string if under threshold
|
|
29
|
+
*/
|
|
30
|
+
export function buildTokenWarning(options) {
|
|
31
|
+
const { current, max, threshold = TOKEN_THRESHOLDS.WARNING } = options;
|
|
32
|
+
if (max <= 0) {
|
|
33
|
+
return "";
|
|
34
|
+
}
|
|
35
|
+
const percentage = current / max;
|
|
36
|
+
// Only warn if above threshold
|
|
37
|
+
if (percentage < threshold) {
|
|
38
|
+
return "";
|
|
39
|
+
}
|
|
40
|
+
const remaining = max - current;
|
|
41
|
+
const percentUsed = Math.round(percentage * 100);
|
|
42
|
+
let severity;
|
|
43
|
+
let emoji;
|
|
44
|
+
if (percentage >= TOKEN_THRESHOLDS.EMERGENCY) {
|
|
45
|
+
severity = "emergency";
|
|
46
|
+
emoji = "🚨";
|
|
47
|
+
}
|
|
48
|
+
else if (percentage >= TOKEN_THRESHOLDS.CRITICAL) {
|
|
49
|
+
severity = "critical";
|
|
50
|
+
emoji = "⚠️";
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
severity = "warning";
|
|
54
|
+
emoji = "⚡";
|
|
55
|
+
}
|
|
56
|
+
const lines = [
|
|
57
|
+
`${emoji} Token Usage ${severity.toUpperCase()}`,
|
|
58
|
+
"",
|
|
59
|
+
`Current: ${current.toLocaleString()} / ${max.toLocaleString()} tokens (${percentUsed}%)`,
|
|
60
|
+
`Remaining: ${remaining.toLocaleString()} tokens`,
|
|
61
|
+
];
|
|
62
|
+
if (severity === "emergency") {
|
|
63
|
+
lines.push("");
|
|
64
|
+
lines.push("Consider summarizing or compacting the conversation to continue.");
|
|
65
|
+
}
|
|
66
|
+
else if (severity === "critical") {
|
|
67
|
+
lines.push("");
|
|
68
|
+
lines.push("Approaching token limit. Consider wrapping up soon.");
|
|
69
|
+
}
|
|
70
|
+
return lines.join("\n");
|
|
71
|
+
}
|
|
72
|
+
// ============================================
|
|
73
|
+
// COST UPDATE BUILDER
|
|
74
|
+
// ============================================
|
|
75
|
+
/**
|
|
76
|
+
* Build a cost tracking update message
|
|
77
|
+
* @param cost - Current total cost in USD
|
|
78
|
+
* @param previousCost - Previous cost for delta calculation
|
|
79
|
+
* @param currency - Currency symbol (default: USD)
|
|
80
|
+
* @returns Formatted cost update string
|
|
81
|
+
*/
|
|
82
|
+
export function buildCostUpdate(options) {
|
|
83
|
+
const { cost, previousCost = 0, currency = "USD" } = options;
|
|
84
|
+
const currencySymbol = getCurrencySymbol(currency);
|
|
85
|
+
const formattedCost = formatCurrency(cost, currencySymbol);
|
|
86
|
+
const delta = cost - previousCost;
|
|
87
|
+
const formattedDelta = formatCurrency(Math.abs(delta), currencySymbol);
|
|
88
|
+
const lines = [
|
|
89
|
+
`💰 Cost Update`,
|
|
90
|
+
"",
|
|
91
|
+
`Total: ${formattedCost} ${currency}`,
|
|
92
|
+
];
|
|
93
|
+
if (delta !== 0) {
|
|
94
|
+
const direction = delta > 0 ? "+" : "-";
|
|
95
|
+
lines.push(`This turn: ${direction}${formattedDelta} ${currency}`);
|
|
96
|
+
}
|
|
97
|
+
return lines.join("\n");
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Format currency value with appropriate precision
|
|
101
|
+
*/
|
|
102
|
+
function formatCurrency(value, symbol) {
|
|
103
|
+
if (value < 0.01) {
|
|
104
|
+
return `${symbol}${value.toFixed(4)}`;
|
|
105
|
+
}
|
|
106
|
+
else if (value < 1) {
|
|
107
|
+
return `${symbol}${value.toFixed(3)}`;
|
|
108
|
+
}
|
|
109
|
+
return `${symbol}${value.toFixed(2)}`;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Get currency symbol from currency code
|
|
113
|
+
*/
|
|
114
|
+
function getCurrencySymbol(currency) {
|
|
115
|
+
const symbols = {
|
|
116
|
+
USD: "$",
|
|
117
|
+
EUR: "€",
|
|
118
|
+
GBP: "£",
|
|
119
|
+
JPY: "¥",
|
|
120
|
+
};
|
|
121
|
+
return symbols[currency] || currency;
|
|
122
|
+
}
|
|
123
|
+
// ============================================
|
|
124
|
+
// TOOL SUMMARY BUILDER
|
|
125
|
+
// ============================================
|
|
126
|
+
/**
|
|
127
|
+
* Build a summary of tool usage
|
|
128
|
+
* @param tools - Array of tool use blocks
|
|
129
|
+
* @param maxDisplay - Maximum number of tools to display (default: 10)
|
|
130
|
+
* @returns Formatted tool summary string
|
|
131
|
+
*/
|
|
132
|
+
export function buildToolSummary(options) {
|
|
133
|
+
const { tools, maxDisplay = 10 } = options;
|
|
134
|
+
if (tools.length === 0) {
|
|
135
|
+
return "No tools used this session.";
|
|
136
|
+
}
|
|
137
|
+
// Count tool usage
|
|
138
|
+
const toolCounts = new Map();
|
|
139
|
+
for (const tool of tools) {
|
|
140
|
+
const count = toolCounts.get(tool.name) || 0;
|
|
141
|
+
toolCounts.set(tool.name, count + 1);
|
|
142
|
+
}
|
|
143
|
+
// Sort by usage count
|
|
144
|
+
const sortedTools = [...toolCounts.entries()].sort((a, b) => b[1] - a[1]);
|
|
145
|
+
const lines = [
|
|
146
|
+
`🔧 Tool Usage Summary (${tools.length} total calls)`,
|
|
147
|
+
"",
|
|
148
|
+
];
|
|
149
|
+
const displayTools = sortedTools.slice(0, maxDisplay);
|
|
150
|
+
for (const [name, count] of displayTools) {
|
|
151
|
+
lines.push(` • ${name}: ${count} call${count === 1 ? "" : "s"}`);
|
|
152
|
+
}
|
|
153
|
+
if (sortedTools.length > maxDisplay) {
|
|
154
|
+
const remaining = sortedTools.length - maxDisplay;
|
|
155
|
+
lines.push(` ... and ${remaining} more tool${remaining === 1 ? "" : "s"}`);
|
|
156
|
+
}
|
|
157
|
+
return lines.join("\n");
|
|
158
|
+
}
|
|
159
|
+
// ============================================
|
|
160
|
+
// ENVIRONMENT INFO BUILDER
|
|
161
|
+
// ============================================
|
|
162
|
+
/**
|
|
163
|
+
* Build environment information message
|
|
164
|
+
* @param workingDirectory - Current working directory
|
|
165
|
+
* @param gitStatus - Optional git status information
|
|
166
|
+
* @param platform - Optional platform info
|
|
167
|
+
* @param shell - Optional shell info
|
|
168
|
+
* @returns Formatted environment info string
|
|
169
|
+
*/
|
|
170
|
+
export function buildEnvInfo(options) {
|
|
171
|
+
const { workingDirectory, gitStatus, platform = process.platform, shell = process.env.SHELL || "unknown", } = options;
|
|
172
|
+
const lines = [
|
|
173
|
+
"📍 Environment Information",
|
|
174
|
+
"",
|
|
175
|
+
`Working Directory: ${workingDirectory}`,
|
|
176
|
+
`Platform: ${platform}`,
|
|
177
|
+
`Shell: ${shell}`,
|
|
178
|
+
];
|
|
179
|
+
if (gitStatus) {
|
|
180
|
+
lines.push("");
|
|
181
|
+
lines.push("Git Status:");
|
|
182
|
+
lines.push(` Branch: ${gitStatus.branch}`);
|
|
183
|
+
if (gitStatus.ahead > 0 || gitStatus.behind > 0) {
|
|
184
|
+
lines.push(` Ahead: ${gitStatus.ahead}, Behind: ${gitStatus.behind}`);
|
|
185
|
+
}
|
|
186
|
+
const totalChanges = gitStatus.staged.length +
|
|
187
|
+
gitStatus.unstaged.length +
|
|
188
|
+
gitStatus.untracked.length +
|
|
189
|
+
gitStatus.conflicted.length;
|
|
190
|
+
if (totalChanges > 0) {
|
|
191
|
+
lines.push(` Changes: ${totalChanges} file${totalChanges === 1 ? "" : "s"}`);
|
|
192
|
+
if (gitStatus.staged.length > 0) {
|
|
193
|
+
lines.push(` Staged: ${gitStatus.staged.length}`);
|
|
194
|
+
}
|
|
195
|
+
if (gitStatus.unstaged.length > 0) {
|
|
196
|
+
lines.push(` Unstaged: ${gitStatus.unstaged.length}`);
|
|
197
|
+
}
|
|
198
|
+
if (gitStatus.untracked.length > 0) {
|
|
199
|
+
lines.push(` Untracked: ${gitStatus.untracked.length}`);
|
|
200
|
+
}
|
|
201
|
+
if (gitStatus.conflicted.length > 0) {
|
|
202
|
+
lines.push(` Conflicted: ${gitStatus.conflicted.length}`);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
lines.push(" Working tree clean");
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return lines.join("\n");
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Build a combined system reminder based on current state
|
|
213
|
+
* Intelligently includes relevant reminders based on thresholds and intervals
|
|
214
|
+
*/
|
|
215
|
+
export function buildCombinedReminder(options) {
|
|
216
|
+
const { usage, maxTokens, totalCost, previousCost, toolsUsed, workingDirectory, gitStatus, turnNumber, config: userConfig, } = options;
|
|
217
|
+
const config = { ...DEFAULT_REMINDER_CONFIG, ...userConfig };
|
|
218
|
+
const reminders = [];
|
|
219
|
+
// Token warning (always check)
|
|
220
|
+
const currentTokens = usage.input_tokens + usage.output_tokens;
|
|
221
|
+
const tokenWarning = buildTokenWarning({
|
|
222
|
+
current: currentTokens,
|
|
223
|
+
max: maxTokens,
|
|
224
|
+
threshold: config.tokenWarningThreshold,
|
|
225
|
+
});
|
|
226
|
+
if (tokenWarning) {
|
|
227
|
+
reminders.push(tokenWarning);
|
|
228
|
+
}
|
|
229
|
+
// Cost update (on interval)
|
|
230
|
+
if (turnNumber % config.costUpdateInterval === 0) {
|
|
231
|
+
const costUpdate = buildCostUpdate({
|
|
232
|
+
cost: totalCost,
|
|
233
|
+
previousCost,
|
|
234
|
+
});
|
|
235
|
+
reminders.push(costUpdate);
|
|
236
|
+
}
|
|
237
|
+
// Tool summary (on interval)
|
|
238
|
+
if (turnNumber % config.toolSummaryInterval === 0 && toolsUsed.length > 0) {
|
|
239
|
+
const toolSummary = buildToolSummary({ tools: toolsUsed });
|
|
240
|
+
reminders.push(toolSummary);
|
|
241
|
+
}
|
|
242
|
+
// Environment info (first turn only)
|
|
243
|
+
if (turnNumber === 1 && config.envInfoOnStart) {
|
|
244
|
+
const envInfo = buildEnvInfo({
|
|
245
|
+
workingDirectory,
|
|
246
|
+
gitStatus,
|
|
247
|
+
});
|
|
248
|
+
reminders.push(envInfo);
|
|
249
|
+
}
|
|
250
|
+
if (reminders.length === 0) {
|
|
251
|
+
return "";
|
|
252
|
+
}
|
|
253
|
+
return ["---", "System Reminders:", "", ...reminders, "---"].join("\n");
|
|
254
|
+
}
|
|
255
|
+
// ============================================
|
|
256
|
+
// REMINDER INJECTOR
|
|
257
|
+
// ============================================
|
|
258
|
+
/**
|
|
259
|
+
* Inject system reminders into the conversation
|
|
260
|
+
* This should be called before sending messages to the API
|
|
261
|
+
*/
|
|
262
|
+
export function injectSystemReminder(messages, reminder) {
|
|
263
|
+
if (!reminder || messages.length === 0) {
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
// Find the last user message and append the reminder
|
|
267
|
+
for (let i = messages.length - 1; i >= 0; i--) {
|
|
268
|
+
const message = messages[i];
|
|
269
|
+
if (message && message.role === "user") {
|
|
270
|
+
// Append reminder to content
|
|
271
|
+
if (typeof message.content === "string") {
|
|
272
|
+
message.content = `${message.content}\n\n${reminder}`;
|
|
273
|
+
}
|
|
274
|
+
else if (Array.isArray(message.content)) {
|
|
275
|
+
// Handle array content (tool results, etc.)
|
|
276
|
+
// Add as a new text block at the end
|
|
277
|
+
message.content.push({
|
|
278
|
+
type: "text",
|
|
279
|
+
text: `\n\n${reminder}`,
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
break;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../../packages/src/ecosystem/hooks/__tests__/index.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|