@nanocollective/nanocoder 1.22.4 → 1.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +93 -30
- package/assets/nanocoder-vscode.vsix +0 -0
- package/dist/ai-sdk-client/chat/chat-handler.js +1 -1
- package/dist/ai-sdk-client/chat/chat-handler.js.map +1 -1
- package/dist/ai-sdk-client/chat/tool-processor.d.ts +1 -1
- package/dist/ai-sdk-client/chat/tool-processor.d.ts.map +1 -1
- package/dist/ai-sdk-client/chat/tool-processor.js +8 -3
- package/dist/ai-sdk-client/chat/tool-processor.js.map +1 -1
- package/dist/ai-sdk-client/error-handling/error-parser.d.ts.map +1 -1
- package/dist/ai-sdk-client/error-handling/error-parser.js +4 -1
- package/dist/ai-sdk-client/error-handling/error-parser.js.map +1 -1
- package/dist/app/App.d.ts.map +1 -1
- package/dist/app/App.js +106 -11
- package/dist/app/App.js.map +1 -1
- package/dist/app/components/chat-input.d.ts +6 -1
- package/dist/app/components/chat-input.d.ts.map +1 -1
- package/dist/app/components/chat-input.js +9 -7
- package/dist/app/components/chat-input.js.map +1 -1
- package/dist/app/utils/app-util.d.ts +5 -0
- package/dist/app/utils/app-util.d.ts.map +1 -1
- package/dist/app/utils/app-util.js +265 -0
- package/dist/app/utils/app-util.js.map +1 -1
- package/dist/client-factory.d.ts.map +1 -1
- package/dist/client-factory.js +3 -2
- package/dist/client-factory.js.map +1 -1
- package/dist/commands/context-max.d.ts +15 -0
- package/dist/commands/context-max.d.ts.map +1 -0
- package/dist/commands/context-max.js +22 -0
- package/dist/commands/context-max.js.map +1 -0
- package/dist/commands/custom-commands.d.ts.map +1 -1
- package/dist/commands/custom-commands.js +88 -4
- package/dist/commands/custom-commands.js.map +1 -1
- package/dist/commands/exit.d.ts.map +1 -1
- package/dist/commands/exit.js +5 -8
- package/dist/commands/exit.js.map +1 -1
- package/dist/commands/ide.d.ts +3 -0
- package/dist/commands/ide.d.ts.map +1 -0
- package/dist/commands/ide.js +10 -0
- package/dist/commands/ide.js.map +1 -0
- package/dist/commands/index.d.ts +3 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +3 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/schedule.d.ts +3 -0
- package/dist/commands/schedule.d.ts.map +1 -0
- package/dist/commands/schedule.js +177 -0
- package/dist/commands/schedule.js.map +1 -0
- package/dist/commands/usage.d.ts.map +1 -1
- package/dist/commands/usage.js +4 -3
- package/dist/commands/usage.js.map +1 -1
- package/dist/components/development-mode-indicator.d.ts +3 -2
- package/dist/components/development-mode-indicator.d.ts.map +1 -1
- package/dist/components/development-mode-indicator.js +23 -9
- package/dist/components/development-mode-indicator.js.map +1 -1
- package/dist/components/ide-selector.d.ts +7 -0
- package/dist/components/ide-selector.d.ts.map +1 -0
- package/dist/components/ide-selector.js +17 -0
- package/dist/components/ide-selector.js.map +1 -0
- package/dist/components/question-prompt.d.ts +8 -0
- package/dist/components/question-prompt.d.ts.map +1 -0
- package/dist/components/question-prompt.js +58 -0
- package/dist/components/question-prompt.js.map +1 -0
- package/dist/components/scheduler-view.d.ts +14 -0
- package/dist/components/scheduler-view.d.ts.map +1 -0
- package/dist/components/scheduler-view.js +17 -0
- package/dist/components/scheduler-view.js.map +1 -0
- package/dist/components/text-input.d.ts +13 -0
- package/dist/components/text-input.d.ts.map +1 -0
- package/dist/components/text-input.js +175 -0
- package/dist/components/text-input.js.map +1 -0
- package/dist/components/user-input.d.ts +2 -1
- package/dist/components/user-input.d.ts.map +1 -1
- package/dist/components/user-input.js +8 -15
- package/dist/components/user-input.js.map +1 -1
- package/dist/config/themes.d.ts.map +1 -1
- package/dist/config/themes.js +20 -0
- package/dist/config/themes.js.map +1 -1
- package/dist/constants.d.ts +2 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +55 -0
- package/dist/constants.js.map +1 -1
- package/dist/custom-commands/command-integration.d.ts +24 -0
- package/dist/custom-commands/command-integration.d.ts.map +1 -0
- package/dist/custom-commands/command-integration.js +68 -0
- package/dist/custom-commands/command-integration.js.map +1 -0
- package/dist/custom-commands/executor.d.ts.map +1 -1
- package/dist/custom-commands/executor.js +12 -2
- package/dist/custom-commands/executor.js.map +1 -1
- package/dist/custom-commands/loader.d.ts +33 -5
- package/dist/custom-commands/loader.d.ts.map +1 -1
- package/dist/custom-commands/loader.js +191 -18
- package/dist/custom-commands/loader.js.map +1 -1
- package/dist/custom-commands/parser.d.ts.map +1 -1
- package/dist/custom-commands/parser.js +115 -48
- package/dist/custom-commands/parser.js.map +1 -1
- package/dist/hooks/chat-handler/conversation/conversation-loop.d.ts +1 -1
- package/dist/hooks/chat-handler/conversation/conversation-loop.d.ts.map +1 -1
- package/dist/hooks/chat-handler/conversation/conversation-loop.js +37 -5
- package/dist/hooks/chat-handler/conversation/conversation-loop.js.map +1 -1
- package/dist/hooks/chat-handler/conversation/tool-executor.js +1 -1
- package/dist/hooks/chat-handler/conversation/tool-executor.js.map +1 -1
- package/dist/hooks/chat-handler/types.d.ts +3 -1
- package/dist/hooks/chat-handler/types.d.ts.map +1 -1
- package/dist/hooks/chat-handler/useChatHandler.d.ts +1 -1
- package/dist/hooks/chat-handler/useChatHandler.d.ts.map +1 -1
- package/dist/hooks/chat-handler/useChatHandler.js +13 -5
- package/dist/hooks/chat-handler/useChatHandler.js.map +1 -1
- package/dist/hooks/useAppHandlers.d.ts +2 -0
- package/dist/hooks/useAppHandlers.d.ts.map +1 -1
- package/dist/hooks/useAppHandlers.js +5 -0
- package/dist/hooks/useAppHandlers.js.map +1 -1
- package/dist/hooks/useAppInitialization.d.ts.map +1 -1
- package/dist/hooks/useAppInitialization.js +4 -1
- package/dist/hooks/useAppInitialization.js.map +1 -1
- package/dist/hooks/useAppState.d.ts +15 -0
- package/dist/hooks/useAppState.d.ts.map +1 -1
- package/dist/hooks/useAppState.js +23 -0
- package/dist/hooks/useAppState.js.map +1 -1
- package/dist/hooks/useContextPercentage.d.ts +17 -0
- package/dist/hooks/useContextPercentage.d.ts.map +1 -0
- package/dist/hooks/useContextPercentage.js +71 -0
- package/dist/hooks/useContextPercentage.js.map +1 -0
- package/dist/hooks/useModeHandlers.d.ts +4 -1
- package/dist/hooks/useModeHandlers.d.ts.map +1 -1
- package/dist/hooks/useModeHandlers.js +11 -1
- package/dist/hooks/useModeHandlers.js.map +1 -1
- package/dist/hooks/useNonInteractiveMode.d.ts.map +1 -1
- package/dist/hooks/useNonInteractiveMode.js +3 -1
- package/dist/hooks/useNonInteractiveMode.js.map +1 -1
- package/dist/hooks/useSchedulerMode.d.ts +30 -0
- package/dist/hooks/useSchedulerMode.d.ts.map +1 -0
- package/dist/hooks/useSchedulerMode.js +99 -0
- package/dist/hooks/useSchedulerMode.js.map +1 -0
- package/dist/lsp/lsp-manager.d.ts.map +1 -1
- package/dist/lsp/lsp-manager.js +10 -0
- package/dist/lsp/lsp-manager.js.map +1 -1
- package/dist/mcp/mcp-client.d.ts.map +1 -1
- package/dist/mcp/mcp-client.js +20 -1
- package/dist/mcp/mcp-client.js.map +1 -1
- package/dist/models/index.d.ts +1 -1
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/index.js +1 -1
- package/dist/models/index.js.map +1 -1
- package/dist/models/models-dev-client.d.ts +8 -1
- package/dist/models/models-dev-client.d.ts.map +1 -1
- package/dist/models/models-dev-client.js +116 -88
- package/dist/models/models-dev-client.js.map +1 -1
- package/dist/schedule/cron.d.ts +14 -0
- package/dist/schedule/cron.d.ts.map +1 -0
- package/dist/schedule/cron.js +107 -0
- package/dist/schedule/cron.js.map +1 -0
- package/dist/schedule/index.d.ts +4 -0
- package/dist/schedule/index.d.ts.map +1 -0
- package/dist/schedule/index.js +4 -0
- package/dist/schedule/index.js.map +1 -0
- package/dist/schedule/runner.d.ts +42 -0
- package/dist/schedule/runner.d.ts.map +1 -0
- package/dist/schedule/runner.js +136 -0
- package/dist/schedule/runner.js.map +1 -0
- package/dist/schedule/storage.d.ts +9 -0
- package/dist/schedule/storage.d.ts.map +1 -0
- package/dist/schedule/storage.js +68 -0
- package/dist/schedule/storage.js.map +1 -0
- package/dist/schedule/types.d.ts +24 -0
- package/dist/schedule/types.d.ts.map +1 -0
- package/dist/schedule/types.js +2 -0
- package/dist/schedule/types.js.map +1 -0
- package/dist/services/bash-executor.d.ts.map +1 -1
- package/dist/services/bash-executor.js +5 -0
- package/dist/services/bash-executor.js.map +1 -1
- package/dist/tool-calling/json-parser.d.ts +7 -3
- package/dist/tool-calling/json-parser.d.ts.map +1 -1
- package/dist/tool-calling/json-parser.js +59 -23
- package/dist/tool-calling/json-parser.js.map +1 -1
- package/dist/tool-calling/tool-parser.d.ts +2 -2
- package/dist/tool-calling/tool-parser.d.ts.map +1 -1
- package/dist/tool-calling/tool-parser.js +27 -23
- package/dist/tool-calling/tool-parser.js.map +1 -1
- package/dist/tool-calling/xml-parser.d.ts +8 -4
- package/dist/tool-calling/xml-parser.d.ts.map +1 -1
- package/dist/tool-calling/xml-parser.js +15 -5
- package/dist/tool-calling/xml-parser.js.map +1 -1
- package/dist/tools/ask-question.d.ts +3 -0
- package/dist/tools/ask-question.d.ts.map +1 -0
- package/dist/tools/ask-question.js +66 -0
- package/dist/tools/ask-question.js.map +1 -0
- package/dist/tools/execute-bash.js +1 -1
- package/dist/tools/execute-bash.js.map +1 -1
- package/dist/tools/file-ops/copy-file.d.ts +3 -0
- package/dist/tools/file-ops/copy-file.d.ts.map +1 -0
- package/dist/tools/file-ops/copy-file.js +126 -0
- package/dist/tools/file-ops/copy-file.js.map +1 -0
- package/dist/tools/file-ops/create-directory.d.ts +3 -0
- package/dist/tools/file-ops/create-directory.d.ts.map +1 -0
- package/dist/tools/file-ops/create-directory.js +76 -0
- package/dist/tools/file-ops/create-directory.js.map +1 -0
- package/dist/tools/file-ops/delete-file.d.ts +3 -0
- package/dist/tools/file-ops/delete-file.d.ts.map +1 -0
- package/dist/tools/file-ops/delete-file.js +88 -0
- package/dist/tools/file-ops/delete-file.js.map +1 -0
- package/dist/tools/file-ops/index.d.ts +3 -0
- package/dist/tools/file-ops/index.d.ts.map +1 -0
- package/dist/tools/file-ops/index.js +8 -0
- package/dist/tools/file-ops/index.js.map +1 -0
- package/dist/tools/file-ops/move-file.d.ts +3 -0
- package/dist/tools/file-ops/move-file.d.ts.map +1 -0
- package/dist/tools/file-ops/move-file.js +126 -0
- package/dist/tools/file-ops/move-file.js.map +1 -0
- package/dist/tools/file-ops/string-replace.d.ts +3 -0
- package/dist/tools/file-ops/string-replace.d.ts.map +1 -0
- package/dist/tools/{string-replace.js → file-ops/string-replace.js} +17 -17
- package/dist/tools/file-ops/string-replace.js.map +1 -0
- package/dist/tools/file-ops/write-file.d.ts +3 -0
- package/dist/tools/file-ops/write-file.d.ts.map +1 -0
- package/dist/tools/{write-file.js → file-ops/write-file.js} +31 -17
- package/dist/tools/file-ops/write-file.js.map +1 -0
- package/dist/tools/git/git-reset.js +1 -1
- package/dist/tools/git/git-reset.js.map +1 -1
- package/dist/tools/git/index.js +3 -3
- package/dist/tools/git/index.js.map +1 -1
- package/dist/tools/git/utils.d.ts +4 -0
- package/dist/tools/git/utils.d.ts.map +1 -1
- package/dist/tools/git/utils.js +12 -0
- package/dist/tools/git/utils.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +8 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/search-file-contents.d.ts.map +1 -1
- package/dist/tools/search-file-contents.js +59 -10
- package/dist/tools/search-file-contents.js.map +1 -1
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +9 -0
- package/dist/tools/tool-manager.js.map +1 -1
- package/dist/types/app.d.ts +2 -0
- package/dist/types/app.d.ts.map +1 -1
- package/dist/types/commands.d.ts +20 -0
- package/dist/types/commands.d.ts.map +1 -1
- package/dist/types/core.d.ts +2 -1
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/core.js +7 -0
- package/dist/types/core.js.map +1 -1
- package/dist/types/ui.d.ts +1 -1
- package/dist/types/ui.d.ts.map +1 -1
- package/dist/utils/auto-compact.d.ts.map +1 -1
- package/dist/utils/auto-compact.js +13 -7
- package/dist/utils/auto-compact.js.map +1 -1
- package/dist/utils/file-content-loader.d.ts.map +1 -1
- package/dist/utils/file-content-loader.js +58 -1
- package/dist/utils/file-content-loader.js.map +1 -1
- package/dist/utils/logging/index.d.ts.map +1 -1
- package/dist/utils/logging/index.js +18 -30
- package/dist/utils/logging/index.js.map +1 -1
- package/dist/utils/question-queue.d.ts +15 -0
- package/dist/utils/question-queue.d.ts.map +1 -0
- package/dist/utils/question-queue.js +25 -0
- package/dist/utils/question-queue.js.map +1 -0
- package/dist/utils/response-formatter.d.ts +108 -0
- package/dist/utils/response-formatter.d.ts.map +1 -0
- package/dist/utils/response-formatter.js +387 -0
- package/dist/utils/response-formatter.js.map +1 -0
- package/dist/utils/shutdown/index.d.ts +7 -0
- package/dist/utils/shutdown/index.d.ts.map +1 -0
- package/dist/utils/shutdown/index.js +6 -0
- package/dist/utils/shutdown/index.js.map +1 -0
- package/dist/utils/shutdown/shutdown-manager.d.ts +19 -0
- package/dist/utils/shutdown/shutdown-manager.d.ts.map +1 -0
- package/dist/utils/shutdown/shutdown-manager.js +100 -0
- package/dist/utils/shutdown/shutdown-manager.js.map +1 -0
- package/dist/utils/shutdown/types.d.ts +9 -0
- package/dist/utils/shutdown/types.d.ts.map +1 -0
- package/dist/utils/shutdown/types.js +2 -0
- package/dist/utils/shutdown/types.js.map +1 -0
- package/dist/utils/type-helpers.d.ts +140 -0
- package/dist/utils/type-helpers.d.ts.map +1 -0
- package/dist/utils/type-helpers.js +220 -0
- package/dist/utils/type-helpers.js.map +1 -0
- package/dist/utils/url-utils.d.ts +6 -0
- package/dist/utils/url-utils.d.ts.map +1 -0
- package/dist/utils/url-utils.js +22 -0
- package/dist/utils/url-utils.js.map +1 -0
- package/dist/vscode/vscode-server.d.ts.map +1 -1
- package/dist/vscode/vscode-server.js +10 -0
- package/dist/vscode/vscode-server.js.map +1 -1
- package/dist/wizards/steps/mcp-step.js +1 -1
- package/dist/wizards/steps/mcp-step.js.map +1 -1
- package/dist/wizards/steps/provider-step.js +1 -1
- package/dist/wizards/steps/provider-step.js.map +1 -1
- package/dist/wizards/templates/mcp-templates.d.ts.map +1 -1
- package/dist/wizards/templates/mcp-templates.js +8 -6
- package/dist/wizards/templates/mcp-templates.js.map +1 -1
- package/dist/wizards/templates/provider-templates.d.ts.map +1 -1
- package/dist/wizards/templates/provider-templates.js +35 -2
- package/dist/wizards/templates/provider-templates.js.map +1 -1
- package/dist/wizards/validation.d.ts.map +1 -1
- package/dist/wizards/validation.js +2 -3
- package/dist/wizards/validation.js.map +1 -1
- package/package.json +9 -18
- package/source/app/prompts/main-prompt.md +21 -3
- package/dist/hooks/chat-handler/utils/context-checker.d.ts +0 -15
- package/dist/hooks/chat-handler/utils/context-checker.d.ts.map +0 -1
- package/dist/hooks/chat-handler/utils/context-checker.js +0 -68
- package/dist/hooks/chat-handler/utils/context-checker.js.map +0 -1
- package/dist/tools/string-replace.d.ts +0 -3
- package/dist/tools/string-replace.d.ts.map +0 -1
- package/dist/tools/string-replace.js.map +0 -1
- package/dist/tools/write-file.d.ts +0 -3
- package/dist/tools/write-file.d.ts.map +0 -1
- package/dist/tools/write-file.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-compact.js","sourceRoot":"","sources":["../../source/utils/auto-compact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,oBAAoB,EAAC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"auto-compact.js","sourceRoot":"","sources":["../../source/utils/auto-compact.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-content-loader.d.ts","sourceRoot":"","sources":["../../source/utils/file-content-loader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"file-content-loader.d.ts","sourceRoot":"","sources":["../../source/utils/file-content-loader.ts"],"names":[],"mappings":"AAIA,UAAU,iBAAiB;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAA;SAAC,CAAC;QAC1C,MAAM,EAAE,MAAM,CAAC;KACf,CAAC;CACF;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACpC,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAC,GACvC,OAAO,CAAC,iBAAiB,CAAC,CA6J5B"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { readFile, stat } from 'node:fs/promises';
|
|
2
|
-
import { resolve } from 'node:path';
|
|
2
|
+
import { extname, resolve } from 'node:path';
|
|
3
|
+
import { BINARY_FILE_EXTENSIONS, MAX_FILE_TAG_SIZE_BYTES } from '../constants.js';
|
|
3
4
|
/**
|
|
4
5
|
* Load file content with optional line range
|
|
5
6
|
* Silently handles errors - returns success: false instead of throwing
|
|
@@ -24,6 +25,55 @@ export async function loadFileContent(filePath, lineRange) {
|
|
|
24
25
|
},
|
|
25
26
|
};
|
|
26
27
|
}
|
|
28
|
+
// Binary extension check
|
|
29
|
+
const ext = extname(absPath).toLowerCase();
|
|
30
|
+
if (BINARY_FILE_EXTENSIONS.has(ext)) {
|
|
31
|
+
const fileType = ext.slice(1).toUpperCase();
|
|
32
|
+
const metadataContent = [
|
|
33
|
+
`[Binary file: ${filePath}]`,
|
|
34
|
+
`Type: ${fileType}`,
|
|
35
|
+
`Size: ${fileStats.size.toLocaleString()} bytes (${formatBytes(fileStats.size)})`,
|
|
36
|
+
`Last Modified: ${fileStats.mtime.toISOString()}`,
|
|
37
|
+
'',
|
|
38
|
+
'(Binary files cannot be included as text content)',
|
|
39
|
+
].join('\n');
|
|
40
|
+
return {
|
|
41
|
+
success: true,
|
|
42
|
+
content: metadataContent,
|
|
43
|
+
metadata: {
|
|
44
|
+
path: filePath,
|
|
45
|
+
absolutePath: absPath,
|
|
46
|
+
size: fileStats.size,
|
|
47
|
+
lineCount: 0,
|
|
48
|
+
lineRange,
|
|
49
|
+
tokens: Math.ceil(metadataContent.length / 4),
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
// Size check
|
|
54
|
+
if (fileStats.size > MAX_FILE_TAG_SIZE_BYTES && !lineRange) {
|
|
55
|
+
const estimatedLines = Math.round(fileStats.size / 40);
|
|
56
|
+
const metadataContent = [
|
|
57
|
+
`[Large file: ${filePath}]`,
|
|
58
|
+
`Size: ${fileStats.size.toLocaleString()} bytes (${formatBytes(fileStats.size)})`,
|
|
59
|
+
`Lines: ~${estimatedLines.toLocaleString()}`,
|
|
60
|
+
`Last Modified: ${fileStats.mtime.toISOString()}`,
|
|
61
|
+
'',
|
|
62
|
+
`(File exceeds ${formatBytes(MAX_FILE_TAG_SIZE_BYTES)} limit for inline tagging. Use @file:1-100 to tag specific line ranges)`,
|
|
63
|
+
].join('\n');
|
|
64
|
+
return {
|
|
65
|
+
success: true,
|
|
66
|
+
content: metadataContent,
|
|
67
|
+
metadata: {
|
|
68
|
+
path: filePath,
|
|
69
|
+
absolutePath: absPath,
|
|
70
|
+
size: fileStats.size,
|
|
71
|
+
lineCount: 0,
|
|
72
|
+
lineRange,
|
|
73
|
+
tokens: Math.ceil(metadataContent.length / 4),
|
|
74
|
+
},
|
|
75
|
+
};
|
|
76
|
+
}
|
|
27
77
|
// Read file content
|
|
28
78
|
let content;
|
|
29
79
|
try {
|
|
@@ -109,4 +159,11 @@ export async function loadFileContent(filePath, lineRange) {
|
|
|
109
159
|
function formatFileContent(lines, filePath) {
|
|
110
160
|
return `Path: ${filePath}\n\n${lines.join('\n')}`;
|
|
111
161
|
}
|
|
162
|
+
function formatBytes(bytes) {
|
|
163
|
+
if (bytes < 1024)
|
|
164
|
+
return `${bytes} B`;
|
|
165
|
+
if (bytes < 1024 * 1024)
|
|
166
|
+
return `${(bytes / 1024).toFixed(1)} KB`;
|
|
167
|
+
return `${(bytes / (1024 * 1024)).toFixed(2)} MB`;
|
|
168
|
+
}
|
|
112
169
|
//# sourceMappingURL=file-content-loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-content-loader.js","sourceRoot":"","sources":["../../source/utils/file-content-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"file-content-loader.js","sourceRoot":"","sources":["../../source/utils/file-content-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../source/utils/logging/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../source/utils/logging/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAC,MAAM,SAAS,CAAC;AAE5D;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,MAAM,CAEvE;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,YAAY,GAAG,IAAI,CAErD;AAED;;GAEG;AAEH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAEvE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAEvD;AAED;;GAEG;AACH,eAAO,MAAM,GAAG;iBAEF,MAAM,WAAW,GAAG,EAAE;iBAEtB,MAAM,WAAW,GAAG,EAAE;gBAEvB,MAAM,WAAW,GAAG,EAAE;gBAEtB,MAAM,WAAW,GAAG,EAAE;gBAEtB,MAAM,WAAW,GAAG,EAAE;iBAErB,MAAM,WAAW,GAAG,EAAE;iBAEtB,MAAM,WAAW,GAAG,EAAE;CACnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,OAAO;mBAEJ,GAAG,EAAE;qBAYH,GAAG,EAAE;oBAIN,GAAG,EAAE;oBAIL,GAAG,EAAE;qBAIJ,GAAG,EAAE;CAGtB,CAAC;AAEF;;GAEG;AACH,wBAAsB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3C;AASD;;GAEG;AACH,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAEzC;AAuBD,OAAO;AACN,gBAAgB;AAChB,YAAY;AACZ,gBAAgB;AAChB,sBAAsB;AACtB,gBAAgB;AAChB,oBAAoB;AACpB,gBAAgB;AAChB,iBAAiB;AACjB,gBAAgB;AAChB,gBAAgB,GAChB,MAAM,aAAa,CAAC;AAGrB,OAAO;AACN,gBAAgB;AAChB,qBAAqB;AACrB,gBAAgB;AAChB,4BAA4B;AAC5B,gBAAgB;AAChB,oBAAoB;AACpB,gBAAgB;AAChB,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,EAChB,yBAAyB,GACzB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACN,oBAAoB,EACpB,UAAU;AACV,gBAAgB;AAChB,WAAW,EACX,iBAAiB;AACjB,gBAAgB;AAChB,wBAAwB,EACxB,YAAY,GACZ,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAC,MAAM,YAAY,CAAC;AAS/D,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AAEtD,OAAO;AACN,gBAAgB;AAChB,SAAS,EACT,oBAAoB;AACpB,gBAAgB;AAChB,WAAW;AACX,gBAAgB;AAChB,UAAU,GACV,MAAM,sBAAsB,CAAC;AAS9B,OAAO,EACN,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,aAAa,GAClB,MAAM,2BAA2B,CAAC"}
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
* Main logging interface with facade pattern for backward compatibility
|
|
3
3
|
* Uses dependency injection pattern to avoid circular dependencies
|
|
4
4
|
*/
|
|
5
|
+
import { getShutdownManager } from '../../utils/shutdown/index.js';
|
|
6
|
+
import { globalHealthMonitor } from './health-monitor/core/health-monitor.js';
|
|
5
7
|
import { loggerProvider } from './logger-provider.js';
|
|
6
8
|
/**
|
|
7
9
|
* Initialize the logger with configuration
|
|
@@ -93,7 +95,7 @@ export async function flush() {
|
|
|
93
95
|
/**
|
|
94
96
|
* Flush logs synchronously (for signal handlers)
|
|
95
97
|
*/
|
|
96
|
-
function
|
|
98
|
+
function _flushSync() {
|
|
97
99
|
loggerProvider.flushSync();
|
|
98
100
|
}
|
|
99
101
|
/**
|
|
@@ -102,36 +104,22 @@ function flushSync() {
|
|
|
102
104
|
export async function end() {
|
|
103
105
|
await loggerProvider.end();
|
|
104
106
|
}
|
|
105
|
-
//
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
}
|
|
113
|
-
process.once('SIGINT', () => {
|
|
114
|
-
log.info('\n[LOGGER] Received SIGINT, flushing logs...');
|
|
115
|
-
flushSync();
|
|
116
|
-
process.stderr.write('[LOGGER] Graceful shutdown completed\n');
|
|
117
|
-
process.exit(0);
|
|
118
|
-
});
|
|
119
|
-
// Handle uncaught exceptions and unhandled rejections
|
|
120
|
-
process.on('uncaughtException', err => {
|
|
121
|
-
void (async () => {
|
|
122
|
-
const logger = getLogger();
|
|
123
|
-
logger.fatal({ err }, 'Uncaught exception');
|
|
124
|
-
await flush();
|
|
125
|
-
process.exit(1);
|
|
126
|
-
})();
|
|
107
|
+
// Register cleanup handlers with ShutdownManager
|
|
108
|
+
const shutdownManager = getShutdownManager();
|
|
109
|
+
shutdownManager.register({
|
|
110
|
+
name: 'health-monitor',
|
|
111
|
+
priority: 40,
|
|
112
|
+
handler: async () => {
|
|
113
|
+
globalHealthMonitor.stop();
|
|
114
|
+
},
|
|
127
115
|
});
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
await flush();
|
|
133
|
-
|
|
134
|
-
}
|
|
116
|
+
shutdownManager.register({
|
|
117
|
+
name: 'logger',
|
|
118
|
+
priority: 100,
|
|
119
|
+
handler: async () => {
|
|
120
|
+
await loggerProvider.flush();
|
|
121
|
+
await loggerProvider.end();
|
|
122
|
+
},
|
|
135
123
|
});
|
|
136
124
|
// Export configuration utilities
|
|
137
125
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/utils/logging/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/utils/logging/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface PendingQuestion {
|
|
2
|
+
question: string;
|
|
3
|
+
options: string[];
|
|
4
|
+
allowFreeform: boolean;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Called once from App.tsx to wire up the UI handler.
|
|
8
|
+
*/
|
|
9
|
+
export declare function setGlobalQuestionHandler(handler: (question: PendingQuestion) => Promise<string>): void;
|
|
10
|
+
/**
|
|
11
|
+
* Called from the ask_question tool's execute function.
|
|
12
|
+
* Returns a Promise that resolves with the user's answer string.
|
|
13
|
+
*/
|
|
14
|
+
export declare function signalQuestion(question: PendingQuestion): Promise<string>;
|
|
15
|
+
//# sourceMappingURL=question-queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"question-queue.d.ts","sourceRoot":"","sources":["../../source/utils/question-queue.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,eAAe;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;CACvB;AAQD;;GAEG;AACH,wBAAgB,wBAAwB,CACvC,OAAO,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,OAAO,CAAC,MAAM,CAAC,QAGvD;AAED;;;GAGG;AACH,wBAAsB,cAAc,CACnC,QAAQ,EAAE,eAAe,GACvB,OAAO,CAAC,MAAM,CAAC,CAKjB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// Global question queue - allows the ask_question tool to present
|
|
2
|
+
// interactive questions to the user via the UI.
|
|
3
|
+
//
|
|
4
|
+
// Pattern mirrors message-queue.tsx: a module-level singleton handler
|
|
5
|
+
// set by App.tsx, called from the tool's execute function.
|
|
6
|
+
// The handler set by App.tsx. It receives the question data and returns
|
|
7
|
+
// a Promise<string> that resolves when the user picks an answer.
|
|
8
|
+
let globalQuestionHandler = null;
|
|
9
|
+
/**
|
|
10
|
+
* Called once from App.tsx to wire up the UI handler.
|
|
11
|
+
*/
|
|
12
|
+
export function setGlobalQuestionHandler(handler) {
|
|
13
|
+
globalQuestionHandler = handler;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Called from the ask_question tool's execute function.
|
|
17
|
+
* Returns a Promise that resolves with the user's answer string.
|
|
18
|
+
*/
|
|
19
|
+
export async function signalQuestion(question) {
|
|
20
|
+
if (!globalQuestionHandler) {
|
|
21
|
+
return 'Error: Question handler not initialized. The UI is not ready to accept questions.';
|
|
22
|
+
}
|
|
23
|
+
return globalQuestionHandler(question);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=question-queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"question-queue.js","sourceRoot":"","sources":["../../source/utils/question-queue.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,gDAAgD;AAChD,EAAE;AACF,sEAAsE;AACtE,2DAA2D;AAQ3D,wEAAwE;AACxE,iEAAiE;AACjE,IAAI,qBAAqB,GAEf,IAAI,CAAC;AAEf;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACvC,OAAuD;IAEvD,qBAAqB,GAAG,OAAO,CAAC;AACjC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,QAAyB;IAEzB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC5B,OAAO,mFAAmF,CAAC;IAC5F,CAAC;IACD,OAAO,qBAAqB,CAAC,QAAQ,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TYPE PRESERVATION STRATEGY EXPLAINED
|
|
3
|
+
* =====================================
|
|
4
|
+
*
|
|
5
|
+
* "Preserving types" does NOT mean keeping everything as objects/arrays in memory.
|
|
6
|
+
* It means:
|
|
7
|
+
*
|
|
8
|
+
* 1. When receiving LLM responses (which can be ANY type):
|
|
9
|
+
* - We accept unknown types (string, object, array, null, undefined)
|
|
10
|
+
* - We convert to string ONLY for PARSING OPERATIONS
|
|
11
|
+
* - We preserve the original type in the tool call structure
|
|
12
|
+
*
|
|
13
|
+
* 2. When storing ToolCall.arguments:
|
|
14
|
+
* - MUST preserve as Record<string, unknown> (object type)
|
|
15
|
+
* - NOT convert to string
|
|
16
|
+
* - Enables direct property access without JSON.parse
|
|
17
|
+
*
|
|
18
|
+
* 3. When displaying/writing to disk:
|
|
19
|
+
* - Convert to string for display/storage operations
|
|
20
|
+
* - Use JSON.stringify for objects/arrays
|
|
21
|
+
* - Use String() for primitives
|
|
22
|
+
*
|
|
23
|
+
* The confusion comes from mixing up:
|
|
24
|
+
* - "Preserve types in memory" (CRITICAL: ToolCall.arguments stays as object)
|
|
25
|
+
* - "Convert to string for processing" (NECESSARY: Parser expects strings)
|
|
26
|
+
*
|
|
27
|
+
* This formatter handles the INCOMING data, then the parser handles the
|
|
28
|
+
* conversion to ToolCall format with type preservation.
|
|
29
|
+
*/
|
|
30
|
+
import type { ToolCall } from '../types/index.js';
|
|
31
|
+
/**
|
|
32
|
+
* Result of normalizing an LLM response
|
|
33
|
+
* Contains the raw response, processed content, extracted tool calls, and metadata
|
|
34
|
+
*/
|
|
35
|
+
export interface NormalizedResponse {
|
|
36
|
+
/** The original response from the LLM (unknown type for maximum flexibility) */
|
|
37
|
+
raw: unknown;
|
|
38
|
+
/** The content after normalization (always a string for parsing) */
|
|
39
|
+
content: string;
|
|
40
|
+
/** Any tool calls extracted during normalization */
|
|
41
|
+
toolCalls: ToolCall[];
|
|
42
|
+
/** Metadata about the response for debugging and strategy selection */
|
|
43
|
+
metadata: ResponseMetadata;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Metadata about the normalized response
|
|
47
|
+
* Used for:
|
|
48
|
+
* - Debugging and logging
|
|
49
|
+
* - Selecting the best parsing strategy
|
|
50
|
+
* - Error handling and recovery
|
|
51
|
+
*/
|
|
52
|
+
export interface ResponseMetadata {
|
|
53
|
+
/** Whether response contained markdown code blocks */
|
|
54
|
+
hasCodeBlocks: boolean;
|
|
55
|
+
/** Whether response contained XML tags */
|
|
56
|
+
hasXMLTags: boolean;
|
|
57
|
+
/** Whether response contained JSON tool call structures */
|
|
58
|
+
hasJSONBlocks: boolean;
|
|
59
|
+
/** Confidence level in the response type classification */
|
|
60
|
+
confidence: 'high' | 'medium' | 'low';
|
|
61
|
+
/** Detected response format */
|
|
62
|
+
detectedFormat: 'plain' | 'json' | 'xml' | 'mixed' | 'unknown';
|
|
63
|
+
/** Whether response appears to be malformed */
|
|
64
|
+
isMalformed: boolean;
|
|
65
|
+
/** Detected error if malformed */
|
|
66
|
+
malformedError?: string;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Main entry point for normalizing LLM responses
|
|
70
|
+
*
|
|
71
|
+
* This function handles all possible LLM response types:
|
|
72
|
+
* - Plain strings (most common)
|
|
73
|
+
* - JSON objects (with/without tool_calls field)
|
|
74
|
+
* - Arrays (line-based content)
|
|
75
|
+
* - Null/undefined (error responses)
|
|
76
|
+
* - Mixed content (text + tool calls embedded)
|
|
77
|
+
*
|
|
78
|
+
* @param response - The raw response from the LLM (can be any type)
|
|
79
|
+
* @param options - Configuration options
|
|
80
|
+
* @returns A normalized response with content and extracted tool calls
|
|
81
|
+
*/
|
|
82
|
+
export declare function normalizeLLMResponse(response: unknown, options?: NormalizeOptions): Promise<NormalizedResponse>;
|
|
83
|
+
/**
|
|
84
|
+
* Formats a normalized response for debugging
|
|
85
|
+
*
|
|
86
|
+
* @param response - Normalized response to format
|
|
87
|
+
* @returns Formatted string for debugging
|
|
88
|
+
*/
|
|
89
|
+
export declare function formatNormalizedResponse(response: NormalizedResponse): string;
|
|
90
|
+
/**
|
|
91
|
+
* Checks if a response is complete and ready for processing
|
|
92
|
+
*
|
|
93
|
+
* A response is complete if:
|
|
94
|
+
* 1. It has content
|
|
95
|
+
* 2. It has low confidence (means no tool calls were found, so no further processing needed)
|
|
96
|
+
* 3. It's not malformed
|
|
97
|
+
*
|
|
98
|
+
* @param response - Normalized response to check
|
|
99
|
+
* @returns True if response is complete
|
|
100
|
+
*/
|
|
101
|
+
export declare function isResponseComplete(response: NormalizedResponse): boolean;
|
|
102
|
+
export interface NormalizeOptions {
|
|
103
|
+
/** If true, keeps the raw object structure instead of JSON.stringify */
|
|
104
|
+
preserveRawTypes?: boolean;
|
|
105
|
+
/** If true, extracts tool calls from mixed content (text + tool calls) */
|
|
106
|
+
allowMixedContent?: boolean;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=response-formatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-formatter.d.ts","sourceRoot":"","sources":["../../source/utils/response-formatter.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AAM5C;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAClC,gFAAgF;IAChF,GAAG,EAAE,OAAO,CAAC;IAEb,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;IAEhB,oDAAoD;IACpD,SAAS,EAAE,QAAQ,EAAE,CAAC;IAEtB,uEAAuE;IACvE,QAAQ,EAAE,gBAAgB,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAChC,sDAAsD;IACtD,aAAa,EAAE,OAAO,CAAC;IAEvB,0CAA0C;IAC1C,UAAU,EAAE,OAAO,CAAC;IAEpB,2DAA2D;IAC3D,aAAa,EAAE,OAAO,CAAC;IAEvB,2DAA2D;IAC3D,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAEtC,+BAA+B;IAC/B,cAAc,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC;IAE/D,+CAA+C;IAC/C,WAAW,EAAE,OAAO,CAAC;IAErB,kCAAkC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,oBAAoB,CACzC,QAAQ,EAAE,OAAO,EACjB,OAAO,GAAE,gBAAqB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,CA4C7B;AAuVD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,CA0B7E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAOxE;AAMD,MAAM,WAAW,gBAAgB;IAChC,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,0EAA0E;IAC1E,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC5B"}
|