@tyvm/knowhow 0.0.108-dev.c7d102c → 0.0.108-dev.d003f8f

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 (156) hide show
  1. package/package.json +2 -3
  2. package/src/agents/tools/index.ts +0 -1
  3. package/src/agents/tools/list.ts +0 -2
  4. package/src/chat/CliChatService.ts +10 -1
  5. package/src/chat/renderer/CompactRenderer.ts +20 -0
  6. package/src/chat/renderer/ConsoleRenderer.ts +19 -0
  7. package/src/chat/renderer/FancyRenderer.ts +19 -0
  8. package/src/chat/renderer/types.ts +11 -0
  9. package/src/cli.ts +91 -664
  10. package/src/clients/index.ts +6 -5
  11. package/src/commands/agent.ts +246 -0
  12. package/src/commands/misc.ts +174 -0
  13. package/src/commands/modules.ts +182 -0
  14. package/src/commands/services.ts +77 -0
  15. package/src/commands/workers.ts +160 -0
  16. package/src/config.ts +37 -0
  17. package/src/index.ts +1 -0
  18. package/src/logger.ts +200 -0
  19. package/src/plugins/plugins.ts +0 -21
  20. package/src/processors/JsonCompressor.ts +3 -3
  21. package/src/services/EventService.ts +57 -1
  22. package/src/services/modules/index.ts +67 -49
  23. package/src/services/modules/types.ts +4 -0
  24. package/src/tunnel.ts +216 -0
  25. package/src/types.ts +0 -1
  26. package/src/worker.ts +65 -336
  27. package/src/workers/auth/WsMiddleware.ts +99 -0
  28. package/src/workers/auth/authMiddleware.ts +104 -0
  29. package/src/workers/auth/types.ts +14 -2
  30. package/tests/unit/commands/github-credentials.test.ts +211 -0
  31. package/tests/unit/modules/moduleLoading.test.ts +39 -37
  32. package/tests/unit/plugins/pluginLoading.test.ts +0 -85
  33. package/ts_build/package.json +2 -3
  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 +13 -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 +47 -525
  52. package/ts_build/src/cli.js.map +1 -1
  53. package/ts_build/src/clients/index.js +2 -4
  54. package/ts_build/src/clients/index.js.map +1 -1
  55. package/ts_build/src/commands/agent.d.ts +6 -0
  56. package/ts_build/src/commands/agent.js +229 -0
  57. package/ts_build/src/commands/agent.js.map +1 -0
  58. package/ts_build/src/commands/misc.d.ts +10 -0
  59. package/ts_build/src/commands/misc.js +197 -0
  60. package/ts_build/src/commands/misc.js.map +1 -0
  61. package/ts_build/src/commands/modules.d.ts +3 -0
  62. package/ts_build/src/commands/modules.js +160 -0
  63. package/ts_build/src/commands/modules.js.map +1 -0
  64. package/ts_build/src/commands/services.d.ts +5 -0
  65. package/ts_build/src/commands/services.js +87 -0
  66. package/ts_build/src/commands/services.js.map +1 -0
  67. package/ts_build/src/commands/workers.d.ts +6 -0
  68. package/ts_build/src/commands/workers.js +163 -0
  69. package/ts_build/src/commands/workers.js.map +1 -0
  70. package/ts_build/src/config.d.ts +1 -0
  71. package/ts_build/src/config.js +32 -0
  72. package/ts_build/src/config.js.map +1 -1
  73. package/ts_build/src/index.d.ts +1 -0
  74. package/ts_build/src/index.js +3 -1
  75. package/ts_build/src/index.js.map +1 -1
  76. package/ts_build/src/logger.d.ts +21 -0
  77. package/ts_build/src/logger.js +109 -0
  78. package/ts_build/src/logger.js.map +1 -0
  79. package/ts_build/src/plugins/plugins.d.ts +0 -2
  80. package/ts_build/src/plugins/plugins.js +0 -11
  81. package/ts_build/src/plugins/plugins.js.map +1 -1
  82. package/ts_build/src/processors/JsonCompressor.js +1 -1
  83. package/ts_build/src/services/EventService.d.ts +6 -1
  84. package/ts_build/src/services/EventService.js +28 -0
  85. package/ts_build/src/services/EventService.js.map +1 -1
  86. package/ts_build/src/services/modules/index.d.ts +33 -0
  87. package/ts_build/src/services/modules/index.js +44 -44
  88. package/ts_build/src/services/modules/index.js.map +1 -1
  89. package/ts_build/src/services/modules/types.d.ts +4 -0
  90. package/ts_build/src/tunnel.d.ts +27 -0
  91. package/ts_build/src/tunnel.js +112 -0
  92. package/ts_build/src/tunnel.js.map +1 -0
  93. package/ts_build/src/types.d.ts +0 -1
  94. package/ts_build/src/types.js.map +1 -1
  95. package/ts_build/src/worker.d.ts +1 -4
  96. package/ts_build/src/worker.js +38 -244
  97. package/ts_build/src/worker.js.map +1 -1
  98. package/ts_build/src/workers/auth/WsMiddleware.d.ts +8 -0
  99. package/ts_build/src/workers/auth/WsMiddleware.js +65 -0
  100. package/ts_build/src/workers/auth/WsMiddleware.js.map +1 -0
  101. package/ts_build/src/workers/auth/authMiddleware.d.ts +3 -0
  102. package/ts_build/src/workers/auth/authMiddleware.js +60 -0
  103. package/ts_build/src/workers/auth/authMiddleware.js.map +1 -0
  104. package/ts_build/src/workers/auth/types.d.ts +8 -1
  105. package/ts_build/tests/unit/commands/github-credentials.test.d.ts +1 -0
  106. package/ts_build/tests/unit/commands/github-credentials.test.js +146 -0
  107. package/ts_build/tests/unit/commands/github-credentials.test.js.map +1 -0
  108. package/ts_build/tests/unit/modules/moduleLoading.test.js +20 -26
  109. package/ts_build/tests/unit/modules/moduleLoading.test.js.map +1 -1
  110. package/ts_build/tests/unit/plugins/pluginLoading.test.js +0 -65
  111. package/ts_build/tests/unit/plugins/pluginLoading.test.js.map +1 -1
  112. package/src/agents/tools/executeScript/README.md +0 -94
  113. package/src/agents/tools/executeScript/definition.ts +0 -79
  114. package/src/agents/tools/executeScript/examples/dependency-injection-validation.ts +0 -272
  115. package/src/agents/tools/executeScript/examples/quick-test.ts +0 -74
  116. package/src/agents/tools/executeScript/examples/serialization-test.ts +0 -321
  117. package/src/agents/tools/executeScript/examples/test-runner.ts +0 -197
  118. package/src/agents/tools/executeScript/index.ts +0 -98
  119. package/src/services/script-execution/SandboxContext.ts +0 -282
  120. package/src/services/script-execution/ScriptExecutor.ts +0 -441
  121. package/src/services/script-execution/ScriptPolicy.ts +0 -194
  122. package/src/services/script-execution/ScriptTracer.ts +0 -249
  123. package/src/services/script-execution/types.ts +0 -134
  124. package/ts_build/src/agents/tools/executeScript/definition.d.ts +0 -2
  125. package/ts_build/src/agents/tools/executeScript/definition.js +0 -76
  126. package/ts_build/src/agents/tools/executeScript/definition.js.map +0 -1
  127. package/ts_build/src/agents/tools/executeScript/examples/dependency-injection-validation.d.ts +0 -18
  128. package/ts_build/src/agents/tools/executeScript/examples/dependency-injection-validation.js +0 -192
  129. package/ts_build/src/agents/tools/executeScript/examples/dependency-injection-validation.js.map +0 -1
  130. package/ts_build/src/agents/tools/executeScript/examples/quick-test.d.ts +0 -3
  131. package/ts_build/src/agents/tools/executeScript/examples/quick-test.js +0 -64
  132. package/ts_build/src/agents/tools/executeScript/examples/quick-test.js.map +0 -1
  133. package/ts_build/src/agents/tools/executeScript/examples/serialization-test.d.ts +0 -15
  134. package/ts_build/src/agents/tools/executeScript/examples/serialization-test.js +0 -266
  135. package/ts_build/src/agents/tools/executeScript/examples/serialization-test.js.map +0 -1
  136. package/ts_build/src/agents/tools/executeScript/examples/test-runner.d.ts +0 -4
  137. package/ts_build/src/agents/tools/executeScript/examples/test-runner.js +0 -208
  138. package/ts_build/src/agents/tools/executeScript/examples/test-runner.js.map +0 -1
  139. package/ts_build/src/agents/tools/executeScript/index.d.ts +0 -28
  140. package/ts_build/src/agents/tools/executeScript/index.js +0 -72
  141. package/ts_build/src/agents/tools/executeScript/index.js.map +0 -1
  142. package/ts_build/src/services/script-execution/SandboxContext.d.ts +0 -34
  143. package/ts_build/src/services/script-execution/SandboxContext.js +0 -189
  144. package/ts_build/src/services/script-execution/SandboxContext.js.map +0 -1
  145. package/ts_build/src/services/script-execution/ScriptExecutor.d.ts +0 -19
  146. package/ts_build/src/services/script-execution/ScriptExecutor.js +0 -269
  147. package/ts_build/src/services/script-execution/ScriptExecutor.js.map +0 -1
  148. package/ts_build/src/services/script-execution/ScriptPolicy.d.ts +0 -28
  149. package/ts_build/src/services/script-execution/ScriptPolicy.js +0 -115
  150. package/ts_build/src/services/script-execution/ScriptPolicy.js.map +0 -1
  151. package/ts_build/src/services/script-execution/ScriptTracer.d.ts +0 -19
  152. package/ts_build/src/services/script-execution/ScriptTracer.js +0 -186
  153. package/ts_build/src/services/script-execution/ScriptTracer.js.map +0 -1
  154. package/ts_build/src/services/script-execution/types.d.ts +0 -108
  155. package/ts_build/src/services/script-execution/types.js +0 -3
  156. 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.c7d102c",
3
+ "version": "0.0.108-dev.d003f8f",
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.4",
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",
@@ -20,7 +20,6 @@ export * from "./askHuman";
20
20
  export * from "./aiClient";
21
21
  export * from "./googleSearch";
22
22
  export * from "./stringReplace";
23
- export * from "./executeScript";
24
23
  export * from "./startAgentTask";
25
24
  export * from "./ycmd";
26
25
  export * from "./mcp";
@@ -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
- value = await editor({ message: prompt });
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.