grok-cli-hurry-mode 1.0.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.
Files changed (137) hide show
  1. package/.grok/settings.json +3 -0
  2. package/LICENSE +21 -0
  3. package/README.md +452 -0
  4. package/dist/agent/grok-agent.d.ts +54 -0
  5. package/dist/agent/grok-agent.js +674 -0
  6. package/dist/agent/grok-agent.js.map +1 -0
  7. package/dist/agent/index.d.ts +14 -0
  8. package/dist/agent/index.js +137 -0
  9. package/dist/agent/index.js.map +1 -0
  10. package/dist/commands/mcp.d.ts +2 -0
  11. package/dist/commands/mcp.js +245 -0
  12. package/dist/commands/mcp.js.map +1 -0
  13. package/dist/grok/client.d.ts +49 -0
  14. package/dist/grok/client.js +85 -0
  15. package/dist/grok/client.js.map +1 -0
  16. package/dist/grok/tools.d.ts +8 -0
  17. package/dist/grok/tools.js +357 -0
  18. package/dist/grok/tools.js.map +1 -0
  19. package/dist/hooks/use-enhanced-input.d.ts +37 -0
  20. package/dist/hooks/use-enhanced-input.js +217 -0
  21. package/dist/hooks/use-enhanced-input.js.map +1 -0
  22. package/dist/hooks/use-input-handler.d.ts +34 -0
  23. package/dist/hooks/use-input-handler.js +611 -0
  24. package/dist/hooks/use-input-handler.js.map +1 -0
  25. package/dist/hooks/use-input-history.d.ts +9 -0
  26. package/dist/hooks/use-input-history.js +64 -0
  27. package/dist/hooks/use-input-history.js.map +1 -0
  28. package/dist/index.d.ts +2 -0
  29. package/dist/index.js +151949 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/mcp/client.d.ts +29 -0
  32. package/dist/mcp/client.js +167 -0
  33. package/dist/mcp/client.js.map +1 -0
  34. package/dist/mcp/config.d.ts +13 -0
  35. package/dist/mcp/config.js +51 -0
  36. package/dist/mcp/config.js.map +1 -0
  37. package/dist/mcp/transports.d.ts +51 -0
  38. package/dist/mcp/transports.js +229 -0
  39. package/dist/mcp/transports.js.map +1 -0
  40. package/dist/node_modules/react/index.js +1841 -0
  41. package/dist/tools/bash.d.ts +10 -0
  42. package/dist/tools/bash.js +81 -0
  43. package/dist/tools/bash.js.map +1 -0
  44. package/dist/tools/confirmation-tool.d.ts +16 -0
  45. package/dist/tools/confirmation-tool.js +75 -0
  46. package/dist/tools/confirmation-tool.js.map +1 -0
  47. package/dist/tools/index.d.ts +6 -0
  48. package/dist/tools/index.js +16 -0
  49. package/dist/tools/index.js.map +1 -0
  50. package/dist/tools/morph-editor.d.ts +36 -0
  51. package/dist/tools/morph-editor.js +347 -0
  52. package/dist/tools/morph-editor.js.map +1 -0
  53. package/dist/tools/search.d.ts +69 -0
  54. package/dist/tools/search.js +341 -0
  55. package/dist/tools/search.js.map +1 -0
  56. package/dist/tools/text-editor.d.ts +16 -0
  57. package/dist/tools/text-editor.js +565 -0
  58. package/dist/tools/text-editor.js.map +1 -0
  59. package/dist/tools/todo-tool.d.ts +20 -0
  60. package/dist/tools/todo-tool.js +135 -0
  61. package/dist/tools/todo-tool.js.map +1 -0
  62. package/dist/types/index.d.ts +30 -0
  63. package/dist/types/index.js +3 -0
  64. package/dist/types/index.js.map +1 -0
  65. package/dist/ui/app.d.ts +7 -0
  66. package/dist/ui/app.js +160 -0
  67. package/dist/ui/app.js.map +1 -0
  68. package/dist/ui/components/api-key-input.d.ts +7 -0
  69. package/dist/ui/components/api-key-input.js +124 -0
  70. package/dist/ui/components/api-key-input.js.map +1 -0
  71. package/dist/ui/components/chat-history.d.ts +8 -0
  72. package/dist/ui/components/chat-history.js +177 -0
  73. package/dist/ui/components/chat-history.js.map +1 -0
  74. package/dist/ui/components/chat-input.d.ts +9 -0
  75. package/dist/ui/components/chat-input.js +87 -0
  76. package/dist/ui/components/chat-input.js.map +1 -0
  77. package/dist/ui/components/chat-interface.d.ts +8 -0
  78. package/dist/ui/components/chat-interface.js +344 -0
  79. package/dist/ui/components/chat-interface.js.map +1 -0
  80. package/dist/ui/components/command-suggestions.d.ts +17 -0
  81. package/dist/ui/components/command-suggestions.js +68 -0
  82. package/dist/ui/components/command-suggestions.js.map +1 -0
  83. package/dist/ui/components/confirmation-dialog.d.ts +11 -0
  84. package/dist/ui/components/confirmation-dialog.js +167 -0
  85. package/dist/ui/components/confirmation-dialog.js.map +1 -0
  86. package/dist/ui/components/diff-renderer.d.ts +13 -0
  87. package/dist/ui/components/diff-renderer.js +217 -0
  88. package/dist/ui/components/diff-renderer.js.map +1 -0
  89. package/dist/ui/components/loading-spinner.d.ts +8 -0
  90. package/dist/ui/components/loading-spinner.js +92 -0
  91. package/dist/ui/components/loading-spinner.js.map +1 -0
  92. package/dist/ui/components/mcp-status.d.ts +5 -0
  93. package/dist/ui/components/mcp-status.js +74 -0
  94. package/dist/ui/components/mcp-status.js.map +1 -0
  95. package/dist/ui/components/model-selection.d.ts +12 -0
  96. package/dist/ui/components/model-selection.js +28 -0
  97. package/dist/ui/components/model-selection.js.map +1 -0
  98. package/dist/ui/shared/max-sized-box.d.ts +8 -0
  99. package/dist/ui/shared/max-sized-box.js +15 -0
  100. package/dist/ui/shared/max-sized-box.js.map +1 -0
  101. package/dist/ui/utils/code-colorizer.d.ts +2 -0
  102. package/dist/ui/utils/code-colorizer.js +18 -0
  103. package/dist/ui/utils/code-colorizer.js.map +1 -0
  104. package/dist/ui/utils/colors.d.ts +14 -0
  105. package/dist/ui/utils/colors.js +18 -0
  106. package/dist/ui/utils/colors.js.map +1 -0
  107. package/dist/ui/utils/markdown-renderer.d.ts +4 -0
  108. package/dist/ui/utils/markdown-renderer.js +29 -0
  109. package/dist/ui/utils/markdown-renderer.js.map +1 -0
  110. package/dist/utils/confirmation-service.d.ts +33 -0
  111. package/dist/utils/confirmation-service.js +113 -0
  112. package/dist/utils/confirmation-service.js.map +1 -0
  113. package/dist/utils/custom-instructions.d.ts +1 -0
  114. package/dist/utils/custom-instructions.js +53 -0
  115. package/dist/utils/custom-instructions.js.map +1 -0
  116. package/dist/utils/model-config.d.ts +28 -0
  117. package/dist/utils/model-config.js +49 -0
  118. package/dist/utils/model-config.js.map +1 -0
  119. package/dist/utils/settings-manager.d.ts +94 -0
  120. package/dist/utils/settings-manager.js +275 -0
  121. package/dist/utils/settings-manager.js.map +1 -0
  122. package/dist/utils/settings.d.ts +1 -0
  123. package/dist/utils/settings.js +8 -0
  124. package/dist/utils/settings.js.map +1 -0
  125. package/dist/utils/text-utils.d.ts +80 -0
  126. package/dist/utils/text-utils.js +197 -0
  127. package/dist/utils/text-utils.js.map +1 -0
  128. package/dist/utils/token-counter.d.ts +33 -0
  129. package/dist/utils/token-counter.js +83 -0
  130. package/dist/utils/token-counter.js.map +1 -0
  131. package/dist/yoga.wasm +0 -0
  132. package/eslint.config.mjs +28 -0
  133. package/fix.awk +41 -0
  134. package/grok-logo-screenshot.png +0 -0
  135. package/package.json +68 -0
  136. package/sed_cmd.sh +35 -0
  137. package/temp.txt +29 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loading-spinner.js","sourceRoot":"","sources":["../../../src/ui/components/loading-spinner.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,wCAgDC;AA3ED,+CAAmD;AACnD,6BAAgC;AAChC,mEAAgE;AAQhE,MAAM,YAAY,GAAG;IACnB,aAAa;IACb,cAAc;IACd,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,eAAe;IACf,iBAAiB;IACjB,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;IAClB,cAAc;IACd,gBAAgB;CACjB,CAAC;AAEF,SAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,cAAc,EACd,UAAU,GACU;IACpB,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAC;IACpD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAC;IAE5D,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAC5C,4EAA4E;QAC5E,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,eAAe,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QAC/D,CAAC,EAAE,GAAG,CAAC,CAAC;QAER,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAErE,+DAA+D;QAC/D,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QACvE,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAE5C,OAAO,CACL,CAAC,SAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAChB;MAAA,CAAC,UAAI,CAAC,KAAK,CAAC,MAAM,CAChB;QAAA,CAAC,aAAa,CAAC,YAAY,CAAC,CAAE,CAAA,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CACpE;MAAA,EAAE,UAAI,CACN;MAAA,CAAC,UAAI,CAAC,KAAK,CAAC,MAAM,CAChB;SAAC,CAAC,cAAc,CAAC,MAAM,CAAC,IAAA,mCAAgB,EAAC,UAAU,CAAC,CAAE;;MAExD,EAAE,UAAI,CACR;IAAA,EAAE,SAAG,CAAC,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ interface MCPStatusProps {
3
+ }
4
+ export declare function MCPStatus({}: MCPStatusProps): React.JSX.Element | null;
5
+ export {};
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.MCPStatus = MCPStatus;
37
+ const react_1 = __importStar(require("react"));
38
+ const ink_1 = require("ink");
39
+ const tools_js_1 = require("../../grok/tools.js");
40
+ function MCPStatus({}) {
41
+ const [connectedServers, setConnectedServers] = (0, react_1.useState)([]);
42
+ const [availableTools, setAvailableTools] = (0, react_1.useState)([]);
43
+ (0, react_1.useEffect)(() => {
44
+ const updateStatus = () => {
45
+ try {
46
+ const manager = (0, tools_js_1.getMCPManager)();
47
+ const servers = manager.getServers();
48
+ const tools = manager.getTools();
49
+ setConnectedServers(servers);
50
+ setAvailableTools(tools);
51
+ }
52
+ catch (error) {
53
+ // MCP manager not initialized yet
54
+ setConnectedServers([]);
55
+ setAvailableTools([]);
56
+ }
57
+ };
58
+ // Initial update with a small delay to allow MCP initialization
59
+ const initialTimer = setTimeout(updateStatus, 2000);
60
+ // Set up polling to check for status changes
61
+ const interval = setInterval(updateStatus, 2000);
62
+ return () => {
63
+ clearTimeout(initialTimer);
64
+ clearInterval(interval);
65
+ };
66
+ }, []);
67
+ if (connectedServers.length === 0) {
68
+ return null;
69
+ }
70
+ return (<ink_1.Box marginLeft={1}>
71
+ <ink_1.Text color="green">⚒ mcps: {connectedServers.length} </ink_1.Text>
72
+ </ink_1.Box>);
73
+ }
74
+ //# sourceMappingURL=mcp-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-status.js","sourceRoot":"","sources":["../../../src/ui/components/mcp-status.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,8BAyCC;AAhDD,+CAAmD;AACnD,6BAAgC;AAChC,kDAAoD;AAKpD,SAAgB,SAAS,CAAC,EAAkB;IAC1C,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,IAAA,gBAAQ,EAAW,EAAE,CAAC,CAAC;IACvE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,IAAA,gBAAQ,EAAY,EAAE,CAAC,CAAC;IAEpE,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,YAAY,GAAG,GAAG,EAAE;YACxB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,IAAA,wBAAa,GAAE,CAAC;gBAChC,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;gBACrC,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAEjC,mBAAmB,CAAC,OAAO,CAAC,CAAC;gBAC7B,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,kCAAkC;gBAClC,mBAAmB,CAAC,EAAE,CAAC,CAAC;gBACxB,iBAAiB,CAAC,EAAE,CAAC,CAAC;YACxB,CAAC;QACH,CAAC,CAAC;QAEF,gEAAgE;QAChE,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAEpD,6CAA6C;QAC7C,MAAM,QAAQ,GAAG,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAEjD,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,YAAY,CAAC,CAAC;YAC3B,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,CAAC,SAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CACjB;MAAA,CAAC,UAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAE,CAAA,EAAE,UAAI,CAC9D;IAAA,EAAE,SAAG,CAAC,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import React from "react";
2
+ interface ModelOption {
3
+ model: string;
4
+ }
5
+ interface ModelSelectionProps {
6
+ models: ModelOption[];
7
+ selectedIndex: number;
8
+ isVisible: boolean;
9
+ currentModel: string;
10
+ }
11
+ export declare function ModelSelection({ models, selectedIndex, isVisible, currentModel, }: ModelSelectionProps): React.JSX.Element | null;
12
+ export {};
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ModelSelection = ModelSelection;
7
+ const react_1 = __importDefault(require("react"));
8
+ const ink_1 = require("ink");
9
+ function ModelSelection({ models, selectedIndex, isVisible, currentModel, }) {
10
+ if (!isVisible)
11
+ return null;
12
+ return (<ink_1.Box marginTop={1} flexDirection="column">
13
+ <ink_1.Box marginBottom={1}>
14
+ <ink_1.Text color="cyan">Select Grok Model (current: {currentModel}):</ink_1.Text>
15
+ </ink_1.Box>
16
+ {models.map((modelOption, index) => (<ink_1.Box key={index} paddingLeft={1}>
17
+ <ink_1.Text color={index === selectedIndex ? "black" : "white"} backgroundColor={index === selectedIndex ? "cyan" : undefined}>
18
+ {modelOption.model}
19
+ </ink_1.Text>
20
+ </ink_1.Box>))}
21
+ <ink_1.Box marginTop={1}>
22
+ <ink_1.Text color="gray" dimColor>
23
+ ↑↓ navigate • Enter/Tab select • Esc cancel
24
+ </ink_1.Text>
25
+ </ink_1.Box>
26
+ </ink_1.Box>);
27
+ }
28
+ //# sourceMappingURL=model-selection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-selection.js","sourceRoot":"","sources":["../../../src/ui/components/model-selection.tsx"],"names":[],"mappings":";;;;;AAcA,wCA8BC;AA5CD,kDAA0B;AAC1B,6BAAgC;AAahC,SAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,aAAa,EACb,SAAS,EACT,YAAY,GACQ;IACpB,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,OAAO,CACL,CAAC,SAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CACvC;MAAA,CAAC,SAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CACnB;QAAA,CAAC,UAAI,CAAC,KAAK,CAAC,MAAM,CAAC,4BAA4B,CAAC,YAAY,CAAC,EAAE,EAAE,UAAI,CACvE;MAAA,EAAE,SAAG,CACL;MAAA,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,CAClC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAC9B;UAAA,CAAC,UAAI,CACH,KAAK,CAAC,CAAC,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CACnD,eAAe,CAAC,CAAC,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAE9D;YAAA,CAAC,WAAW,CAAC,KAAK,CACpB;UAAA,EAAE,UAAI,CACR;QAAA,EAAE,SAAG,CAAC,CACP,CAAC,CACF;MAAA,CAAC,SAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAChB;QAAA,CAAC,UAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CACzB;;QACF,EAAE,UAAI,CACR;MAAA,EAAE,SAAG,CACP;IAAA,EAAE,SAAG,CAAC,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ interface MaxSizedBoxProps {
3
+ maxHeight?: number;
4
+ maxWidth?: number;
5
+ children: React.ReactNode;
6
+ }
7
+ export declare const MaxSizedBox: React.FC<MaxSizedBoxProps>;
8
+ export {};
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MaxSizedBox = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const ink_1 = require("ink");
9
+ const MaxSizedBox = ({ maxHeight, maxWidth, children, ...props }) => {
10
+ return (<ink_1.Box flexDirection="column" {...props}>
11
+ {children}
12
+ </ink_1.Box>);
13
+ };
14
+ exports.MaxSizedBox = MaxSizedBox;
15
+ //# sourceMappingURL=max-sized-box.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"max-sized-box.js","sourceRoot":"","sources":["../../../src/ui/shared/max-sized-box.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,6BAA0B;AAQnB,MAAM,WAAW,GAA+B,CAAC,EACtD,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,EAAE;IACH,OAAO,CACL,CAAC,SAAG,CACF,aAAa,CAAC,QAAQ,CACtB,IAAI,KAAK,CAAC,CAEV;MAAA,CAAC,QAAQ,CACX;IAAA,EAAE,SAAG,CAAC,CACP,CAAC;AACJ,CAAC,CAAC;AAdW,QAAA,WAAW,eActB"}
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const colorizeCode: (content: string, language: string | null, availableTerminalHeight?: number, terminalWidth?: number) => React.ReactNode;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.colorizeCode = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const ink_1 = require("ink");
9
+ const colorizeCode = (content, language, availableTerminalHeight, terminalWidth) => {
10
+ // Simple plain text rendering - could be enhanced with syntax highlighting later
11
+ return (<ink_1.Box flexDirection="column">
12
+ {content.split('\n').map((line, index) => (<ink_1.Text key={index} wrap="wrap">
13
+ {line}
14
+ </ink_1.Text>))}
15
+ </ink_1.Box>);
16
+ };
17
+ exports.colorizeCode = colorizeCode;
18
+ //# sourceMappingURL=code-colorizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-colorizer.js","sourceRoot":"","sources":["../../../src/ui/utils/code-colorizer.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,6BAAgC;AAEzB,MAAM,YAAY,GAAG,CAC1B,OAAe,EACf,QAAuB,EACvB,uBAAgC,EAChC,aAAsB,EACL,EAAE;IACnB,iFAAiF;IACjF,OAAO,CACL,CAAC,SAAG,CAAC,aAAa,CAAC,QAAQ,CACzB;MAAA,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CACxC,CAAC,UAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAC3B;UAAA,CAAC,IAAI,CACP;QAAA,EAAE,UAAI,CAAC,CACR,CAAC,CACJ;IAAA,EAAE,SAAG,CAAC,CACP,CAAC;AACJ,CAAC,CAAC;AAhBW,QAAA,YAAY,gBAgBvB"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Color constants for the CLI interface
3
+ */
4
+ export declare const Colors: {
5
+ readonly AccentYellow: "yellow";
6
+ readonly Gray: "gray";
7
+ readonly Red: "red";
8
+ readonly Green: "green";
9
+ readonly Blue: "blue";
10
+ readonly Cyan: "cyan";
11
+ readonly Magenta: "magenta";
12
+ readonly White: "white";
13
+ readonly Black: "black";
14
+ };
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Colors = void 0;
4
+ /**
5
+ * Color constants for the CLI interface
6
+ */
7
+ exports.Colors = {
8
+ AccentYellow: 'yellow',
9
+ Gray: 'gray',
10
+ Red: 'red',
11
+ Green: 'green',
12
+ Blue: 'blue',
13
+ Cyan: 'cyan',
14
+ Magenta: 'magenta',
15
+ White: 'white',
16
+ Black: 'black'
17
+ };
18
+ //# sourceMappingURL=colors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors.js","sourceRoot":"","sources":["../../../src/ui/utils/colors.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,MAAM,GAAG;IACpB,YAAY,EAAE,QAAQ;IACtB,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;CACN,CAAC"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ export declare function MarkdownRenderer({ content }: {
3
+ content: string;
4
+ }): React.JSX.Element;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MarkdownRenderer = MarkdownRenderer;
7
+ const react_1 = __importDefault(require("react"));
8
+ const ink_1 = require("ink");
9
+ const marked_1 = require("marked");
10
+ const marked_terminal_1 = __importDefault(require("marked-terminal"));
11
+ // Configure marked to use the terminal renderer with default settings
12
+ marked_1.marked.setOptions({
13
+ renderer: new marked_terminal_1.default()
14
+ });
15
+ function MarkdownRenderer({ content }) {
16
+ try {
17
+ // Use marked.parse for synchronous parsing
18
+ const result = marked_1.marked.parse(content);
19
+ // Handle both sync and async results
20
+ const rendered = typeof result === 'string' ? result : content;
21
+ return <ink_1.Text>{rendered}</ink_1.Text>;
22
+ }
23
+ catch (error) {
24
+ // Fallback to plain text if markdown parsing fails
25
+ console.error('Markdown rendering error:', error);
26
+ return <ink_1.Text>{content}</ink_1.Text>;
27
+ }
28
+ }
29
+ //# sourceMappingURL=markdown-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-renderer.js","sourceRoot":"","sources":["../../../src/ui/utils/markdown-renderer.tsx"],"names":[],"mappings":";;;;;AAUA,4CAYC;AAtBD,kDAA0B;AAC1B,6BAA2B;AAC3B,mCAAgC;AAChC,sEAA+C;AAE/C,sEAAsE;AACtE,eAAM,CAAC,UAAU,CAAC;IAChB,QAAQ,EAAE,IAAK,yBAAwB,EAAE;CAC1C,CAAC,CAAC;AAEH,SAAgB,gBAAgB,CAAC,EAAE,OAAO,EAAuB;IAC/D,IAAI,CAAC;QACH,2CAA2C;QAC3C,MAAM,MAAM,GAAG,eAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrC,qCAAqC;QACrC,MAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QAC/D,OAAO,CAAC,UAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,UAAI,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,mDAAmD;QACnD,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;QAClD,OAAO,CAAC,UAAI,CAAC,CAAC,OAAO,CAAC,EAAE,UAAI,CAAC,CAAC;IAChC,CAAC;AACH,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { EventEmitter } from "events";
2
+ export interface ConfirmationOptions {
3
+ operation: string;
4
+ filename: string;
5
+ showVSCodeOpen?: boolean;
6
+ content?: string;
7
+ }
8
+ export interface ConfirmationResult {
9
+ confirmed: boolean;
10
+ dontAskAgain?: boolean;
11
+ feedback?: string;
12
+ }
13
+ export declare class ConfirmationService extends EventEmitter {
14
+ private static instance;
15
+ private skipConfirmationThisSession;
16
+ private pendingConfirmation;
17
+ private resolveConfirmation;
18
+ private sessionFlags;
19
+ static getInstance(): ConfirmationService;
20
+ constructor();
21
+ requestConfirmation(options: ConfirmationOptions, operationType?: "file" | "bash"): Promise<ConfirmationResult>;
22
+ confirmOperation(confirmed: boolean, dontAskAgain?: boolean): void;
23
+ rejectOperation(feedback?: string): void;
24
+ private openInVSCode;
25
+ isPending(): boolean;
26
+ resetSession(): void;
27
+ getSessionFlags(): {
28
+ fileOperations: boolean;
29
+ bashCommands: boolean;
30
+ allOperations: boolean;
31
+ };
32
+ setSessionFlag(flagType: "fileOperations" | "bashCommands" | "allOperations", value: boolean): void;
33
+ }
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConfirmationService = void 0;
4
+ const child_process_1 = require("child_process");
5
+ const util_1 = require("util");
6
+ const events_1 = require("events");
7
+ const execAsync = (0, util_1.promisify)(child_process_1.exec);
8
+ class ConfirmationService extends events_1.EventEmitter {
9
+ static getInstance() {
10
+ if (!ConfirmationService.instance) {
11
+ ConfirmationService.instance = new ConfirmationService();
12
+ }
13
+ return ConfirmationService.instance;
14
+ }
15
+ constructor() {
16
+ super();
17
+ this.skipConfirmationThisSession = false;
18
+ this.pendingConfirmation = null;
19
+ this.resolveConfirmation = null;
20
+ // Session flags for different operation types
21
+ this.sessionFlags = {
22
+ fileOperations: false,
23
+ bashCommands: false,
24
+ allOperations: false,
25
+ };
26
+ }
27
+ async requestConfirmation(options, operationType = "file") {
28
+ // Check session flags
29
+ if (this.sessionFlags.allOperations ||
30
+ (operationType === "file" && this.sessionFlags.fileOperations) ||
31
+ (operationType === "bash" && this.sessionFlags.bashCommands)) {
32
+ return { confirmed: true };
33
+ }
34
+ // If VS Code should be opened, try to open it
35
+ if (options.showVSCodeOpen) {
36
+ try {
37
+ await this.openInVSCode(options.filename);
38
+ }
39
+ catch (error) {
40
+ // If VS Code opening fails, continue without it
41
+ options.showVSCodeOpen = false;
42
+ }
43
+ }
44
+ // Create a promise that will be resolved by the UI component
45
+ this.pendingConfirmation = new Promise((resolve) => {
46
+ this.resolveConfirmation = resolve;
47
+ });
48
+ // Emit custom event that the UI can listen to (using setImmediate to ensure the UI updates)
49
+ setImmediate(() => {
50
+ this.emit("confirmation-requested", options);
51
+ });
52
+ const result = await this.pendingConfirmation;
53
+ if (result.dontAskAgain) {
54
+ // Set the appropriate session flag based on operation type
55
+ if (operationType === "file") {
56
+ this.sessionFlags.fileOperations = true;
57
+ }
58
+ else if (operationType === "bash") {
59
+ this.sessionFlags.bashCommands = true;
60
+ }
61
+ // Could also set allOperations for global skip
62
+ }
63
+ return result;
64
+ }
65
+ confirmOperation(confirmed, dontAskAgain) {
66
+ if (this.resolveConfirmation) {
67
+ this.resolveConfirmation({ confirmed, dontAskAgain });
68
+ this.resolveConfirmation = null;
69
+ this.pendingConfirmation = null;
70
+ }
71
+ }
72
+ rejectOperation(feedback) {
73
+ if (this.resolveConfirmation) {
74
+ this.resolveConfirmation({ confirmed: false, feedback });
75
+ this.resolveConfirmation = null;
76
+ this.pendingConfirmation = null;
77
+ }
78
+ }
79
+ async openInVSCode(filename) {
80
+ // Try different VS Code commands
81
+ const commands = ["code", "code-insiders", "codium"];
82
+ for (const cmd of commands) {
83
+ try {
84
+ await execAsync(`which ${cmd}`);
85
+ await execAsync(`${cmd} "${filename}"`);
86
+ return;
87
+ }
88
+ catch (error) {
89
+ // Continue to next command
90
+ continue;
91
+ }
92
+ }
93
+ throw new Error("VS Code not found");
94
+ }
95
+ isPending() {
96
+ return this.pendingConfirmation !== null;
97
+ }
98
+ resetSession() {
99
+ this.sessionFlags = {
100
+ fileOperations: false,
101
+ bashCommands: false,
102
+ allOperations: false,
103
+ };
104
+ }
105
+ getSessionFlags() {
106
+ return { ...this.sessionFlags };
107
+ }
108
+ setSessionFlag(flagType, value) {
109
+ this.sessionFlags[flagType] = value;
110
+ }
111
+ }
112
+ exports.ConfirmationService = ConfirmationService;
113
+ //# sourceMappingURL=confirmation-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirmation-service.js","sourceRoot":"","sources":["../../src/utils/confirmation-service.ts"],"names":[],"mappings":";;;AAAA,iDAAqC;AACrC,+BAAiC;AACjC,mCAAsC;AAEtC,MAAM,SAAS,GAAG,IAAA,gBAAS,EAAC,oBAAI,CAAC,CAAC;AAelC,MAAa,mBAAoB,SAAQ,qBAAY;IAcnD,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC;YAClC,mBAAmB,CAAC,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC3D,CAAC;QACD,OAAO,mBAAmB,CAAC,QAAQ,CAAC;IACtC,CAAC;IAED;QACE,KAAK,EAAE,CAAC;QApBF,gCAA2B,GAAG,KAAK,CAAC;QACpC,wBAAmB,GAAuC,IAAI,CAAC;QAC/D,wBAAmB,GACzB,IAAI,CAAC;QAEP,8CAA8C;QACtC,iBAAY,GAAG;YACrB,cAAc,EAAE,KAAK;YACrB,YAAY,EAAE,KAAK;YACnB,aAAa,EAAE,KAAK;SACrB,CAAC;IAWF,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,OAA4B,EAC5B,gBAAiC,MAAM;QAEvC,sBAAsB;QACtB,IACE,IAAI,CAAC,YAAY,CAAC,aAAa;YAC/B,CAAC,aAAa,KAAK,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;YAC9D,CAAC,aAAa,KAAK,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAC5D,CAAC;YACD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAC7B,CAAC;QAED,8CAA8C;QAC9C,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC5C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,gDAAgD;gBAChD,OAAO,CAAC,cAAc,GAAG,KAAK,CAAC;YACjC,CAAC;QACH,CAAC;QAED,6DAA6D;QAC7D,IAAI,CAAC,mBAAmB,GAAG,IAAI,OAAO,CAAqB,CAAC,OAAO,EAAE,EAAE;YACrE,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,4FAA4F;QAC5F,YAAY,CAAC,GAAG,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC;QAE9C,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,2DAA2D;YAC3D,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;gBAC7B,IAAI,CAAC,YAAY,CAAC,cAAc,GAAG,IAAI,CAAC;YAC1C,CAAC;iBAAM,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;gBACpC,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC;YACxC,CAAC;YACD,+CAA+C;QACjD,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,gBAAgB,CAAC,SAAkB,EAAE,YAAsB;QACzD,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,IAAI,CAAC,mBAAmB,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAChC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAClC,CAAC;IACH,CAAC;IAED,eAAe,CAAC,QAAiB;QAC/B,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,IAAI,CAAC,mBAAmB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YACzD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAChC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAClC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,QAAgB;QACzC,iCAAiC;QACjC,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;QAErD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;gBAChC,MAAM,SAAS,CAAC,GAAG,GAAG,KAAK,QAAQ,GAAG,CAAC,CAAC;gBACxC,OAAO;YACT,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,2BAA2B;gBAC3B,SAAS;YACX,CAAC;QACH,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,mBAAmB,KAAK,IAAI,CAAC;IAC3C,CAAC;IAED,YAAY;QACV,IAAI,CAAC,YAAY,GAAG;YAClB,cAAc,EAAE,KAAK;YACrB,YAAY,EAAE,KAAK;YACnB,aAAa,EAAE,KAAK;SACrB,CAAC;IACJ,CAAC;IAED,eAAe;QACb,OAAO,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IAClC,CAAC;IAED,cAAc,CACZ,QAA6D,EAC7D,KAAc;QAEd,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;IACtC,CAAC;CACF;AAjID,kDAiIC"}
@@ -0,0 +1 @@
1
+ export declare function loadCustomInstructions(workingDirectory?: string): string | null;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.loadCustomInstructions = loadCustomInstructions;
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
39
+ function loadCustomInstructions(workingDirectory = process.cwd()) {
40
+ try {
41
+ const instructionsPath = path.join(workingDirectory, '.grok', 'GROK.md');
42
+ if (!fs.existsSync(instructionsPath)) {
43
+ return null;
44
+ }
45
+ const customInstructions = fs.readFileSync(instructionsPath, 'utf-8');
46
+ return customInstructions.trim();
47
+ }
48
+ catch (error) {
49
+ console.warn('Failed to load custom instructions:', error);
50
+ return null;
51
+ }
52
+ }
53
+ //# sourceMappingURL=custom-instructions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-instructions.js","sourceRoot":"","sources":["../../src/utils/custom-instructions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,wDAcC;AAjBD,uCAAyB;AACzB,2CAA6B;AAE7B,SAAgB,sBAAsB,CAAC,mBAA2B,OAAO,CAAC,GAAG,EAAE;IAC7E,IAAI,CAAC;QACH,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAEzE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,kBAAkB,GAAG,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QACtE,OAAO,kBAAkB,CAAC,IAAI,EAAE,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { UserSettings, ProjectSettings } from './settings-manager.js';
2
+ export interface ModelOption {
3
+ model: string;
4
+ }
5
+ export type ModelConfig = string;
6
+ export { UserSettings, ProjectSettings };
7
+ /**
8
+ * Get the effective current model
9
+ * Priority: project current model > user default model > system default
10
+ */
11
+ export declare function getCurrentModel(): string;
12
+ /**
13
+ * Load model configuration
14
+ * Priority: user-settings.json models > default hardcoded
15
+ */
16
+ export declare function loadModelConfig(): ModelOption[];
17
+ /**
18
+ * Get default models list
19
+ */
20
+ export declare function getDefaultModels(): string[];
21
+ /**
22
+ * Update the current model in project settings
23
+ */
24
+ export declare function updateCurrentModel(modelName: string): void;
25
+ /**
26
+ * Update the user's default model preference
27
+ */
28
+ export declare function updateDefaultModel(modelName: string): void;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCurrentModel = getCurrentModel;
4
+ exports.loadModelConfig = loadModelConfig;
5
+ exports.getDefaultModels = getDefaultModels;
6
+ exports.updateCurrentModel = updateCurrentModel;
7
+ exports.updateDefaultModel = updateDefaultModel;
8
+ const settings_manager_js_1 = require("./settings-manager.js");
9
+ /**
10
+ * Get the effective current model
11
+ * Priority: project current model > user default model > system default
12
+ */
13
+ function getCurrentModel() {
14
+ const manager = (0, settings_manager_js_1.getSettingsManager)();
15
+ return manager.getCurrentModel();
16
+ }
17
+ /**
18
+ * Load model configuration
19
+ * Priority: user-settings.json models > default hardcoded
20
+ */
21
+ function loadModelConfig() {
22
+ const manager = (0, settings_manager_js_1.getSettingsManager)();
23
+ const models = manager.getAvailableModels();
24
+ return models.map(model => ({
25
+ model: model.trim()
26
+ }));
27
+ }
28
+ /**
29
+ * Get default models list
30
+ */
31
+ function getDefaultModels() {
32
+ const manager = (0, settings_manager_js_1.getSettingsManager)();
33
+ return manager.getAvailableModels();
34
+ }
35
+ /**
36
+ * Update the current model in project settings
37
+ */
38
+ function updateCurrentModel(modelName) {
39
+ const manager = (0, settings_manager_js_1.getSettingsManager)();
40
+ manager.setCurrentModel(modelName);
41
+ }
42
+ /**
43
+ * Update the user's default model preference
44
+ */
45
+ function updateDefaultModel(modelName) {
46
+ const manager = (0, settings_manager_js_1.getSettingsManager)();
47
+ manager.updateUserSetting('defaultModel', modelName);
48
+ }
49
+ //# sourceMappingURL=model-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-config.js","sourceRoot":"","sources":["../../src/utils/model-config.ts"],"names":[],"mappings":";;AAeA,0CAGC;AAMD,0CAOC;AAKD,4CAGC;AAKD,gDAGC;AAKD,gDAGC;AAvDD,+DAA0F;AAW1F;;;GAGG;AACH,SAAgB,eAAe;IAC7B,MAAM,OAAO,GAAG,IAAA,wCAAkB,GAAE,CAAC;IACrC,OAAO,OAAO,CAAC,eAAe,EAAE,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,SAAgB,eAAe;IAC7B,MAAM,OAAO,GAAG,IAAA,wCAAkB,GAAE,CAAC;IACrC,MAAM,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAE5C,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1B,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;KACpB,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB;IAC9B,MAAM,OAAO,GAAG,IAAA,wCAAkB,GAAE,CAAC;IACrC,OAAO,OAAO,CAAC,kBAAkB,EAAE,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,SAAiB;IAClD,MAAM,OAAO,GAAG,IAAA,wCAAkB,GAAE,CAAC;IACrC,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,SAAiB;IAClD,MAAM,OAAO,GAAG,IAAA,wCAAkB,GAAE,CAAC;IACrC,OAAO,CAAC,iBAAiB,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;AACvD,CAAC"}