@tyvm/knowhow 0.0.55 → 0.0.56

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 (93) hide show
  1. package/docs/input-queue-manager.md +142 -0
  2. package/docs/multi-worker-management.md +142 -0
  3. package/package.json +1 -1
  4. package/scripts/README.md +119 -0
  5. package/scripts/restore_keys.sh +59 -0
  6. package/scripts/unset_keys.sh +60 -0
  7. package/src/agents/tools/askHuman.ts +2 -0
  8. package/src/agents/tools/startAgentTask.ts +2 -2
  9. package/src/ai.ts +3 -1
  10. package/src/chat/CliChatService.ts +2 -2
  11. package/src/chat/modules/AgentModule.ts +25 -2
  12. package/src/chat-old.ts +2 -2
  13. package/src/cli.ts +56 -3
  14. package/src/clients/anthropic.ts +7 -5
  15. package/src/clients/knowhow.ts +2 -2
  16. package/src/index.ts +6 -6
  17. package/src/microphone.ts +12 -4
  18. package/src/services/DockerService.ts +473 -0
  19. package/src/services/KnowhowClient.ts +4 -1
  20. package/src/services/index.ts +5 -1
  21. package/src/types.ts +6 -0
  22. package/src/utils/InputQueueManager.ts +324 -0
  23. package/src/utils/index.ts +5 -152
  24. package/src/worker.ts +158 -9
  25. package/src/workerRegistry.ts +152 -0
  26. package/tests/clients/AIClient.test.ts +177 -92
  27. package/tests/manual/test-concurrent-ask.ts +43 -0
  28. package/tests/services/DockerService.test.ts +24 -0
  29. package/tests/unit/input-queue.test.ts +80 -0
  30. package/ts_build/package.json +1 -1
  31. package/ts_build/src/agents/tools/askHuman.d.ts +1 -1
  32. package/ts_build/src/agents/tools/askHuman.js.map +1 -1
  33. package/ts_build/src/agents/tools/startAgentTask.js +2 -1
  34. package/ts_build/src/agents/tools/startAgentTask.js.map +1 -1
  35. package/ts_build/src/ai.js +3 -1
  36. package/ts_build/src/ai.js.map +1 -1
  37. package/ts_build/src/chat/CliChatService.js +1 -1
  38. package/ts_build/src/chat/CliChatService.js.map +1 -1
  39. package/ts_build/src/chat/modules/AgentModule.js +11 -1
  40. package/ts_build/src/chat/modules/AgentModule.js.map +1 -1
  41. package/ts_build/src/chat-old.js +1 -1
  42. package/ts_build/src/chat-old.js.map +1 -1
  43. package/ts_build/src/cli.js +46 -3
  44. package/ts_build/src/cli.js.map +1 -1
  45. package/ts_build/src/clients/anthropic.js +7 -5
  46. package/ts_build/src/clients/anthropic.js.map +1 -1
  47. package/ts_build/src/clients/knowhow.js +1 -1
  48. package/ts_build/src/clients/knowhow.js.map +1 -1
  49. package/ts_build/src/dockerWorker.d.ts +22 -0
  50. package/ts_build/src/dockerWorker.js +210 -0
  51. package/ts_build/src/dockerWorker.js.map +1 -0
  52. package/ts_build/src/index.js +4 -4
  53. package/ts_build/src/index.js.map +1 -1
  54. package/ts_build/src/microphone.js +8 -3
  55. package/ts_build/src/microphone.js.map +1 -1
  56. package/ts_build/src/services/DockerService.d.ts +26 -0
  57. package/ts_build/src/services/DockerService.js +363 -0
  58. package/ts_build/src/services/DockerService.js.map +1 -0
  59. package/ts_build/src/services/KnowhowClient.d.ts +1 -1
  60. package/ts_build/src/services/KnowhowClient.js +1 -1
  61. package/ts_build/src/services/KnowhowClient.js.map +1 -1
  62. package/ts_build/src/services/index.d.ts +3 -0
  63. package/ts_build/src/services/index.js +4 -1
  64. package/ts_build/src/services/index.js.map +1 -1
  65. package/ts_build/src/types.d.ts +4 -0
  66. package/ts_build/src/types.js +3 -0
  67. package/ts_build/src/types.js.map +1 -1
  68. package/ts_build/src/utils/InputQueueManager.d.ts +19 -0
  69. package/ts_build/src/utils/InputQueueManager.js +234 -0
  70. package/ts_build/src/utils/InputQueueManager.js.map +1 -0
  71. package/ts_build/src/utils/index.d.ts +1 -3
  72. package/ts_build/src/utils/index.js +4 -114
  73. package/ts_build/src/utils/index.js.map +1 -1
  74. package/ts_build/src/worker-entrypoint.d.ts +2 -0
  75. package/ts_build/src/worker-entrypoint.js +39 -0
  76. package/ts_build/src/worker-entrypoint.js.map +1 -0
  77. package/ts_build/src/worker.d.ts +7 -1
  78. package/ts_build/src/worker.js +117 -9
  79. package/ts_build/src/worker.js.map +1 -1
  80. package/ts_build/src/workerRegistry.d.ts +11 -0
  81. package/ts_build/src/workerRegistry.js +143 -0
  82. package/ts_build/src/workerRegistry.js.map +1 -0
  83. package/ts_build/tests/clients/AIClient.test.js +88 -42
  84. package/ts_build/tests/clients/AIClient.test.js.map +1 -1
  85. package/ts_build/tests/manual/test-concurrent-ask.d.ts +1 -0
  86. package/ts_build/tests/manual/test-concurrent-ask.js +22 -0
  87. package/ts_build/tests/manual/test-concurrent-ask.js.map +1 -0
  88. package/ts_build/tests/services/DockerService.test.d.ts +1 -0
  89. package/ts_build/tests/services/DockerService.test.js +22 -0
  90. package/ts_build/tests/services/DockerService.test.js.map +1 -0
  91. package/ts_build/tests/unit/input-queue.test.d.ts +1 -0
  92. package/ts_build/tests/unit/input-queue.test.js +32 -0
  93. package/ts_build/tests/unit/input-queue.test.js.map +1 -0
@@ -0,0 +1,11 @@
1
+ interface WorkerRegistry {
2
+ workers: string[];
3
+ }
4
+ export declare function loadWorkerRegistry(): Promise<WorkerRegistry>;
5
+ export declare function saveWorkerRegistry(registry: WorkerRegistry): Promise<void>;
6
+ export declare function registerWorkerPath(workerPath: string): Promise<void>;
7
+ export declare function unregisterWorkerPath(workerPath: string): Promise<void>;
8
+ export declare function listWorkerPaths(): Promise<string[]>;
9
+ export declare function clearWorkerRegistry(): Promise<void>;
10
+ export declare function startAllWorkers(): Promise<void>;
11
+ export {};
@@ -0,0 +1,143 @@
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 (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.startAllWorkers = exports.clearWorkerRegistry = exports.listWorkerPaths = exports.unregisterWorkerPath = exports.registerWorkerPath = exports.saveWorkerRegistry = exports.loadWorkerRegistry = void 0;
27
+ const fs = __importStar(require("fs"));
28
+ const path = __importStar(require("path"));
29
+ const os = __importStar(require("os"));
30
+ const child_process_1 = require("child_process");
31
+ function getWorkerRegistryPath() {
32
+ return path.join(os.homedir(), ".knowhow", "workers.json");
33
+ }
34
+ async function loadWorkerRegistry() {
35
+ const registryPath = getWorkerRegistryPath();
36
+ try {
37
+ if (fs.existsSync(registryPath)) {
38
+ const content = await fs.promises.readFile(registryPath, "utf8");
39
+ return JSON.parse(content);
40
+ }
41
+ }
42
+ catch (error) {
43
+ console.warn("Failed to load worker registry:", error);
44
+ }
45
+ return { workers: [] };
46
+ }
47
+ exports.loadWorkerRegistry = loadWorkerRegistry;
48
+ async function saveWorkerRegistry(registry) {
49
+ const registryPath = getWorkerRegistryPath();
50
+ const dir = path.dirname(registryPath);
51
+ if (!fs.existsSync(dir)) {
52
+ await fs.promises.mkdir(dir, { recursive: true });
53
+ }
54
+ await fs.promises.writeFile(registryPath, JSON.stringify(registry, null, 2), "utf8");
55
+ }
56
+ exports.saveWorkerRegistry = saveWorkerRegistry;
57
+ async function registerWorkerPath(workerPath) {
58
+ const registry = await loadWorkerRegistry();
59
+ const normalizedPath = path.resolve(workerPath);
60
+ if (!registry.workers.includes(normalizedPath)) {
61
+ registry.workers.push(normalizedPath);
62
+ await saveWorkerRegistry(registry);
63
+ console.log(`✓ Registered worker path: ${normalizedPath}`);
64
+ }
65
+ else {
66
+ console.log(`Worker path already registered: ${normalizedPath}`);
67
+ }
68
+ }
69
+ exports.registerWorkerPath = registerWorkerPath;
70
+ async function unregisterWorkerPath(workerPath) {
71
+ const registry = await loadWorkerRegistry();
72
+ const normalizedPath = path.resolve(workerPath);
73
+ const index = registry.workers.indexOf(normalizedPath);
74
+ if (index !== -1) {
75
+ registry.workers.splice(index, 1);
76
+ await saveWorkerRegistry(registry);
77
+ console.log(`✓ Unregistered worker path: ${normalizedPath}`);
78
+ }
79
+ else {
80
+ console.log(`Worker path not found in registry: ${normalizedPath}`);
81
+ }
82
+ }
83
+ exports.unregisterWorkerPath = unregisterWorkerPath;
84
+ async function listWorkerPaths() {
85
+ const registry = await loadWorkerRegistry();
86
+ return registry.workers;
87
+ }
88
+ exports.listWorkerPaths = listWorkerPaths;
89
+ async function clearWorkerRegistry() {
90
+ await saveWorkerRegistry({ workers: [] });
91
+ console.log("✓ Cleared all registered worker paths");
92
+ }
93
+ exports.clearWorkerRegistry = clearWorkerRegistry;
94
+ async function startAllWorkers() {
95
+ const workerPaths = await listWorkerPaths();
96
+ if (workerPaths.length === 0) {
97
+ console.log("No workers registered. Use 'knowhow worker --register' to register workers.");
98
+ return;
99
+ }
100
+ console.log(`Starting ${workerPaths.length} worker(s)...`);
101
+ const processes = [];
102
+ for (const workerPath of workerPaths) {
103
+ if (!fs.existsSync(workerPath)) {
104
+ console.warn(`⚠ Worker path does not exist: ${workerPath}`);
105
+ continue;
106
+ }
107
+ console.log(`Starting worker at: ${workerPath}`);
108
+ const workerProcess = (0, child_process_1.spawn)("knowhow", ["worker"], {
109
+ cwd: workerPath,
110
+ stdio: "inherit",
111
+ detached: false,
112
+ });
113
+ workerProcess.on("error", (error) => {
114
+ console.error(`Error in worker at ${workerPath}:`, error);
115
+ });
116
+ workerProcess.on("exit", (code, signal) => {
117
+ console.log(`Worker at ${workerPath} exited with code ${code} and signal ${signal}`);
118
+ });
119
+ processes.push({ path: workerPath, process: workerProcess });
120
+ }
121
+ console.log(`\n✓ Started ${processes.length} worker(s)`);
122
+ console.log("Press Ctrl+C to stop all workers\n");
123
+ const shutdownHandler = () => {
124
+ console.log("\nShutting down all workers...");
125
+ for (const { path: workerPath, process: proc } of processes) {
126
+ console.log(`Stopping worker at: ${workerPath}`);
127
+ proc.kill("SIGTERM");
128
+ }
129
+ setTimeout(() => {
130
+ for (const { process: proc } of processes) {
131
+ if (!proc.killed) {
132
+ proc.kill("SIGKILL");
133
+ }
134
+ }
135
+ process.exit(0);
136
+ }, 5000);
137
+ };
138
+ process.on("SIGINT", shutdownHandler);
139
+ process.on("SIGTERM", shutdownHandler);
140
+ await new Promise(() => { });
141
+ }
142
+ exports.startAllWorkers = startAllWorkers;
143
+ //# sourceMappingURL=workerRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workerRegistry.js","sourceRoot":"","sources":["../../src/workerRegistry.ts"],"names":[],"mappings":"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"}
@@ -6,11 +6,11 @@ class FakeClient {
6
6
  models = [
7
7
  { id: "fake-model-1" },
8
8
  { id: "fake-model-2" },
9
- { id: "fake-embed-model" }
9
+ { id: "fake-embed-model" },
10
10
  ];
11
11
  constructor(modelIds) {
12
12
  if (modelIds) {
13
- this.models = modelIds.map(id => ({ id }));
13
+ this.models = modelIds.map((id) => ({ id }));
14
14
  }
15
15
  }
16
16
  setKey(key) {
@@ -21,28 +21,32 @@ class FakeClient {
21
21
  }
22
22
  async createChatCompletion(options) {
23
23
  return {
24
- choices: [{
24
+ choices: [
25
+ {
25
26
  message: {
26
27
  role: "assistant",
27
- content: `Fake response for model: ${options.model}`
28
- }
29
- }],
28
+ content: `Fake response for model: ${options.model}`,
29
+ },
30
+ },
31
+ ],
30
32
  model: options.model,
31
- usage: { total_tokens: 100 }
33
+ usage: { total_tokens: 100 },
32
34
  };
33
35
  }
34
36
  async createEmbedding(options) {
35
37
  return {
36
- data: [{
38
+ data: [
39
+ {
37
40
  object: "embedding",
38
41
  embedding: [0.1, 0.2, 0.3],
39
- index: 0
40
- }],
42
+ index: 0,
43
+ },
44
+ ],
41
45
  model: options.model || "fake-embed-model",
42
46
  usage: {
43
47
  prompt_tokens: 10,
44
- total_tokens: 10
45
- }
48
+ total_tokens: 10,
49
+ },
46
50
  };
47
51
  }
48
52
  async getModels() {
@@ -90,7 +94,11 @@ describe("AIClient", () => {
90
94
  describe("detectProviderModel", () => {
91
95
  beforeEach(() => {
92
96
  aiClient.registerClient("fake", fakeClient);
93
- aiClient.registerModels("fake", ["fake-model-1", "fake-model-2", "fake-embed-model"]);
97
+ aiClient.registerModels("fake", [
98
+ "fake-model-1",
99
+ "fake-model-2",
100
+ "fake-embed-model",
101
+ ]);
94
102
  aiClient.registerClient("another", new FakeClient());
95
103
  aiClient.registerModels("another", ["another-model-1", "gpt-4"]);
96
104
  });
@@ -106,7 +114,10 @@ describe("AIClient", () => {
106
114
  });
107
115
  it("should detect model from nested slash format (provider/subprovider/model)", () => {
108
116
  aiClient.registerClient("knowhow", new FakeClient());
109
- aiClient.registerModels("knowhow", ["openai/gpt-4", "anthropic/claude-3"]);
117
+ aiClient.registerModels("knowhow", [
118
+ "openai/gpt-4",
119
+ "anthropic/claude-3",
120
+ ]);
110
121
  const result = aiClient.detectProviderModel("", "knowhow/openai/gpt-4");
111
122
  expect(result.provider).toBe("knowhow");
112
123
  expect(result.model).toBe("openai/gpt-4");
@@ -139,9 +150,17 @@ describe("AIClient", () => {
139
150
  describe("Model Listing Functionality", () => {
140
151
  beforeEach(() => {
141
152
  aiClient.registerClient("fake", fakeClient);
142
- aiClient.registerModels("fake", ["fake-model-1", "fake-model-2", "fake-embed-model"]);
153
+ aiClient.registerModels("fake", [
154
+ "fake-model-1",
155
+ "fake-model-2",
156
+ "fake-embed-model",
157
+ ]);
143
158
  aiClient.registerClient("another", new FakeClient());
144
- aiClient.registerModels("another", ["another-model-1", "gpt-4", "claude-3"]);
159
+ aiClient.registerModels("another", [
160
+ "another-model-1",
161
+ "gpt-4",
162
+ "claude-3",
163
+ ]);
145
164
  });
146
165
  describe("listAllModels", () => {
147
166
  it("should return all registered models from all providers", () => {
@@ -149,7 +168,7 @@ describe("AIClient", () => {
149
168
  expect(typeof allModels).toBe("object");
150
169
  expect(Object.keys(allModels).length).toBeGreaterThan(0);
151
170
  const providers = Object.keys(allModels);
152
- expect(providers.some(p => ['openai', 'anthropic', 'google', 'xai'].includes(p))).toBe(true);
171
+ expect(providers.some((p) => ["openai", "anthropic", "google", "xai"].includes(p))).toBe(true);
153
172
  });
154
173
  it("should return empty array when no clients registered", () => {
155
174
  const freshClient = new clients_1.AIClient();
@@ -160,7 +179,11 @@ describe("AIClient", () => {
160
179
  describe("getRegisteredModels", () => {
161
180
  it("should return models for specific provider", () => {
162
181
  const fakeModels = aiClient.getRegisteredModels("fake");
163
- expect(fakeModels).toEqual(["fake-model-1", "fake-model-2", "fake-embed-model"]);
182
+ expect(fakeModels).toEqual([
183
+ "fake-model-1",
184
+ "fake-model-2",
185
+ "fake-embed-model",
186
+ ]);
164
187
  const anotherModels = aiClient.getRegisteredModels("another");
165
188
  expect(anotherModels).toEqual(["another-model-1", "gpt-4", "claude-3"]);
166
189
  });
@@ -174,14 +197,17 @@ describe("AIClient", () => {
174
197
  const clientWithModels = new FakeClient();
175
198
  clientWithModels.setModels([
176
199
  { id: "dynamic-model-1" },
177
- { id: "dynamic-model-2" }
200
+ { id: "dynamic-model-2" },
178
201
  ]);
179
202
  aiClient.registerClient("dynamic", clientWithModels);
180
203
  const models = await clientWithModels.getModels();
181
- const modelIds = models.map(m => m.id);
204
+ const modelIds = models.map((m) => m.id);
182
205
  aiClient.registerModels("dynamic", modelIds);
183
206
  const registeredModels = aiClient.getRegisteredModels("dynamic");
184
- expect(registeredModels).toEqual(["dynamic-model-1", "dynamic-model-2"]);
207
+ expect(registeredModels).toEqual([
208
+ "dynamic-model-1",
209
+ "dynamic-model-2",
210
+ ]);
185
211
  });
186
212
  });
187
213
  });
@@ -190,7 +216,11 @@ describe("AIClient", () => {
190
216
  aiClient.registerClient("openai", new FakeClient());
191
217
  aiClient.registerModels("openai", ["gpt-4", "gpt-3.5-turbo"]);
192
218
  aiClient.registerClient("knowhow", new FakeClient());
193
- aiClient.registerModels("knowhow", ["openai/gpt-4", "anthropic/claude-3", "google/gemini-pro"]);
219
+ aiClient.registerModels("knowhow", [
220
+ "openai/gpt-4",
221
+ "anthropic/claude-3",
222
+ "google/gemini-pro",
223
+ ]);
194
224
  });
195
225
  it("should support format: provider='openai', model='gpt-4'", () => {
196
226
  const client = aiClient.getClient("openai", "gpt-4");
@@ -210,7 +240,10 @@ describe("AIClient", () => {
210
240
  });
211
241
  it("should support model detection with complex nested paths", () => {
212
242
  aiClient.registerClient("complex", new FakeClient());
213
- aiClient.registerModels("complex", ["provider/subprovider/model-name", "another/path/to/model"]);
243
+ aiClient.registerModels("complex", [
244
+ "provider/subprovider/model-name",
245
+ "another/path/to/model",
246
+ ]);
214
247
  const client1 = aiClient.getClient("", "complex/provider/subprovider/model-name");
215
248
  expect(client1).toBeDefined();
216
249
  const client2 = aiClient.getClient("", "complex/another/path/to/model");
@@ -227,11 +260,18 @@ describe("AIClient", () => {
227
260
  it("should handle end-to-end flow: register client → register models → detect → retrieve", () => {
228
261
  const fakeClient = new FakeClient();
229
262
  aiClient.registerClient("integration", fakeClient);
230
- aiClient.registerModels("integration", ["model-1", "model-2", "provider/model-3"]);
263
+ aiClient.registerModels("integration", [
264
+ "model-1",
265
+ "model-2",
266
+ "provider/model-3",
267
+ ]);
231
268
  const detection1 = aiClient.detectProviderModel("", "integration/model-1");
232
269
  expect(detection1).toEqual({ provider: "integration", model: "model-1" });
233
270
  const detection2 = aiClient.detectProviderModel("", "integration/provider/model-3");
234
- expect(detection2).toEqual({ provider: "integration", model: "provider/model-3" });
271
+ expect(detection2).toEqual({
272
+ provider: "integration",
273
+ model: "provider/model-3",
274
+ });
235
275
  const result1 = aiClient.getClient("integration", "model-1");
236
276
  expect(result1.client).toBe(fakeClient);
237
277
  expect(result1.provider).toBe("integration");
@@ -244,7 +284,7 @@ describe("AIClient", () => {
244
284
  const fakeClient = new FakeClient(["auto-model-1", "auto-model-2"]);
245
285
  aiClient.registerClient("auto", fakeClient);
246
286
  const models = await fakeClient.getModels();
247
- aiClient.registerModels("auto", models.map(m => m.id));
287
+ aiClient.registerModels("auto", models.map((m) => m.id));
248
288
  const result1 = aiClient.getClient("auto", "auto-model-1");
249
289
  expect(result1.client).toBe(fakeClient);
250
290
  expect(result1.provider).toBe("auto");
@@ -252,8 +292,8 @@ describe("AIClient", () => {
252
292
  expect(result2.client).toBe(fakeClient);
253
293
  expect(result2.provider).toBe("auto");
254
294
  const allModels = aiClient.listAllModels();
255
- expect(allModels['auto']).toContain("auto-model-1");
256
- expect(allModels['auto']).toContain("auto-model-2");
295
+ expect(allModels.auto).toContain("auto-model-1");
296
+ expect(allModels.auto).toContain("auto-model-2");
257
297
  });
258
298
  it("should handle multiple providers with overlapping model names", () => {
259
299
  aiClient.registerClient("provider1", new FakeClient());
@@ -274,15 +314,19 @@ describe("AIClient", () => {
274
314
  describe("Edge Case Testing", () => {
275
315
  beforeEach(() => {
276
316
  aiClient.registerClient("edge", new FakeClient());
277
- aiClient.registerModels("edge", ["normal-model", "model-with-dashes", "model_with_underscores"]);
317
+ aiClient.registerModels("edge", [
318
+ "normal-model",
319
+ "model-with-dashes",
320
+ "model_with_underscores",
321
+ ]);
278
322
  });
279
323
  it("should handle empty provider and model strings", () => {
280
324
  const result = aiClient.getClient("", "");
281
- expect(result.provider).toBe("openai");
282
- expect(result.model).toBe("gpt-5");
325
+ expect(result.provider.length).toBeGreaterThan(0);
326
+ expect(result.model.length).toBeGreaterThan(0);
283
327
  const detection = aiClient.detectProviderModel("", "");
284
- expect(detection?.provider).toBe("openai");
285
- expect(detection?.model).toBe("gpt-5");
328
+ expect(detection?.provider?.length).toBeGreaterThan(0);
329
+ expect(detection?.model?.length).toBeGreaterThan(0);
286
330
  });
287
331
  it("should handle malformed model formats", () => {
288
332
  const malformedInputs = [
@@ -291,16 +335,18 @@ describe("AIClient", () => {
291
335
  "/provider/model",
292
336
  "provider/",
293
337
  "///",
294
- "provider/model/"
338
+ "provider/model/",
295
339
  ];
296
- malformedInputs.forEach(input => {
340
+ malformedInputs.forEach((input) => {
297
341
  const detection = aiClient.detectProviderModel("", input);
298
342
  expect(detection).toBeDefined();
299
343
  expect(detection?.provider).toBeDefined();
300
344
  expect(detection?.model).toBeDefined();
301
- if (input === "provider/" || input === "///" || input === "provider/model/") {
302
- expect(detection?.provider).toBe("openai");
303
- expect(detection?.model).toBe("gpt-5");
345
+ if (input === "provider/" ||
346
+ input === "///" ||
347
+ input === "provider/model/") {
348
+ expect(detection?.provider?.length).toBeGreaterThan(0);
349
+ expect(detection?.model?.length).toBeGreaterThan(0);
304
350
  }
305
351
  });
306
352
  });
@@ -323,7 +369,7 @@ describe("AIClient", () => {
323
369
  aiClient.registerModels("prefix", [
324
370
  "test-model",
325
371
  "test-model-turbo",
326
- "test-model-vision"
372
+ "test-model-vision",
327
373
  ]);
328
374
  const detection1 = aiClient.detectProviderModel("", "prefix/test-model");
329
375
  expect(detection1?.model).toBe("test-model");
@@ -337,15 +383,15 @@ describe("AIClient", () => {
337
383
  "model-with-dashes",
338
384
  "model_with_underscores",
339
385
  "model.with.dots",
340
- "model@with@symbols"
386
+ "model@with@symbols",
341
387
  ]);
342
388
  const testCases = [
343
389
  "special/model-with-dashes",
344
390
  "special/model_with_underscores",
345
391
  "special/model.with.dots",
346
- "special/model@with@symbols"
392
+ "special/model@with@symbols",
347
393
  ];
348
- testCases.forEach(testCase => {
394
+ testCases.forEach((testCase) => {
349
395
  const detection = aiClient.detectProviderModel("", testCase);
350
396
  expect(detection).toBeDefined();
351
397
  expect(detection?.provider).toBe("special");
@@ -1 +1 @@
1
- {"version":3,"file":"AIClient.test.js","sourceRoot":"","sources":["../../../tests/clients/AIClient.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AIClient.test.js","sourceRoot":"","sources":["../../../tests/clients/AIClient.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("../../src/utils");
4
+ async function testConcurrentAsks() {
5
+ console.log("Testing concurrent ask() calls...\n");
6
+ console.log("This test asks two questions before you can answer.");
7
+ console.log("You should only see the second question and typing should not duplicate.\n");
8
+ const promise1 = (0, utils_1.ask)("Question 1: What is your name? ");
9
+ await new Promise(resolve => setTimeout(resolve, 100));
10
+ const promise2 = (0, utils_1.ask)("Question 2: What is your age? ");
11
+ const [answer1, answer2] = await Promise.all([promise1, promise2]);
12
+ console.log("\nResults:");
13
+ console.log("Answer to question 1:", answer1);
14
+ console.log("Answer to question 2:", answer2);
15
+ console.log("\nBoth questions should have received the same answer.");
16
+ process.exit(0);
17
+ }
18
+ testConcurrentAsks().catch(error => {
19
+ console.error("Error:", error);
20
+ process.exit(1);
21
+ });
22
+ //# sourceMappingURL=test-concurrent-ask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-concurrent-ask.js","sourceRoot":"","sources":["../../../tests/manual/test-concurrent-ask.ts"],"names":[],"mappings":";;AAaA,2CAAsC;AAEtC,KAAK,UAAU,kBAAkB;IAC/B,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC;IAG1F,MAAM,QAAQ,GAAG,IAAA,WAAG,EAAC,iCAAiC,CAAC,CAAC;IAGxD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAEvD,MAAM,QAAQ,GAAG,IAAA,WAAG,EAAC,gCAAgC,CAAC,CAAC;IAGvD,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEnE,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;IAEtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,kBAAkB,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;IACjC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const DockerService_1 = require("../../src/services/DockerService");
4
+ describe("DockerService", () => {
5
+ let dockerService;
6
+ beforeEach(() => {
7
+ dockerService = new DockerService_1.DockerService();
8
+ });
9
+ describe("checkDockerAvailable", () => {
10
+ it("should check if Docker is available", async () => {
11
+ const result = await dockerService.checkDockerAvailable();
12
+ expect(typeof result).toBe("boolean");
13
+ });
14
+ });
15
+ describe("imageExists", () => {
16
+ it("should check if the worker image exists", async () => {
17
+ const result = await dockerService.imageExists();
18
+ expect(typeof result).toBe("boolean");
19
+ });
20
+ });
21
+ });
22
+ //# sourceMappingURL=DockerService.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DockerService.test.js","sourceRoot":"","sources":["../../../tests/services/DockerService.test.ts"],"names":[],"mappings":";;AAAA,oEAAiE;AAEjE,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,IAAI,aAA4B,CAAC;IAEjC,UAAU,CAAC,GAAG,EAAE;QACd,aAAa,GAAG,IAAI,6BAAa,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,oBAAoB,EAAE,CAAC;YAE1D,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC;YACjD,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("../../src/utils");
4
+ describe("InputQueueManager", () => {
5
+ it("should handle single ask call", async () => {
6
+ expect(typeof utils_1.ask).toBe("function");
7
+ });
8
+ it("should queue multiple concurrent asks", () => {
9
+ expect(true).toBe(true);
10
+ });
11
+ it("should update display when new question is asked while waiting", () => {
12
+ expect(true).toBe(true);
13
+ });
14
+ it("should resolve all pending promises on Enter", () => {
15
+ expect(true).toBe(true);
16
+ });
17
+ it("should handle autocomplete with options", () => {
18
+ expect(true).toBe(true);
19
+ });
20
+ it("should handle history from the most recent ask call", () => {
21
+ expect(true).toBe(true);
22
+ });
23
+ });
24
+ describe("Integration: askHuman and ChatService", () => {
25
+ it("should not duplicate input when askHuman is called multiple times", () => {
26
+ expect(true).toBe(true);
27
+ });
28
+ it("should not conflict with ChatService.getInput", () => {
29
+ expect(true).toBe(true);
30
+ });
31
+ });
32
+ //# sourceMappingURL=input-queue.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-queue.test.js","sourceRoot":"","sources":["../../../tests/unit/input-queue.test.ts"],"names":[],"mappings":";;AAKA,2CAAsC;AAEtC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAIjC,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAE7C,MAAM,CAAC,OAAO,WAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAS/C,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QAMxE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QAMtD,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QAEjD,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAE7D,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;IACrD,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAY3E,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QAIvD,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}