@tyvm/knowhow 0.0.108-dev.126b29e → 0.0.108-dev.4a8ba55

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 (147) hide show
  1. package/package.json +2 -3
  2. package/src/agents/base/base.ts +9 -0
  3. package/src/agents/tools/index.ts +0 -1
  4. package/src/agents/tools/list.ts +0 -2
  5. package/src/chat/CliChatService.ts +7 -1
  6. package/src/chat/renderer/CompactRenderer.ts +20 -0
  7. package/src/chat/renderer/ConsoleRenderer.ts +19 -0
  8. package/src/chat/renderer/FancyRenderer.ts +19 -0
  9. package/src/chat/renderer/types.ts +11 -0
  10. package/src/cli.ts +79 -666
  11. package/src/clients/types.ts +12 -4
  12. package/src/commands/agent.ts +246 -0
  13. package/src/commands/misc.ts +169 -0
  14. package/src/commands/modules.ts +182 -0
  15. package/src/commands/services.ts +72 -0
  16. package/src/commands/workers.ts +160 -0
  17. package/src/config.ts +37 -0
  18. package/src/index.ts +1 -0
  19. package/src/plugins/plugins.ts +0 -21
  20. package/src/processors/JsonCompressor.ts +6 -6
  21. package/src/services/modules/index.ts +58 -49
  22. package/src/services/modules/types.ts +2 -0
  23. package/src/tunnel.ts +216 -0
  24. package/src/types.ts +0 -1
  25. package/src/worker.ts +65 -336
  26. package/src/workers/auth/WsMiddleware.ts +99 -0
  27. package/src/workers/auth/authMiddleware.ts +104 -0
  28. package/src/workers/auth/types.ts +14 -2
  29. package/tests/unit/modules/moduleLoading.test.ts +0 -25
  30. package/tests/unit/plugins/pluginLoading.test.ts +0 -85
  31. package/ts_build/package.json +2 -3
  32. package/ts_build/src/agents/base/base.js +10 -0
  33. package/ts_build/src/agents/base/base.js.map +1 -1
  34. package/ts_build/src/agents/tools/index.d.ts +0 -1
  35. package/ts_build/src/agents/tools/index.js +0 -1
  36. package/ts_build/src/agents/tools/index.js.map +1 -1
  37. package/ts_build/src/agents/tools/list.js +0 -2
  38. package/ts_build/src/agents/tools/list.js.map +1 -1
  39. package/ts_build/src/chat/CliChatService.js +10 -1
  40. package/ts_build/src/chat/CliChatService.js.map +1 -1
  41. package/ts_build/src/chat/renderer/CompactRenderer.d.ts +4 -0
  42. package/ts_build/src/chat/renderer/CompactRenderer.js +16 -0
  43. package/ts_build/src/chat/renderer/CompactRenderer.js.map +1 -1
  44. package/ts_build/src/chat/renderer/ConsoleRenderer.d.ts +4 -0
  45. package/ts_build/src/chat/renderer/ConsoleRenderer.js +16 -0
  46. package/ts_build/src/chat/renderer/ConsoleRenderer.js.map +1 -1
  47. package/ts_build/src/chat/renderer/FancyRenderer.d.ts +4 -0
  48. package/ts_build/src/chat/renderer/FancyRenderer.js +16 -0
  49. package/ts_build/src/chat/renderer/FancyRenderer.js.map +1 -1
  50. package/ts_build/src/chat/renderer/types.d.ts +2 -0
  51. package/ts_build/src/cli.js +40 -525
  52. package/ts_build/src/cli.js.map +1 -1
  53. package/ts_build/src/clients/types.d.ts +2 -2
  54. package/ts_build/src/commands/agent.d.ts +6 -0
  55. package/ts_build/src/commands/agent.js +229 -0
  56. package/ts_build/src/commands/agent.js.map +1 -0
  57. package/ts_build/src/commands/misc.d.ts +10 -0
  58. package/ts_build/src/commands/misc.js +195 -0
  59. package/ts_build/src/commands/misc.js.map +1 -0
  60. package/ts_build/src/commands/modules.d.ts +3 -0
  61. package/ts_build/src/commands/modules.js +160 -0
  62. package/ts_build/src/commands/modules.js.map +1 -0
  63. package/ts_build/src/commands/services.d.ts +5 -0
  64. package/ts_build/src/commands/services.js +86 -0
  65. package/ts_build/src/commands/services.js.map +1 -0
  66. package/ts_build/src/commands/workers.d.ts +6 -0
  67. package/ts_build/src/commands/workers.js +163 -0
  68. package/ts_build/src/commands/workers.js.map +1 -0
  69. package/ts_build/src/config.d.ts +1 -0
  70. package/ts_build/src/config.js +32 -0
  71. package/ts_build/src/config.js.map +1 -1
  72. package/ts_build/src/index.d.ts +1 -0
  73. package/ts_build/src/index.js +3 -1
  74. package/ts_build/src/index.js.map +1 -1
  75. package/ts_build/src/plugins/plugins.d.ts +0 -2
  76. package/ts_build/src/plugins/plugins.js +0 -11
  77. package/ts_build/src/plugins/plugins.js.map +1 -1
  78. package/ts_build/src/processors/JsonCompressor.js +4 -4
  79. package/ts_build/src/processors/JsonCompressor.js.map +1 -1
  80. package/ts_build/src/services/modules/index.d.ts +33 -0
  81. package/ts_build/src/services/modules/index.js +38 -42
  82. package/ts_build/src/services/modules/index.js.map +1 -1
  83. package/ts_build/src/services/modules/types.d.ts +2 -0
  84. package/ts_build/src/tunnel.d.ts +27 -0
  85. package/ts_build/src/tunnel.js +112 -0
  86. package/ts_build/src/tunnel.js.map +1 -0
  87. package/ts_build/src/types.d.ts +0 -1
  88. package/ts_build/src/types.js.map +1 -1
  89. package/ts_build/src/worker.d.ts +1 -4
  90. package/ts_build/src/worker.js +38 -244
  91. package/ts_build/src/worker.js.map +1 -1
  92. package/ts_build/src/workers/auth/WsMiddleware.d.ts +8 -0
  93. package/ts_build/src/workers/auth/WsMiddleware.js +65 -0
  94. package/ts_build/src/workers/auth/WsMiddleware.js.map +1 -0
  95. package/ts_build/src/workers/auth/authMiddleware.d.ts +3 -0
  96. package/ts_build/src/workers/auth/authMiddleware.js +60 -0
  97. package/ts_build/src/workers/auth/authMiddleware.js.map +1 -0
  98. package/ts_build/src/workers/auth/types.d.ts +8 -1
  99. package/ts_build/tests/unit/modules/moduleLoading.test.js +0 -19
  100. package/ts_build/tests/unit/modules/moduleLoading.test.js.map +1 -1
  101. package/ts_build/tests/unit/plugins/pluginLoading.test.js +0 -65
  102. package/ts_build/tests/unit/plugins/pluginLoading.test.js.map +1 -1
  103. package/src/agents/tools/executeScript/README.md +0 -94
  104. package/src/agents/tools/executeScript/definition.ts +0 -79
  105. package/src/agents/tools/executeScript/examples/dependency-injection-validation.ts +0 -272
  106. package/src/agents/tools/executeScript/examples/quick-test.ts +0 -74
  107. package/src/agents/tools/executeScript/examples/serialization-test.ts +0 -321
  108. package/src/agents/tools/executeScript/examples/test-runner.ts +0 -197
  109. package/src/agents/tools/executeScript/index.ts +0 -98
  110. package/src/services/script-execution/SandboxContext.ts +0 -282
  111. package/src/services/script-execution/ScriptExecutor.ts +0 -441
  112. package/src/services/script-execution/ScriptPolicy.ts +0 -194
  113. package/src/services/script-execution/ScriptTracer.ts +0 -249
  114. package/src/services/script-execution/types.ts +0 -134
  115. package/ts_build/src/agents/tools/executeScript/definition.d.ts +0 -2
  116. package/ts_build/src/agents/tools/executeScript/definition.js +0 -76
  117. package/ts_build/src/agents/tools/executeScript/definition.js.map +0 -1
  118. package/ts_build/src/agents/tools/executeScript/examples/dependency-injection-validation.d.ts +0 -18
  119. package/ts_build/src/agents/tools/executeScript/examples/dependency-injection-validation.js +0 -192
  120. package/ts_build/src/agents/tools/executeScript/examples/dependency-injection-validation.js.map +0 -1
  121. package/ts_build/src/agents/tools/executeScript/examples/quick-test.d.ts +0 -3
  122. package/ts_build/src/agents/tools/executeScript/examples/quick-test.js +0 -64
  123. package/ts_build/src/agents/tools/executeScript/examples/quick-test.js.map +0 -1
  124. package/ts_build/src/agents/tools/executeScript/examples/serialization-test.d.ts +0 -15
  125. package/ts_build/src/agents/tools/executeScript/examples/serialization-test.js +0 -266
  126. package/ts_build/src/agents/tools/executeScript/examples/serialization-test.js.map +0 -1
  127. package/ts_build/src/agents/tools/executeScript/examples/test-runner.d.ts +0 -4
  128. package/ts_build/src/agents/tools/executeScript/examples/test-runner.js +0 -208
  129. package/ts_build/src/agents/tools/executeScript/examples/test-runner.js.map +0 -1
  130. package/ts_build/src/agents/tools/executeScript/index.d.ts +0 -28
  131. package/ts_build/src/agents/tools/executeScript/index.js +0 -72
  132. package/ts_build/src/agents/tools/executeScript/index.js.map +0 -1
  133. package/ts_build/src/services/script-execution/SandboxContext.d.ts +0 -34
  134. package/ts_build/src/services/script-execution/SandboxContext.js +0 -189
  135. package/ts_build/src/services/script-execution/SandboxContext.js.map +0 -1
  136. package/ts_build/src/services/script-execution/ScriptExecutor.d.ts +0 -19
  137. package/ts_build/src/services/script-execution/ScriptExecutor.js +0 -269
  138. package/ts_build/src/services/script-execution/ScriptExecutor.js.map +0 -1
  139. package/ts_build/src/services/script-execution/ScriptPolicy.d.ts +0 -28
  140. package/ts_build/src/services/script-execution/ScriptPolicy.js +0 -115
  141. package/ts_build/src/services/script-execution/ScriptPolicy.js.map +0 -1
  142. package/ts_build/src/services/script-execution/ScriptTracer.d.ts +0 -19
  143. package/ts_build/src/services/script-execution/ScriptTracer.js +0 -186
  144. package/ts_build/src/services/script-execution/ScriptTracer.js.map +0 -1
  145. package/ts_build/src/services/script-execution/types.d.ts +0 -108
  146. package/ts_build/src/services/script-execution/types.js +0 -3
  147. package/ts_build/src/services/script-execution/types.js.map +0 -1
@@ -0,0 +1,229 @@
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.addAgentCommand = addAgentCommand;
37
+ exports.addAskCommand = addAskCommand;
38
+ exports.addSetupCommand = addSetupCommand;
39
+ exports.addSearchCommand = addSearchCommand;
40
+ exports.addSessionsCommand = addSessionsCommand;
41
+ const ai_1 = require("../ai");
42
+ const AgentModule_1 = require("../chat/modules/AgentModule");
43
+ const AskModule_1 = require("../chat/modules/AskModule");
44
+ const SearchModule_1 = require("../chat/modules/SearchModule");
45
+ const SessionsModule_1 = require("../chat/modules/SessionsModule");
46
+ const SetupModule_1 = require("../chat/modules/SetupModule");
47
+ async function readStdin() {
48
+ return new Promise((resolve) => {
49
+ let data = "";
50
+ process.stdin.setEncoding("utf8");
51
+ if (process.stdin.isTTY) {
52
+ resolve("");
53
+ return;
54
+ }
55
+ process.stdin.on("readable", () => {
56
+ const chunk = process.stdin.read();
57
+ if (chunk !== null)
58
+ data += chunk;
59
+ });
60
+ process.stdin.on("end", () => resolve(data.trim()));
61
+ });
62
+ }
63
+ function addAgentCommand(program, getChatService) {
64
+ program
65
+ .command("agent")
66
+ .description("Spin up agents directly from CLI")
67
+ .option("--provider <provider>", "AI provider (openai, anthropic, google, xai)")
68
+ .option("--model <model>", "Specific model for the provider")
69
+ .option("--agent-name <name>", "Which agent to use", "Patcher")
70
+ .option("--max-time-limit <minutes>", "Time limit for agent execution (minutes)", "30")
71
+ .option("--max-spend-limit <dollars>", "Cost limit for agent execution (dollars)", "10")
72
+ .option("--message-id <messageId>", "Knowhow message ID for task tracking")
73
+ .option("--sync-fs", "Enable filesystem-based synchronization")
74
+ .option("--task-id <taskId>", "Pre-generated task ID (used with --sync-fs for predictable agent directory path)")
75
+ .option("--prompt-file <path>", "Custom prompt template file with {text}")
76
+ .option("--input <text>", "Task input (fallback to stdin if not provided)")
77
+ .option("--resume", "Resume a previously started task using the --task-id (local FS or remote)")
78
+ .action(async (options) => {
79
+ try {
80
+ const { setupServices } = await Promise.resolve().then(() => __importStar(require("./services")));
81
+ await setupServices();
82
+ const chatService = getChatService();
83
+ const agentModule = new AgentModule_1.AgentModule();
84
+ if (options.resume) {
85
+ const threads = await agentModule.loadThreadsForTask(options.taskId, options.messageId);
86
+ const resumeInput = options.input || "Please continue from where you left off.";
87
+ await agentModule.initialize(chatService);
88
+ const { taskCompleted: resumed } = await agentModule.resumeFromMessages({
89
+ agentName: options.agentName || "Patcher",
90
+ input: resumeInput,
91
+ threads,
92
+ messageId: options.messageId,
93
+ taskId: options.taskId,
94
+ });
95
+ await resumed;
96
+ return;
97
+ }
98
+ let input = options.input;
99
+ if (!input && !options.promptFile) {
100
+ input = await readStdin();
101
+ }
102
+ input = (0, ai_1.readPromptFile)(options.promptFile, input);
103
+ if (!input) {
104
+ console.error("Error: No input provided. Use --input flag, pipe input via stdin, or provide --prompt-file.");
105
+ process.exit(1);
106
+ }
107
+ await agentModule.initialize(chatService);
108
+ const { taskCompleted } = await agentModule.setupAgent({
109
+ ...options,
110
+ input,
111
+ maxTimeLimit: parseInt(options.maxTimeLimit, 10),
112
+ maxSpendLimit: parseFloat(options.maxSpendLimit),
113
+ run: true,
114
+ });
115
+ await taskCompleted;
116
+ }
117
+ catch (error) {
118
+ console.error("Error running agent:", error);
119
+ process.exit(1);
120
+ }
121
+ });
122
+ }
123
+ function addAskCommand(program, getChatService, getConfig) {
124
+ program
125
+ .command("ask")
126
+ .description("Direct AI questioning without agent overhead")
127
+ .option("--provider <provider>", "AI provider to use")
128
+ .option("--model <model>", "Specific model")
129
+ .option("--input <text>", "Question (fallback to stdin if not provided)")
130
+ .option("--prompt-file <path>", "Custom prompt template file")
131
+ .action(async (options) => {
132
+ try {
133
+ const { setupServices } = await Promise.resolve().then(() => __importStar(require("./services")));
134
+ await setupServices();
135
+ const chatService = getChatService();
136
+ const config = getConfig();
137
+ let input = options.input;
138
+ if (!input && !options.promptFile) {
139
+ input = await readStdin();
140
+ }
141
+ input = (0, ai_1.readPromptFile)(options.promptFile, input);
142
+ if (!input) {
143
+ console.error("Error: No question provided. Use --input flag, pipe input via stdin, or provide --prompt-file.");
144
+ process.exit(1);
145
+ }
146
+ const askModule = new AskModule_1.AskModule();
147
+ await askModule.initialize(chatService);
148
+ await askModule.processAIQuery(input, {
149
+ plugins: config.plugins.enabled,
150
+ currentModel: options.model,
151
+ currentProvider: options.provider,
152
+ chatHistory: [],
153
+ });
154
+ }
155
+ catch (error) {
156
+ console.error("Error asking AI:", error);
157
+ process.exit(1);
158
+ }
159
+ });
160
+ }
161
+ function addSetupCommand(program, getChatService) {
162
+ program
163
+ .command("setup")
164
+ .description("Ask the agent to configure knowhow")
165
+ .action(async () => {
166
+ try {
167
+ const { setupServices } = await Promise.resolve().then(() => __importStar(require("./services")));
168
+ await setupServices();
169
+ const chatService = getChatService();
170
+ const agentModule = new AgentModule_1.AgentModule();
171
+ await agentModule.initialize(chatService);
172
+ const setupModule = new SetupModule_1.SetupModule(agentModule);
173
+ await setupModule.initialize(chatService);
174
+ await setupModule.handleSetupCommand([]);
175
+ }
176
+ catch (error) {
177
+ console.error("Error running agent:", error);
178
+ process.exit(1);
179
+ }
180
+ });
181
+ }
182
+ function addSearchCommand(program) {
183
+ program
184
+ .command("search")
185
+ .description("Search embeddings directly from CLI")
186
+ .option("--input <text>", "Search query (fallback to stdin if not provided)")
187
+ .option("-e, --embedding <path>", "Specific embedding path (default: all)", "all")
188
+ .action(async (options) => {
189
+ try {
190
+ const { setupServices } = await Promise.resolve().then(() => __importStar(require("./services")));
191
+ await setupServices();
192
+ let input = options.input;
193
+ if (!input) {
194
+ input = await readStdin();
195
+ if (!input) {
196
+ console.error("Error: No search query provided. Use --input flag or pipe input via stdin.");
197
+ process.exit(1);
198
+ }
199
+ }
200
+ await new SearchModule_1.SearchModule().searchEmbeddingsCLI(input, options.embedding);
201
+ }
202
+ catch (error) {
203
+ console.error("Error searching embeddings:", error);
204
+ process.exit(1);
205
+ }
206
+ });
207
+ }
208
+ function addSessionsCommand(program, getChatService) {
209
+ program
210
+ .command("sessions")
211
+ .description("Manage agent sessions from CLI")
212
+ .option("--all", "Show all historical sessions (default: current process only)")
213
+ .option("--csv", "Output sessions as CSV")
214
+ .action(async (options) => {
215
+ try {
216
+ const chatService = getChatService();
217
+ const agentModule = new AgentModule_1.AgentModule();
218
+ await agentModule.initialize(chatService);
219
+ const sessionsModule = new SessionsModule_1.SessionsModule(agentModule);
220
+ await sessionsModule.initialize(chatService);
221
+ await sessionsModule.logSessionTable(options.all || false, options.csv || false, true);
222
+ }
223
+ catch (error) {
224
+ console.error("Error listing sessions:", error);
225
+ process.exit(1);
226
+ }
227
+ });
228
+ }
229
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/commands/agent.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,0CAyFC;AAED,sCA0CC;AAED,0CAmBC;AAED,4CAkCC;AAED,gDA0BC;AApPD,8BAAuC;AACvC,6DAA0D;AAC1D,yDAAsD;AACtD,+DAA4D;AAC5D,mEAAgE;AAChE,6DAA0D;AAE1D,KAAK,UAAU,SAAS;IACtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAElC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACxB,OAAO,CAAC,EAAE,CAAC,CAAC;YACZ,OAAO;QACT,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE;YAChC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,KAAK,KAAK,IAAI;gBAAE,IAAI,IAAI,KAAK,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,eAAe,CAAC,OAAgB,EAAE,cAAyB;IACzE,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,kCAAkC,CAAC;SAC/C,MAAM,CACL,uBAAuB,EACvB,8CAA8C,CAC/C;SACA,MAAM,CAAC,iBAAiB,EAAE,iCAAiC,CAAC;SAC5D,MAAM,CAAC,qBAAqB,EAAE,oBAAoB,EAAE,SAAS,CAAC;SAC9D,MAAM,CACL,4BAA4B,EAC5B,0CAA0C,EAC1C,IAAI,CACL;SACA,MAAM,CACL,6BAA6B,EAC7B,0CAA0C,EAC1C,IAAI,CACL;SACA,MAAM,CAAC,0BAA0B,EAAE,sCAAsC,CAAC;SAC1E,MAAM,CAAC,WAAW,EAAE,yCAAyC,CAAC;SAC9D,MAAM,CACL,oBAAoB,EACpB,kFAAkF,CACnF;SACA,MAAM,CAAC,sBAAsB,EAAE,yCAAyC,CAAC;SACzE,MAAM,CAAC,gBAAgB,EAAE,gDAAgD,CAAC;SAC1E,MAAM,CACL,UAAU,EACV,2EAA2E,CAC5E;SACA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,MAAM,EAAE,aAAa,EAAE,GAAG,wDAAa,YAAY,GAAC,CAAC;YACrD,MAAM,aAAa,EAAE,CAAC;YACtB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;YACrC,MAAM,WAAW,GAAG,IAAI,yBAAW,EAAE,CAAC;YAEtC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,kBAAkB,CAClD,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,SAAS,CAClB,CAAC;gBACF,MAAM,WAAW,GACf,OAAO,CAAC,KAAK,IAAI,0CAA0C,CAAC;gBAE9D,MAAM,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;gBAC1C,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAC9B,MAAM,WAAW,CAAC,kBAAkB,CAAC;oBACnC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,SAAS;oBACzC,KAAK,EAAE,WAAW;oBAClB,OAAO;oBACP,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;iBACvB,CAAC,CAAC;gBACL,MAAM,OAAO,CAAC;gBACd,OAAO;YACT,CAAC;YAED,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAE1B,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBAClC,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC;YAC5B,CAAC;YAED,KAAK,GAAG,IAAA,mBAAc,EAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAElD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CACX,6FAA6F,CAC9F,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAC1C,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC;gBACrD,GAAG,OAAO;gBACV,KAAK;gBACL,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;gBAChD,aAAa,EAAE,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC;gBAChD,GAAG,EAAE,IAAI;aACV,CAAC,CAAC;YACH,MAAM,aAAa,CAAC;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAgB,aAAa,CAAC,OAAgB,EAAE,cAAyB,EAAE,SAAoB;IAC7F,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,8CAA8C,CAAC;SAC3D,MAAM,CAAC,uBAAuB,EAAE,oBAAoB,CAAC;SACrD,MAAM,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;SAC3C,MAAM,CAAC,gBAAgB,EAAE,8CAA8C,CAAC;SACxE,MAAM,CAAC,sBAAsB,EAAE,6BAA6B,CAAC;SAC7D,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,MAAM,EAAE,aAAa,EAAE,GAAG,wDAAa,YAAY,GAAC,CAAC;YACrD,MAAM,aAAa,EAAE,CAAC;YACtB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;YAC3B,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAE1B,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBAClC,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC;YAC5B,CAAC;YAED,KAAK,GAAG,IAAA,mBAAc,EAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAElD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CACX,gGAAgG,CACjG,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAC;YAClC,MAAM,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YACxC,MAAM,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE;gBACpC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;gBAC/B,YAAY,EAAE,OAAO,CAAC,KAAK;gBAC3B,eAAe,EAAE,OAAO,CAAC,QAAQ;gBACjC,WAAW,EAAE,EAAE;aAChB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAgB,eAAe,CAAC,OAAgB,EAAE,cAAyB;IACzE,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,oCAAoC,CAAC;SACjD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YACH,MAAM,EAAE,aAAa,EAAE,GAAG,wDAAa,YAAY,GAAC,CAAC;YACrD,MAAM,aAAa,EAAE,CAAC;YACtB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;YACrC,MAAM,WAAW,GAAG,IAAI,yBAAW,EAAE,CAAC;YACtC,MAAM,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAC1C,MAAM,WAAW,GAAG,IAAI,yBAAW,CAAC,WAAW,CAAC,CAAC;YACjD,MAAM,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAC1C,MAAM,WAAW,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAgB,gBAAgB,CAAC,OAAgB;IAC/C,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,qCAAqC,CAAC;SAClD,MAAM,CACL,gBAAgB,EAChB,kDAAkD,CACnD;SACA,MAAM,CACL,wBAAwB,EACxB,wCAAwC,EACxC,KAAK,CACN;SACA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,MAAM,EAAE,aAAa,EAAE,GAAG,wDAAa,YAAY,GAAC,CAAC;YACrD,MAAM,aAAa,EAAE,CAAC;YACtB,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC;gBAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,CAAC,KAAK,CACX,4EAA4E,CAC7E,CAAC;oBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;YAED,MAAM,IAAI,2BAAY,EAAE,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;YACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAgB,kBAAkB,CAAC,OAAgB,EAAE,cAAyB;IAC5E,OAAO;SACJ,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,gCAAgC,CAAC;SAC7C,MAAM,CACL,OAAO,EACP,8DAA8D,CAC/D;SACA,MAAM,CAAC,OAAO,EAAE,wBAAwB,CAAC;SACzC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;YACrC,MAAM,WAAW,GAAG,IAAI,yBAAW,EAAE,CAAC;YACtC,MAAM,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAC1C,MAAM,cAAc,GAAG,IAAI,+BAAc,CAAC,WAAW,CAAC,CAAC;YACvD,MAAM,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,cAAc,CAAC,eAAe,CAClC,OAAO,CAAC,GAAG,IAAI,KAAK,EACpB,OAAO,CAAC,GAAG,IAAI,KAAK,EACpB,IAAI,CACL,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { Command } from "commander";
2
+ export declare function addInitCommand(program: Command): void;
3
+ export declare function addLoginCommand(program: Command): void;
4
+ export declare function addUpdateCommand(program: Command): void;
5
+ export declare function addGenerateCommand(program: Command): void;
6
+ export declare function addEmbedCommands(program: Command): void;
7
+ export declare function addUploadCommand(program: Command): void;
8
+ export declare function addDownloadCommand(program: Command): void;
9
+ export declare function addChatCommand(program: Command): void;
10
+ export declare function addGithubCredentialsCommand(program: Command): void;
@@ -0,0 +1,195 @@
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.addInitCommand = addInitCommand;
37
+ exports.addLoginCommand = addLoginCommand;
38
+ exports.addUpdateCommand = addUpdateCommand;
39
+ exports.addGenerateCommand = addGenerateCommand;
40
+ exports.addEmbedCommands = addEmbedCommands;
41
+ exports.addUploadCommand = addUploadCommand;
42
+ exports.addDownloadCommand = addDownloadCommand;
43
+ exports.addChatCommand = addChatCommand;
44
+ exports.addGithubCredentialsCommand = addGithubCredentialsCommand;
45
+ const child_process_1 = require("child_process");
46
+ const package_json_1 = require("../../package.json");
47
+ const index_1 = require("../index");
48
+ const config_1 = require("../config");
49
+ const login_1 = require("../login");
50
+ const KnowhowClient_1 = require("../services/KnowhowClient");
51
+ const chat_1 = require("../chat");
52
+ function addInitCommand(program) {
53
+ program
54
+ .command("init")
55
+ .description("Initialize knowhow configuration")
56
+ .action(async () => {
57
+ await (0, config_1.init)();
58
+ });
59
+ }
60
+ function addLoginCommand(program) {
61
+ program
62
+ .command("login")
63
+ .description("Login to knowhow")
64
+ .option("--jwt", "Use manual JWT input instead of browser login")
65
+ .action(async (opts) => {
66
+ await (0, login_1.login)(opts.jwt);
67
+ });
68
+ }
69
+ function addUpdateCommand(program) {
70
+ program
71
+ .command("update")
72
+ .description("Update knowhow to the latest version from npm")
73
+ .action(async () => {
74
+ try {
75
+ console.log("šŸ”„ Checking for knowhow updates...");
76
+ console.log(`Current version: ${package_json_1.version}`);
77
+ console.log("šŸ“¦ Installing latest version from npm...");
78
+ (0, child_process_1.execSync)("npm install -g @tyvm/knowhow@latest", {
79
+ stdio: "inherit",
80
+ encoding: "utf-8",
81
+ });
82
+ console.log("āœ“ knowhow has been updated successfully!");
83
+ console.log("Run 'knowhow --version' to see the new version.");
84
+ }
85
+ catch (error) {
86
+ console.error("Error updating knowhow:", error.message);
87
+ process.exit(1);
88
+ }
89
+ });
90
+ }
91
+ function addGenerateCommand(program) {
92
+ program
93
+ .command("generate")
94
+ .description("Generate documentation")
95
+ .action(async () => {
96
+ const { setupServices } = await Promise.resolve().then(() => __importStar(require("./services")));
97
+ await setupServices();
98
+ await (0, index_1.generate)();
99
+ });
100
+ }
101
+ function addEmbedCommands(program) {
102
+ program
103
+ .command("embed")
104
+ .description("Create embeddings")
105
+ .action(async () => {
106
+ const { setupServices } = await Promise.resolve().then(() => __importStar(require("./services")));
107
+ await setupServices();
108
+ await (0, index_1.embed)();
109
+ });
110
+ program
111
+ .command("embed:purge")
112
+ .description("Purge embeddings matching a glob pattern")
113
+ .argument("<pattern>", "Glob pattern to match files for purging")
114
+ .action(async (pattern) => {
115
+ await (0, index_1.purge)(pattern);
116
+ });
117
+ }
118
+ function addUploadCommand(program) {
119
+ program
120
+ .command("upload")
121
+ .description("Upload data")
122
+ .action(async () => {
123
+ await (0, index_1.upload)();
124
+ });
125
+ }
126
+ function addDownloadCommand(program) {
127
+ program
128
+ .command("download")
129
+ .description("Download data")
130
+ .action(async () => {
131
+ await (0, index_1.download)();
132
+ });
133
+ }
134
+ function addChatCommand(program) {
135
+ program
136
+ .command("chat")
137
+ .description("Start new chat interface")
138
+ .action(async () => {
139
+ const { setupServices } = await Promise.resolve().then(() => __importStar(require("./services")));
140
+ await setupServices();
141
+ await (0, chat_1.startChat)();
142
+ });
143
+ }
144
+ function addGithubCredentialsCommand(program) {
145
+ program
146
+ .command("github-credentials [action]")
147
+ .description("Git credential helper for GitHub. Use as: git config credential.helper 'knowhow github-credentials'")
148
+ .option("--repo <repo>", "Repository in owner/repo format (e.g. myorg/myrepo)")
149
+ .action(async (action, options) => {
150
+ const client = new KnowhowClient_1.KnowhowSimpleClient();
151
+ let repo = options.repo;
152
+ if (action === "get") {
153
+ const lines = [];
154
+ const readline = await Promise.resolve().then(() => __importStar(require("readline")));
155
+ const rl = readline.createInterface({
156
+ input: process.stdin,
157
+ terminal: false,
158
+ });
159
+ await new Promise((resolve) => {
160
+ rl.on("line", (line) => {
161
+ if (line.trim())
162
+ lines.push(line.trim());
163
+ });
164
+ rl.on("close", resolve);
165
+ });
166
+ }
167
+ else if (action === "store" || action === "erase") {
168
+ process.exit(0);
169
+ }
170
+ if (!repo) {
171
+ try {
172
+ const remoteUrl = (0, child_process_1.execSync)("git remote get-url origin", {
173
+ encoding: "utf-8",
174
+ stdio: ["pipe", "pipe", "pipe"],
175
+ }).trim();
176
+ const match = remoteUrl.match(/github\.com[/:]([^/]+\/[^/]+?)(?:\.git)?$/) ||
177
+ remoteUrl.match(/github\.com\/([^/]+\/[^/]+)/);
178
+ if (match) {
179
+ repo = match[1];
180
+ }
181
+ }
182
+ catch {
183
+ }
184
+ }
185
+ try {
186
+ const credential = await client.getGitCredential(repo || "");
187
+ process.stdout.write(`protocol=${credential.protocol}\nhost=${credential.host}\nusername=${credential.username}\npassword=${credential.password}\n`);
188
+ }
189
+ catch (error) {
190
+ console.error("Failed to get git credentials:", error.message);
191
+ process.exit(1);
192
+ }
193
+ });
194
+ }
195
+ //# sourceMappingURL=misc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"misc.js","sourceRoot":"","sources":["../../../src/commands/misc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare const BUILTIN_MODULES: string[];
3
+ export declare function addModulesCommand(program: Command): void;
@@ -0,0 +1,160 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BUILTIN_MODULES = void 0;
4
+ exports.addModulesCommand = addModulesCommand;
5
+ const child_process_1 = require("child_process");
6
+ const config_1 = require("../config");
7
+ exports.BUILTIN_MODULES = [
8
+ "@tyvm/knowhow-module-script",
9
+ "@tyvm/knowhow-module-terminal",
10
+ ];
11
+ function addModulesCommand(program) {
12
+ const modulesCmd = program
13
+ .command("modules")
14
+ .description("Manage knowhow modules (install, add to config, list)");
15
+ modulesCmd
16
+ .command("setup")
17
+ .description("Add default built-in modules to your config and install them via npm")
18
+ .option("--global", "Use the global config (~/.knowhow/knowhow.json)")
19
+ .action(async (opts) => {
20
+ try {
21
+ const isGlobal = opts.global ?? false;
22
+ const cfg = isGlobal ? await (0, config_1.getGlobalConfig)() : await (0, config_1.getConfig)();
23
+ const configLabel = isGlobal
24
+ ? "~/.knowhow/knowhow.json"
25
+ : ".knowhow/knowhow.json";
26
+ if (!cfg.modules)
27
+ cfg.modules = [];
28
+ const toAdd = exports.BUILTIN_MODULES.filter((m) => !cfg.modules.includes(m));
29
+ if (toAdd.length === 0) {
30
+ console.log(`āœ… All default modules are already in ${configLabel}. Nothing to do.`);
31
+ return;
32
+ }
33
+ for (const mod of toAdd) {
34
+ if (!mod.startsWith(".") && !mod.startsWith("/")) {
35
+ console.log(`šŸ“¦ Installing ${mod}...`);
36
+ const installFlag = isGlobal ? "-g" : "";
37
+ (0, child_process_1.execSync)(`npm install ${installFlag} ${mod}`, {
38
+ stdio: "inherit",
39
+ encoding: "utf-8",
40
+ });
41
+ }
42
+ cfg.modules.push(mod);
43
+ console.log(`āœ… Added ${mod} to ${configLabel}`);
44
+ }
45
+ if (isGlobal) {
46
+ await (0, config_1.updateGlobalConfig)(cfg);
47
+ }
48
+ else {
49
+ await (0, config_1.updateConfig)(cfg);
50
+ }
51
+ console.log(`\nšŸŽ‰ Setup complete! ${toAdd.length} module(s) added to ${configLabel}`);
52
+ }
53
+ catch (error) {
54
+ console.error("Error during modules setup:", error.message ?? error);
55
+ process.exit(1);
56
+ }
57
+ });
58
+ modulesCmd
59
+ .command("install [module]")
60
+ .description("Install a module via npm and add it to your config. " +
61
+ "If no module name is given, installs all modules already in the config.")
62
+ .option("--global", "Use the global config (~/.knowhow/knowhow.json)")
63
+ .action(async (moduleName, opts) => {
64
+ try {
65
+ const isGlobal = opts.global ?? false;
66
+ const cfg = isGlobal ? await (0, config_1.getGlobalConfig)() : await (0, config_1.getConfig)();
67
+ const configLabel = isGlobal
68
+ ? "~/.knowhow/knowhow.json"
69
+ : ".knowhow/knowhow.json";
70
+ if (!cfg.modules)
71
+ cfg.modules = [];
72
+ if (!moduleName) {
73
+ const installable = cfg.modules.filter((m) => !m.startsWith(".") && !m.startsWith("/"));
74
+ if (installable.length === 0) {
75
+ console.log(`ℹ No installable modules found in ${configLabel}.`);
76
+ return;
77
+ }
78
+ console.log(`šŸ“¦ Installing ${installable.length} module(s) from ${configLabel}...`);
79
+ const installFlag = isGlobal ? "-g" : "";
80
+ for (const mod of installable) {
81
+ console.log(` šŸ“¦ Installing ${mod}...`);
82
+ (0, child_process_1.execSync)(`npm install ${installFlag} ${mod}`, {
83
+ stdio: "inherit",
84
+ encoding: "utf-8",
85
+ });
86
+ console.log(` āœ… Installed ${mod}`);
87
+ }
88
+ console.log(`\nšŸŽ‰ All modules installed!`);
89
+ return;
90
+ }
91
+ const installFlag = isGlobal ? "-g" : "";
92
+ console.log(`šŸ“¦ Installing ${moduleName}...`);
93
+ (0, child_process_1.execSync)(`npm install ${installFlag} ${moduleName}`, {
94
+ stdio: "inherit",
95
+ encoding: "utf-8",
96
+ });
97
+ console.log(`āœ… Installed ${moduleName}`);
98
+ if (!cfg.modules.includes(moduleName)) {
99
+ cfg.modules.push(moduleName);
100
+ if (isGlobal) {
101
+ await (0, config_1.updateGlobalConfig)(cfg);
102
+ }
103
+ else {
104
+ await (0, config_1.updateConfig)(cfg);
105
+ }
106
+ console.log(`āœ… Added ${moduleName} to ${configLabel}`);
107
+ }
108
+ else {
109
+ console.log(`ℹ ${moduleName} is already in ${configLabel}`);
110
+ }
111
+ }
112
+ catch (error) {
113
+ console.error("Error during module install:", error.message ?? error);
114
+ process.exit(1);
115
+ }
116
+ });
117
+ modulesCmd
118
+ .command("list")
119
+ .description("List all modules in your config")
120
+ .option("--global", "Show global config modules only")
121
+ .action(async (opts) => {
122
+ try {
123
+ const isGlobal = opts.global ?? false;
124
+ const globalCfg = await (0, config_1.getGlobalConfig)();
125
+ const localCfg = isGlobal ? null : await (0, config_1.getConfig)();
126
+ const globalModules = globalCfg.modules || [];
127
+ const localModules = localCfg?.modules || [];
128
+ if (isGlobal) {
129
+ console.log(`\n🌐 Global modules (~/.knowhow/knowhow.json):`);
130
+ if (globalModules.length === 0) {
131
+ console.log(" (none)");
132
+ }
133
+ else {
134
+ globalModules.forEach((m, i) => console.log(` ${i + 1}. ${m}`));
135
+ }
136
+ }
137
+ else {
138
+ console.log(`\n🌐 Global modules (~/.knowhow/knowhow.json):`);
139
+ if (globalModules.length === 0) {
140
+ console.log(" (none)");
141
+ }
142
+ else {
143
+ globalModules.forEach((m, i) => console.log(` ${i + 1}. ${m}`));
144
+ }
145
+ console.log(`\nšŸ“ Local modules (.knowhow/knowhow.json):`);
146
+ if (localModules.length === 0) {
147
+ console.log(" (none)");
148
+ }
149
+ else {
150
+ localModules.forEach((m, i) => console.log(` ${i + 1}. ${m}`));
151
+ }
152
+ }
153
+ }
154
+ catch (error) {
155
+ console.error("Error listing modules:", error.message ?? error);
156
+ process.exit(1);
157
+ }
158
+ });
159
+ }
160
+ //# sourceMappingURL=modules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modules.js","sourceRoot":"","sources":["../../../src/commands/modules.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { LazyToolsService } from "../services";
2
+ export declare function setupServices(): Promise<{
3
+ Tools: LazyToolsService;
4
+ Clients: import("../clients").AIClient;
5
+ }>;