@nanocollective/nanocoder 1.11.3
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/LICENSE.md +23 -0
- package/README.md +366 -0
- package/dist/app/hooks/useAppInitialization.d.ts +26 -0
- package/dist/app/hooks/useAppInitialization.d.ts.map +1 -0
- package/dist/app/hooks/useAppInitialization.js +151 -0
- package/dist/app/hooks/useAppInitialization.js.map +1 -0
- package/dist/app/hooks/useAppState.d.ts +84 -0
- package/dist/app/hooks/useAppState.d.ts.map +1 -0
- package/dist/app/hooks/useAppState.js +162 -0
- package/dist/app/hooks/useAppState.js.map +1 -0
- package/dist/app/hooks/useChatHandler.d.ts +26 -0
- package/dist/app/hooks/useChatHandler.d.ts.map +1 -0
- package/dist/app/hooks/useChatHandler.js +532 -0
- package/dist/app/hooks/useChatHandler.js.map +1 -0
- package/dist/app/hooks/useDirectoryTrust.d.ts +15 -0
- package/dist/app/hooks/useDirectoryTrust.d.ts.map +1 -0
- package/dist/app/hooks/useDirectoryTrust.js +77 -0
- package/dist/app/hooks/useDirectoryTrust.js.map +1 -0
- package/dist/app/hooks/useModeHandlers.d.ts +31 -0
- package/dist/app/hooks/useModeHandlers.d.ts.map +1 -0
- package/dist/app/hooks/useModeHandlers.js +98 -0
- package/dist/app/hooks/useModeHandlers.js.map +1 -0
- package/dist/app/hooks/useToolHandler.d.ts +32 -0
- package/dist/app/hooks/useToolHandler.d.ts.map +1 -0
- package/dist/app/hooks/useToolHandler.js +154 -0
- package/dist/app/hooks/useToolHandler.js.map +1 -0
- package/dist/app/utils/appUtils.d.ts +4 -0
- package/dist/app/utils/appUtils.d.ts.map +1 -0
- package/dist/app/utils/appUtils.js +147 -0
- package/dist/app/utils/appUtils.js.map +1 -0
- package/dist/app/utils/conversationState.d.ts +68 -0
- package/dist/app/utils/conversationState.d.ts.map +1 -0
- package/dist/app/utils/conversationState.js +199 -0
- package/dist/app/utils/conversationState.js.map +1 -0
- package/dist/app.d.ts +2 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +193 -0
- package/dist/app.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +6 -0
- package/dist/cli.js.map +1 -0
- package/dist/client-factory.d.ts +6 -0
- package/dist/client-factory.d.ts.map +1 -0
- package/dist/client-factory.js +111 -0
- package/dist/client-factory.js.map +1 -0
- package/dist/command-parser.d.ts +5 -0
- package/dist/command-parser.d.ts.map +1 -0
- package/dist/command-parser.js +36 -0
- package/dist/command-parser.js.map +1 -0
- package/dist/commands/clear.d.ts +3 -0
- package/dist/commands/clear.d.ts.map +1 -0
- package/dist/commands/clear.js +17 -0
- package/dist/commands/clear.js.map +1 -0
- package/dist/commands/custom-commands.d.ts +3 -0
- package/dist/commands/custom-commands.d.ts.map +1 -0
- package/dist/commands/custom-commands.js +41 -0
- package/dist/commands/custom-commands.js.map +1 -0
- package/dist/commands/debug.d.ts +3 -0
- package/dist/commands/debug.d.ts.map +1 -0
- package/dist/commands/debug.js +86 -0
- package/dist/commands/debug.js.map +1 -0
- package/dist/commands/exit.d.ts +3 -0
- package/dist/commands/exit.d.ts.map +1 -0
- package/dist/commands/exit.js +17 -0
- package/dist/commands/exit.js.map +1 -0
- package/dist/commands/export.d.ts +3 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +63 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/help.d.ts +3 -0
- package/dist/commands/help.d.ts.map +1 -0
- package/dist/commands/help.js +31 -0
- package/dist/commands/help.js.map +1 -0
- package/dist/commands/index.d.ts +13 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +13 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +214 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/mcp.d.ts +9 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +41 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/model.d.ts +3 -0
- package/dist/commands/model.d.ts.map +1 -0
- package/dist/commands/model.js +11 -0
- package/dist/commands/model.js.map +1 -0
- package/dist/commands/provider.d.ts +3 -0
- package/dist/commands/provider.d.ts.map +1 -0
- package/dist/commands/provider.js +11 -0
- package/dist/commands/provider.js.map +1 -0
- package/dist/commands/theme.d.ts +3 -0
- package/dist/commands/theme.d.ts.map +1 -0
- package/dist/commands/theme.js +11 -0
- package/dist/commands/theme.js.map +1 -0
- package/dist/commands/update.d.ts +3 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +10 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands.d.ts +16 -0
- package/dist/commands.d.ts.map +1 -0
- package/dist/commands.js +46 -0
- package/dist/commands.js.map +1 -0
- package/dist/components/assistant-message.d.ts +4 -0
- package/dist/components/assistant-message.d.ts.map +1 -0
- package/dist/components/assistant-message.js +43 -0
- package/dist/components/assistant-message.js.map +1 -0
- package/dist/components/bash-execution-indicator.d.ts +4 -0
- package/dist/components/bash-execution-indicator.d.ts.map +1 -0
- package/dist/components/bash-execution-indicator.js +9 -0
- package/dist/components/bash-execution-indicator.js.map +1 -0
- package/dist/components/cancelling-indicator.d.ts +3 -0
- package/dist/components/cancelling-indicator.d.ts.map +1 -0
- package/dist/components/cancelling-indicator.js +10 -0
- package/dist/components/cancelling-indicator.js.map +1 -0
- package/dist/components/chat-queue.d.ts +4 -0
- package/dist/components/chat-queue.d.ts.map +1 -0
- package/dist/components/chat-queue.js +23 -0
- package/dist/components/chat-queue.js.map +1 -0
- package/dist/components/custom-commands.d.ts +7 -0
- package/dist/components/custom-commands.d.ts.map +1 -0
- package/dist/components/custom-commands.js +27 -0
- package/dist/components/custom-commands.js.map +1 -0
- package/dist/components/error-message.d.ts +7 -0
- package/dist/components/error-message.d.ts.map +1 -0
- package/dist/components/error-message.js +12 -0
- package/dist/components/error-message.js.map +1 -0
- package/dist/components/info-message.d.ts +6 -0
- package/dist/components/info-message.d.ts.map +1 -0
- package/dist/components/info-message.js +11 -0
- package/dist/components/info-message.js.map +1 -0
- package/dist/components/model-selector.d.ts +10 -0
- package/dist/components/model-selector.d.ts.map +1 -0
- package/dist/components/model-selector.js +59 -0
- package/dist/components/model-selector.js.map +1 -0
- package/dist/components/provider-selector.d.ts +9 -0
- package/dist/components/provider-selector.d.ts.map +1 -0
- package/dist/components/provider-selector.js +36 -0
- package/dist/components/provider-selector.js.map +1 -0
- package/dist/components/security-disclaimer.d.ts +7 -0
- package/dist/components/security-disclaimer.d.ts.map +1 -0
- package/dist/components/security-disclaimer.js +36 -0
- package/dist/components/security-disclaimer.js.map +1 -0
- package/dist/components/status.d.ts +6 -0
- package/dist/components/status.d.ts.map +1 -0
- package/dist/components/status.js +35 -0
- package/dist/components/status.js.map +1 -0
- package/dist/components/success-message.d.ts +6 -0
- package/dist/components/success-message.d.ts.map +1 -0
- package/dist/components/success-message.js +11 -0
- package/dist/components/success-message.js.map +1 -0
- package/dist/components/theme-selector.d.ts +8 -0
- package/dist/components/theme-selector.d.ts.map +1 -0
- package/dist/components/theme-selector.js +40 -0
- package/dist/components/theme-selector.js.map +1 -0
- package/dist/components/thinking-indicator.d.ts +4 -0
- package/dist/components/thinking-indicator.d.ts.map +1 -0
- package/dist/components/thinking-indicator.js +32 -0
- package/dist/components/thinking-indicator.js.map +1 -0
- package/dist/components/tool-confirmation.d.ts +9 -0
- package/dist/components/tool-confirmation.d.ts.map +1 -0
- package/dist/components/tool-confirmation.js +72 -0
- package/dist/components/tool-confirmation.js.map +1 -0
- package/dist/components/tool-execution-indicator.d.ts +3 -0
- package/dist/components/tool-execution-indicator.d.ts.map +1 -0
- package/dist/components/tool-execution-indicator.js +9 -0
- package/dist/components/tool-execution-indicator.js.map +1 -0
- package/dist/components/tool-message.d.ts +10 -0
- package/dist/components/tool-message.d.ts.map +1 -0
- package/dist/components/tool-message.js +16 -0
- package/dist/components/tool-message.js.map +1 -0
- package/dist/components/update-message.d.ts +7 -0
- package/dist/components/update-message.d.ts.map +1 -0
- package/dist/components/update-message.js +93 -0
- package/dist/components/update-message.js.map +1 -0
- package/dist/components/user-input.d.ts +10 -0
- package/dist/components/user-input.d.ts.map +1 -0
- package/dist/components/user-input.js +188 -0
- package/dist/components/user-input.js.map +1 -0
- package/dist/components/user-message.d.ts +4 -0
- package/dist/components/user-message.d.ts.map +1 -0
- package/dist/components/user-message.js +15 -0
- package/dist/components/user-message.js.map +1 -0
- package/dist/components/welcome-message.d.ts +3 -0
- package/dist/components/welcome-message.d.ts.map +1 -0
- package/dist/components/welcome-message.js +21 -0
- package/dist/components/welcome-message.js.map +1 -0
- package/dist/config/index.d.ts +10 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +44 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/logging.d.ts +14 -0
- package/dist/config/logging.d.ts.map +1 -0
- package/dist/config/logging.js +58 -0
- package/dist/config/logging.js.map +1 -0
- package/dist/config/preferences.d.ts +7 -0
- package/dist/config/preferences.d.ts.map +1 -0
- package/dist/config/preferences.js +46 -0
- package/dist/config/preferences.js.map +1 -0
- package/dist/config/themes.d.ts +6 -0
- package/dist/config/themes.d.ts.map +1 -0
- package/dist/config/themes.js +295 -0
- package/dist/config/themes.js.map +1 -0
- package/dist/custom-commands/executor.d.ts +12 -0
- package/dist/custom-commands/executor.d.ts.map +1 -0
- package/dist/custom-commands/executor.js +45 -0
- package/dist/custom-commands/executor.js.map +1 -0
- package/dist/custom-commands/index.d.ts +4 -0
- package/dist/custom-commands/index.d.ts.map +1 -0
- package/dist/custom-commands/index.js +4 -0
- package/dist/custom-commands/index.js.map +1 -0
- package/dist/custom-commands/loader.d.ts +41 -0
- package/dist/custom-commands/loader.d.ts.map +1 -0
- package/dist/custom-commands/loader.js +129 -0
- package/dist/custom-commands/loader.js.map +1 -0
- package/dist/custom-commands/parser.d.ts +10 -0
- package/dist/custom-commands/parser.d.ts.map +1 -0
- package/dist/custom-commands/parser.js +181 -0
- package/dist/custom-commands/parser.js.map +1 -0
- package/dist/hooks/useInputState.d.ts +14 -0
- package/dist/hooks/useInputState.d.ts.map +1 -0
- package/dist/hooks/useInputState.js +66 -0
- package/dist/hooks/useInputState.js.map +1 -0
- package/dist/hooks/useTerminalWidth.d.ts +2 -0
- package/dist/hooks/useTerminalWidth.d.ts.map +1 -0
- package/dist/hooks/useTerminalWidth.js +20 -0
- package/dist/hooks/useTerminalWidth.js.map +1 -0
- package/dist/hooks/useTheme.d.ts +9 -0
- package/dist/hooks/useTheme.d.ts.map +1 -0
- package/dist/hooks/useTheme.js +10 -0
- package/dist/hooks/useTheme.js.map +1 -0
- package/dist/hooks/useUIState.d.ts +19 -0
- package/dist/hooks/useUIState.d.ts.map +1 -0
- package/dist/hooks/useUIState.js +46 -0
- package/dist/hooks/useUIState.js.map +1 -0
- package/dist/init/agents-template-generator.d.ts +29 -0
- package/dist/init/agents-template-generator.d.ts.map +1 -0
- package/dist/init/agents-template-generator.js +340 -0
- package/dist/init/agents-template-generator.js.map +1 -0
- package/dist/init/existing-rules-extractor.d.ts +43 -0
- package/dist/init/existing-rules-extractor.d.ts.map +1 -0
- package/dist/init/existing-rules-extractor.js +226 -0
- package/dist/init/existing-rules-extractor.js.map +1 -0
- package/dist/init/file-scanner.d.ts +40 -0
- package/dist/init/file-scanner.d.ts.map +1 -0
- package/dist/init/file-scanner.js +153 -0
- package/dist/init/file-scanner.js.map +1 -0
- package/dist/init/framework-detector.d.ts +57 -0
- package/dist/init/framework-detector.d.ts.map +1 -0
- package/dist/init/framework-detector.js +277 -0
- package/dist/init/framework-detector.js.map +1 -0
- package/dist/init/language-detector.d.ts +31 -0
- package/dist/init/language-detector.d.ts.map +1 -0
- package/dist/init/language-detector.js +205 -0
- package/dist/init/language-detector.js.map +1 -0
- package/dist/init/project-analyzer.d.ts +62 -0
- package/dist/init/project-analyzer.d.ts.map +1 -0
- package/dist/init/project-analyzer.js +294 -0
- package/dist/init/project-analyzer.js.map +1 -0
- package/dist/langgraph-client.d.ts +20 -0
- package/dist/langgraph-client.d.ts.map +1 -0
- package/dist/langgraph-client.js +245 -0
- package/dist/langgraph-client.js.map +1 -0
- package/dist/mcp/mcp-client.d.ts +23 -0
- package/dist/mcp/mcp-client.d.ts.map +1 -0
- package/dist/mcp/mcp-client.js +194 -0
- package/dist/mcp/mcp-client.js.map +1 -0
- package/dist/mcp/mcp-tool-adapter.d.ts +22 -0
- package/dist/mcp/mcp-tool-adapter.d.ts.map +1 -0
- package/dist/mcp/mcp-tool-adapter.js +49 -0
- package/dist/mcp/mcp-tool-adapter.js.map +1 -0
- package/dist/message-handler.d.ts +7 -0
- package/dist/message-handler.d.ts.map +1 -0
- package/dist/message-handler.js +53 -0
- package/dist/message-handler.js.map +1 -0
- package/dist/prompt-history.d.ts +14 -0
- package/dist/prompt-history.d.ts.map +1 -0
- package/dist/prompt-history.js +88 -0
- package/dist/prompt-history.js.map +1 -0
- package/dist/tool-calling/index.d.ts +6 -0
- package/dist/tool-calling/index.d.ts.map +1 -0
- package/dist/tool-calling/index.js +5 -0
- package/dist/tool-calling/index.js.map +1 -0
- package/dist/tool-calling/json-parser.d.ts +7 -0
- package/dist/tool-calling/json-parser.d.ts.map +1 -0
- package/dist/tool-calling/json-parser.js +168 -0
- package/dist/tool-calling/json-parser.js.map +1 -0
- package/dist/tool-calling/xml-parser.d.ts +34 -0
- package/dist/tool-calling/xml-parser.d.ts.map +1 -0
- package/dist/tool-calling/xml-parser.js +113 -0
- package/dist/tool-calling/xml-parser.js.map +1 -0
- package/dist/tools/create-file.d.ts +3 -0
- package/dist/tools/create-file.d.ts.map +1 -0
- package/dist/tools/create-file.js +66 -0
- package/dist/tools/create-file.js.map +1 -0
- package/dist/tools/delete-lines.d.ts +3 -0
- package/dist/tools/delete-lines.d.ts.map +1 -0
- package/dist/tools/delete-lines.js +218 -0
- package/dist/tools/delete-lines.js.map +1 -0
- package/dist/tools/execute-bash.d.ts +3 -0
- package/dist/tools/execute-bash.d.ts.map +1 -0
- package/dist/tools/execute-bash.js +107 -0
- package/dist/tools/execute-bash.js.map +1 -0
- package/dist/tools/index.d.ts +7 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +23 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/insert-lines.d.ts +3 -0
- package/dist/tools/insert-lines.d.ts.map +1 -0
- package/dist/tools/insert-lines.js +185 -0
- package/dist/tools/insert-lines.js.map +1 -0
- package/dist/tools/read-file.d.ts +3 -0
- package/dist/tools/read-file.d.ts.map +1 -0
- package/dist/tools/read-file.js +81 -0
- package/dist/tools/read-file.js.map +1 -0
- package/dist/tools/read-many-files.d.ts +3 -0
- package/dist/tools/read-many-files.d.ts.map +1 -0
- package/dist/tools/read-many-files.js +109 -0
- package/dist/tools/read-many-files.js.map +1 -0
- package/dist/tools/replace-lines.d.ts +3 -0
- package/dist/tools/replace-lines.d.ts.map +1 -0
- package/dist/tools/replace-lines.js +220 -0
- package/dist/tools/replace-lines.js.map +1 -0
- package/dist/tools/tool-manager.d.ts +54 -0
- package/dist/tools/tool-manager.d.ts.map +1 -0
- package/dist/tools/tool-manager.js +108 -0
- package/dist/tools/tool-manager.js.map +1 -0
- package/dist/types/app.d.ts +46 -0
- package/dist/types/app.d.ts.map +1 -0
- package/dist/types/app.js +2 -0
- package/dist/types/app.js.map +1 -0
- package/dist/types/commands.d.ts +36 -0
- package/dist/types/commands.d.ts.map +1 -0
- package/dist/types/commands.js +2 -0
- package/dist/types/commands.js.map +1 -0
- package/dist/types/components.d.ts +87 -0
- package/dist/types/components.d.ts.map +1 -0
- package/dist/types/components.js +2 -0
- package/dist/types/components.js.map +1 -0
- package/dist/types/config.d.ts +35 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +2 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/core.d.ts +57 -0
- package/dist/types/core.d.ts.map +1 -0
- package/dist/types/core.js +2 -0
- package/dist/types/core.js.map +1 -0
- package/dist/types/hooks.d.ts +26 -0
- package/dist/types/hooks.d.ts.map +1 -0
- package/dist/types/hooks.js +2 -0
- package/dist/types/hooks.js.map +1 -0
- package/dist/types/index.d.ts +11 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +12 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/mcp.d.ts +19 -0
- package/dist/types/mcp.d.ts.map +1 -0
- package/dist/types/mcp.js +2 -0
- package/dist/types/mcp.js.map +1 -0
- package/dist/types/tools.d.ts +31 -0
- package/dist/types/tools.d.ts.map +1 -0
- package/dist/types/tools.js +2 -0
- package/dist/types/tools.js.map +1 -0
- package/dist/types/ui.d.ts +22 -0
- package/dist/types/ui.d.ts.map +1 -0
- package/dist/types/ui.js +2 -0
- package/dist/types/ui.js.map +1 -0
- package/dist/types/utils.d.ts +19 -0
- package/dist/types/utils.d.ts.map +1 -0
- package/dist/types/utils.js +2 -0
- package/dist/types/utils.js.map +1 -0
- package/dist/utils/message-queue.d.ts +8 -0
- package/dist/utils/message-queue.d.ts.map +1 -0
- package/dist/utils/message-queue.js +50 -0
- package/dist/utils/message-queue.js.map +1 -0
- package/dist/utils/programming-language-helper.d.ts +2 -0
- package/dist/utils/programming-language-helper.d.ts.map +1 -0
- package/dist/utils/programming-language-helper.js +32 -0
- package/dist/utils/programming-language-helper.js.map +1 -0
- package/dist/utils/prompt-processor.d.ts +6 -0
- package/dist/utils/prompt-processor.d.ts.map +1 -0
- package/dist/utils/prompt-processor.js +103 -0
- package/dist/utils/prompt-processor.js.map +1 -0
- package/dist/utils/update-checker.d.ts +6 -0
- package/dist/utils/update-checker.d.ts.map +1 -0
- package/dist/utils/update-checker.js +120 -0
- package/dist/utils/update-checker.js.map +1 -0
- package/package.json +97 -0
- package/source/app/prompts/main-prompt.md +107 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-factory.js","sourceRoot":"","sources":["../source/client-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ParsedCommand } from './types/index.js';
|
|
2
|
+
export declare function parseInput(input: string): ParsedCommand;
|
|
3
|
+
export declare function isCommandInput(input: string): boolean;
|
|
4
|
+
export declare function isBashCommandInput(input: string): boolean;
|
|
5
|
+
//# sourceMappingURL=command-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-parser.d.ts","sourceRoot":"","sources":["../source/command-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAiCvD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEzD"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export function parseInput(input) {
|
|
2
|
+
const trimmed = input.trim();
|
|
3
|
+
// Check for bash command (prefixed with !)
|
|
4
|
+
if (trimmed.startsWith('!')) {
|
|
5
|
+
const bashCommand = trimmed.slice(1);
|
|
6
|
+
return {
|
|
7
|
+
isCommand: false, // Not a regular command
|
|
8
|
+
isBashCommand: true,
|
|
9
|
+
bashCommand: bashCommand
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
// Check for regular command (prefixed with /)
|
|
13
|
+
if (!trimmed.startsWith('/')) {
|
|
14
|
+
return { isCommand: false };
|
|
15
|
+
}
|
|
16
|
+
const commandText = trimmed.slice(1);
|
|
17
|
+
if (!commandText) {
|
|
18
|
+
return { isCommand: true, command: '', args: [], fullCommand: '' };
|
|
19
|
+
}
|
|
20
|
+
const parts = commandText.split(/\s+/);
|
|
21
|
+
const command = parts[0];
|
|
22
|
+
const args = parts.slice(1);
|
|
23
|
+
return {
|
|
24
|
+
isCommand: true,
|
|
25
|
+
command,
|
|
26
|
+
args,
|
|
27
|
+
fullCommand: commandText
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export function isCommandInput(input) {
|
|
31
|
+
return input.trim().startsWith('/');
|
|
32
|
+
}
|
|
33
|
+
export function isBashCommandInput(input) {
|
|
34
|
+
return input.trim().startsWith('!');
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=command-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-parser.js","sourceRoot":"","sources":["../source/command-parser.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAE7B,2CAA2C;IAC3C,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrC,OAAO;YACL,SAAS,EAAE,KAAK,EAAE,wBAAwB;YAC1C,aAAa,EAAE,IAAI;YACnB,WAAW,EAAE,WAAW;SACzB,CAAC;IACJ,CAAC;IAED,8CAA8C;IAC9C,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IACrE,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE5B,OAAO;QACL,SAAS,EAAE,IAAI;QACf,OAAO;QACP,IAAI;QACJ,WAAW,EAAE,WAAW;KACzB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clear.d.ts","sourceRoot":"","sources":["../../source/commands/clear.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,mBAAmB,CAAC;AAa1C,eAAO,MAAM,YAAY,EAAE,OAS1B,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import SuccessMessage from '../components/success-message.js';
|
|
4
|
+
function Clear() {
|
|
5
|
+
return (_jsx(SuccessMessage, { hideBox: true, message: "\u2714\uFE0F Chat Cleared..." }));
|
|
6
|
+
}
|
|
7
|
+
export const clearCommand = {
|
|
8
|
+
name: 'clear',
|
|
9
|
+
description: 'Clear the chat history and model context',
|
|
10
|
+
handler: async (_args) => {
|
|
11
|
+
// Return info message saying chat was cleared
|
|
12
|
+
return React.createElement(Clear, {
|
|
13
|
+
key: `clear-${Date.now()}`,
|
|
14
|
+
});
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=clear.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clear.js","sourceRoot":"","sources":["../../source/commands/clear.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,cAAc,MAAM,kCAAkC,CAAC;AAE9D,SAAS,KAAK;IACb,OAAO,CACN,KAAC,cAAc,IACd,OAAO,EAAE,IAAI,EACb,OAAO,EAAC,8BAAoB,GACX,CAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAY;IACpC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,0CAA0C;IACvD,OAAO,EAAE,KAAK,EAAE,KAAe,EAAE,EAAE;QAClC,8CAA8C;QAC9C,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;YACjC,GAAG,EAAE,SAAS,IAAI,CAAC,GAAG,EAAE,EAAE;SAC1B,CAAC,CAAC;IACJ,CAAC;CACD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-commands.d.ts","sourceRoot":"","sources":["../../source/commands/custom-commands.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,OAAO,EAAgB,MAAM,mBAAmB,CAAC;AA2G9D,eAAO,MAAM,eAAe,EAAE,OAc7B,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { CustomCommandLoader } from '../custom-commands/loader.js';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { TitledBox, titleStyles } from '@mishieck/ink-titled-box';
|
|
5
|
+
import { Text, Box } from 'ink';
|
|
6
|
+
import { useTheme } from '../hooks/useTheme.js';
|
|
7
|
+
function formatCommand(cmd) {
|
|
8
|
+
const parts = [`/${cmd.fullName}`];
|
|
9
|
+
if (cmd.metadata.parameters && cmd.metadata.parameters.length > 0) {
|
|
10
|
+
parts.push(cmd.metadata.parameters.map((p) => `<${p}>`).join(' '));
|
|
11
|
+
}
|
|
12
|
+
if (cmd.metadata.description) {
|
|
13
|
+
parts.push(`- ${cmd.metadata.description}`);
|
|
14
|
+
}
|
|
15
|
+
if (cmd.metadata.aliases && cmd.metadata.aliases.length > 0) {
|
|
16
|
+
const aliasNames = cmd.metadata.aliases.map((a) => cmd.namespace ? `${cmd.namespace}:${a}` : a);
|
|
17
|
+
parts.push(`(aliases: ${aliasNames.join(', ')})`);
|
|
18
|
+
}
|
|
19
|
+
return parts.join(' ');
|
|
20
|
+
}
|
|
21
|
+
function CustomCommands({ commands }) {
|
|
22
|
+
const { colors } = useTheme();
|
|
23
|
+
// Sort commands alphabetically by full name
|
|
24
|
+
const sortedCommands = [...commands].sort((a, b) => a.fullName.localeCompare(b.fullName));
|
|
25
|
+
return (_jsx(TitledBox, { borderStyle: "round", titles: ['Custom Commands'], titleStyles: titleStyles.pill, width: 75, borderColor: colors.primary, paddingX: 2, paddingY: 1, flexDirection: "column", marginBottom: 1, children: commands.length === 0 ? (_jsxs(_Fragment, { children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: colors.white, bold: true, children: "No custom commands found" }) }), _jsx(Text, { color: colors.white, children: "To create custom commands:" }), _jsxs(Text, { color: colors.secondary, children: ["1. Create a ", _jsx(Text, { color: colors.primary, children: ".nanocoder/commands" }), ' ', "directory in your project"] }), _jsxs(Text, { color: colors.secondary, children: ["2. Add ", _jsx(Text, { color: colors.primary, children: ".md" }), " files with command prompts"] }), _jsx(Text, { color: colors.secondary, children: "3. Optionally add frontmatter for metadata:" }), _jsx(Box, { marginTop: 1, marginBottom: 1, children: _jsxs(Text, { color: colors.secondary, children: [`---\n`, `description: Generate unit tests\n`, `aliases: [test, unittest]\n`, `parameters: [filename]\n`, `---\n`, `Generate comprehensive unit tests for {{filename}}...`] }) })] })) : (_jsxs(_Fragment, { children: [_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { color: colors.white, children: ["Found ", commands.length, " custom command", commands.length !== 1 ? 's' : '', ":"] }) }), sortedCommands.map((cmd, index) => (_jsxs(Text, { color: colors.white, children: ["\u2022 ", formatCommand(cmd)] }, index)))] })) }, colors.primary));
|
|
26
|
+
}
|
|
27
|
+
export const commandsCommand = {
|
|
28
|
+
name: 'custom-commands',
|
|
29
|
+
description: 'List all custom commands from .nanocoder/commands',
|
|
30
|
+
handler: async (_args) => {
|
|
31
|
+
// Create a custom command loader to get the commands
|
|
32
|
+
const loader = new CustomCommandLoader();
|
|
33
|
+
await loader.loadCommands();
|
|
34
|
+
const commands = loader.getAllCommands() || [];
|
|
35
|
+
return React.createElement(CustomCommands, {
|
|
36
|
+
key: `custom-commands-${Date.now()}`,
|
|
37
|
+
commands: commands,
|
|
38
|
+
});
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=custom-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-commands.js","sourceRoot":"","sources":["../../source/commands/custom-commands.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../source/commands/debug.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,OAAO,EAAW,MAAM,mBAAmB,CAAC;AAsIzD,eAAO,MAAM,YAAY,EAAE,OAiE1B,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { getLogLevel, setLogLevel } from '../config/logging.js';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { TitledBox, titleStyles } from '@mishieck/ink-titled-box';
|
|
5
|
+
import { Box, Text } from 'ink';
|
|
6
|
+
import { useTerminalWidth } from '../hooks/useTerminalWidth.js';
|
|
7
|
+
import { useTheme } from '../hooks/useTheme.js';
|
|
8
|
+
import { getColors } from '../config/index.js';
|
|
9
|
+
function getLogLevelDescription(level) {
|
|
10
|
+
const colors = getColors();
|
|
11
|
+
switch (level) {
|
|
12
|
+
case 'silent':
|
|
13
|
+
return (_jsxs(_Fragment, { children: ["Silent mode:", ' ', _jsx(Text, { color: colors.white, children: "Only showing errors and essential messages" }), "."] }));
|
|
14
|
+
case 'normal':
|
|
15
|
+
return (_jsxs(_Fragment, { children: ["Normal mode:", ' ', _jsx(Text, { color: colors.white, children: "Showing standard output without debug info" }), "."] }));
|
|
16
|
+
case 'verbose':
|
|
17
|
+
return (_jsxs(_Fragment, { children: ["Verbose mode:", ' ', _jsx(Text, { color: colors.white, children: "Showing all debug and diagnostic information" }), "."] }));
|
|
18
|
+
default:
|
|
19
|
+
return _jsx(_Fragment, {});
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function Debug({ currentLevel, newLevel, action, invalidArg }) {
|
|
23
|
+
const boxWidth = useTerminalWidth();
|
|
24
|
+
const { colors } = useTheme();
|
|
25
|
+
return (_jsx(TitledBox, { borderStyle: "round", titles: ['/debug'], titleStyles: titleStyles.pill, width: boxWidth, borderColor: colors.info, paddingX: 2, paddingY: 1, flexDirection: "column", marginBottom: 1, children: action === 'changed' && newLevel ? (_jsxs(_Fragment, { children: [_jsxs(Text, { color: colors.info, children: ["Logging level changed from", ' ', _jsx(Text, { color: colors.white, children: currentLevel }), " to", ' ', _jsx(Text, { color: colors.white, children: newLevel }), "."] }), _jsx(Box, { children: _jsx(Text, { color: colors.info, children: getLogLevelDescription(newLevel) }) })] })) : action === 'set' && newLevel ? (_jsxs(_Fragment, { children: [_jsxs(Text, { color: colors.info, children: ["Logging level set to ", _jsx(Text, { color: colors.white, children: newLevel }), "."] }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: colors.info, children: getLogLevelDescription(newLevel) }) })] })) : (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { color: colors.error, children: ["Invalid log level: ", invalidArg] }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsxs(Text, { color: colors.info, children: ["Current logging level:", ' ', _jsx(Text, { color: colors.white, children: currentLevel })] }), _jsx(Text, { color: colors.info, children: getLogLevelDescription(currentLevel) })] }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Text, { color: colors.info, children: "Available levels:" }), _jsxs(Text, { color: colors.secondary, children: [' ', "\u2022 ", _jsx(Text, { color: colors.white, children: "silent" }), " - Minimal output (errors only)"] }), _jsxs(Text, { color: colors.secondary, children: [' ', "\u2022 ", _jsx(Text, { color: colors.white, children: "normal" }), " - Standard output (default)"] }), _jsxs(Text, { color: colors.secondary, children: [' ', "\u2022 ", _jsx(Text, { color: colors.white, children: "verbose" }), " - Debug output (all logs)"] })] }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: colors.info, children: ["Usage:", ' ', _jsx(Text, { color: colors.white, children: "/debug [silent|normal|verbose]" }), ' ', "or just ", _jsx(Text, { color: colors.white, children: "/debug" }), " to cycle"] }) })] })) }, colors.primary));
|
|
26
|
+
}
|
|
27
|
+
export const debugCommand = {
|
|
28
|
+
name: 'debug',
|
|
29
|
+
description: 'Toggle debug/verbose logging output',
|
|
30
|
+
handler: async (args, _messages, _metadata) => {
|
|
31
|
+
const currentLevel = getLogLevel();
|
|
32
|
+
// If no argument provided, cycle through levels
|
|
33
|
+
if (args.length === 0) {
|
|
34
|
+
let newLevel;
|
|
35
|
+
switch (currentLevel) {
|
|
36
|
+
case 'silent':
|
|
37
|
+
newLevel = 'normal';
|
|
38
|
+
break;
|
|
39
|
+
case 'normal':
|
|
40
|
+
newLevel = 'verbose';
|
|
41
|
+
break;
|
|
42
|
+
case 'verbose':
|
|
43
|
+
newLevel = 'silent';
|
|
44
|
+
break;
|
|
45
|
+
default:
|
|
46
|
+
newLevel = 'normal';
|
|
47
|
+
}
|
|
48
|
+
setLogLevel(newLevel);
|
|
49
|
+
return React.createElement(Debug, {
|
|
50
|
+
key: `debug-changed-${Date.now()}`,
|
|
51
|
+
currentLevel: currentLevel,
|
|
52
|
+
newLevel: newLevel,
|
|
53
|
+
action: 'changed',
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
// If argument provided, set specific level
|
|
57
|
+
const requestedLevel = args[0]?.toLowerCase();
|
|
58
|
+
if (requestedLevel === 'silent' ||
|
|
59
|
+
requestedLevel === 'normal' ||
|
|
60
|
+
requestedLevel === 'verbose') {
|
|
61
|
+
setLogLevel(requestedLevel);
|
|
62
|
+
return React.createElement(Debug, {
|
|
63
|
+
key: `debug-set-${Date.now()}`,
|
|
64
|
+
currentLevel: currentLevel,
|
|
65
|
+
newLevel: requestedLevel,
|
|
66
|
+
action: 'set',
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
// Invalid argument provided
|
|
70
|
+
if (args[0]) {
|
|
71
|
+
return React.createElement(Debug, {
|
|
72
|
+
key: `debug-invalid-${Date.now()}`,
|
|
73
|
+
currentLevel: currentLevel,
|
|
74
|
+
action: 'invalid',
|
|
75
|
+
invalidArg: args[0],
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
// Show current level and available options
|
|
79
|
+
return React.createElement(Debug, {
|
|
80
|
+
key: `debug-show-${Date.now()}`,
|
|
81
|
+
currentLevel: currentLevel,
|
|
82
|
+
action: 'show',
|
|
83
|
+
});
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
//# sourceMappingURL=debug.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../source/commands/debug.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exit.d.ts","sourceRoot":"","sources":["../../source/commands/exit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,mBAAmB,CAAC;AAI1C,eAAO,MAAM,WAAW,EAAE,OAczB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import InfoMessage from '../components/info-message.js';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export const exitCommand = {
|
|
4
|
+
name: 'exit',
|
|
5
|
+
description: 'Exit the application',
|
|
6
|
+
handler: async (_args, _messages, _metadata) => {
|
|
7
|
+
// Return InfoMessage component first, then exit after a short delay
|
|
8
|
+
setTimeout(() => {
|
|
9
|
+
process.exit(0);
|
|
10
|
+
}, 500); // 500ms delay to allow message to render
|
|
11
|
+
return React.createElement(InfoMessage, {
|
|
12
|
+
message: 'Goodbye! 👋',
|
|
13
|
+
hideTitle: true,
|
|
14
|
+
});
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=exit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exit.js","sourceRoot":"","sources":["../../source/commands/exit.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,+BAA+B,CAAC;AACxD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,MAAM,WAAW,GAAY;IACnC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,sBAAsB;IACnC,OAAO,EAAE,KAAK,EAAE,KAAe,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE;QACxD,oEAAoE;QACpE,UAAU,CAAC,GAAG,EAAE;YACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,yCAAyC;QAElD,OAAO,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE;YACvC,OAAO,EAAE,aAAa;YACtB,SAAS,EAAE,IAAI;SACf,CAAC,CAAC;IACJ,CAAC;CACD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../source/commands/export.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAU,MAAM,mBAAmB,CAAC;AA6CnD,eAAO,MAAM,aAAa,EAAE,OAiC3B,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import SuccessMessage from '../components/success-message.js';
|
|
4
|
+
import fs from 'fs/promises';
|
|
5
|
+
import path from 'path';
|
|
6
|
+
const formatMessageContent = (message) => {
|
|
7
|
+
let content = '';
|
|
8
|
+
switch (message.role) {
|
|
9
|
+
case 'user':
|
|
10
|
+
content += `## User\n${message.content}`;
|
|
11
|
+
break;
|
|
12
|
+
case 'assistant':
|
|
13
|
+
content += `## Assistant\n${message.content || ''}`;
|
|
14
|
+
if (message.tool_calls) {
|
|
15
|
+
content += `\n\n[tool_use: ${message.tool_calls
|
|
16
|
+
.map(tc => tc.function.name)
|
|
17
|
+
.join(', ')}]`;
|
|
18
|
+
}
|
|
19
|
+
break;
|
|
20
|
+
case 'tool':
|
|
21
|
+
content +=
|
|
22
|
+
`## Tool Output: ${message.name}\n` +
|
|
23
|
+
'```\n' +
|
|
24
|
+
`${message.content}\n` +
|
|
25
|
+
'```\n';
|
|
26
|
+
break;
|
|
27
|
+
case 'system':
|
|
28
|
+
// For now, we don't include system messages in the export
|
|
29
|
+
return '';
|
|
30
|
+
default:
|
|
31
|
+
return '';
|
|
32
|
+
}
|
|
33
|
+
return content + '\n\n';
|
|
34
|
+
};
|
|
35
|
+
function Export({ filename }) {
|
|
36
|
+
return (_jsx(SuccessMessage, { hideBox: true, message: `✔️ Chat exported to ${filename}` }));
|
|
37
|
+
}
|
|
38
|
+
export const exportCommand = {
|
|
39
|
+
name: 'export',
|
|
40
|
+
description: 'Export the chat history to a markdown file',
|
|
41
|
+
handler: async (args, messages, { provider, model, tokens }) => {
|
|
42
|
+
const filename = args[0] ||
|
|
43
|
+
`nanocoder-chat-${new Date().toISOString().replace(/:/g, '-')}.md`;
|
|
44
|
+
const filepath = path.resolve(process.cwd(), filename);
|
|
45
|
+
const frontmatter = `---
|
|
46
|
+
session_date: ${new Date().toISOString()}
|
|
47
|
+
provider: ${provider}
|
|
48
|
+
model: ${model}
|
|
49
|
+
total_tokens: ${tokens}
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
# Nanocoder Chat Export
|
|
53
|
+
|
|
54
|
+
`;
|
|
55
|
+
const markdownContent = messages.map(formatMessageContent).join('');
|
|
56
|
+
await fs.writeFile(filepath, frontmatter + markdownContent);
|
|
57
|
+
return React.createElement(Export, {
|
|
58
|
+
key: `export-${Date.now()}`,
|
|
59
|
+
filename,
|
|
60
|
+
});
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=export.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../source/commands/export.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,cAAc,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,oBAAoB,GAAG,CAAC,OAAgB,EAAE,EAAE;IACjD,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,MAAM;YACV,OAAO,IAAI,YAAY,OAAO,CAAC,OAAO,EAAE,CAAC;YACzC,MAAM;QACP,KAAK,WAAW;YACf,OAAO,IAAI,iBAAiB,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;YACpD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACxB,OAAO,IAAI,kBAAkB,OAAO,CAAC,UAAU;qBAC7C,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;qBAC3B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YACjB,CAAC;YACD,MAAM;QACP,KAAK,MAAM;YACV,OAAO;gBACN,mBAAmB,OAAO,CAAC,IAAI,IAAI;oBACnC,OAAO;oBACP,GAAG,OAAO,CAAC,OAAO,IAAI;oBACtB,OAAO,CAAC;YACT,MAAM;QACP,KAAK,QAAQ;YACZ,0DAA0D;YAC1D,OAAO,EAAE,CAAC;QACX;YACC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,OAAO,GAAG,MAAM,CAAC;AACzB,CAAC,CAAC;AAEF,SAAS,MAAM,CAAC,EAAC,QAAQ,EAAqB;IAC7C,OAAO,CACN,KAAC,cAAc,IACd,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,uBAAuB,QAAQ,EAAE,GACzB,CAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAY;IACrC,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,4CAA4C;IACzD,OAAO,EAAE,KAAK,EACb,IAAc,EACd,QAAmB,EACnB,EAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAC,EACxB,EAAE;QACH,MAAM,QAAQ,GACb,IAAI,CAAC,CAAC,CAAC;YACP,kBAAkB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC;QACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;QAEvD,MAAM,WAAW,GAAG;gBACN,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC5B,QAAQ;SACX,KAAK;gBACE,MAAM;;;;;CAKrB,CAAC;QAEA,MAAM,eAAe,GAAG,QAAQ,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEpE,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,WAAW,GAAG,eAAe,CAAC,CAAC;QAE5D,OAAO,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;YAClC,GAAG,EAAE,UAAU,IAAI,CAAC,GAAG,EAAE,EAAE;YAC3B,QAAQ;SACR,CAAC,CAAC;IACJ,CAAC;CACD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../source/commands/help.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,mBAAmB,CAAC;AA2F1C,eAAO,MAAM,WAAW,EAAE,OAYzB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { commandRegistry } from '../commands.js';
|
|
3
|
+
import fs from 'fs';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import { fileURLToPath } from 'url';
|
|
6
|
+
import React from 'react';
|
|
7
|
+
import { TitledBox, titleStyles } from '@mishieck/ink-titled-box';
|
|
8
|
+
import { Box, Text } from 'ink';
|
|
9
|
+
import { useTerminalWidth } from '../hooks/useTerminalWidth.js';
|
|
10
|
+
import { useTheme } from '../hooks/useTheme.js';
|
|
11
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
12
|
+
const __dirname = path.dirname(__filename);
|
|
13
|
+
const packageJson = JSON.parse(fs.readFileSync(path.join(__dirname, '../../package.json'), 'utf8'));
|
|
14
|
+
function Help({ version, commands, }) {
|
|
15
|
+
const boxWidth = useTerminalWidth();
|
|
16
|
+
const { colors } = useTheme();
|
|
17
|
+
return (_jsxs(TitledBox, { borderStyle: "round", titles: ['/help'], titleStyles: titleStyles.pill, width: boxWidth, borderColor: colors.primary, paddingX: 2, paddingY: 1, flexDirection: "column", marginBottom: 1, children: [_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { color: colors.primary, bold: true, children: ["Nanocoder \u2013 ", version] }) }), _jsx(Text, { color: colors.white, children: "A local-first CLI coding agent that brings the power of agentic coding tools like Claude Code and Gemini CLI to local models or controlled APIs like OpenRouter." }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: colors.secondary, children: "Always review model responses, especially when running code. Models have read access to files in the current directory and can run commands and edit files with your permission." }) }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: colors.primary, bold: true, children: "Common Tasks:" }) }), _jsxs(Text, { color: colors.white, children: [' ', "\u2022 Ask questions about your codebase ", '>', " How does foo.py work?"] }), _jsxs(Text, { color: colors.white, children: [" \u2022 Edit files ", '>', " Update bar.ts to..."] }), _jsxs(Text, { color: colors.white, children: [" \u2022 Fix errors ", '>', " cargo build"] }), _jsxs(Text, { color: colors.white, children: [" \u2022 Run commands ", '>', " /help"] }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: colors.primary, bold: true, children: "Commands:" }) }), commands.length === 0 ? (_jsx(Text, { color: colors.white, children: " No commands available." })) : (commands.map((cmd, index) => (_jsxs(Text, { color: colors.white, children: [' ', "\u2022 /", cmd.name, " - ", cmd.description] }, index))))] }, colors.primary));
|
|
18
|
+
}
|
|
19
|
+
export const helpCommand = {
|
|
20
|
+
name: 'help',
|
|
21
|
+
description: 'Show available commands',
|
|
22
|
+
handler: async (_args, _messages, _metadata) => {
|
|
23
|
+
const commands = commandRegistry.getAll();
|
|
24
|
+
return React.createElement(Help, {
|
|
25
|
+
key: `help-${Date.now()}`,
|
|
26
|
+
version: packageJson.version,
|
|
27
|
+
commands: commands,
|
|
28
|
+
});
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=help.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../source/commands/help.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export * from './exit.js';
|
|
2
|
+
export * from './help.js';
|
|
3
|
+
export * from './clear.js';
|
|
4
|
+
export * from './model.js';
|
|
5
|
+
export * from './provider.js';
|
|
6
|
+
export * from './mcp.js';
|
|
7
|
+
export * from './debug.js';
|
|
8
|
+
export * from './custom-commands.js';
|
|
9
|
+
export * from './init.js';
|
|
10
|
+
export * from './theme.js';
|
|
11
|
+
export * from './export.js';
|
|
12
|
+
export * from './update.js';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export * from './exit.js';
|
|
2
|
+
export * from './help.js';
|
|
3
|
+
export * from './clear.js';
|
|
4
|
+
export * from './model.js';
|
|
5
|
+
export * from './provider.js';
|
|
6
|
+
export * from './mcp.js';
|
|
7
|
+
export * from './debug.js';
|
|
8
|
+
export * from './custom-commands.js';
|
|
9
|
+
export * from './init.js';
|
|
10
|
+
export * from './theme.js';
|
|
11
|
+
export * from './export.js';
|
|
12
|
+
export * from './update.js';
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../source/commands/init.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,mBAAmB,CAAC;AAmN1C,eAAO,MAAM,WAAW,EAAE,OA2GzB,CAAC"}
|