@tyvm/knowhow 0.0.108 → 0.0.109-dev.e88af1e

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 (214) hide show
  1. package/README.md +45 -0
  2. package/package.json +9 -4
  3. package/scripts/build-for-node.sh +10 -24
  4. package/scripts/publish.sh +86 -0
  5. package/src/agents/base/base.ts +10 -0
  6. package/src/agents/tools/execCommand.ts +49 -6
  7. package/src/agents/tools/index.ts +0 -1
  8. package/src/agents/tools/list.ts +0 -2
  9. package/src/chat/CliChatService.ts +10 -1
  10. package/src/chat/modules/AgentModule.ts +61 -31
  11. package/src/chat/modules/SessionsModule.ts +47 -3
  12. package/src/chat/renderer/CompactRenderer.ts +20 -0
  13. package/src/chat/renderer/ConsoleRenderer.ts +19 -0
  14. package/src/chat/renderer/FancyRenderer.ts +19 -0
  15. package/src/chat/renderer/types.ts +11 -0
  16. package/src/cli.ts +91 -659
  17. package/src/clients/anthropic.ts +17 -16
  18. package/src/clients/index.ts +6 -5
  19. package/src/clients/types.ts +19 -4
  20. package/src/cloudWorker.ts +175 -113
  21. package/src/commands/agent.ts +246 -0
  22. package/src/commands/misc.ts +174 -0
  23. package/src/commands/modules.ts +217 -0
  24. package/src/commands/services.ts +77 -0
  25. package/src/commands/workers.ts +168 -0
  26. package/src/config.ts +37 -0
  27. package/src/fileSync.ts +70 -29
  28. package/src/hashes.ts +35 -13
  29. package/src/index.ts +18 -0
  30. package/src/logger.ts +197 -0
  31. package/src/plugins/embedding.ts +11 -6
  32. package/src/plugins/plugins.ts +0 -21
  33. package/src/plugins/vim.ts +5 -16
  34. package/src/processors/JsonCompressor.ts +6 -6
  35. package/src/services/EventService.ts +61 -1
  36. package/src/services/KnowhowClient.ts +34 -4
  37. package/src/services/modules/index.ts +95 -51
  38. package/src/services/modules/types.ts +6 -0
  39. package/src/tunnel.ts +216 -0
  40. package/src/types.ts +0 -1
  41. package/src/worker.ts +105 -312
  42. package/src/workers/auth/WsMiddleware.ts +99 -0
  43. package/src/workers/auth/authMiddleware.ts +104 -0
  44. package/src/workers/auth/types.ts +14 -2
  45. package/src/workers/tools/index.ts +2 -0
  46. package/src/workers/tools/reloadConfig.ts +84 -0
  47. package/tests/services/WorkerReloadConfig.test.ts +141 -0
  48. package/tests/unit/commands/github-credentials.test.ts +211 -0
  49. package/tests/unit/modules/moduleLoading.test.ts +39 -37
  50. package/tests/unit/plugins/pluginLoading.test.ts +0 -85
  51. package/ts_build/package.json +9 -4
  52. package/ts_build/src/agents/base/base.js +11 -0
  53. package/ts_build/src/agents/base/base.js.map +1 -1
  54. package/ts_build/src/agents/tools/execCommand.d.ts +1 -1
  55. package/ts_build/src/agents/tools/execCommand.js +39 -5
  56. package/ts_build/src/agents/tools/execCommand.js.map +1 -1
  57. package/ts_build/src/agents/tools/index.d.ts +0 -1
  58. package/ts_build/src/agents/tools/index.js +0 -1
  59. package/ts_build/src/agents/tools/index.js.map +1 -1
  60. package/ts_build/src/agents/tools/list.js +0 -2
  61. package/ts_build/src/agents/tools/list.js.map +1 -1
  62. package/ts_build/src/chat/CliChatService.js +13 -1
  63. package/ts_build/src/chat/CliChatService.js.map +1 -1
  64. package/ts_build/src/chat/modules/AgentModule.d.ts +1 -1
  65. package/ts_build/src/chat/modules/AgentModule.js +43 -20
  66. package/ts_build/src/chat/modules/AgentModule.js.map +1 -1
  67. package/ts_build/src/chat/modules/SessionsModule.js +37 -3
  68. package/ts_build/src/chat/modules/SessionsModule.js.map +1 -1
  69. package/ts_build/src/chat/renderer/CompactRenderer.d.ts +4 -0
  70. package/ts_build/src/chat/renderer/CompactRenderer.js +16 -0
  71. package/ts_build/src/chat/renderer/CompactRenderer.js.map +1 -1
  72. package/ts_build/src/chat/renderer/ConsoleRenderer.d.ts +4 -0
  73. package/ts_build/src/chat/renderer/ConsoleRenderer.js +16 -0
  74. package/ts_build/src/chat/renderer/ConsoleRenderer.js.map +1 -1
  75. package/ts_build/src/chat/renderer/FancyRenderer.d.ts +4 -0
  76. package/ts_build/src/chat/renderer/FancyRenderer.js +16 -0
  77. package/ts_build/src/chat/renderer/FancyRenderer.js.map +1 -1
  78. package/ts_build/src/chat/renderer/types.d.ts +2 -0
  79. package/ts_build/src/cli.js +47 -519
  80. package/ts_build/src/cli.js.map +1 -1
  81. package/ts_build/src/clients/anthropic.d.ts +5 -5
  82. package/ts_build/src/clients/anthropic.js +17 -16
  83. package/ts_build/src/clients/anthropic.js.map +1 -1
  84. package/ts_build/src/clients/index.js +2 -4
  85. package/ts_build/src/clients/index.js.map +1 -1
  86. package/ts_build/src/clients/types.d.ts +3 -2
  87. package/ts_build/src/cloudWorker.d.ts +14 -0
  88. package/ts_build/src/cloudWorker.js +105 -66
  89. package/ts_build/src/cloudWorker.js.map +1 -1
  90. package/ts_build/src/commands/agent.d.ts +6 -0
  91. package/ts_build/src/commands/agent.js +229 -0
  92. package/ts_build/src/commands/agent.js.map +1 -0
  93. package/ts_build/src/commands/misc.d.ts +10 -0
  94. package/ts_build/src/commands/misc.js +197 -0
  95. package/ts_build/src/commands/misc.js.map +1 -0
  96. package/ts_build/src/commands/modules.d.ts +3 -0
  97. package/ts_build/src/commands/modules.js +207 -0
  98. package/ts_build/src/commands/modules.js.map +1 -0
  99. package/ts_build/src/commands/services.d.ts +5 -0
  100. package/ts_build/src/commands/services.js +87 -0
  101. package/ts_build/src/commands/services.js.map +1 -0
  102. package/ts_build/src/commands/workers.d.ts +6 -0
  103. package/ts_build/src/commands/workers.js +168 -0
  104. package/ts_build/src/commands/workers.js.map +1 -0
  105. package/ts_build/src/config.d.ts +1 -0
  106. package/ts_build/src/config.js +32 -0
  107. package/ts_build/src/config.js.map +1 -1
  108. package/ts_build/src/fileSync.d.ts +6 -0
  109. package/ts_build/src/fileSync.js +50 -23
  110. package/ts_build/src/fileSync.js.map +1 -1
  111. package/ts_build/src/hashes.d.ts +2 -2
  112. package/ts_build/src/hashes.js +35 -9
  113. package/ts_build/src/hashes.js.map +1 -1
  114. package/ts_build/src/index.d.ts +1 -0
  115. package/ts_build/src/index.js +17 -1
  116. package/ts_build/src/index.js.map +1 -1
  117. package/ts_build/src/logger.d.ts +21 -0
  118. package/ts_build/src/logger.js +106 -0
  119. package/ts_build/src/logger.js.map +1 -0
  120. package/ts_build/src/plugins/embedding.js +4 -3
  121. package/ts_build/src/plugins/embedding.js.map +1 -1
  122. package/ts_build/src/plugins/plugins.d.ts +0 -2
  123. package/ts_build/src/plugins/plugins.js +0 -11
  124. package/ts_build/src/plugins/plugins.js.map +1 -1
  125. package/ts_build/src/plugins/vim.js +3 -9
  126. package/ts_build/src/plugins/vim.js.map +1 -1
  127. package/ts_build/src/processors/JsonCompressor.js +4 -4
  128. package/ts_build/src/processors/JsonCompressor.js.map +1 -1
  129. package/ts_build/src/services/EventService.d.ts +6 -1
  130. package/ts_build/src/services/EventService.js +29 -0
  131. package/ts_build/src/services/EventService.js.map +1 -1
  132. package/ts_build/src/services/KnowhowClient.d.ts +13 -1
  133. package/ts_build/src/services/KnowhowClient.js +19 -2
  134. package/ts_build/src/services/KnowhowClient.js.map +1 -1
  135. package/ts_build/src/services/modules/index.d.ts +33 -0
  136. package/ts_build/src/services/modules/index.js +67 -47
  137. package/ts_build/src/services/modules/index.js.map +1 -1
  138. package/ts_build/src/services/modules/types.d.ts +6 -0
  139. package/ts_build/src/tunnel.d.ts +27 -0
  140. package/ts_build/src/tunnel.js +112 -0
  141. package/ts_build/src/tunnel.js.map +1 -0
  142. package/ts_build/src/types.d.ts +0 -1
  143. package/ts_build/src/types.js.map +1 -1
  144. package/ts_build/src/worker.d.ts +1 -4
  145. package/ts_build/src/worker.js +59 -227
  146. package/ts_build/src/worker.js.map +1 -1
  147. package/ts_build/src/workers/auth/WsMiddleware.d.ts +8 -0
  148. package/ts_build/src/workers/auth/WsMiddleware.js +65 -0
  149. package/ts_build/src/workers/auth/WsMiddleware.js.map +1 -0
  150. package/ts_build/src/workers/auth/authMiddleware.d.ts +3 -0
  151. package/ts_build/src/workers/auth/authMiddleware.js +60 -0
  152. package/ts_build/src/workers/auth/authMiddleware.js.map +1 -0
  153. package/ts_build/src/workers/auth/types.d.ts +8 -1
  154. package/ts_build/src/workers/tools/index.d.ts +2 -0
  155. package/ts_build/src/workers/tools/index.js +4 -1
  156. package/ts_build/src/workers/tools/index.js.map +1 -1
  157. package/ts_build/src/workers/tools/reloadConfig.d.ts +14 -0
  158. package/ts_build/src/workers/tools/reloadConfig.js +48 -0
  159. package/ts_build/src/workers/tools/reloadConfig.js.map +1 -0
  160. package/ts_build/tests/services/WorkerReloadConfig.test.d.ts +1 -0
  161. package/ts_build/tests/services/WorkerReloadConfig.test.js +86 -0
  162. package/ts_build/tests/services/WorkerReloadConfig.test.js.map +1 -0
  163. package/ts_build/tests/unit/commands/github-credentials.test.d.ts +1 -0
  164. package/ts_build/tests/unit/commands/github-credentials.test.js +146 -0
  165. package/ts_build/tests/unit/commands/github-credentials.test.js.map +1 -0
  166. package/ts_build/tests/unit/modules/moduleLoading.test.js +20 -26
  167. package/ts_build/tests/unit/modules/moduleLoading.test.js.map +1 -1
  168. package/ts_build/tests/unit/plugins/pluginLoading.test.js +0 -65
  169. package/ts_build/tests/unit/plugins/pluginLoading.test.js.map +1 -1
  170. package/src/agents/tools/executeScript/README.md +0 -94
  171. package/src/agents/tools/executeScript/definition.ts +0 -79
  172. package/src/agents/tools/executeScript/examples/dependency-injection-validation.ts +0 -272
  173. package/src/agents/tools/executeScript/examples/quick-test.ts +0 -74
  174. package/src/agents/tools/executeScript/examples/serialization-test.ts +0 -321
  175. package/src/agents/tools/executeScript/examples/test-runner.ts +0 -197
  176. package/src/agents/tools/executeScript/index.ts +0 -98
  177. package/src/services/script-execution/SandboxContext.ts +0 -282
  178. package/src/services/script-execution/ScriptExecutor.ts +0 -441
  179. package/src/services/script-execution/ScriptPolicy.ts +0 -194
  180. package/src/services/script-execution/ScriptTracer.ts +0 -249
  181. package/src/services/script-execution/types.ts +0 -134
  182. package/ts_build/src/agents/tools/executeScript/definition.d.ts +0 -2
  183. package/ts_build/src/agents/tools/executeScript/definition.js +0 -76
  184. package/ts_build/src/agents/tools/executeScript/definition.js.map +0 -1
  185. package/ts_build/src/agents/tools/executeScript/examples/dependency-injection-validation.d.ts +0 -18
  186. package/ts_build/src/agents/tools/executeScript/examples/dependency-injection-validation.js +0 -192
  187. package/ts_build/src/agents/tools/executeScript/examples/dependency-injection-validation.js.map +0 -1
  188. package/ts_build/src/agents/tools/executeScript/examples/quick-test.d.ts +0 -3
  189. package/ts_build/src/agents/tools/executeScript/examples/quick-test.js +0 -64
  190. package/ts_build/src/agents/tools/executeScript/examples/quick-test.js.map +0 -1
  191. package/ts_build/src/agents/tools/executeScript/examples/serialization-test.d.ts +0 -15
  192. package/ts_build/src/agents/tools/executeScript/examples/serialization-test.js +0 -266
  193. package/ts_build/src/agents/tools/executeScript/examples/serialization-test.js.map +0 -1
  194. package/ts_build/src/agents/tools/executeScript/examples/test-runner.d.ts +0 -4
  195. package/ts_build/src/agents/tools/executeScript/examples/test-runner.js +0 -208
  196. package/ts_build/src/agents/tools/executeScript/examples/test-runner.js.map +0 -1
  197. package/ts_build/src/agents/tools/executeScript/index.d.ts +0 -28
  198. package/ts_build/src/agents/tools/executeScript/index.js +0 -72
  199. package/ts_build/src/agents/tools/executeScript/index.js.map +0 -1
  200. package/ts_build/src/services/script-execution/SandboxContext.d.ts +0 -34
  201. package/ts_build/src/services/script-execution/SandboxContext.js +0 -189
  202. package/ts_build/src/services/script-execution/SandboxContext.js.map +0 -1
  203. package/ts_build/src/services/script-execution/ScriptExecutor.d.ts +0 -19
  204. package/ts_build/src/services/script-execution/ScriptExecutor.js +0 -269
  205. package/ts_build/src/services/script-execution/ScriptExecutor.js.map +0 -1
  206. package/ts_build/src/services/script-execution/ScriptPolicy.d.ts +0 -28
  207. package/ts_build/src/services/script-execution/ScriptPolicy.js +0 -115
  208. package/ts_build/src/services/script-execution/ScriptPolicy.js.map +0 -1
  209. package/ts_build/src/services/script-execution/ScriptTracer.d.ts +0 -19
  210. package/ts_build/src/services/script-execution/ScriptTracer.js +0 -186
  211. package/ts_build/src/services/script-execution/ScriptTracer.js.map +0 -1
  212. package/ts_build/src/services/script-execution/types.d.ts +0 -108
  213. package/ts_build/src/services/script-execution/types.js +0 -3
  214. package/ts_build/src/services/script-execution/types.js.map +0 -1
@@ -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.