@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.
- package/package.json +2 -3
- package/src/agents/base/base.ts +9 -0
- package/src/agents/tools/index.ts +0 -1
- package/src/agents/tools/list.ts +0 -2
- package/src/chat/CliChatService.ts +7 -1
- package/src/chat/renderer/CompactRenderer.ts +20 -0
- package/src/chat/renderer/ConsoleRenderer.ts +19 -0
- package/src/chat/renderer/FancyRenderer.ts +19 -0
- package/src/chat/renderer/types.ts +11 -0
- package/src/cli.ts +79 -666
- package/src/clients/types.ts +12 -4
- package/src/commands/agent.ts +246 -0
- package/src/commands/misc.ts +169 -0
- package/src/commands/modules.ts +182 -0
- package/src/commands/services.ts +72 -0
- package/src/commands/workers.ts +160 -0
- package/src/config.ts +37 -0
- package/src/index.ts +1 -0
- package/src/plugins/plugins.ts +0 -21
- package/src/processors/JsonCompressor.ts +6 -6
- package/src/services/modules/index.ts +58 -49
- package/src/services/modules/types.ts +2 -0
- package/src/tunnel.ts +216 -0
- package/src/types.ts +0 -1
- package/src/worker.ts +65 -336
- package/src/workers/auth/WsMiddleware.ts +99 -0
- package/src/workers/auth/authMiddleware.ts +104 -0
- package/src/workers/auth/types.ts +14 -2
- package/tests/unit/modules/moduleLoading.test.ts +0 -25
- package/tests/unit/plugins/pluginLoading.test.ts +0 -85
- package/ts_build/package.json +2 -3
- package/ts_build/src/agents/base/base.js +10 -0
- package/ts_build/src/agents/base/base.js.map +1 -1
- package/ts_build/src/agents/tools/index.d.ts +0 -1
- package/ts_build/src/agents/tools/index.js +0 -1
- package/ts_build/src/agents/tools/index.js.map +1 -1
- package/ts_build/src/agents/tools/list.js +0 -2
- package/ts_build/src/agents/tools/list.js.map +1 -1
- package/ts_build/src/chat/CliChatService.js +10 -1
- package/ts_build/src/chat/CliChatService.js.map +1 -1
- package/ts_build/src/chat/renderer/CompactRenderer.d.ts +4 -0
- package/ts_build/src/chat/renderer/CompactRenderer.js +16 -0
- package/ts_build/src/chat/renderer/CompactRenderer.js.map +1 -1
- package/ts_build/src/chat/renderer/ConsoleRenderer.d.ts +4 -0
- package/ts_build/src/chat/renderer/ConsoleRenderer.js +16 -0
- package/ts_build/src/chat/renderer/ConsoleRenderer.js.map +1 -1
- package/ts_build/src/chat/renderer/FancyRenderer.d.ts +4 -0
- package/ts_build/src/chat/renderer/FancyRenderer.js +16 -0
- package/ts_build/src/chat/renderer/FancyRenderer.js.map +1 -1
- package/ts_build/src/chat/renderer/types.d.ts +2 -0
- package/ts_build/src/cli.js +40 -525
- package/ts_build/src/cli.js.map +1 -1
- package/ts_build/src/clients/types.d.ts +2 -2
- package/ts_build/src/commands/agent.d.ts +6 -0
- package/ts_build/src/commands/agent.js +229 -0
- package/ts_build/src/commands/agent.js.map +1 -0
- package/ts_build/src/commands/misc.d.ts +10 -0
- package/ts_build/src/commands/misc.js +195 -0
- package/ts_build/src/commands/misc.js.map +1 -0
- package/ts_build/src/commands/modules.d.ts +3 -0
- package/ts_build/src/commands/modules.js +160 -0
- package/ts_build/src/commands/modules.js.map +1 -0
- package/ts_build/src/commands/services.d.ts +5 -0
- package/ts_build/src/commands/services.js +86 -0
- package/ts_build/src/commands/services.js.map +1 -0
- package/ts_build/src/commands/workers.d.ts +6 -0
- package/ts_build/src/commands/workers.js +163 -0
- package/ts_build/src/commands/workers.js.map +1 -0
- package/ts_build/src/config.d.ts +1 -0
- package/ts_build/src/config.js +32 -0
- package/ts_build/src/config.js.map +1 -1
- package/ts_build/src/index.d.ts +1 -0
- package/ts_build/src/index.js +3 -1
- package/ts_build/src/index.js.map +1 -1
- package/ts_build/src/plugins/plugins.d.ts +0 -2
- package/ts_build/src/plugins/plugins.js +0 -11
- package/ts_build/src/plugins/plugins.js.map +1 -1
- package/ts_build/src/processors/JsonCompressor.js +4 -4
- package/ts_build/src/processors/JsonCompressor.js.map +1 -1
- package/ts_build/src/services/modules/index.d.ts +33 -0
- package/ts_build/src/services/modules/index.js +38 -42
- package/ts_build/src/services/modules/index.js.map +1 -1
- package/ts_build/src/services/modules/types.d.ts +2 -0
- package/ts_build/src/tunnel.d.ts +27 -0
- package/ts_build/src/tunnel.js +112 -0
- package/ts_build/src/tunnel.js.map +1 -0
- package/ts_build/src/types.d.ts +0 -1
- package/ts_build/src/types.js.map +1 -1
- package/ts_build/src/worker.d.ts +1 -4
- package/ts_build/src/worker.js +38 -244
- package/ts_build/src/worker.js.map +1 -1
- package/ts_build/src/workers/auth/WsMiddleware.d.ts +8 -0
- package/ts_build/src/workers/auth/WsMiddleware.js +65 -0
- package/ts_build/src/workers/auth/WsMiddleware.js.map +1 -0
- package/ts_build/src/workers/auth/authMiddleware.d.ts +3 -0
- package/ts_build/src/workers/auth/authMiddleware.js +60 -0
- package/ts_build/src/workers/auth/authMiddleware.js.map +1 -0
- package/ts_build/src/workers/auth/types.d.ts +8 -1
- package/ts_build/tests/unit/modules/moduleLoading.test.js +0 -19
- package/ts_build/tests/unit/modules/moduleLoading.test.js.map +1 -1
- package/ts_build/tests/unit/plugins/pluginLoading.test.js +0 -65
- package/ts_build/tests/unit/plugins/pluginLoading.test.js.map +1 -1
- package/src/agents/tools/executeScript/README.md +0 -94
- package/src/agents/tools/executeScript/definition.ts +0 -79
- package/src/agents/tools/executeScript/examples/dependency-injection-validation.ts +0 -272
- package/src/agents/tools/executeScript/examples/quick-test.ts +0 -74
- package/src/agents/tools/executeScript/examples/serialization-test.ts +0 -321
- package/src/agents/tools/executeScript/examples/test-runner.ts +0 -197
- package/src/agents/tools/executeScript/index.ts +0 -98
- package/src/services/script-execution/SandboxContext.ts +0 -282
- package/src/services/script-execution/ScriptExecutor.ts +0 -441
- package/src/services/script-execution/ScriptPolicy.ts +0 -194
- package/src/services/script-execution/ScriptTracer.ts +0 -249
- package/src/services/script-execution/types.ts +0 -134
- package/ts_build/src/agents/tools/executeScript/definition.d.ts +0 -2
- package/ts_build/src/agents/tools/executeScript/definition.js +0 -76
- package/ts_build/src/agents/tools/executeScript/definition.js.map +0 -1
- package/ts_build/src/agents/tools/executeScript/examples/dependency-injection-validation.d.ts +0 -18
- package/ts_build/src/agents/tools/executeScript/examples/dependency-injection-validation.js +0 -192
- package/ts_build/src/agents/tools/executeScript/examples/dependency-injection-validation.js.map +0 -1
- package/ts_build/src/agents/tools/executeScript/examples/quick-test.d.ts +0 -3
- package/ts_build/src/agents/tools/executeScript/examples/quick-test.js +0 -64
- package/ts_build/src/agents/tools/executeScript/examples/quick-test.js.map +0 -1
- package/ts_build/src/agents/tools/executeScript/examples/serialization-test.d.ts +0 -15
- package/ts_build/src/agents/tools/executeScript/examples/serialization-test.js +0 -266
- package/ts_build/src/agents/tools/executeScript/examples/serialization-test.js.map +0 -1
- package/ts_build/src/agents/tools/executeScript/examples/test-runner.d.ts +0 -4
- package/ts_build/src/agents/tools/executeScript/examples/test-runner.js +0 -208
- package/ts_build/src/agents/tools/executeScript/examples/test-runner.js.map +0 -1
- package/ts_build/src/agents/tools/executeScript/index.d.ts +0 -28
- package/ts_build/src/agents/tools/executeScript/index.js +0 -72
- package/ts_build/src/agents/tools/executeScript/index.js.map +0 -1
- package/ts_build/src/services/script-execution/SandboxContext.d.ts +0 -34
- package/ts_build/src/services/script-execution/SandboxContext.js +0 -189
- package/ts_build/src/services/script-execution/SandboxContext.js.map +0 -1
- package/ts_build/src/services/script-execution/ScriptExecutor.d.ts +0 -19
- package/ts_build/src/services/script-execution/ScriptExecutor.js +0 -269
- package/ts_build/src/services/script-execution/ScriptExecutor.js.map +0 -1
- package/ts_build/src/services/script-execution/ScriptPolicy.d.ts +0 -28
- package/ts_build/src/services/script-execution/ScriptPolicy.js +0 -115
- package/ts_build/src/services/script-execution/ScriptPolicy.js.map +0 -1
- package/ts_build/src/services/script-execution/ScriptTracer.d.ts +0 -19
- package/ts_build/src/services/script-execution/ScriptTracer.js +0 -186
- package/ts_build/src/services/script-execution/ScriptTracer.js.map +0 -1
- package/ts_build/src/services/script-execution/types.d.ts +0 -108
- package/ts_build/src/services/script-execution/types.js +0 -3
- 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":"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"}
|
|
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,wCAOC;AAED,0CAQC;AAED,4CAoBC;AAED,gDASC;AAED,4CAiBC;AAED,4CAOC;AAED,gDAOC;AAED,wCASC;AAED,kEA2DC;AAvKD,iDAAyC;AACzC,qDAA6C;AAC7C,oCAAoE;AACpE,sCAAiC;AACjC,oCAAiC;AACjC,6DAAgE;AAChE,kCAAoC;AAEpC,SAAgB,cAAc,CAAC,OAAgB;IAC7C,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,kCAAkC,CAAC;SAC/C,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,IAAA,aAAI,GAAE,CAAC;IACf,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAgB,eAAe,CAAC,OAAgB;IAC9C,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,kBAAkB,CAAC;SAC/B,MAAM,CAAC,OAAO,EAAE,+CAA+C,CAAC;SAChE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,IAAA,aAAK,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAgB,gBAAgB,CAAC,OAAgB;IAC/C,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,+CAA+C,CAAC;SAC5D,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,oBAAoB,sBAAO,EAAE,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;YACxD,IAAA,wBAAQ,EAAC,qCAAqC,EAAE;gBAC9C,KAAK,EAAE,SAAS;gBAChB,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAgB,kBAAkB,CAAC,OAAgB;IACjD,OAAO;SACJ,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,wBAAwB,CAAC;SACrC,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,EAAE,aAAa,EAAE,GAAG,wDAAa,YAAY,GAAC,CAAC;QACrD,MAAM,aAAa,EAAE,CAAC;QACtB,MAAM,IAAA,gBAAQ,GAAE,CAAC;IACnB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAgB,gBAAgB,CAAC,OAAgB;IAC/C,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,mBAAmB,CAAC;SAChC,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,EAAE,aAAa,EAAE,GAAG,wDAAa,YAAY,GAAC,CAAC;QACrD,MAAM,aAAa,EAAE,CAAC;QACtB,MAAM,IAAA,aAAK,GAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,0CAA0C,CAAC;SACvD,QAAQ,CAAC,WAAW,EAAE,yCAAyC,CAAC;SAChE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,IAAA,aAAK,EAAC,OAAO,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAgB,gBAAgB,CAAC,OAAgB;IAC/C,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,aAAa,CAAC;SAC1B,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,IAAA,cAAM,GAAE,CAAC;IACjB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAgB,kBAAkB,CAAC,OAAgB;IACjD,OAAO;SACJ,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,eAAe,CAAC;SAC5B,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,IAAA,gBAAQ,GAAE,CAAC;IACnB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAgB,cAAc,CAAC,OAAgB;IAC7C,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,0BAA0B,CAAC;SACvC,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,EAAE,aAAa,EAAE,GAAG,wDAAa,YAAY,GAAC,CAAC;QACrD,MAAM,aAAa,EAAE,CAAC;QACtB,MAAM,IAAA,gBAAS,GAAE,CAAC;IACpB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAgB,2BAA2B,CAAC,OAAgB;IAC1D,OAAO;SACJ,OAAO,CAAC,6BAA6B,CAAC;SACtC,WAAW,CACV,qGAAqG,CACtG;SACA,MAAM,CACL,eAAe,EACf,qDAAqD,CACtD;SACA,MAAM,CAAC,KAAK,EAAE,MAA0B,EAAE,OAA0B,EAAE,EAAE;QACvE,MAAM,MAAM,GAAG,IAAI,mCAAmB,EAAE,CAAC;QAEzC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAExB,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,wDAAa,UAAU,GAAC,CAAC;YAC1C,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;gBAClC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAC;YACH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAClC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBACrB,IAAI,IAAI,CAAC,IAAI,EAAE;wBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC3C,CAAC,CAAC,CAAC;gBACH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,IAAA,wBAAQ,EAAC,2BAA2B,EAAE;oBACtD,QAAQ,EAAE,OAAO;oBACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;iBAChC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,KAAK,GACT,SAAS,CAAC,KAAK,CAAC,2CAA2C,CAAC;oBAC5D,SAAS,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;gBACjD,IAAI,KAAK,EAAE,CAAC;oBACV,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;YAET,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,YAAY,UAAU,CAAC,QAAQ,UAAU,UAAU,CAAC,IAAI,cAAc,UAAU,CAAC,QAAQ,cAAc,UAAU,CAAC,QAAQ,IAAI,CAC/H,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -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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"}
|