@tyvm/knowhow 0.0.108-dev.126b29e → 0.0.108-dev.80f1ac6
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 +10 -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 +91 -664
- package/src/clients/index.ts +6 -5
- package/src/clients/types.ts +12 -4
- package/src/commands/agent.ts +246 -0
- package/src/commands/misc.ts +174 -0
- package/src/commands/modules.ts +182 -0
- package/src/commands/services.ts +77 -0
- package/src/commands/workers.ts +160 -0
- package/src/config.ts +37 -0
- package/src/fileSync.ts +14 -2
- package/src/index.ts +1 -0
- package/src/logger.ts +197 -0
- package/src/plugins/plugins.ts +0 -21
- package/src/processors/JsonCompressor.ts +6 -6
- package/src/services/EventService.ts +61 -1
- package/src/services/KnowhowClient.ts +12 -2
- package/src/services/S3.ts +0 -10
- package/src/services/modules/index.ts +70 -50
- package/src/services/modules/types.ts +4 -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/commands/github-credentials.test.ts +211 -0
- package/tests/unit/modules/moduleLoading.test.ts +39 -37
- 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 +13 -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 +47 -525
- package/ts_build/src/cli.js.map +1 -1
- package/ts_build/src/clients/index.js +2 -4
- package/ts_build/src/clients/index.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 +197 -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 +87 -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/fileSync.js +10 -2
- package/ts_build/src/fileSync.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/logger.d.ts +21 -0
- package/ts_build/src/logger.js +106 -0
- package/ts_build/src/logger.js.map +1 -0
- 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/EventService.d.ts +6 -1
- package/ts_build/src/services/EventService.js +29 -0
- package/ts_build/src/services/EventService.js.map +1 -1
- package/ts_build/src/services/KnowhowClient.d.ts +1 -1
- package/ts_build/src/services/KnowhowClient.js +8 -2
- package/ts_build/src/services/KnowhowClient.js.map +1 -1
- package/ts_build/src/services/S3.js +0 -7
- package/ts_build/src/services/S3.js.map +1 -1
- package/ts_build/src/services/modules/index.d.ts +33 -0
- package/ts_build/src/services/modules/index.js +46 -45
- package/ts_build/src/services/modules/index.js.map +1 -1
- package/ts_build/src/services/modules/types.d.ts +4 -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/commands/github-credentials.test.d.ts +1 -0
- package/ts_build/tests/unit/commands/github-credentials.test.js +146 -0
- package/ts_build/tests/unit/commands/github-credentials.test.js.map +1 -0
- package/ts_build/tests/unit/modules/moduleLoading.test.js +20 -26
- 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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tyvm/knowhow",
|
|
3
|
-
"version": "0.0.108-dev.
|
|
3
|
+
"version": "0.0.108-dev.80f1ac6",
|
|
4
4
|
"description": "ai cli with plugins and agents",
|
|
5
5
|
"main": "ts_build/src/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -55,13 +55,12 @@
|
|
|
55
55
|
"@inquirer/editor": "^4.2.18",
|
|
56
56
|
"@modelcontextprotocol/sdk": "^1.13.3",
|
|
57
57
|
"@simplewebauthn/server": "^13.3.0",
|
|
58
|
-
"@tyvm/knowhow-tunnel": "0.0.
|
|
58
|
+
"@tyvm/knowhow-tunnel": "0.0.5",
|
|
59
59
|
"commander": "^14.0.0",
|
|
60
60
|
"diff": "^5.2.0",
|
|
61
61
|
"express": "^4.19.2",
|
|
62
62
|
"gitignore-to-glob": "^0.3.0",
|
|
63
63
|
"glob": "11.1.0",
|
|
64
|
-
"isolated-vm": "^5.0.4",
|
|
65
64
|
"jiti": "^2.6.1",
|
|
66
65
|
"marked": "^10.0.0",
|
|
67
66
|
"marked-terminal": "^6.2.0",
|
package/src/agents/base/base.ts
CHANGED
|
@@ -317,6 +317,15 @@ export abstract class BaseAgent implements IAgent {
|
|
|
317
317
|
if (trimmed.startsWith("✅") || /^[\d\.\-\*]/.test(trimmed)) return true;
|
|
318
318
|
}
|
|
319
319
|
|
|
320
|
+
// Detect JSON-wrapped finalAnswer output, e.g. {"answer":"..."} or {"finalAnswer":"..."}
|
|
321
|
+
try {
|
|
322
|
+
const parsed = JSON.parse(trimmed);
|
|
323
|
+
if (parsed && typeof parsed === "object") {
|
|
324
|
+
if (typeof parsed.answer === "string") return true;
|
|
325
|
+
if (typeof parsed.finalAnswer === "string") return true;
|
|
326
|
+
}
|
|
327
|
+
} catch (_) {}
|
|
328
|
+
|
|
320
329
|
return false;
|
|
321
330
|
}
|
|
322
331
|
|
package/src/agents/tools/list.ts
CHANGED
|
@@ -6,7 +6,6 @@ import * as ycmd from "./ycmd/definitions";
|
|
|
6
6
|
import * as language from "./language/definitions";
|
|
7
7
|
import * as mcp from "./mcp/definitions";
|
|
8
8
|
import { googleSearchDefinition } from "./googleSearch";
|
|
9
|
-
import { executeScriptDefinition } from "./executeScript/definition";
|
|
10
9
|
import { startAgentTaskDefinition } from "./startAgentTask";
|
|
11
10
|
|
|
12
11
|
function getPluginNames(): string {
|
|
@@ -666,7 +665,6 @@ export const includedTools = [
|
|
|
666
665
|
},
|
|
667
666
|
},
|
|
668
667
|
},
|
|
669
|
-
executeScriptDefinition,
|
|
670
668
|
googleSearchDefinition,
|
|
671
669
|
startAgentTaskDefinition,
|
|
672
670
|
...ycmd.definitions,
|
|
@@ -19,6 +19,7 @@ import editor from "@inquirer/editor";
|
|
|
19
19
|
import fs from "fs";
|
|
20
20
|
import path from "path";
|
|
21
21
|
import { services } from "../services";
|
|
22
|
+
import { logger } from "../logger";
|
|
22
23
|
|
|
23
24
|
export class CliChatService implements ChatService {
|
|
24
25
|
private context: ChatContext;
|
|
@@ -265,7 +266,15 @@ export class CliChatService implements ChatService {
|
|
|
265
266
|
if (this.context.voiceMode) {
|
|
266
267
|
value = await voiceToText();
|
|
267
268
|
} else if (this.context.multilineMode) {
|
|
268
|
-
|
|
269
|
+
const renderer = this.context.renderer;
|
|
270
|
+
if (renderer) renderer.pause();
|
|
271
|
+
logger.silence();
|
|
272
|
+
try {
|
|
273
|
+
value = await editor({ message: prompt });
|
|
274
|
+
} finally {
|
|
275
|
+
if (renderer) renderer.resume();
|
|
276
|
+
logger.unsilence();
|
|
277
|
+
}
|
|
269
278
|
this.context.multilineMode = false; // Disable after use like original
|
|
270
279
|
} else {
|
|
271
280
|
// Use saved input history for scrollback (InputQueueManager handles reverse access)
|
|
@@ -72,6 +72,8 @@ function colorFor(n: string) {
|
|
|
72
72
|
export class CompactRenderer implements AgentRenderer {
|
|
73
73
|
private activeTaskId: string | undefined;
|
|
74
74
|
private emitter = new EventEmitter();
|
|
75
|
+
private paused = false;
|
|
76
|
+
private bufferedEvents: RenderEvent[] = [];
|
|
75
77
|
|
|
76
78
|
setActiveTaskId(id: string | undefined): void {
|
|
77
79
|
this.activeTaskId = id;
|
|
@@ -110,8 +112,26 @@ export class CompactRenderer implements AgentRenderer {
|
|
|
110
112
|
this.emitter.on("agentDone", handler);
|
|
111
113
|
}
|
|
112
114
|
|
|
115
|
+
pause(): void {
|
|
116
|
+
this.paused = true;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
resume(): void {
|
|
120
|
+
this.paused = false;
|
|
121
|
+
const buffered = this.bufferedEvents.splice(0);
|
|
122
|
+
for (const event of buffered) {
|
|
123
|
+
this.render(event);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
113
127
|
render(event: RenderEvent): void {
|
|
114
128
|
if (!this.isActiveTask(event.taskId)) return;
|
|
129
|
+
|
|
130
|
+
if (this.paused) {
|
|
131
|
+
this.bufferedEvents.push(event);
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
|
|
115
135
|
this.emitter.emit(event.type, event);
|
|
116
136
|
switch (event.type) {
|
|
117
137
|
case "log":
|
|
@@ -17,6 +17,8 @@ import { EventEmitter } from "events";
|
|
|
17
17
|
export class ConsoleRenderer implements AgentRenderer {
|
|
18
18
|
private activeTaskId: string | undefined;
|
|
19
19
|
private emitter = new EventEmitter();
|
|
20
|
+
private paused = false;
|
|
21
|
+
private bufferedEvents: RenderEvent[] = [];
|
|
20
22
|
|
|
21
23
|
setActiveTaskId(taskId: string | undefined): void {
|
|
22
24
|
this.activeTaskId = taskId;
|
|
@@ -56,9 +58,26 @@ export class ConsoleRenderer implements AgentRenderer {
|
|
|
56
58
|
this.emitter.on("agentDone", handler);
|
|
57
59
|
}
|
|
58
60
|
|
|
61
|
+
pause(): void {
|
|
62
|
+
this.paused = true;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
resume(): void {
|
|
66
|
+
this.paused = false;
|
|
67
|
+
const buffered = this.bufferedEvents.splice(0);
|
|
68
|
+
for (const event of buffered) {
|
|
69
|
+
this.render(event);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
59
73
|
render(event: RenderEvent): void {
|
|
60
74
|
if (!this.isActiveTask(event.taskId)) return;
|
|
61
75
|
|
|
76
|
+
if (this.paused) {
|
|
77
|
+
this.bufferedEvents.push(event);
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
|
|
62
81
|
switch (event.type) {
|
|
63
82
|
case "log":
|
|
64
83
|
this.emitter.emit("log", event);
|
|
@@ -194,6 +194,8 @@ const toolTimers = new Map<string, number>();
|
|
|
194
194
|
export class FancyRenderer implements AgentRenderer {
|
|
195
195
|
private activeTaskId: string | undefined;
|
|
196
196
|
private emitter = new EventEmitter();
|
|
197
|
+
private paused = false;
|
|
198
|
+
private bufferedEvents: RenderEvent[] = [];
|
|
197
199
|
|
|
198
200
|
setActiveTaskId(taskId: string | undefined): void {
|
|
199
201
|
this.activeTaskId = taskId;
|
|
@@ -227,9 +229,26 @@ export class FancyRenderer implements AgentRenderer {
|
|
|
227
229
|
this.emitter.on("agentDone", handler);
|
|
228
230
|
}
|
|
229
231
|
|
|
232
|
+
pause(): void {
|
|
233
|
+
this.paused = true;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
resume(): void {
|
|
237
|
+
this.paused = false;
|
|
238
|
+
const buffered = this.bufferedEvents.splice(0);
|
|
239
|
+
for (const event of buffered) {
|
|
240
|
+
this.render(event);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
|
|
230
244
|
render(event: RenderEvent): void {
|
|
231
245
|
if (!this.isActiveTask(event.taskId)) return;
|
|
232
246
|
|
|
247
|
+
if (this.paused) {
|
|
248
|
+
this.bufferedEvents.push(event);
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
|
|
233
252
|
switch (event.type) {
|
|
234
253
|
case "log":
|
|
235
254
|
this.emitter.emit("log", event);
|
|
@@ -80,6 +80,17 @@ export interface AgentRenderer {
|
|
|
80
80
|
setActiveTaskId(taskId: string | undefined): void;
|
|
81
81
|
getActiveTaskId(): string | undefined;
|
|
82
82
|
|
|
83
|
+
/**
|
|
84
|
+
* Pause rendering - buffer any incoming events instead of printing them.
|
|
85
|
+
* Useful when an interactive UI (e.g. editor for /multi) takes over the terminal.
|
|
86
|
+
*/
|
|
87
|
+
pause(): void;
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Resume rendering - flush any buffered events and resume normal output.
|
|
91
|
+
*/
|
|
92
|
+
resume(): void;
|
|
93
|
+
|
|
83
94
|
/**
|
|
84
95
|
* Replay the last N render events (used by /logs command).
|
|
85
96
|
* If count is not provided, shows last 10.
|