@tyvm/knowhow 0.0.138 → 0.0.141

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 (173) hide show
  1. package/autodoc/chat-guide.md +1 -0
  2. package/package.json +5 -2
  3. package/scripts/build-for-node.sh +4 -4
  4. package/src/agents/base/base.ts +254 -29
  5. package/src/agents/patcher/patcher.ts +1 -1
  6. package/src/agents/researcher/researcher.ts +2 -2
  7. package/src/agents/tools/agentCall.ts +6 -0
  8. package/src/agents/tools/connectAgent.ts +353 -0
  9. package/src/agents/tools/index.ts +6 -0
  10. package/src/agents/tools/list.ts +48 -0
  11. package/src/agents/tools/observe.ts +245 -0
  12. package/src/agents/tools/replyToParent.ts +122 -0
  13. package/src/agents/tools/runGenerate.ts +209 -0
  14. package/src/agents/tools/sendAgentMessage.ts +138 -0
  15. package/src/agents/tools/startAgentTask.ts +92 -5
  16. package/src/agents/tools/waitForAgentCompleted.ts +269 -0
  17. package/src/ai.ts +1 -0
  18. package/src/chat/modules/AgentModule.ts +89 -27
  19. package/src/chat/modules/SessionsModule.ts +6 -10
  20. package/src/clients/contextLimits.ts +26 -0
  21. package/src/clients/pricing/anthropic.ts +12 -0
  22. package/src/commands/agent.ts +22 -0
  23. package/src/commands/agents.ts +83 -0
  24. package/src/commands/misc.ts +6 -0
  25. package/src/commands/modules.ts +159 -7
  26. package/src/commands/services.ts +14 -0
  27. package/src/generate.ts +25 -3
  28. package/src/services/AgentService.ts +21 -3
  29. package/src/services/AgentSyncFs.ts +56 -0
  30. package/src/services/AgentSyncKnowhowWeb.ts +1 -1
  31. package/src/services/EventService.ts +4 -1
  32. package/src/services/KnowhowClient.ts +7 -0
  33. package/src/services/LazyToolsService.ts +7 -3
  34. package/src/services/MinimalToolsService.ts +15 -7
  35. package/src/services/SyncedAgentWatcher.ts +2 -0
  36. package/src/services/SyncerService.ts +35 -6
  37. package/src/services/Tools.ts +43 -3
  38. package/src/services/modules/index.ts +127 -46
  39. package/src/types.ts +5 -0
  40. package/tests/agents/interrupt.test.ts +11 -18
  41. package/tests/agents/observe-base.test.ts +183 -0
  42. package/tests/agents/tools/connectAgent.test.ts +138 -0
  43. package/tests/agents/tools/observe.test.ts +179 -0
  44. package/tests/agents/tools/replyToParent.test.ts +125 -0
  45. package/tests/agents/tools/sendAgentMessage.test.ts +99 -0
  46. package/tests/agents/tools/waitForAgentCompleted.test.ts +147 -0
  47. package/tests/chat/detach-attach-rendering.test.ts +315 -0
  48. package/tests/clients/contextLimits.test.ts +23 -1
  49. package/tests/clients/pricing.test.ts +20 -1
  50. package/tests/services/Tools.test.ts +172 -9
  51. package/tests/unit/modules/moduleLoading.test.ts +69 -0
  52. package/ts_build/package.json +5 -2
  53. package/ts_build/src/agents/base/base.d.ts +24 -1
  54. package/ts_build/src/agents/base/base.js +111 -16
  55. package/ts_build/src/agents/base/base.js.map +1 -1
  56. package/ts_build/src/agents/patcher/patcher.js +1 -1
  57. package/ts_build/src/agents/patcher/patcher.js.map +1 -1
  58. package/ts_build/src/agents/researcher/researcher.js +2 -2
  59. package/ts_build/src/agents/researcher/researcher.js.map +1 -1
  60. package/ts_build/src/agents/tools/agentCall.js.map +1 -1
  61. package/ts_build/src/agents/tools/connectAgent.d.ts +21 -0
  62. package/ts_build/src/agents/tools/connectAgent.js +284 -0
  63. package/ts_build/src/agents/tools/connectAgent.js.map +1 -0
  64. package/ts_build/src/agents/tools/index.d.ts +6 -0
  65. package/ts_build/src/agents/tools/index.js +6 -0
  66. package/ts_build/src/agents/tools/index.js.map +1 -1
  67. package/ts_build/src/agents/tools/list.js +40 -0
  68. package/ts_build/src/agents/tools/list.js.map +1 -1
  69. package/ts_build/src/agents/tools/observe.d.ts +20 -0
  70. package/ts_build/src/agents/tools/observe.js +144 -0
  71. package/ts_build/src/agents/tools/observe.js.map +1 -0
  72. package/ts_build/src/agents/tools/replyToParent.d.ts +4 -0
  73. package/ts_build/src/agents/tools/replyToParent.js +118 -0
  74. package/ts_build/src/agents/tools/replyToParent.js.map +1 -0
  75. package/ts_build/src/agents/tools/runGenerate.d.ts +19 -0
  76. package/ts_build/src/agents/tools/runGenerate.js +138 -0
  77. package/ts_build/src/agents/tools/runGenerate.js.map +1 -0
  78. package/ts_build/src/agents/tools/sendAgentMessage.d.ts +11 -0
  79. package/ts_build/src/agents/tools/sendAgentMessage.js +118 -0
  80. package/ts_build/src/agents/tools/sendAgentMessage.js.map +1 -0
  81. package/ts_build/src/agents/tools/startAgentTask.d.ts +7 -0
  82. package/ts_build/src/agents/tools/startAgentTask.js +53 -6
  83. package/ts_build/src/agents/tools/startAgentTask.js.map +1 -1
  84. package/ts_build/src/agents/tools/waitForAgentCompleted.d.ts +10 -0
  85. package/ts_build/src/agents/tools/waitForAgentCompleted.js +229 -0
  86. package/ts_build/src/agents/tools/waitForAgentCompleted.js.map +1 -0
  87. package/ts_build/src/ai.d.ts +1 -0
  88. package/ts_build/src/ai.js.map +1 -1
  89. package/ts_build/src/chat/modules/AgentModule.d.ts +3 -1
  90. package/ts_build/src/chat/modules/AgentModule.js +46 -21
  91. package/ts_build/src/chat/modules/AgentModule.js.map +1 -1
  92. package/ts_build/src/chat/modules/SessionsModule.js +1 -6
  93. package/ts_build/src/chat/modules/SessionsModule.js.map +1 -1
  94. package/ts_build/src/clients/contextLimits.js +21 -0
  95. package/ts_build/src/clients/contextLimits.js.map +1 -1
  96. package/ts_build/src/clients/pricing/anthropic.d.ts +2 -0
  97. package/ts_build/src/clients/pricing/anthropic.js +9 -0
  98. package/ts_build/src/clients/pricing/anthropic.js.map +1 -1
  99. package/ts_build/src/commands/agent.js +11 -0
  100. package/ts_build/src/commands/agent.js.map +1 -1
  101. package/ts_build/src/commands/agents.js +61 -0
  102. package/ts_build/src/commands/agents.js.map +1 -1
  103. package/ts_build/src/commands/misc.js +2 -0
  104. package/ts_build/src/commands/misc.js.map +1 -1
  105. package/ts_build/src/commands/modules.js +86 -7
  106. package/ts_build/src/commands/modules.js.map +1 -1
  107. package/ts_build/src/commands/services.js +10 -0
  108. package/ts_build/src/commands/services.js.map +1 -1
  109. package/ts_build/src/generate.d.ts +2 -0
  110. package/ts_build/src/generate.js +11 -3
  111. package/ts_build/src/generate.js.map +1 -1
  112. package/ts_build/src/services/AgentService.d.ts +4 -1
  113. package/ts_build/src/services/AgentService.js +9 -2
  114. package/ts_build/src/services/AgentService.js.map +1 -1
  115. package/ts_build/src/services/AgentSyncFs.d.ts +2 -0
  116. package/ts_build/src/services/AgentSyncFs.js +35 -0
  117. package/ts_build/src/services/AgentSyncFs.js.map +1 -1
  118. package/ts_build/src/services/AgentSyncKnowhowWeb.d.ts +1 -1
  119. package/ts_build/src/services/EventService.d.ts +4 -1
  120. package/ts_build/src/services/EventService.js.map +1 -1
  121. package/ts_build/src/services/KnowhowClient.js +3 -0
  122. package/ts_build/src/services/KnowhowClient.js.map +1 -1
  123. package/ts_build/src/services/LazyToolsService.d.ts +2 -2
  124. package/ts_build/src/services/LazyToolsService.js +2 -2
  125. package/ts_build/src/services/LazyToolsService.js.map +1 -1
  126. package/ts_build/src/services/MinimalToolsService.d.ts +2 -2
  127. package/ts_build/src/services/MinimalToolsService.js +6 -6
  128. package/ts_build/src/services/MinimalToolsService.js.map +1 -1
  129. package/ts_build/src/services/SyncedAgentWatcher.d.ts +1 -0
  130. package/ts_build/src/services/SyncedAgentWatcher.js.map +1 -1
  131. package/ts_build/src/services/SyncerService.d.ts +2 -1
  132. package/ts_build/src/services/SyncerService.js +8 -2
  133. package/ts_build/src/services/SyncerService.js.map +1 -1
  134. package/ts_build/src/services/Tools.d.ts +6 -1
  135. package/ts_build/src/services/Tools.js +9 -3
  136. package/ts_build/src/services/Tools.js.map +1 -1
  137. package/ts_build/src/services/modules/index.d.ts +1 -1
  138. package/ts_build/src/services/modules/index.js +67 -27
  139. package/ts_build/src/services/modules/index.js.map +1 -1
  140. package/ts_build/src/types.d.ts +3 -0
  141. package/ts_build/src/types.js.map +1 -1
  142. package/ts_build/tests/agents/interrupt.test.d.ts +0 -1
  143. package/ts_build/tests/agents/interrupt.test.js +3 -13
  144. package/ts_build/tests/agents/interrupt.test.js.map +1 -1
  145. package/ts_build/tests/agents/observe-base.test.d.ts +1 -0
  146. package/ts_build/tests/agents/observe-base.test.js +149 -0
  147. package/ts_build/tests/agents/observe-base.test.js.map +1 -0
  148. package/ts_build/tests/agents/tools/connectAgent.test.d.ts +1 -0
  149. package/ts_build/tests/agents/tools/connectAgent.test.js +142 -0
  150. package/ts_build/tests/agents/tools/connectAgent.test.js.map +1 -0
  151. package/ts_build/tests/agents/tools/observe.test.d.ts +1 -0
  152. package/ts_build/tests/agents/tools/observe.test.js +148 -0
  153. package/ts_build/tests/agents/tools/observe.test.js.map +1 -0
  154. package/ts_build/tests/agents/tools/replyToParent.test.d.ts +1 -0
  155. package/ts_build/tests/agents/tools/replyToParent.test.js +116 -0
  156. package/ts_build/tests/agents/tools/replyToParent.test.js.map +1 -0
  157. package/ts_build/tests/agents/tools/sendAgentMessage.test.d.ts +1 -0
  158. package/ts_build/tests/agents/tools/sendAgentMessage.test.js +112 -0
  159. package/ts_build/tests/agents/tools/sendAgentMessage.test.js.map +1 -0
  160. package/ts_build/tests/agents/tools/waitForAgentCompleted.test.d.ts +1 -0
  161. package/ts_build/tests/agents/tools/waitForAgentCompleted.test.js +147 -0
  162. package/ts_build/tests/agents/tools/waitForAgentCompleted.test.js.map +1 -0
  163. package/ts_build/tests/chat/detach-attach-rendering.test.d.ts +1 -0
  164. package/ts_build/tests/chat/detach-attach-rendering.test.js +168 -0
  165. package/ts_build/tests/chat/detach-attach-rendering.test.js.map +1 -0
  166. package/ts_build/tests/clients/contextLimits.test.js +11 -1
  167. package/ts_build/tests/clients/contextLimits.test.js.map +1 -1
  168. package/ts_build/tests/clients/pricing.test.js +10 -1
  169. package/ts_build/tests/clients/pricing.test.js.map +1 -1
  170. package/ts_build/tests/services/Tools.test.js +126 -8
  171. package/ts_build/tests/services/Tools.test.js.map +1 -1
  172. package/ts_build/tests/unit/modules/moduleLoading.test.js +84 -0
  173. package/ts_build/tests/unit/modules/moduleLoading.test.js.map +1 -1
@@ -40,6 +40,20 @@ const Module = __importStar(require("module"));
40
40
  const config_1 = require("../../config");
41
41
  const __1 = require("../");
42
42
  const utils_1 = require("../../utils");
43
+ function localResolvePaths() {
44
+ return [
45
+ path.join(process.cwd(), ".knowhow", "node_modules"),
46
+ path.join(os.homedir(), ".knowhow", "node_modules"),
47
+ path.join(process.cwd(), "node_modules"),
48
+ ];
49
+ }
50
+ function globalResolvePaths() {
51
+ return [
52
+ path.join(os.homedir(), ".knowhow", "node_modules"),
53
+ path.join(process.cwd(), ".knowhow", "node_modules"),
54
+ path.join(process.cwd(), "node_modules"),
55
+ ];
56
+ }
43
57
  class ModulesService {
44
58
  async getDefaultContext() {
45
59
  return { ...(0, __1.services)() };
@@ -48,7 +62,7 @@ class ModulesService {
48
62
  const defaultContext = await this.getDefaultContext();
49
63
  return { ...defaultContext, ...overrides };
50
64
  }
51
- async loadModulesFrom(config, context) {
65
+ async loadModulesFrom(config, context, resolvePaths = localResolvePaths()) {
52
66
  if (!context) {
53
67
  context = { ...(await this.getDefaultContext()) };
54
68
  }
@@ -58,38 +72,61 @@ class ModulesService {
58
72
  globalPaths.unshift(globalKnowhowNodeModules);
59
73
  }
60
74
  const allModulePaths = config.modules;
61
- const resolvePaths = [
62
- path.join(process.cwd(), ".knowhow", "node_modules"),
63
- path.join(os.homedir(), ".knowhow", "node_modules"),
64
- path.join(process.cwd(), "node_modules"),
65
- ];
66
75
  for (const modulePath of allModulePaths) {
67
- let resolvedPath;
76
+ const candidates = [];
68
77
  if (modulePath.startsWith(".")) {
69
- resolvedPath = path.resolve(process.cwd(), modulePath);
78
+ candidates.push(path.resolve(process.cwd(), modulePath));
70
79
  }
71
80
  else {
81
+ for (const searchPath of resolvePaths) {
82
+ try {
83
+ const resolved = require.resolve(modulePath, {
84
+ paths: [searchPath],
85
+ });
86
+ if (!candidates.includes(resolved))
87
+ candidates.push(resolved);
88
+ }
89
+ catch {
90
+ }
91
+ }
72
92
  try {
73
- resolvedPath = require.resolve(modulePath, { paths: resolvePaths });
93
+ const resolved = require.resolve(modulePath);
94
+ if (!candidates.includes(resolved))
95
+ candidates.push(resolved);
74
96
  }
75
97
  catch {
76
- resolvedPath = modulePath;
77
98
  }
99
+ if (candidates.length === 0)
100
+ candidates.push(modulePath);
78
101
  }
79
102
  let importedModule;
80
- try {
81
- const rawModule = require(resolvedPath);
82
- importedModule = (rawModule.default || rawModule);
83
- context.Events?.log("ModulesService", `🔌 Loading module: ${modulePath} (resolved: ${resolvedPath})`);
84
- await importedModule.init({
85
- config,
86
- cwd: process.cwd(),
87
- context: context,
88
- });
89
- context.Events?.log("ModulesService", `✅ Module initialized: ${modulePath} (tools: ${importedModule.tools.length}, agents: ${importedModule.agents.length}, plugins: ${importedModule.plugins.length}, clients: ${importedModule.clients.length})`);
103
+ let loaded = false;
104
+ const errors = [];
105
+ for (const resolvedPath of candidates) {
106
+ try {
107
+ const rawModule = require(resolvedPath);
108
+ importedModule = (rawModule.default || rawModule);
109
+ context.Events?.log("ModulesService", `🔌 Loading module: ${modulePath} (resolved: ${resolvedPath})`);
110
+ await importedModule.init({
111
+ config,
112
+ cwd: process.cwd(),
113
+ context: context,
114
+ });
115
+ context.Events?.log("ModulesService", `✅ Module initialized: ${modulePath} (tools: ${importedModule.tools.length}, agents: ${importedModule.agents.length}, plugins: ${importedModule.plugins.length}, clients: ${importedModule.clients.length})`);
116
+ loaded = true;
117
+ break;
118
+ }
119
+ catch (err) {
120
+ errors.push({ candidate: resolvedPath, error: err });
121
+ }
90
122
  }
91
- catch (err) {
92
- process.stderr.write(`\n⚠️ Failed to load module "${modulePath}": ${err.message}\n` +
123
+ if (!loaded) {
124
+ const last = errors[errors.length - 1];
125
+ const detail = last
126
+ ? `${last.error.message}`
127
+ : "no resolvable module found";
128
+ process.stderr.write(`\n⚠️ Failed to load module "${modulePath}": ${detail}\n` +
129
+ ` Tried: ${candidates.join(", ") || "(none)"}\n` +
93
130
  ` Run "knowhow modules setup --global" or "knowhow modules install ${modulePath} --global" to fix this.\n\n`);
94
131
  continue;
95
132
  }
@@ -120,11 +157,14 @@ class ModulesService {
120
157
  async loadModulesFromConfig(context) {
121
158
  const config = await (0, config_1.getConfig)();
122
159
  const globalConfig = await (0, config_1.getGlobalConfig)();
123
- const allModulePaths = [
124
- ...(globalConfig.modules || []),
125
- ...(config.modules || []),
126
- ];
127
- return this.loadModulesFrom({ ...config, modules: (0, utils_1.toUniqueArray)(allModulePaths) }, context);
160
+ const globalModules = (0, utils_1.toUniqueArray)(globalConfig.modules || []);
161
+ const localModules = (0, utils_1.toUniqueArray)(config.modules || []).filter((m) => !globalModules.includes(m));
162
+ if (globalModules.length > 0) {
163
+ await this.loadModulesFrom({ ...config, modules: globalModules }, context, globalResolvePaths());
164
+ }
165
+ if (localModules.length > 0) {
166
+ await this.loadModulesFrom({ ...config, modules: localModules }, context, localResolvePaths());
167
+ }
128
168
  }
129
169
  }
130
170
  exports.ModulesService = ModulesService;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/modules/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/modules/index.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@ export type GenerationSource = {
18
18
  outputExt?: string;
19
19
  outputName?: string;
20
20
  syncFs?: boolean;
21
+ syncRemote?: boolean;
21
22
  taskId?: string;
22
23
  maxTimeLimit?: number;
23
24
  maxSpendLimit?: number;
@@ -191,6 +192,8 @@ export declare const Models: {
191
192
  readonly Sonnet5: "claude-sonnet-5";
192
193
  readonly Mythos5: "claude-mythos-5";
193
194
  readonly MythosPreview: "claude-mythos-preview";
195
+ readonly Opus5: "claude-opus-5";
196
+ readonly Opus5Fast: "claude-opus-5-fast";
194
197
  readonly Opus4_8: "claude-opus-4-8";
195
198
  readonly Opus4_8Fast: "claude-opus-4-8-fast";
196
199
  readonly Opus4_7: "claude-opus-4-7";
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAoPA,8CAGC;AAED,gDAGC;AAhDD,2DAAmF;AAoCjF,oGApCwB,+BAAmB,OAoCxB;AAnCrB,qDAKkC;AAwBhC,sGA3BA,8BAAqB,OA2BA;AAAE,iGA3BA,yBAAgB,OA2BA;AAAE,0GA3BA,kCAAyB,OA2BA;AAClE,0GA3BA,kCAAyB,OA2BA;AAAE,kGA3BA,0BAAiB,OA2BA;AAAE,kGA3BA,0BAAiB,OA2BA;AAC/D,gGA3BA,wBAAe,OA2BA;AAAE,0GA3BA,kCAAyB,OA2BA;AAAE,qGA3BA,6BAAoB,OA2BA;AAzBlE,qDAIkC;AAsBZ,sGAxBpB,yBAAgB,OAwByB;AACzC,kGAzBkB,0BAAiB,OAyBlB;AAAE,kGAzBkB,0BAAiB,OAyBlB;AAAE,gGAxBtC,wBAAe,OAwBsC;AAAE,0GAxBtC,kCAAyB,OAwBsC;AAChF,0GAzB4C,kCAAyB,OAyB5C;AAAE,2GAzB4C,mCAA0B,OAyB5C;AAvBvD,+CAE+B;AAuB7B,8FAxBW,mBAAa,OAwBX;AAAE,+FAxBW,oBAAc,OAwBX;AAAE,+FAxBW,oBAAc,OAwBX;AAAE,uGAxBW,4BAAsB,OAwBX;AAAE,mGAxBW,wBAAkB,OAwBX;AArB9E,QAAA,MAAM,GAAG;IACpB,SAAS,EAAE,2BAAe;IAC1B,GAAG,EAAE,eAAS;IACd,MAAM,EAAE,qBAAY;IACpB,MAAM,EAAE,qBAAY;CACrB,CAAC;AAEW,QAAA,eAAe,GAAG;IAC7B,MAAM,EAAE,8BAAqB;IAC7B,MAAM,EAAE,8BAAqB;CAC9B,CAAC;AAcF,SAAgB,iBAAiB,CAAC,OAAsC;IACtE,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;AAC/B,CAAC;AAED,SAAgB,kBAAkB,CAAC,OAAsC;IACvE,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;AAChC,CAAC;AAEY,QAAA,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAC/D,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACf,OAAO,GAAG,CAAC;AACb,CAAC,EAAE,EAAE,CAA0D,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAyPA,8CAGC;AAED,gDAGC;AAhDD,2DAAmF;AAoCjF,oGApCwB,+BAAmB,OAoCxB;AAnCrB,qDAKkC;AAwBhC,sGA3BA,8BAAqB,OA2BA;AAAE,iGA3BA,yBAAgB,OA2BA;AAAE,0GA3BA,kCAAyB,OA2BA;AAClE,0GA3BA,kCAAyB,OA2BA;AAAE,kGA3BA,0BAAiB,OA2BA;AAAE,kGA3BA,0BAAiB,OA2BA;AAC/D,gGA3BA,wBAAe,OA2BA;AAAE,0GA3BA,kCAAyB,OA2BA;AAAE,qGA3BA,6BAAoB,OA2BA;AAzBlE,qDAIkC;AAsBZ,sGAxBpB,yBAAgB,OAwByB;AACzC,kGAzBkB,0BAAiB,OAyBlB;AAAE,kGAzBkB,0BAAiB,OAyBlB;AAAE,gGAxBtC,wBAAe,OAwBsC;AAAE,0GAxBtC,kCAAyB,OAwBsC;AAChF,0GAzB4C,kCAAyB,OAyB5C;AAAE,2GAzB4C,mCAA0B,OAyB5C;AAvBvD,+CAE+B;AAuB7B,8FAxBW,mBAAa,OAwBX;AAAE,+FAxBW,oBAAc,OAwBX;AAAE,+FAxBW,oBAAc,OAwBX;AAAE,uGAxBW,4BAAsB,OAwBX;AAAE,mGAxBW,wBAAkB,OAwBX;AArB9E,QAAA,MAAM,GAAG;IACpB,SAAS,EAAE,2BAAe;IAC1B,GAAG,EAAE,eAAS;IACd,MAAM,EAAE,qBAAY;IACpB,MAAM,EAAE,qBAAY;CACrB,CAAC;AAEW,QAAA,eAAe,GAAG;IAC7B,MAAM,EAAE,8BAAqB;IAC7B,MAAM,EAAE,8BAAqB;CAC9B,CAAC;AAcF,SAAgB,iBAAiB,CAAC,OAAsC;IACtE,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;AAC/B,CAAC;AAED,SAAgB,kBAAkB,CAAC,OAAsC;IACvE,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;AAChC,CAAC;AAEY,QAAA,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAC/D,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACf,OAAO,GAAG,CAAC;AACb,CAAC,EAAE,EAAE,CAA0D,CAAC"}
@@ -1,7 +1,6 @@
1
1
  declare class InterruptHarness {
2
2
  private _interruptResolve;
3
3
  private _interruptToken;
4
- private _pendingInterrupt;
5
4
  pendingUserMessages: any[];
6
5
  addPendingUserMessage(m: any): void;
7
6
  makeInterruptible<T>(promise: Promise<T>, interruptValue: T): Promise<T>;
@@ -1,7 +1,6 @@
1
1
  class InterruptHarness {
2
2
  _interruptResolve = null;
3
3
  _interruptToken = 0;
4
- _pendingInterrupt = false;
5
4
  pendingUserMessages = [];
6
5
  addPendingUserMessage(m) {
7
6
  this.pendingUserMessages.push(m);
@@ -20,11 +19,6 @@ class InterruptHarness {
20
19
  fn();
21
20
  };
22
21
  this._interruptResolve = () => finish(() => resolve(interruptValue));
23
- if (this._pendingInterrupt) {
24
- this._pendingInterrupt = false;
25
- finish(() => resolve(interruptValue));
26
- return;
27
- }
28
22
  promise
29
23
  .then((result) => {
30
24
  finish(() => resolve(result));
@@ -44,9 +38,6 @@ class InterruptHarness {
44
38
  if (this._interruptResolve) {
45
39
  this._interruptResolve();
46
40
  }
47
- else {
48
- this._pendingInterrupt = true;
49
- }
50
41
  }
51
42
  get hasActiveResolver() {
52
43
  return this._interruptResolve !== null;
@@ -105,15 +96,14 @@ describe("BaseAgent interrupt / makeInterruptible", () => {
105
96
  nextOp.resolve("fresh-result");
106
97
  await expect(w2).resolves.toBe("fresh-result");
107
98
  });
108
- test("interrupt() with no active window is queued and fires next window", async () => {
99
+ test("interrupt() with no active window is a no-op (NOT queued)", async () => {
109
100
  const h = new InterruptHarness();
110
101
  expect(h.hasActiveResolver).toBe(false);
111
102
  h.interrupt();
112
103
  const op = deferred();
113
104
  const w = h.makeInterruptible(op.promise, "INT");
114
- await expect(w).resolves.toBe("INT");
115
- op.resolve("later");
116
- await op.promise;
105
+ op.resolve("real-result");
106
+ await expect(w).resolves.toBe("real-result");
117
107
  });
118
108
  test("errors propagate when not interrupted", async () => {
119
109
  const h = new InterruptHarness();
@@ -1 +1 @@
1
- {"version":3,"file":"interrupt.test.js","sourceRoot":"","sources":["../../../tests/agents/interrupt.test.ts"],"names":[],"mappings":"AAmBA,MAAM,gBAAgB;IACZ,iBAAiB,GAAwB,IAAI,CAAC;IAC9C,eAAe,GAAG,CAAC,CAAC;IACpB,iBAAiB,GAAG,KAAK,CAAC;IAC3B,mBAAmB,GAAU,EAAE,CAAC;IAEvC,qBAAqB,CAAC,CAAM;QAC1B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,iBAAiB,CAAI,OAAmB,EAAE,cAAiB;QACzD,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxC,MAAM,OAAO,GAAG,EAAE,IAAI,CAAC,eAAe,CAAC;YACvC,IAAI,OAAO,GAAG,KAAK,CAAC;YAEpB,MAAM,MAAM,GAAG,CAAC,EAAc,EAAE,EAAE;gBAChC,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,IAAI,IAAI,CAAC,eAAe,KAAK,OAAO,EAAE,CAAC;oBACrC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBAChC,CAAC;gBACD,EAAE,EAAE,CAAC;YACP,CAAC,CAAC;YAEF,IAAI,CAAC,iBAAiB,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;YAErE,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC3B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;gBAC/B,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;gBACtC,OAAO;YACT,CAAC;YAED,OAAO;iBACJ,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBACf,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YAChC,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,IAAI,OAAO;oBAAE,OAAO;gBACpB,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS,CAAC,OAAO,GAAG,kDAAkD;QACpE,IACE,OAAO;YACP,OAAO,KAAK,kDAAkD,EAC9D,CAAC;YACD,IAAI,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAChC,CAAC;IACH,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,iBAAiB,KAAK,IAAI,CAAC;IACzC,CAAC;CACF;AAED,MAAM,QAAQ,GAAG,GAAO,EAAE;IACxB,IAAI,OAAwB,CAAC;IAC7B,IAAI,MAAyB,CAAC;IAC9B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC1C,OAAO,GAAG,GAAG,CAAC;QACd,MAAM,GAAG,GAAG,CAAC;IACf,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AACtC,CAAC,CAAC;AAEF,QAAQ,CAAC,yCAAyC,EAAE,GAAG,EAAE;IACvD,IAAI,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,CAAC,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;QACpE,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QACjF,MAAM,CAAC,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,QAAQ,EAAU,CAAC;QAChC,MAAM,OAAO,GAAG,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACzD,CAAC,CAAC,SAAS,EAAE,CAAC;QACd,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE3C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrB,MAAM,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAClF,MAAM,CAAC,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAGjC,MAAM,QAAQ,GAAG,QAAQ,EAAU,CAAC;QACpC,MAAM,EAAE,GAAG,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAGzD,CAAC,CAAC,SAAS,EAAE,CAAC;QACd,MAAM,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAGvC,MAAM,MAAM,GAAG,QAAQ,EAAU,CAAC;QAClC,MAAM,EAAE,GAAG,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAIvD,QAAQ,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAEtC,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QACxB,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAGxB,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAGvC,CAAC,CAAC,SAAS,EAAE,CAAC;QACd,MAAM,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;QACpF,MAAM,CAAC,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,QAAQ,EAAU,CAAC;QACpC,MAAM,EAAE,GAAG,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACzD,CAAC,CAAC,SAAS,EAAE,CAAC;QACd,MAAM,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEvC,MAAM,MAAM,GAAG,QAAQ,EAAU,CAAC;QAClC,MAAM,EAAE,GAAG,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAGvD,QAAQ,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACtC,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QACxB,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAGxB,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC/B,MAAM,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,CAAC,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAEjC,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC,SAAS,EAAE,CAAC;QAGd,MAAM,EAAE,GAAG,QAAQ,EAAU,CAAC;QAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACjD,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAErC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACpB,MAAM,EAAE,CAAC,OAAO,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,CAAC,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,CAAC,CAAC,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACpD,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,CAAC,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,QAAQ,EAAU,CAAC;QACnC,MAAM,OAAO,GAAG,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC5D,CAAC,CAAC,SAAS,EAAE,CAAC;QACd,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAG3C,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QACvC,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,0DAA0D,EAAE,GAAG,EAAE;QACpE,MAAM,CAAC,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACjC,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QACrC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC;YACpC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,EAAE;SACnD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC7E,MAAM,CAAC,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACjC,CAAC,CAAC,SAAS,EAAE,CAAC;QACd,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"interrupt.test.js","sourceRoot":"","sources":["../../../tests/agents/interrupt.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const base_1 = require("../../src/agents/base/base");
4
+ const flush = () => new Promise((r) => setTimeout(r, 0));
5
+ function makeStubs() {
6
+ const events = {
7
+ setListener: () => { },
8
+ emit: () => { },
9
+ on: () => { },
10
+ };
11
+ const tools = {
12
+ getContext: () => ({}),
13
+ callTool: async () => "",
14
+ };
15
+ return { events, tools };
16
+ }
17
+ class TestAgent extends base_1.BaseAgent {
18
+ name = "TestAgent";
19
+ description = "test";
20
+ constructor() {
21
+ const { events, tools } = makeStubs();
22
+ super({ Tools: tools, Events: events });
23
+ this.status = this.eventTypes.inProgress;
24
+ }
25
+ async getInitialMessages() {
26
+ return [];
27
+ }
28
+ get delivered() {
29
+ return this.pendingMessages;
30
+ }
31
+ setStatus(s) {
32
+ this.status = s;
33
+ }
34
+ }
35
+ function manualSource(label) {
36
+ let emitFn;
37
+ const state = { torndown: false };
38
+ const source = {
39
+ label,
40
+ start(emit) {
41
+ emitFn = emit;
42
+ return () => {
43
+ state.torndown = true;
44
+ };
45
+ },
46
+ };
47
+ return {
48
+ source,
49
+ push: (d) => emitFn && emitFn(d),
50
+ state,
51
+ };
52
+ }
53
+ describe("BaseAgent.observe / stopObserving", () => {
54
+ it("delivers emitted data as pending messages", () => {
55
+ const agent = new TestAgent();
56
+ const { source, push } = manualSource("thing");
57
+ const id = agent.observe(source);
58
+ expect(id).toMatch(/^obs_thing_/);
59
+ push("hello");
60
+ expect(agent.delivered.length).toBe(1);
61
+ expect(String(agent.delivered[0].content)).toContain("hello");
62
+ expect(String(agent.delivered[0].content)).toContain(`[observe:${id}]`);
63
+ agent.stopObserving();
64
+ });
65
+ it("dedupes identical consecutive data with onlyOnChange (default)", () => {
66
+ const agent = new TestAgent();
67
+ const { source, push } = manualSource("dup");
68
+ agent.observe(source);
69
+ push("a");
70
+ push("a");
71
+ push("b");
72
+ expect(agent.delivered.length).toBe(2);
73
+ agent.stopObserving();
74
+ });
75
+ it("delivers every emit when onlyOnChange is false", () => {
76
+ const agent = new TestAgent();
77
+ const { source, push } = manualSource("nochange");
78
+ agent.observe(source, { onlyOnChange: false });
79
+ push("x1");
80
+ push("x2");
81
+ push("x3");
82
+ expect(agent.delivered.length).toBe(3);
83
+ agent.stopObserving();
84
+ });
85
+ it("auto-stops after maxUpdates and runs teardown", async () => {
86
+ const agent = new TestAgent();
87
+ const { source, push, state } = manualSource("cap");
88
+ agent.observe(source, { maxUpdates: 2 });
89
+ push("1");
90
+ push("2");
91
+ push("3");
92
+ expect(agent.delivered.length).toBe(2);
93
+ await flush();
94
+ expect(state.torndown).toBe(true);
95
+ agent.stopObserving();
96
+ });
97
+ it("stopObserving(id) cancels one observer and tears it down", async () => {
98
+ const agent = new TestAgent();
99
+ const a = manualSource("a");
100
+ const b = manualSource("b");
101
+ const idA = agent.observe(a.source);
102
+ agent.observe(b.source);
103
+ const res = agent.stopObserving(idA);
104
+ expect(res).toContain(`Stopped observer ${idA}`);
105
+ await flush();
106
+ expect(a.state.torndown).toBe(true);
107
+ expect(b.state.torndown).toBe(false);
108
+ b.push("still here");
109
+ expect(agent.delivered.some((m) => String(m.content).includes("still here"))).toBe(true);
110
+ agent.stopObserving();
111
+ });
112
+ it("stopObserving() with no id cancels all", async () => {
113
+ const agent = new TestAgent();
114
+ const a = manualSource("a");
115
+ const b = manualSource("b");
116
+ agent.observe(a.source);
117
+ agent.observe(b.source);
118
+ const res = agent.stopObserving();
119
+ expect(res).toMatch(/Stopped 2 active observer/);
120
+ await flush();
121
+ expect(a.state.torndown).toBe(true);
122
+ expect(b.state.torndown).toBe(true);
123
+ });
124
+ it("is scoped per-agent — one agent's stopObserving does not affect another", async () => {
125
+ const agentA = new TestAgent();
126
+ const agentB = new TestAgent();
127
+ const sa = manualSource("sa");
128
+ const sb = manualSource("sb");
129
+ agentA.observe(sa.source);
130
+ agentB.observe(sb.source);
131
+ agentA.stopObserving();
132
+ await flush();
133
+ expect(sa.state.torndown).toBe(true);
134
+ expect(sb.state.torndown).toBe(false);
135
+ sb.push("b-data");
136
+ expect(agentB.delivered.some((m) => String(m.content).includes("b-data"))).toBe(true);
137
+ agentB.stopObserving();
138
+ });
139
+ it("does not inject data once the agent is done", () => {
140
+ const agent = new TestAgent();
141
+ const { source, push } = manualSource("late");
142
+ agent.observe(source);
143
+ agent.setStatus(agent.eventTypes.done);
144
+ push("too late");
145
+ expect(agent.delivered.length).toBe(0);
146
+ agent.stopObserving();
147
+ });
148
+ });
149
+ //# sourceMappingURL=observe-base.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observe-base.test.js","sourceRoot":"","sources":["../../../tests/agents/observe-base.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,142 @@
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
+ const fs = __importStar(require("fs"));
37
+ const os = __importStar(require("os"));
38
+ const path = __importStar(require("path"));
39
+ const connectAgent_1 = require("../../../src/agents/tools/connectAgent");
40
+ describe("connectAgent / stopConnections", () => {
41
+ let tmpCwd;
42
+ let originalCwd;
43
+ let agentsDir;
44
+ const delay = (ms) => new Promise((r) => setTimeout(r, ms));
45
+ beforeEach(() => {
46
+ originalCwd = process.cwd();
47
+ tmpCwd = fs.mkdtempSync(path.join(os.tmpdir(), "connect-agent-"));
48
+ process.chdir(tmpCwd);
49
+ agentsDir = path.join(tmpCwd, ".knowhow", "processes", "agents");
50
+ fs.mkdirSync(agentsDir, { recursive: true });
51
+ });
52
+ afterEach(async () => {
53
+ await (0, connectAgent_1.stopConnections)({});
54
+ process.chdir(originalCwd);
55
+ fs.rmSync(tmpCwd, { recursive: true, force: true });
56
+ });
57
+ function makeTask(taskId, threads = []) {
58
+ const dir = path.join(agentsDir, taskId);
59
+ fs.mkdirSync(dir, { recursive: true });
60
+ writeThreads(taskId, threads);
61
+ return dir;
62
+ }
63
+ function writeThreads(taskId, threads, extra = {}) {
64
+ fs.writeFileSync(path.join(agentsDir, taskId, "metadata.json"), JSON.stringify({ taskId, threads, ...extra }, null, 2), "utf8");
65
+ }
66
+ function readInput(taskId) {
67
+ const p = path.join(agentsDir, taskId, "input.txt");
68
+ return fs.existsSync(p) ? fs.readFileSync(p, "utf8") : "";
69
+ }
70
+ it("rejects empty connections array", async () => {
71
+ const res = await (0, connectAgent_1.connectAgent)({ connections: [] });
72
+ expect(res).toMatch(/non-empty array/);
73
+ });
74
+ it("reports missing task dirs but still wires valid ones", async () => {
75
+ makeTask("a");
76
+ const res = await (0, connectAgent_1.connectAgent)({
77
+ connections: [
78
+ { listener: "a", speaker: "missing" },
79
+ { listener: "a", speaker: "a" },
80
+ ],
81
+ });
82
+ expect(res).toMatch(/speaker task dir not found: missing/);
83
+ expect(res).toMatch(/self-connection for a/);
84
+ });
85
+ it("relays only NEW assistant messages from speaker to listener", async () => {
86
+ makeTask("listener", []);
87
+ makeTask("speaker", [
88
+ { role: "assistant", content: "old message" },
89
+ ]);
90
+ await (0, connectAgent_1.connectAgent)({
91
+ connections: [{ listener: "listener", speaker: "speaker" }],
92
+ intervalMs: 1000,
93
+ });
94
+ writeThreads("speaker", [
95
+ { role: "assistant", content: "old message" },
96
+ { role: "assistant", content: "new insight" },
97
+ ]);
98
+ await delay(1300);
99
+ const input = readInput("listener");
100
+ expect(input).toContain("[from:speaker] new insight");
101
+ expect(input).not.toContain("old message");
102
+ });
103
+ it("supports bidirectional in a single call (array of connections)", async () => {
104
+ makeTask("a", []);
105
+ makeTask("b", []);
106
+ await (0, connectAgent_1.connectAgent)({
107
+ connections: [
108
+ { listener: "a", speaker: "b" },
109
+ { listener: "b", speaker: "a" },
110
+ ],
111
+ intervalMs: 1000,
112
+ });
113
+ writeThreads("a", [{ role: "assistant", content: "from A" }]);
114
+ writeThreads("b", [{ role: "assistant", content: "from B" }]);
115
+ await delay(1300);
116
+ expect(readInput("a")).toContain("[from:b] from B");
117
+ expect(readInput("b")).toContain("[from:a] from A");
118
+ });
119
+ it("stops a specific connection by id", async () => {
120
+ makeTask("l", []);
121
+ makeTask("s", []);
122
+ const res = await (0, connectAgent_1.connectAgent)({
123
+ connections: [{ listener: "l", speaker: "s" }],
124
+ intervalMs: 1000,
125
+ });
126
+ const idMatch = res.match(/conn_[A-Za-z0-9_]+/);
127
+ expect(idMatch).toBeTruthy();
128
+ const stopRes = await (0, connectAgent_1.stopConnections)({ id: idMatch[0] });
129
+ expect(stopRes).toMatch(/Stopped connection/);
130
+ });
131
+ it("stopConnections() with no id stops all", async () => {
132
+ makeTask("l2", []);
133
+ makeTask("s2", []);
134
+ await (0, connectAgent_1.connectAgent)({
135
+ connections: [{ listener: "l2", speaker: "s2" }],
136
+ intervalMs: 1000,
137
+ });
138
+ const res = await (0, connectAgent_1.stopConnections)({});
139
+ expect(res).toMatch(/Stopped 1 active connection/);
140
+ });
141
+ });
142
+ //# sourceMappingURL=connectAgent.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectAgent.test.js","sourceRoot":"","sources":["../../../../tests/agents/tools/connectAgent.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};