@nanocollective/nanocoder 1.11.3 → 1.12.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 +53 -11
- package/dist/app/hooks/useAppInitialization.d.ts +3 -3
- package/dist/app/hooks/useAppInitialization.d.ts.map +1 -1
- package/dist/app/hooks/useAppInitialization.js +2 -1
- package/dist/app/hooks/useAppInitialization.js.map +1 -1
- package/dist/app/hooks/useAppState.d.ts +5 -3
- package/dist/app/hooks/useAppState.d.ts.map +1 -1
- package/dist/app/hooks/useAppState.js +7 -2
- package/dist/app/hooks/useAppState.js.map +1 -1
- package/dist/app/hooks/useChatHandler.d.ts.map +1 -1
- package/dist/app/hooks/useChatHandler.js +131 -5
- package/dist/app/hooks/useChatHandler.js.map +1 -1
- package/dist/app/hooks/useDirectoryTrust.d.ts.map +1 -1
- package/dist/app/hooks/useDirectoryTrust.js.map +1 -1
- package/dist/app/hooks/useModeHandlers.d.ts +8 -5
- package/dist/app/hooks/useModeHandlers.d.ts.map +1 -1
- package/dist/app/hooks/useModeHandlers.js +12 -2
- package/dist/app/hooks/useModeHandlers.js.map +1 -1
- package/dist/app/hooks/useToolHandler.d.ts +2 -2
- package/dist/app/hooks/useToolHandler.d.ts.map +1 -1
- package/dist/app/hooks/useToolHandler.js +66 -0
- package/dist/app/hooks/useToolHandler.js.map +1 -1
- package/dist/app/utils/appUtils.d.ts.map +1 -1
- package/dist/app/utils/appUtils.js +5 -1
- package/dist/app/utils/appUtils.js.map +1 -1
- package/dist/app/utils/conversationState.d.ts.map +1 -1
- package/dist/app/utils/conversationState.js +35 -13
- package/dist/app/utils/conversationState.js.map +1 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +4 -1
- package/dist/app.js.map +1 -1
- package/dist/client-factory.d.ts +3 -3
- package/dist/client-factory.d.ts.map +1 -1
- package/dist/client-factory.js +13 -6
- package/dist/client-factory.js.map +1 -1
- package/dist/command-parser.d.ts.map +1 -1
- package/dist/command-parser.js +2 -2
- package/dist/command-parser.js.map +1 -1
- package/dist/commands/index.d.ts +1 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +1 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/recommendations.d.ts +8 -0
- package/dist/commands/recommendations.d.ts.map +1 -0
- package/dist/commands/recommendations.js +303 -0
- package/dist/commands/recommendations.js.map +1 -0
- package/dist/components/assistant-message.d.ts.map +1 -1
- package/dist/components/assistant-message.js +58 -33
- package/dist/components/assistant-message.js.map +1 -1
- package/dist/components/chat-queue.js.map +1 -1
- package/dist/components/provider-selector.d.ts +2 -3
- package/dist/components/provider-selector.d.ts.map +1 -1
- package/dist/components/provider-selector.js.map +1 -1
- package/dist/components/security-disclaimer.d.ts +1 -1
- package/dist/components/security-disclaimer.d.ts.map +1 -1
- package/dist/components/security-disclaimer.js +1 -1
- package/dist/components/security-disclaimer.js.map +1 -1
- package/dist/components/tool-confirmation.d.ts.map +1 -1
- package/dist/components/tool-confirmation.js +49 -8
- package/dist/components/tool-confirmation.js.map +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/preferences.d.ts +2 -3
- package/dist/config/preferences.d.ts.map +1 -1
- package/dist/config/preferences.js +8 -8
- package/dist/config/preferences.js.map +1 -1
- package/dist/config/themes.d.ts.map +1 -1
- package/dist/config/themes.js +1 -1
- package/dist/config/themes.js.map +1 -1
- package/dist/custom-commands/index.d.ts +3 -3
- package/dist/custom-commands/index.js +3 -3
- package/dist/custom-commands/loader.d.ts.map +1 -1
- package/dist/custom-commands/loader.js +6 -6
- package/dist/custom-commands/loader.js.map +1 -1
- package/dist/hooks/useTerminalWidth.js +1 -1
- package/dist/hooks/useTerminalWidth.js.map +1 -1
- package/dist/init/agents-template-generator.d.ts.map +1 -1
- package/dist/init/agents-template-generator.js +43 -41
- package/dist/init/agents-template-generator.js.map +1 -1
- package/dist/init/existing-rules-extractor.d.ts.map +1 -1
- package/dist/init/existing-rules-extractor.js +46 -12
- package/dist/init/existing-rules-extractor.js.map +1 -1
- package/dist/init/file-scanner.d.ts.map +1 -1
- package/dist/init/file-scanner.js +44 -16
- package/dist/init/file-scanner.js.map +1 -1
- package/dist/init/framework-detector.d.ts.map +1 -1
- package/dist/init/framework-detector.js +42 -13
- package/dist/init/framework-detector.js.map +1 -1
- package/dist/init/language-detector.d.ts.map +1 -1
- package/dist/init/language-detector.js +20 -7
- package/dist/init/language-detector.js.map +1 -1
- package/dist/init/project-analyzer.d.ts.map +1 -1
- package/dist/init/project-analyzer.js +55 -19
- package/dist/init/project-analyzer.js.map +1 -1
- package/dist/langgraph-client.d.ts +1 -0
- package/dist/langgraph-client.d.ts.map +1 -1
- package/dist/langgraph-client.js +31 -1
- package/dist/langgraph-client.js.map +1 -1
- package/dist/mcp/mcp-client.js.map +1 -1
- package/dist/mcp/mcp-tool-adapter.d.ts +1 -1
- package/dist/mcp/mcp-tool-adapter.d.ts.map +1 -1
- package/dist/mcp/mcp-tool-adapter.js.map +1 -1
- package/dist/message-handler.d.ts.map +1 -1
- package/dist/message-handler.js +2 -2
- package/dist/message-handler.js.map +1 -1
- package/dist/prompt-history.d.ts.map +1 -1
- package/dist/prompt-history.js +11 -9
- package/dist/prompt-history.js.map +1 -1
- package/dist/recommendations/model-database.d.ts +9 -0
- package/dist/recommendations/model-database.d.ts.map +1 -0
- package/dist/recommendations/model-database.js +455 -0
- package/dist/recommendations/model-database.js.map +1 -0
- package/dist/recommendations/model-engine.d.ts +16 -0
- package/dist/recommendations/model-engine.d.ts.map +1 -0
- package/dist/recommendations/model-engine.js +185 -0
- package/dist/recommendations/model-engine.js.map +1 -0
- package/dist/recommendations/recommendation-engine.d.ts +38 -0
- package/dist/recommendations/recommendation-engine.d.ts.map +1 -0
- package/dist/recommendations/recommendation-engine.js +138 -0
- package/dist/recommendations/recommendation-engine.js.map +1 -0
- package/dist/system/detector.d.ts +18 -0
- package/dist/system/detector.d.ts.map +1 -0
- package/dist/system/detector.js +140 -0
- package/dist/system/detector.js.map +1 -0
- package/dist/tool-calling/json-parser.d.ts.map +1 -1
- package/dist/tool-calling/json-parser.js +2 -1
- package/dist/tool-calling/json-parser.js.map +1 -1
- package/dist/tools/create-file.d.ts.map +1 -1
- package/dist/tools/create-file.js +62 -4
- package/dist/tools/create-file.js.map +1 -1
- package/dist/tools/delete-lines.d.ts.map +1 -1
- package/dist/tools/delete-lines.js +71 -5
- package/dist/tools/delete-lines.js.map +1 -1
- package/dist/tools/execute-bash.d.ts.map +1 -1
- package/dist/tools/execute-bash.js +29 -0
- package/dist/tools/execute-bash.js.map +1 -1
- package/dist/tools/fetch-url.d.ts +3 -0
- package/dist/tools/fetch-url.d.ts.map +1 -0
- package/dist/tools/fetch-url.js +122 -0
- package/dist/tools/fetch-url.js.map +1 -0
- package/dist/tools/index.d.ts +6 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +8 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/insert-lines.d.ts.map +1 -1
- package/dist/tools/insert-lines.js +48 -1
- package/dist/tools/insert-lines.js.map +1 -1
- package/dist/tools/read-file.d.ts.map +1 -1
- package/dist/tools/read-file.js +31 -3
- package/dist/tools/read-file.js.map +1 -1
- package/dist/tools/read-many-files.d.ts.map +1 -1
- package/dist/tools/read-many-files.js +56 -8
- package/dist/tools/read-many-files.js.map +1 -1
- package/dist/tools/replace-lines.d.ts.map +1 -1
- package/dist/tools/replace-lines.js +70 -4
- package/dist/tools/replace-lines.js.map +1 -1
- package/dist/tools/tool-manager.d.ts +10 -0
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +10 -2
- package/dist/tools/tool-manager.js.map +1 -1
- package/dist/tools/web-search.d.ts +3 -0
- package/dist/tools/web-search.d.ts.map +1 -0
- package/dist/tools/web-search.js +133 -0
- package/dist/tools/web-search.js.map +1 -0
- package/dist/types/app.d.ts +1 -0
- package/dist/types/app.d.ts.map +1 -1
- package/dist/types/commands.d.ts.map +1 -1
- package/dist/types/components.d.ts +3 -3
- package/dist/types/components.d.ts.map +1 -1
- package/dist/types/config.d.ts +17 -6
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/core.d.ts +10 -5
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/index.d.ts +11 -10
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +11 -10
- package/dist/types/index.js.map +1 -1
- package/dist/types/mcp.d.ts.map +1 -1
- package/dist/types/system.d.ts +57 -0
- package/dist/types/system.d.ts.map +1 -0
- package/dist/types/system.js +2 -0
- package/dist/types/system.js.map +1 -0
- package/dist/utils/message-queue.d.ts.map +1 -1
- package/dist/utils/message-queue.js +1 -1
- package/dist/utils/message-queue.js.map +1 -1
- package/package.json +9 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-factory.js","sourceRoot":"","sources":["../source/client-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAC,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAC,eAAe,EAAC,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAC,UAAU,EAAC,MAAM,IAAI,CAAC;AAC9B,OAAO,EAAC,IAAI,EAAC,MAAM,MAAM,CAAC;AAE1B,MAAM,CAAC,KAAK,UAAU,eAAe,CACpC,
|
|
1
|
+
{"version":3,"file":"client-factory.js","sourceRoot":"","sources":["../source/client-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-parser.d.ts","sourceRoot":"","sources":["../source/command-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"command-parser.d.ts","sourceRoot":"","sources":["../source/command-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAEpD,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"}
|
package/dist/command-parser.js
CHANGED
|
@@ -6,7 +6,7 @@ export function parseInput(input) {
|
|
|
6
6
|
return {
|
|
7
7
|
isCommand: false, // Not a regular command
|
|
8
8
|
isBashCommand: true,
|
|
9
|
-
bashCommand: bashCommand
|
|
9
|
+
bashCommand: bashCommand,
|
|
10
10
|
};
|
|
11
11
|
}
|
|
12
12
|
// Check for regular command (prefixed with /)
|
|
@@ -24,7 +24,7 @@ export function parseInput(input) {
|
|
|
24
24
|
isCommand: true,
|
|
25
25
|
command,
|
|
26
26
|
args,
|
|
27
|
-
fullCommand: commandText
|
|
27
|
+
fullCommand: commandText,
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
30
|
export function isCommandInput(input) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-parser.js","sourceRoot":"","sources":["../source/command-parser.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,UAAU,CAAC,KAAa;
|
|
1
|
+
{"version":3,"file":"command-parser.js","sourceRoot":"","sources":["../source/command-parser.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,UAAU,CAAC,KAAa;IACvC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAE7B,2CAA2C;IAC3C,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrC,OAAO;YACN,SAAS,EAAE,KAAK,EAAE,wBAAwB;YAC1C,aAAa,EAAE,IAAI;YACnB,WAAW,EAAE,WAAW;SACxB,CAAC;IACH,CAAC;IAED,8CAA8C;IAC9C,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAC,SAAS,EAAE,KAAK,EAAC,CAAC;IAC3B,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrC,IAAI,CAAC,WAAW,EAAE,CAAC;QAClB,OAAO,EAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAC,CAAC;IAClE,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;QACN,SAAS,EAAE,IAAI;QACf,OAAO;QACP,IAAI;QACJ,WAAW,EAAE,WAAW;KACxB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAa;IAC3C,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC/C,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACrC,CAAC"}
|
package/dist/commands/index.d.ts
CHANGED
|
@@ -1 +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"}
|
|
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;AAC5B,cAAc,sBAAsB,CAAC"}
|
package/dist/commands/index.js
CHANGED
|
@@ -1 +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"}
|
|
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;AAC5B,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Command } from '../types/index.js';
|
|
2
|
+
interface RecommendationsDisplayProps {
|
|
3
|
+
onCancel?: () => void;
|
|
4
|
+
}
|
|
5
|
+
declare function RecommendationsDisplay({ onCancel }: RecommendationsDisplayProps): import("react/jsx-runtime").JSX.Element | null;
|
|
6
|
+
export { RecommendationsDisplay };
|
|
7
|
+
export declare const recommendationsCommand: Command;
|
|
8
|
+
//# sourceMappingURL=recommendations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recommendations.d.ts","sourceRoot":"","sources":["../../source/commands/recommendations.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAC,OAAO,EAAqB,MAAM,mBAAmB,CAAC;AAS9D,UAAU,2BAA2B;IACpC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,iBAAS,sBAAsB,CAAC,EAAC,QAAQ,EAAC,EAAE,2BAA2B,kDA4QtE;AAoaD,OAAO,EAAC,sBAAsB,EAAC,CAAC;AAEhC,eAAO,MAAM,sBAAsB,EAAE,OAQpC,CAAC"}
|
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import React, { useState, useEffect } from 'react';
|
|
3
|
+
import { Box, Text, useInput, useFocus } from 'ink';
|
|
4
|
+
import { TitledBox, titleStyles } from '@mishieck/ink-titled-box';
|
|
5
|
+
import { Tabs, Tab } from 'ink-tab';
|
|
6
|
+
import { useTerminalWidth } from '../hooks/useTerminalWidth.js';
|
|
7
|
+
import { useTheme } from '../hooks/useTheme.js';
|
|
8
|
+
import { systemDetector } from '../system/detector.js';
|
|
9
|
+
import { recommendationEngine, } from '../recommendations/recommendation-engine.js';
|
|
10
|
+
function RecommendationsDisplay({ onCancel }) {
|
|
11
|
+
const boxWidth = useTerminalWidth();
|
|
12
|
+
const { colors } = useTheme();
|
|
13
|
+
const [systemCaps, setSystemCaps] = useState(null);
|
|
14
|
+
const [models, setModels] = useState([]);
|
|
15
|
+
const [topLocalModel, setTopLocalModel] = useState(null);
|
|
16
|
+
const [topApiModel, setTopApiModel] = useState(null);
|
|
17
|
+
const [loading, setLoading] = useState(true);
|
|
18
|
+
const [error, setError] = useState(null);
|
|
19
|
+
const [currentModelIndex, setCurrentModelIndex] = useState(0);
|
|
20
|
+
const [activeTab, setActiveTab] = useState('local');
|
|
21
|
+
const [searchQuery, setSearchQuery] = useState('');
|
|
22
|
+
const [searchMode, setSearchMode] = useState(false);
|
|
23
|
+
const [closed, setClosed] = useState(false);
|
|
24
|
+
// Capture focus to prevent user input from being active
|
|
25
|
+
useFocus({ autoFocus: true, id: 'recommendations-display' });
|
|
26
|
+
// Get current tab's models with search filtering
|
|
27
|
+
const filterBySearch = (modelList) => {
|
|
28
|
+
if (!searchMode || !searchQuery)
|
|
29
|
+
return modelList;
|
|
30
|
+
return modelList.filter(m => m.model.name.toLowerCase().includes(searchQuery.toLowerCase()));
|
|
31
|
+
};
|
|
32
|
+
// In search mode, combine all models
|
|
33
|
+
const allModelsForSearch = searchMode ? models : [];
|
|
34
|
+
const localModels = searchMode ? [] : models.filter(m => m.model.local);
|
|
35
|
+
const apiModels = searchMode ? [] : models.filter(m => m.model.api);
|
|
36
|
+
const currentTabModels = searchMode
|
|
37
|
+
? filterBySearch(allModelsForSearch)
|
|
38
|
+
: activeTab === 'local'
|
|
39
|
+
? localModels
|
|
40
|
+
: apiModels;
|
|
41
|
+
// Keyboard handler for navigation
|
|
42
|
+
useInput((input, key) => {
|
|
43
|
+
if (key.escape) {
|
|
44
|
+
if (searchMode) {
|
|
45
|
+
// Exit search mode and clear search
|
|
46
|
+
setSearchMode(false);
|
|
47
|
+
setSearchQuery('');
|
|
48
|
+
setCurrentModelIndex(0);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
// Close the recommendations view
|
|
52
|
+
setClosed(true);
|
|
53
|
+
if (onCancel) {
|
|
54
|
+
onCancel();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else if (key.return) {
|
|
59
|
+
setClosed(true);
|
|
60
|
+
if (onCancel) {
|
|
61
|
+
onCancel();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
else if (key.upArrow) {
|
|
65
|
+
setCurrentModelIndex(prev => Math.max(0, prev - 1));
|
|
66
|
+
}
|
|
67
|
+
else if (key.downArrow) {
|
|
68
|
+
setCurrentModelIndex(prev => Math.min(currentTabModels.length - 1, prev + 1));
|
|
69
|
+
}
|
|
70
|
+
else if (key.leftArrow && !searchMode) {
|
|
71
|
+
setActiveTab('local');
|
|
72
|
+
}
|
|
73
|
+
else if (key.rightArrow && !searchMode) {
|
|
74
|
+
setActiveTab('api');
|
|
75
|
+
}
|
|
76
|
+
else if (key.backspace || key.delete) {
|
|
77
|
+
if (searchMode) {
|
|
78
|
+
setSearchQuery(prev => {
|
|
79
|
+
const newQuery = prev.slice(0, -1);
|
|
80
|
+
// Exit search mode if query becomes empty
|
|
81
|
+
if (newQuery === '') {
|
|
82
|
+
setSearchMode(false);
|
|
83
|
+
}
|
|
84
|
+
return newQuery;
|
|
85
|
+
});
|
|
86
|
+
setCurrentModelIndex(0);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
else if (input && input.length === 1 && !key.ctrl && !key.meta) {
|
|
90
|
+
// Add printable characters to search
|
|
91
|
+
if (!searchMode) {
|
|
92
|
+
setSearchMode(true);
|
|
93
|
+
}
|
|
94
|
+
setSearchQuery(prev => prev + input);
|
|
95
|
+
setCurrentModelIndex(0);
|
|
96
|
+
}
|
|
97
|
+
// Consume all other input by doing nothing
|
|
98
|
+
});
|
|
99
|
+
// Reset index when switching tabs
|
|
100
|
+
useEffect(() => {
|
|
101
|
+
setCurrentModelIndex(0);
|
|
102
|
+
}, [activeTab]);
|
|
103
|
+
useEffect(() => {
|
|
104
|
+
async function loadRecommendations() {
|
|
105
|
+
try {
|
|
106
|
+
const capabilities = await systemDetector.getSystemCapabilities();
|
|
107
|
+
setSystemCaps(capabilities);
|
|
108
|
+
const result = recommendationEngine.getRecommendations(capabilities);
|
|
109
|
+
setModels(result.allModels);
|
|
110
|
+
// Get top local model (one user can actually run)
|
|
111
|
+
const canRunLocally = (model) => {
|
|
112
|
+
return (!model.model.minMemoryGB ||
|
|
113
|
+
capabilities.memory.total >= model.model.minMemoryGB);
|
|
114
|
+
};
|
|
115
|
+
// Local model scoring: agentic is most important, then feasibility (can it run on this system)
|
|
116
|
+
const getLocalScore = (model) => {
|
|
117
|
+
const canRun = canRunLocally(model);
|
|
118
|
+
if (!canRun)
|
|
119
|
+
return 0; // Can't run = score of 0
|
|
120
|
+
return (model.model.quality.agentic * 3.0 +
|
|
121
|
+
model.model.quality.local * 1.5);
|
|
122
|
+
};
|
|
123
|
+
// API model scoring: agentic is most important, then cost (value for money)
|
|
124
|
+
const getApiScore = (model) => {
|
|
125
|
+
return (model.model.quality.agentic * 3.0 +
|
|
126
|
+
model.model.quality.cost * 1.2);
|
|
127
|
+
};
|
|
128
|
+
const localModels = result.allModels
|
|
129
|
+
.filter(m => m.model.local)
|
|
130
|
+
.sort((a, b) => getLocalScore(b) - getLocalScore(a));
|
|
131
|
+
const apiModels = result.allModels
|
|
132
|
+
.filter(m => m.model.api)
|
|
133
|
+
.sort((a, b) => getApiScore(b) - getApiScore(a));
|
|
134
|
+
setTopLocalModel(localModels[0] || null);
|
|
135
|
+
setTopApiModel(apiModels[0] || null);
|
|
136
|
+
setLoading(false);
|
|
137
|
+
}
|
|
138
|
+
catch (error_) {
|
|
139
|
+
setError(error_ instanceof Error ? error_.message : 'Failed to analyze system');
|
|
140
|
+
setLoading(false);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
void loadRecommendations();
|
|
144
|
+
}, []);
|
|
145
|
+
// Return null when closed to hide the component
|
|
146
|
+
if (closed) {
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
if (loading) {
|
|
150
|
+
return (_jsx(TitledBox, { borderStyle: "round", titles: ['/recommendations'], titleStyles: titleStyles.pill, width: boxWidth, borderColor: colors.primary, paddingX: 2, paddingY: 1, children: _jsx(Text, { color: colors.white, children: "Analyzing your system..." }) }));
|
|
151
|
+
}
|
|
152
|
+
if (error) {
|
|
153
|
+
return (_jsx(TitledBox, { borderStyle: "round", titles: ['/recommendations'], titleStyles: titleStyles.pill, width: boxWidth, borderColor: colors.error, paddingX: 2, paddingY: 1, children: _jsxs(Text, { color: colors.error, children: ["Error: ", error] }) }));
|
|
154
|
+
}
|
|
155
|
+
if (!systemCaps) {
|
|
156
|
+
return (_jsx(TitledBox, { borderStyle: "round", titles: ['/recommendations'], titleStyles: titleStyles.pill, width: boxWidth, borderColor: colors.error, paddingX: 2, paddingY: 1, children: _jsx(Text, { color: colors.error, children: "Unable to detect system capabilities" }) }));
|
|
157
|
+
}
|
|
158
|
+
return (_jsxs(TitledBox, { borderStyle: "round", titles: ['/recommendations'], titleStyles: titleStyles.pill, width: boxWidth, borderColor: colors.primary, paddingX: 2, paddingY: 1, marginBottom: 1, flexDirection: "column", children: [_jsxs(Box, { flexDirection: "row", children: [_jsx(SystemSummary, { systemCaps: systemCaps, colors: colors }), (topLocalModel || topApiModel) && (_jsx(QuickStartSection, { topLocalModel: topLocalModel, topApiModel: topApiModel, colors: colors }))] }), _jsx(ModelsTabView, { models: models, colors: colors, currentModelIndex: currentModelIndex, activeTab: activeTab, onTabChange: setActiveTab, systemCaps: systemCaps, searchMode: searchMode, searchQuery: searchQuery, currentTabModels: currentTabModels }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [searchMode && searchQuery && (_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { color: colors.primary, children: ["\uD83D\uDD0D Search: ", _jsx(Text, { bold: true, children: searchQuery })] }) })), _jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: colors.secondary, dimColor: true, children: "\uD83D\uDCA1 Add providers to agents.config.json to use these models." }) }), _jsx(Text, { color: colors.secondary, dimColor: true, children: searchMode
|
|
159
|
+
? 'Type to search | Backspace to delete | ↑/↓: Navigate | Esc: Exit search'
|
|
160
|
+
: 'Type to search | ↑/↓: Navigate | ←/→: Switch tabs | Esc: Close' })] })] }));
|
|
161
|
+
}
|
|
162
|
+
function SystemSummary({ systemCaps, colors, }) {
|
|
163
|
+
const gpuText = systemCaps.gpu.available
|
|
164
|
+
? `${systemCaps.gpu.type} GPU${systemCaps.gpu.memory ? ` (${systemCaps.gpu.memory}GB)` : ''}`
|
|
165
|
+
: 'No GPU';
|
|
166
|
+
const networkText = systemCaps.network.connected
|
|
167
|
+
? `Connected${systemCaps.network.speed ? ` (${systemCaps.network.speed})` : ''}`
|
|
168
|
+
: 'Offline';
|
|
169
|
+
return (_jsxs(Box, { flexDirection: "column", borderStyle: 'round', borderColor: colors.secondary, padding: 1, width: '50%', children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: colors.primary, bold: true, underline: true, children: "Your System:" }) }), _jsxs(Text, { children: [systemCaps.memory.total, "GB RAM, ", systemCaps.cpu.cores, " cores, ", gpuText] }), _jsxs(Text, { color: colors.white, children: ["Network: ", networkText] })] }));
|
|
170
|
+
}
|
|
171
|
+
function QuickStartSection({ topLocalModel, topApiModel, colors, }) {
|
|
172
|
+
return (_jsxs(Box, { flexDirection: "column", borderStyle: 'round', borderColor: colors.secondary, padding: 1, width: '50%', children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: colors.success, bold: true, underline: true, children: "Quick Start:" }) }), topLocalModel && (_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { color: colors.success, children: [_jsx(Text, { bold: true, children: "\uD83D\uDC49 Local: " }), topLocalModel.model.name] }) })), topApiModel && (_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { color: colors.primary, children: [_jsx(Text, { bold: true, children: "\uD83D\uDC49 API: " }), topApiModel.model.name] }) })), !topLocalModel && !topApiModel && (_jsx(Text, { color: colors.warning, children: "No models available" }))] }));
|
|
173
|
+
}
|
|
174
|
+
function ModelsTabView({ models, colors, currentModelIndex, activeTab, onTabChange, systemCaps, searchMode, searchQuery, currentTabModels, }) {
|
|
175
|
+
// Check if model can run locally on this system
|
|
176
|
+
const canRunLocally = (model) => {
|
|
177
|
+
return (!model.model.minMemoryGB ||
|
|
178
|
+
systemCaps.memory.total >= model.model.minMemoryGB);
|
|
179
|
+
};
|
|
180
|
+
// Local model scoring: agentic is most important, then feasibility
|
|
181
|
+
const getLocalScore = (model) => {
|
|
182
|
+
const canRun = canRunLocally(model);
|
|
183
|
+
if (!canRun)
|
|
184
|
+
return 0; // Can't run = score of 0
|
|
185
|
+
return (model.model.quality.agentic * 3.0 +
|
|
186
|
+
model.model.quality.local * 1.5);
|
|
187
|
+
};
|
|
188
|
+
// API model scoring: agentic is most important, then cost (value for money)
|
|
189
|
+
const getApiScore = (model) => {
|
|
190
|
+
return (model.model.quality.agentic * 3.0 +
|
|
191
|
+
model.model.quality.cost * 1.2);
|
|
192
|
+
};
|
|
193
|
+
// Separate models into local and API, then sort by appropriate score
|
|
194
|
+
const localModels = models
|
|
195
|
+
.filter(m => m.model.local)
|
|
196
|
+
.sort((a, b) => getLocalScore(b) - getLocalScore(a));
|
|
197
|
+
const apiModels = models
|
|
198
|
+
.filter(m => m.model.api)
|
|
199
|
+
.sort((a, b) => getApiScore(b) - getApiScore(a));
|
|
200
|
+
// Use passed in currentTabModels if in search mode, otherwise calculate
|
|
201
|
+
const currentModels = searchMode
|
|
202
|
+
? currentTabModels
|
|
203
|
+
: activeTab === 'local'
|
|
204
|
+
? localModels
|
|
205
|
+
: apiModels;
|
|
206
|
+
const currentModel = currentModels[currentModelIndex];
|
|
207
|
+
if (!currentModel) {
|
|
208
|
+
return (_jsxs(Box, { flexDirection: "column", borderStyle: 'round', borderColor: colors.secondary, padding: 1, children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: colors.primary, bold: true, underline: true, children: searchMode ? 'Search Mode' : 'Model Database' }) }), !searchMode && (_jsxs(Tabs, { onChange: name => onTabChange(name), defaultValue: activeTab, colors: {
|
|
209
|
+
activeTab: {
|
|
210
|
+
color: colors.success,
|
|
211
|
+
},
|
|
212
|
+
}, children: [_jsx(Tab, { name: "local", children: "Local Models" }), _jsx(Tab, { name: "api", children: "API Models" })] })), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: colors.warning, children: searchMode && searchQuery
|
|
213
|
+
? `No models found matching "${searchQuery}"`
|
|
214
|
+
: 'No models available in this category' }) })] }));
|
|
215
|
+
}
|
|
216
|
+
return (_jsxs(Box, { flexDirection: "column", borderStyle: 'round', borderColor: colors.secondary, padding: 1, children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: colors.primary, bold: true, underline: true, children: searchMode ? 'Search Mode' : 'Model Database' }) }), !searchMode && (_jsxs(Tabs, { onChange: name => onTabChange(name), defaultValue: activeTab, colors: {
|
|
217
|
+
activeTab: {
|
|
218
|
+
color: colors.success,
|
|
219
|
+
},
|
|
220
|
+
}, children: [_jsx(Tab, { name: "local", children: "Local Models" }), _jsx(Tab, { name: "api", children: "API Models" })] })), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { color: colors.secondary, dimColor: true, children: ["Model ", currentModelIndex + 1, " of ", currentModels.length] }) }), _jsx(ModelItem, { model: currentModel, colors: colors, showScore: true, localScore: getLocalScore(currentModel), apiScore: getApiScore(currentModel), isLocalTab: activeTab === 'local', systemCaps: systemCaps, searchMode: searchMode })] })] }));
|
|
221
|
+
}
|
|
222
|
+
function ModelItem({ model, colors, showScore, localScore, apiScore, isLocalTab, systemCaps, searchMode, }) {
|
|
223
|
+
// Access type from local/api flags
|
|
224
|
+
const accessTypes = [];
|
|
225
|
+
if (model.model.local)
|
|
226
|
+
accessTypes.push('Local');
|
|
227
|
+
if (model.model.api)
|
|
228
|
+
accessTypes.push('API');
|
|
229
|
+
const accessType = accessTypes.join(' + ') || 'Unknown';
|
|
230
|
+
// Check if model can run locally
|
|
231
|
+
const canRunLocally = !model.model.minMemoryGB ||
|
|
232
|
+
(systemCaps && systemCaps.memory.total >= model.model.minMemoryGB);
|
|
233
|
+
// Get score color and label based on quality (normalized to 10)
|
|
234
|
+
const getScoreInfo = (score, forLocal) => {
|
|
235
|
+
// Different max scores for local vs API
|
|
236
|
+
// Local max: 10*3 + 10*1.5 = 45
|
|
237
|
+
// API max: 10*3 + 10*1.2 = 42
|
|
238
|
+
const maxScore = forLocal ? 45 : 42;
|
|
239
|
+
const normalizedScore = (score / maxScore) * 10;
|
|
240
|
+
if (normalizedScore >= 7.5)
|
|
241
|
+
return { color: colors.success, label: 'Excellent', score: normalizedScore };
|
|
242
|
+
if (normalizedScore >= 6.5)
|
|
243
|
+
return { color: colors.primary, label: 'Good', score: normalizedScore };
|
|
244
|
+
if (normalizedScore >= 5.0)
|
|
245
|
+
return { color: colors.warning, label: 'Decent', score: normalizedScore };
|
|
246
|
+
return { color: colors.error, label: 'Poor', score: normalizedScore };
|
|
247
|
+
};
|
|
248
|
+
// In search mode with both local and API, show both scores
|
|
249
|
+
const showBothScores = searchMode && model.model.local && model.model.api;
|
|
250
|
+
const localScoreInfo = localScore !== undefined && (showBothScores || isLocalTab)
|
|
251
|
+
? getScoreInfo(localScore, true)
|
|
252
|
+
: null;
|
|
253
|
+
const apiScoreInfo = apiScore !== undefined && (showBothScores || !isLocalTab)
|
|
254
|
+
? getScoreInfo(apiScore, false)
|
|
255
|
+
: null;
|
|
256
|
+
// Generate weaknesses based on context and scores
|
|
257
|
+
const getWeaknesses = () => {
|
|
258
|
+
const weaknesses = [];
|
|
259
|
+
const activeScoreInfo = isLocalTab ? localScoreInfo : apiScoreInfo;
|
|
260
|
+
const activeScore = isLocalTab ? localScore : apiScore;
|
|
261
|
+
// Only show weaknesses if score is Poor or Decent
|
|
262
|
+
if (!activeScoreInfo || activeScoreInfo.score >= 6.5)
|
|
263
|
+
return weaknesses;
|
|
264
|
+
if (isLocalTab) {
|
|
265
|
+
// Local weaknesses
|
|
266
|
+
if (!canRunLocally) {
|
|
267
|
+
const required = model.model.minMemoryGB || 0;
|
|
268
|
+
const available = systemCaps?.memory.total || 0;
|
|
269
|
+
weaknesses.push(`Cannot run locally - requires ${required}GB RAM (you have ${available}GB)`);
|
|
270
|
+
}
|
|
271
|
+
if (model.model.quality.agentic < 5) {
|
|
272
|
+
weaknesses.push('Limited agentic coding capabilities');
|
|
273
|
+
}
|
|
274
|
+
if (model.model.quality.local < 5 && canRunLocally) {
|
|
275
|
+
weaknesses.push('Difficult to run locally - requires significant resources');
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
else {
|
|
279
|
+
// API weaknesses
|
|
280
|
+
if (model.model.quality.agentic < 5) {
|
|
281
|
+
weaknesses.push('Limited agentic coding capabilities');
|
|
282
|
+
}
|
|
283
|
+
if (model.model.quality.cost < 5) {
|
|
284
|
+
weaknesses.push('Expensive API pricing');
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
return weaknesses;
|
|
288
|
+
};
|
|
289
|
+
const weaknesses = getWeaknesses();
|
|
290
|
+
return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Box, { children: _jsx(Text, { color: colors.primary, bold: true, underline: true, children: model.model.name }) }), _jsxs(Box, { marginLeft: 2, flexDirection: "column", children: [_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsxs(Text, { color: colors.white, children: [_jsx(Text, { bold: true, children: "Author: " }), model.model.author] }), _jsxs(Text, { color: colors.white, children: [_jsx(Text, { bold: true, children: "Size: " }), model.model.size] }), _jsxs(Text, { color: colors.white, children: [_jsx(Text, { bold: true, children: "Access: " }), accessType] }), _jsxs(Text, { color: colors.white, children: [_jsx(Text, { bold: true, children: "Cost: " }), model.model.costDetails] }), showScore && showBothScores ? (_jsxs(_Fragment, { children: [localScoreInfo && (_jsxs(Text, { color: colors.white, children: [_jsx(Text, { bold: true, children: "Local Quality: " }), _jsx(Text, { color: localScoreInfo.color, bold: true, children: localScoreInfo.label }), _jsxs(Text, { dimColor: true, children: [" (", localScoreInfo.score.toFixed(1), "/10)"] })] })), apiScoreInfo && (_jsxs(Text, { color: colors.white, children: [_jsx(Text, { bold: true, children: "API Quality: " }), _jsx(Text, { color: apiScoreInfo.color, bold: true, children: apiScoreInfo.label }), _jsxs(Text, { dimColor: true, children: [" (", apiScoreInfo.score.toFixed(1), "/10)"] })] }))] })) : showScore && (localScoreInfo || apiScoreInfo) ? (_jsxs(Text, { color: colors.white, children: [_jsxs(Text, { bold: true, children: ["Quality For You ", localScoreInfo ? 'Locally' : 'via API', ":", ' '] }), _jsx(Text, { color: (localScoreInfo || apiScoreInfo).color, bold: true, children: (localScoreInfo || apiScoreInfo).label }), _jsxs(Text, { dimColor: true, children: [" (", (localScoreInfo || apiScoreInfo).score.toFixed(1), "/10)"] })] })) : null] }), _jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: colors.success, bold: true, children: "Strengths:" }), model.recommendation.split('\n').map((line, i) => (_jsx(Text, { color: colors.success, children: line }, i)))] }), weaknesses.length > 0 && (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { color: colors.error, bold: true, children: "Weaknesses:" }), weaknesses.map((line, i) => (_jsxs(Text, { color: colors.error, children: ["\u2022 ", line] }, i)))] }))] })] }));
|
|
291
|
+
}
|
|
292
|
+
// Export the display component for use in app.tsx
|
|
293
|
+
export { RecommendationsDisplay };
|
|
294
|
+
export const recommendationsCommand = {
|
|
295
|
+
name: 'recommendations',
|
|
296
|
+
description: 'Get AI model recommendations based on your system',
|
|
297
|
+
handler: async (_args, _messages, _metadata) => {
|
|
298
|
+
// This command is handled specially in app.tsx
|
|
299
|
+
// This handler exists only for registration purposes
|
|
300
|
+
return React.createElement(React.Fragment);
|
|
301
|
+
},
|
|
302
|
+
};
|
|
303
|
+
//# sourceMappingURL=recommendations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recommendations.js","sourceRoot":"","sources":["../../source/commands/recommendations.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assistant-message.d.ts","sourceRoot":"","sources":["../../source/components/assistant-message.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,mBAAmB,CAAC;;
|
|
1
|
+
{"version":3,"file":"assistant-message.d.ts","sourceRoot":"","sources":["../../source/components/assistant-message.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,mBAAmB,CAAC;;AAkE7D,wBA0BG"}
|
|
@@ -2,42 +2,67 @@ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { Text, Box } from 'ink';
|
|
3
3
|
import { memo, useMemo } from 'react';
|
|
4
4
|
import { useTheme } from '../hooks/useTheme.js';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
import chalk from 'chalk';
|
|
6
|
+
// Basic markdown parser for terminal
|
|
7
|
+
function parseMarkdown(text, themeColors) {
|
|
8
|
+
let result = text;
|
|
9
|
+
// Code blocks (```language\ncode\n```)
|
|
10
|
+
result = result.replace(/```(\w+)?\n([\s\S]*?)```/g, (_match, _lang, code) => {
|
|
11
|
+
return chalk.hex(themeColors.tool)(code.trim());
|
|
12
|
+
});
|
|
13
|
+
// Inline code (`code`)
|
|
14
|
+
result = result.replace(/`([^`]+)`/g, (_match, code) => {
|
|
15
|
+
return chalk.hex(themeColors.tool)(code);
|
|
16
|
+
});
|
|
17
|
+
// Bold (**text** or __text__)
|
|
18
|
+
result = result.replace(/\*\*([^*]+)\*\*/g, (_match, text) => {
|
|
19
|
+
return chalk.hex(themeColors.white).bold(text);
|
|
20
|
+
});
|
|
21
|
+
result = result.replace(/__([^_]+)__/g, (_match, text) => {
|
|
22
|
+
return chalk.hex(themeColors.white).bold(text);
|
|
23
|
+
});
|
|
24
|
+
// Italic (*text* or _text_)
|
|
25
|
+
result = result.replace(/\*([^*]+)\*/g, (_match, text) => {
|
|
26
|
+
return chalk.hex(themeColors.white).italic(text);
|
|
27
|
+
});
|
|
28
|
+
result = result.replace(/_([^_]+)_/g, (_match, text) => {
|
|
29
|
+
return chalk.hex(themeColors.white).italic(text);
|
|
30
|
+
});
|
|
31
|
+
// Headings (# Heading)
|
|
32
|
+
result = result.replace(/^(#{1,6})\s+(.+)$/gm, (_match, hashes, text) => {
|
|
33
|
+
return chalk.hex(themeColors.primary).bold(text);
|
|
34
|
+
});
|
|
35
|
+
// Links [text](url)
|
|
36
|
+
result = result.replace(/\[([^\]]+)\]\(([^)]+)\)/g, (_match, text, url) => {
|
|
37
|
+
return (chalk.hex(themeColors.info).underline(text) +
|
|
38
|
+
' ' +
|
|
39
|
+
chalk.hex(themeColors.secondary)(`(${url})`));
|
|
40
|
+
});
|
|
41
|
+
// Blockquotes (> text)
|
|
42
|
+
result = result.replace(/^>\s+(.+)$/gm, (_match, text) => {
|
|
43
|
+
return chalk.hex(themeColors.secondary).italic(`> ${text}`);
|
|
44
|
+
});
|
|
45
|
+
// List items (- item or * item or 1. item)
|
|
46
|
+
result = result.replace(/^[\s]*[-*]\s+(.+)$/gm, (_match, text) => {
|
|
47
|
+
return chalk.hex(themeColors.white)(`• ${text}`);
|
|
48
|
+
});
|
|
49
|
+
result = result.replace(/^[\s]*\d+\.\s+(.+)$/gm, (_match, text) => {
|
|
50
|
+
return chalk.hex(themeColors.white)(text);
|
|
51
|
+
});
|
|
52
|
+
return result;
|
|
53
|
+
}
|
|
8
54
|
export default memo(function AssistantMessage({ message, model, }) {
|
|
9
55
|
const { colors } = useTheme();
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
wasTruncated: false,
|
|
15
|
-
remainingChars: 0,
|
|
16
|
-
};
|
|
56
|
+
// Render markdown to terminal-formatted text with theme colors
|
|
57
|
+
const renderedMessage = useMemo(() => {
|
|
58
|
+
try {
|
|
59
|
+
return parseMarkdown(message, colors);
|
|
17
60
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
// Try to find a natural break point near the truncation point
|
|
22
|
-
const searchArea = message.slice(Math.max(0, truncateAt - 100), truncateAt + 100);
|
|
23
|
-
const lineBreak = searchArea.lastIndexOf('\n');
|
|
24
|
-
const sentenceEnd = searchArea.lastIndexOf('.');
|
|
25
|
-
const paragraphEnd = searchArea.lastIndexOf('\n\n');
|
|
26
|
-
if (paragraphEnd !== -1) {
|
|
27
|
-
cutPoint = truncateAt - 100 + paragraphEnd + 2;
|
|
61
|
+
catch {
|
|
62
|
+
// Fallback to plain text if markdown parsing fails
|
|
63
|
+
return message;
|
|
28
64
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
else if (sentenceEnd !== -1) {
|
|
33
|
-
cutPoint = truncateAt - 100 + sentenceEnd + 1;
|
|
34
|
-
}
|
|
35
|
-
return {
|
|
36
|
-
displayMessage: message.slice(0, cutPoint).trimEnd(),
|
|
37
|
-
wasTruncated: true,
|
|
38
|
-
remainingChars: message.length - cutPoint,
|
|
39
|
-
};
|
|
40
|
-
}, [message]);
|
|
41
|
-
return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Box, { children: _jsxs(Text, { color: colors.primary, bold: true, children: [model, ":"] }) }), _jsx(Text, { color: colors.white, children: displayMessage }), wasTruncated && (_jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsxs(Text, { color: colors.secondary, dimColor: true, children: ["... [", remainingChars.toLocaleString(), " more characters truncated for performance]"] }), _jsx(Text, { color: colors.info, children: "Scroll up to see the beginning or use terminal's buffer to view full response" })] }))] }));
|
|
65
|
+
}, [message, colors]);
|
|
66
|
+
return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { color: colors.primary, bold: true, children: [model, ":"] }) }), _jsx(Text, { children: renderedMessage })] }));
|
|
42
67
|
});
|
|
43
68
|
//# sourceMappingURL=assistant-message.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assistant-message.js","sourceRoot":"","sources":["../../source/components/assistant-message.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,IAAI,EAAE,GAAG,EAAC,MAAM,KAAK,CAAC;AAC9B,OAAO,EAAC,IAAI,EAAE,OAAO,EAAC,MAAM,OAAO,CAAC;AACpC,OAAO,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"assistant-message.js","sourceRoot":"","sources":["../../source/components/assistant-message.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-queue.js","sourceRoot":"","sources":["../../source/components/chat-queue.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AACxB,OAAO,EAAY,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAC,MAAM,OAAO,CAAC;AAGzD,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B,eAAe,IAAI,CAAC,SAAS,SAAS,CAAC,EACtC,gBAAgB,GAAG,EAAE,EACrB,gBAAgB,GAAG,EAAE,EACrB,YAAY,GAAG,mBAAmB,GAClB;IAChB,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;QAClC,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC;QAC5C,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,KAAK,CACpD,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,YAAY,EAAE,CAAC,CAAC,CACvC,CAAC;QAEF,MAAM,UAAU,GAAG,CAAC,GAAG,gBAAgB,EAAE,GAAG,sBAAsB,CAAC,CAAC;QACpE,OAAO,UAAU,CAAC;IACnB,CAAC,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAC;IAEvD,OAAO,CACN,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,YACzB,aAAa,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;YACvC,oEAAoE;YACpE,MAAM,GAAG,GACR,SAAS;gBACT,OAAO,SAAS,KAAK,QAAQ;gBAC7B,KAAK,IAAI,SAAS;gBAClB,SAAS,CAAC,GAAG;gBACZ,CAAC,CAAC,SAAS,CAAC,GAAG;gBACf,CAAC,CAAC,aAAa,KAAK,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"chat-queue.js","sourceRoot":"","sources":["../../source/components/chat-queue.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AACxB,OAAO,EAAY,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAC,MAAM,OAAO,CAAC;AAGzD,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B,eAAe,IAAI,CAAC,SAAS,SAAS,CAAC,EACtC,gBAAgB,GAAG,EAAE,EACrB,gBAAgB,GAAG,EAAE,EACrB,YAAY,GAAG,mBAAmB,GAClB;IAChB,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;QAClC,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC;QAC5C,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,KAAK,CACpD,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,YAAY,EAAE,CAAC,CAAC,CACvC,CAAC;QAEF,MAAM,UAAU,GAAG,CAAC,GAAG,gBAAgB,EAAE,GAAG,sBAAsB,CAAC,CAAC;QACpE,OAAO,UAAU,CAAC;IACnB,CAAC,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAC;IAEvD,OAAO,CACN,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,YACzB,aAAa,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;YACvC,oEAAoE;YACpE,MAAM,GAAG,GACR,SAAS;gBACT,OAAO,SAAS,KAAK,QAAQ;gBAC7B,KAAK,IAAI,SAAS;gBAClB,SAAS,CAAC,GAAG;gBACZ,CAAC,CAAC,SAAS,CAAC,GAAG;gBACf,CAAC,CAAC,aAAa,KAAK,EAAE,CAAC;YAEzB,OAAO,KAAC,QAAQ,cAAY,SAAS,IAAf,GAAG,CAAwB,CAAC;QACnD,CAAC,CAAC,GACG,CACN,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { ProviderType } from '../types/core.js';
|
|
2
1
|
interface ProviderSelectorProps {
|
|
3
|
-
currentProvider:
|
|
4
|
-
onProviderSelect: (provider:
|
|
2
|
+
currentProvider: string;
|
|
3
|
+
onProviderSelect: (provider: string) => void;
|
|
5
4
|
onCancel: () => void;
|
|
6
5
|
}
|
|
7
6
|
export default function ProviderSelector({ currentProvider, onProviderSelect, onCancel, }: ProviderSelectorProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-selector.d.ts","sourceRoot":"","sources":["../../source/components/provider-selector.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provider-selector.d.ts","sourceRoot":"","sources":["../../source/components/provider-selector.tsx"],"names":[],"mappings":"AAQA,UAAU,qBAAqB;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,QAAQ,EAAE,MAAM,IAAI,CAAC;CACrB;AAOD,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACxC,eAAe,EACf,gBAAgB,EAChB,QAAQ,GACR,EAAE,qBAAqB,2CAsDvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-selector.js","sourceRoot":"","sources":["../../source/components/provider-selector.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAC,MAAM,KAAK,CAAC;AACxC,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAC,SAAS,EAAE,WAAW,EAAC,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"provider-selector.js","sourceRoot":"","sources":["../../source/components/provider-selector.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAC,MAAM,KAAK,CAAC;AACxC,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAC,SAAS,EAAE,WAAW,EAAC,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAC,gBAAgB,EAAC,MAAM,8BAA8B,CAAC;AAa9D,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACxC,eAAe,EACf,gBAAgB,EAChB,QAAQ,GACe;IACvB,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,MAAM,EAAC,MAAM,EAAC,GAAG,QAAQ,EAAE,CAAC;IAE5B,MAAM,kBAAkB,GAAG,GAAqB,EAAE;QACjD,MAAM,OAAO,GAAqB,EAAE,CAAC;QAErC,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;YACzB,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;gBAC5C,OAAO,CAAC,IAAI,CAAC;oBACZ,KAAK,EAAE,GAAG,QAAQ,CAAC,IAAI,GACtB,eAAe,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EACpD,EAAE;oBACF,KAAK,EAAE,QAAQ,CAAC,IAAI;iBACpB,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAED,OAAO,OAAO,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAmB,kBAAkB,EAAE,CAAC,CAAC;IAErE,8BAA8B;IAC9B,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;QACnB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAChB,QAAQ,EAAE,CAAC;QACZ,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,CAAC,IAAoB,EAAE,EAAE;QAC7C,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEF,OAAO,CACN,KAAC,SAAS,IAET,WAAW,EAAC,OAAO,EACnB,MAAM,EAAE,CAAC,mBAAmB,CAAC,EAC7B,WAAW,EAAE,WAAW,CAAC,IAAI,EAC7B,KAAK,EAAE,QAAQ,EACf,WAAW,EAAE,MAAM,CAAC,OAAO,EAC3B,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,CAAC,EACX,YAAY,EAAE,CAAC,YAEf,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aAC1B,KAAC,WAAW,IAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,GAAI,EACzD,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YAChB,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,uCAA+B,GACvD,IACD,IAfD,MAAM,CAAC,OAAO,CAgBR,CACZ,CAAC;AACH,CAAC"}
|