@namzu/sdk 0.4.2 → 0.4.4

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 (310) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/dist/advisory/context.test.d.ts +16 -0
  3. package/dist/advisory/context.test.d.ts.map +1 -0
  4. package/dist/advisory/context.test.js +92 -0
  5. package/dist/advisory/context.test.js.map +1 -0
  6. package/dist/advisory/evaluator.test.d.ts +34 -0
  7. package/dist/advisory/evaluator.test.d.ts.map +1 -0
  8. package/dist/advisory/evaluator.test.js +172 -0
  9. package/dist/advisory/evaluator.test.js.map +1 -0
  10. package/dist/advisory/executor.test.d.ts +35 -0
  11. package/dist/advisory/executor.test.d.ts.map +1 -0
  12. package/dist/advisory/executor.test.js +233 -0
  13. package/dist/advisory/executor.test.js.map +1 -0
  14. package/dist/advisory/registry.test.d.ts +16 -0
  15. package/dist/advisory/registry.test.d.ts.map +1 -0
  16. package/dist/advisory/registry.test.js +62 -0
  17. package/dist/advisory/registry.test.js.map +1 -0
  18. package/dist/bridge/a2a/agent-card.test.d.ts +24 -0
  19. package/dist/bridge/a2a/agent-card.test.d.ts.map +1 -0
  20. package/dist/bridge/a2a/agent-card.test.js +118 -0
  21. package/dist/bridge/a2a/agent-card.test.js.map +1 -0
  22. package/dist/bridge/a2a/mapper.test.d.ts +29 -0
  23. package/dist/bridge/a2a/mapper.test.d.ts.map +1 -0
  24. package/dist/bridge/a2a/mapper.test.js +265 -0
  25. package/dist/bridge/a2a/mapper.test.js.map +1 -0
  26. package/dist/bridge/a2a/message.test.d.ts +20 -0
  27. package/dist/bridge/a2a/message.test.d.ts.map +1 -0
  28. package/dist/bridge/a2a/message.test.js +116 -0
  29. package/dist/bridge/a2a/message.test.js.map +1 -0
  30. package/dist/bridge/a2a/task.test.d.ts +29 -0
  31. package/dist/bridge/a2a/task.test.d.ts.map +1 -0
  32. package/dist/bridge/a2a/task.test.js +198 -0
  33. package/dist/bridge/a2a/task.test.js.map +1 -0
  34. package/dist/bridge/mcp/connector/adapter.test.d.ts +27 -0
  35. package/dist/bridge/mcp/connector/adapter.test.d.ts.map +1 -0
  36. package/dist/bridge/mcp/connector/adapter.test.js +203 -0
  37. package/dist/bridge/mcp/connector/adapter.test.js.map +1 -0
  38. package/dist/bridge/sse/mapper.test.d.ts +27 -0
  39. package/dist/bridge/sse/mapper.test.d.ts.map +1 -0
  40. package/dist/bridge/sse/mapper.test.js +271 -0
  41. package/dist/bridge/sse/mapper.test.js.map +1 -0
  42. package/dist/bridge/tools/connector/adapter.d.ts +2 -2
  43. package/dist/bridge/tools/connector/adapter.test.d.ts +28 -0
  44. package/dist/bridge/tools/connector/adapter.test.d.ts.map +1 -0
  45. package/dist/bridge/tools/connector/adapter.test.js +182 -0
  46. package/dist/bridge/tools/connector/adapter.test.js.map +1 -0
  47. package/dist/bridge/tools/connector/definitions.test.d.ts +23 -0
  48. package/dist/bridge/tools/connector/definitions.test.d.ts.map +1 -0
  49. package/dist/bridge/tools/connector/definitions.test.js +158 -0
  50. package/dist/bridge/tools/connector/definitions.test.js.map +1 -0
  51. package/dist/bridge/tools/connector/router.test.d.ts +21 -0
  52. package/dist/bridge/tools/connector/router.test.d.ts.map +1 -0
  53. package/dist/bridge/tools/connector/router.test.js +139 -0
  54. package/dist/bridge/tools/connector/router.test.js.map +1 -0
  55. package/dist/bus/breaker.test.d.ts +41 -0
  56. package/dist/bus/breaker.test.d.ts.map +1 -0
  57. package/dist/bus/breaker.test.js +242 -0
  58. package/dist/bus/breaker.test.js.map +1 -0
  59. package/dist/bus/index.d.ts +3 -1
  60. package/dist/bus/index.d.ts.map +1 -1
  61. package/dist/bus/index.js +18 -11
  62. package/dist/bus/index.js.map +1 -1
  63. package/dist/bus/index.test.d.ts +25 -0
  64. package/dist/bus/index.test.d.ts.map +1 -0
  65. package/dist/bus/index.test.js +151 -0
  66. package/dist/bus/index.test.js.map +1 -0
  67. package/dist/bus/lock.test.d.ts +44 -0
  68. package/dist/bus/lock.test.d.ts.map +1 -0
  69. package/dist/bus/lock.test.js +226 -0
  70. package/dist/bus/lock.test.js.map +1 -0
  71. package/dist/bus/ownership.test.d.ts +26 -0
  72. package/dist/bus/ownership.test.d.ts.map +1 -0
  73. package/dist/bus/ownership.test.js +205 -0
  74. package/dist/bus/ownership.test.js.map +1 -0
  75. package/dist/config/runtime.d.ts +28 -28
  76. package/dist/connector/BaseConnector.test.d.ts +21 -0
  77. package/dist/connector/BaseConnector.test.d.ts.map +1 -0
  78. package/dist/connector/BaseConnector.test.js +108 -0
  79. package/dist/connector/BaseConnector.test.js.map +1 -0
  80. package/dist/connector/builtins/http.test.d.ts +30 -0
  81. package/dist/connector/builtins/http.test.d.ts.map +1 -0
  82. package/dist/connector/builtins/http.test.js +232 -0
  83. package/dist/connector/builtins/http.test.js.map +1 -0
  84. package/dist/connector/builtins/webhook.test.d.ts +20 -0
  85. package/dist/connector/builtins/webhook.test.d.ts.map +1 -0
  86. package/dist/connector/builtins/webhook.test.js +113 -0
  87. package/dist/connector/builtins/webhook.test.js.map +1 -0
  88. package/dist/connector/execution/factory.test.d.ts +16 -0
  89. package/dist/connector/execution/factory.test.d.ts.map +1 -0
  90. package/dist/connector/execution/factory.test.js +64 -0
  91. package/dist/connector/execution/factory.test.js.map +1 -0
  92. package/dist/connector/execution/remote.test.d.ts +16 -0
  93. package/dist/connector/execution/remote.test.d.ts.map +1 -0
  94. package/dist/connector/execution/remote.test.js +53 -0
  95. package/dist/connector/execution/remote.test.js.map +1 -0
  96. package/dist/connector/mcp/adapter.test.d.ts +34 -0
  97. package/dist/connector/mcp/adapter.test.d.ts.map +1 -0
  98. package/dist/connector/mcp/adapter.test.js +199 -0
  99. package/dist/connector/mcp/adapter.test.js.map +1 -0
  100. package/dist/probe/context.d.ts +8 -0
  101. package/dist/probe/context.d.ts.map +1 -0
  102. package/dist/probe/context.js +7 -0
  103. package/dist/probe/context.js.map +1 -0
  104. package/dist/probe/errors.d.ts +12 -0
  105. package/dist/probe/errors.d.ts.map +1 -0
  106. package/dist/probe/errors.js +21 -0
  107. package/dist/probe/errors.js.map +1 -0
  108. package/dist/probe/index.d.ts +5 -0
  109. package/dist/probe/index.d.ts.map +1 -0
  110. package/dist/probe/index.js +4 -0
  111. package/dist/probe/index.js.map +1 -0
  112. package/dist/probe/registry.d.ts +24 -0
  113. package/dist/probe/registry.d.ts.map +1 -0
  114. package/dist/probe/registry.js +228 -0
  115. package/dist/probe/registry.js.map +1 -0
  116. package/dist/probe/registry.test.d.ts +7 -0
  117. package/dist/probe/registry.test.d.ts.map +1 -0
  118. package/dist/probe/registry.test.js +310 -0
  119. package/dist/probe/registry.test.js.map +1 -0
  120. package/dist/provider/instrumentation.d.ts +9 -0
  121. package/dist/provider/instrumentation.d.ts.map +1 -0
  122. package/dist/provider/instrumentation.js +104 -0
  123. package/dist/provider/instrumentation.js.map +1 -0
  124. package/dist/provider/instrumentation.test.d.ts +2 -0
  125. package/dist/provider/instrumentation.test.d.ts.map +1 -0
  126. package/dist/provider/instrumentation.test.js +152 -0
  127. package/dist/provider/instrumentation.test.js.map +1 -0
  128. package/dist/public-runtime.d.ts +5 -0
  129. package/dist/public-runtime.d.ts.map +1 -1
  130. package/dist/public-runtime.js +4 -0
  131. package/dist/public-runtime.js.map +1 -1
  132. package/dist/public-types.d.ts +3 -0
  133. package/dist/public-types.d.ts.map +1 -1
  134. package/dist/rag/chunking.test.d.ts +20 -0
  135. package/dist/rag/chunking.test.d.ts.map +1 -0
  136. package/dist/rag/chunking.test.js +92 -0
  137. package/dist/rag/chunking.test.js.map +1 -0
  138. package/dist/rag/context-assembler.test.d.ts +19 -0
  139. package/dist/rag/context-assembler.test.d.ts.map +1 -0
  140. package/dist/rag/context-assembler.test.js +98 -0
  141. package/dist/rag/context-assembler.test.js.map +1 -0
  142. package/dist/rag/embedding.test.d.ts +19 -0
  143. package/dist/rag/embedding.test.d.ts.map +1 -0
  144. package/dist/rag/embedding.test.js +115 -0
  145. package/dist/rag/embedding.test.js.map +1 -0
  146. package/dist/rag/ingestion.test.d.ts +22 -0
  147. package/dist/rag/ingestion.test.d.ts.map +1 -0
  148. package/dist/rag/ingestion.test.js +99 -0
  149. package/dist/rag/ingestion.test.js.map +1 -0
  150. package/dist/rag/knowledge-base.test.d.ts +17 -0
  151. package/dist/rag/knowledge-base.test.d.ts.map +1 -0
  152. package/dist/rag/knowledge-base.test.js +77 -0
  153. package/dist/rag/knowledge-base.test.js.map +1 -0
  154. package/dist/rag/rag-tool.test.d.ts +21 -0
  155. package/dist/rag/rag-tool.test.d.ts.map +1 -0
  156. package/dist/rag/rag-tool.test.js +149 -0
  157. package/dist/rag/rag-tool.test.js.map +1 -0
  158. package/dist/rag/retriever.test.d.ts +26 -0
  159. package/dist/rag/retriever.test.d.ts.map +1 -0
  160. package/dist/rag/retriever.test.js +180 -0
  161. package/dist/rag/retriever.test.js.map +1 -0
  162. package/dist/rag/vector-store.test.d.ts +38 -0
  163. package/dist/rag/vector-store.test.d.ts.map +1 -0
  164. package/dist/rag/vector-store.test.js +175 -0
  165. package/dist/rag/vector-store.test.js.map +1 -0
  166. package/dist/registry/ManagedRegistry.test.d.ts +21 -0
  167. package/dist/registry/ManagedRegistry.test.d.ts.map +1 -0
  168. package/dist/registry/ManagedRegistry.test.js +98 -0
  169. package/dist/registry/ManagedRegistry.test.js.map +1 -0
  170. package/dist/registry/Registry.test.d.ts +18 -0
  171. package/dist/registry/Registry.test.d.ts.map +1 -0
  172. package/dist/registry/Registry.test.js +79 -0
  173. package/dist/registry/Registry.test.js.map +1 -0
  174. package/dist/registry/agent/definitions.test.d.ts +15 -0
  175. package/dist/registry/agent/definitions.test.d.ts.map +1 -0
  176. package/dist/registry/agent/definitions.test.js +84 -0
  177. package/dist/registry/agent/definitions.test.js.map +1 -0
  178. package/dist/registry/connector/definitions.test.d.ts +13 -0
  179. package/dist/registry/connector/definitions.test.d.ts.map +1 -0
  180. package/dist/registry/connector/definitions.test.js +41 -0
  181. package/dist/registry/connector/definitions.test.js.map +1 -0
  182. package/dist/registry/connector/scoped.test.d.ts +21 -0
  183. package/dist/registry/connector/scoped.test.d.ts.map +1 -0
  184. package/dist/registry/connector/scoped.test.js +115 -0
  185. package/dist/registry/connector/scoped.test.js.map +1 -0
  186. package/dist/registry/plugin/index.test.d.ts +12 -0
  187. package/dist/registry/plugin/index.test.d.ts.map +1 -0
  188. package/dist/registry/plugin/index.test.js +69 -0
  189. package/dist/registry/plugin/index.test.js.map +1 -0
  190. package/dist/registry/tool/execute.test.d.ts +42 -0
  191. package/dist/registry/tool/execute.test.d.ts.map +1 -0
  192. package/dist/registry/tool/execute.test.js +281 -0
  193. package/dist/registry/tool/execute.test.js.map +1 -0
  194. package/dist/runtime/query/events.d.ts +3 -1
  195. package/dist/runtime/query/events.d.ts.map +1 -1
  196. package/dist/runtime/query/events.js +6 -1
  197. package/dist/runtime/query/events.js.map +1 -1
  198. package/dist/runtime/query/executor.d.ts +3 -1
  199. package/dist/runtime/query/executor.d.ts.map +1 -1
  200. package/dist/runtime/query/executor.js +30 -1
  201. package/dist/runtime/query/executor.js.map +1 -1
  202. package/dist/runtime/query/iteration/phases/advisory.test.d.ts +42 -0
  203. package/dist/runtime/query/iteration/phases/advisory.test.d.ts.map +1 -0
  204. package/dist/runtime/query/iteration/phases/advisory.test.js +334 -0
  205. package/dist/runtime/query/iteration/phases/advisory.test.js.map +1 -0
  206. package/dist/test-setup.d.ts +22 -0
  207. package/dist/test-setup.d.ts.map +1 -0
  208. package/dist/test-setup.js +23 -0
  209. package/dist/test-setup.js.map +1 -0
  210. package/dist/types/bus/index.d.ts +46 -2
  211. package/dist/types/bus/index.d.ts.map +1 -1
  212. package/dist/types/doctor/check.d.ts +41 -0
  213. package/dist/types/doctor/check.d.ts.map +1 -0
  214. package/dist/types/doctor/check.js +2 -0
  215. package/dist/types/doctor/check.js.map +1 -0
  216. package/dist/types/doctor/index.d.ts +2 -0
  217. package/dist/types/doctor/index.d.ts.map +1 -0
  218. package/dist/types/doctor/index.js +2 -0
  219. package/dist/types/doctor/index.js.map +1 -0
  220. package/dist/types/probe/event-kind.d.ts +6 -0
  221. package/dist/types/probe/event-kind.d.ts.map +1 -0
  222. package/dist/types/probe/event-kind.js +2 -0
  223. package/dist/types/probe/event-kind.js.map +1 -0
  224. package/dist/types/probe/event-of.d.ts +5 -0
  225. package/dist/types/probe/event-of.d.ts.map +1 -0
  226. package/dist/types/probe/event-of.js +2 -0
  227. package/dist/types/probe/event-of.js.map +1 -0
  228. package/dist/types/probe/index.d.ts +4 -0
  229. package/dist/types/probe/index.d.ts.map +1 -0
  230. package/dist/types/probe/index.js +2 -0
  231. package/dist/types/probe/index.js.map +1 -0
  232. package/dist/types/probe/registry.d.ts +27 -0
  233. package/dist/types/probe/registry.d.ts.map +1 -0
  234. package/dist/types/probe/registry.js +2 -0
  235. package/dist/types/probe/registry.js.map +1 -0
  236. package/dist/utils/logger.d.ts +1 -1
  237. package/dist/utils/logger.d.ts.map +1 -1
  238. package/dist/utils/logger.js +5 -0
  239. package/dist/utils/logger.js.map +1 -1
  240. package/dist/vault/instrumentation.d.ts +11 -0
  241. package/dist/vault/instrumentation.d.ts.map +1 -0
  242. package/dist/vault/instrumentation.js +32 -0
  243. package/dist/vault/instrumentation.js.map +1 -0
  244. package/dist/vault/instrumentation.test.d.ts +2 -0
  245. package/dist/vault/instrumentation.test.d.ts.map +1 -0
  246. package/dist/vault/instrumentation.test.js +80 -0
  247. package/dist/vault/instrumentation.test.js.map +1 -0
  248. package/package.json +4 -1
  249. package/src/advisory/context.test.ts +109 -0
  250. package/src/advisory/evaluator.test.ts +192 -0
  251. package/src/advisory/executor.test.ts +272 -0
  252. package/src/advisory/registry.test.ts +75 -0
  253. package/src/bridge/a2a/agent-card.test.ts +140 -0
  254. package/src/bridge/a2a/mapper.test.ts +293 -0
  255. package/src/bridge/a2a/message.test.ts +138 -0
  256. package/src/bridge/a2a/task.test.ts +235 -0
  257. package/src/bridge/mcp/connector/adapter.test.ts +230 -0
  258. package/src/bridge/sse/mapper.test.ts +422 -0
  259. package/src/bridge/tools/connector/adapter.test.ts +224 -0
  260. package/src/bridge/tools/connector/definitions.test.ts +183 -0
  261. package/src/bridge/tools/connector/router.test.ts +159 -0
  262. package/src/bus/breaker.test.ts +274 -0
  263. package/src/bus/index.test.ts +183 -0
  264. package/src/bus/index.ts +21 -10
  265. package/src/bus/lock.test.ts +265 -0
  266. package/src/bus/ownership.test.ts +243 -0
  267. package/src/connector/BaseConnector.test.ts +130 -0
  268. package/src/connector/builtins/http.test.ts +290 -0
  269. package/src/connector/builtins/webhook.test.ts +138 -0
  270. package/src/connector/execution/factory.test.ts +75 -0
  271. package/src/connector/execution/remote.test.ts +63 -0
  272. package/src/connector/mcp/adapter.test.ts +249 -0
  273. package/src/probe/context.ts +14 -0
  274. package/src/probe/errors.ts +27 -0
  275. package/src/probe/index.ts +4 -0
  276. package/src/probe/registry.test.ts +480 -0
  277. package/src/probe/registry.ts +276 -0
  278. package/src/provider/instrumentation.test.ts +192 -0
  279. package/src/provider/instrumentation.ts +139 -0
  280. package/src/public-runtime.ts +17 -0
  281. package/src/public-types.ts +3 -0
  282. package/src/rag/chunking.test.ts +107 -0
  283. package/src/rag/context-assembler.test.ts +114 -0
  284. package/src/rag/embedding.test.ts +130 -0
  285. package/src/rag/ingestion.test.ts +114 -0
  286. package/src/rag/knowledge-base.test.ts +106 -0
  287. package/src/rag/rag-tool.test.ts +167 -0
  288. package/src/rag/retriever.test.ts +210 -0
  289. package/src/rag/vector-store.test.ts +196 -0
  290. package/src/registry/ManagedRegistry.test.ts +118 -0
  291. package/src/registry/Registry.test.ts +91 -0
  292. package/src/registry/agent/definitions.test.ts +100 -0
  293. package/src/registry/connector/definitions.test.ts +51 -0
  294. package/src/registry/connector/scoped.test.ts +129 -0
  295. package/src/registry/plugin/index.test.ts +85 -0
  296. package/src/registry/tool/execute.test.ts +330 -0
  297. package/src/runtime/query/events.ts +6 -1
  298. package/src/runtime/query/executor.ts +34 -0
  299. package/src/runtime/query/iteration/phases/advisory.test.ts +412 -0
  300. package/src/test-setup.ts +24 -0
  301. package/src/types/bus/index.ts +54 -2
  302. package/src/types/doctor/check.ts +53 -0
  303. package/src/types/doctor/index.ts +9 -0
  304. package/src/types/probe/event-kind.ts +8 -0
  305. package/src/types/probe/event-of.ts +3 -0
  306. package/src/types/probe/index.ts +11 -0
  307. package/src/types/probe/registry.ts +36 -0
  308. package/src/utils/logger.ts +6 -1
  309. package/src/vault/instrumentation.test.ts +98 -0
  310. package/src/vault/instrumentation.ts +56 -0
@@ -0,0 +1,271 @@
1
+ /**
2
+ * Current-code invariants asserted (2026-04-21, ses_006 Phase 2):
3
+ *
4
+ * - `mapRunToStreamEvent(event, runId)` returns `{wire, data}` or null.
5
+ * - Wire names match a fixed mapping (one per RunEvent.type):
6
+ * run.started, iteration.started, iteration.completed, message.delta,
7
+ * tool.executing, tool.completed, review.requested, review.completed,
8
+ * checkpoint.created, run.paused, run.resuming, token.usage,
9
+ * activity.created, activity.updated, plan.ready, plan.approved,
10
+ * plan.rejected, plan.step_updated, agent.pending, agent.completed,
11
+ * agent.failed, agent.canceled, task.created, task.updated,
12
+ * plugin.hook_executing, plugin.hook_completed, sandbox.created,
13
+ * sandbox.exec, sandbox.destroyed.
14
+ * - `run_completed` and `run_failed` produce null (final state is
15
+ * delivered by the task.* path, not the SSE delta).
16
+ * - Sub-session lifecycle events (spawned / messaged / idled) produce
17
+ * null — the SSE wire surface does not carry them today.
18
+ * - `data.run_id` is always set from the second arg.
19
+ * - `llm_response` data: `content` falls back to null when empty;
20
+ * `has_tool_calls` is a boolean.
21
+ * - If the event carries `sourceAgentId` or `parentTaskId` fields,
22
+ * they are mirrored onto `data.source_agent_id` / `data.parent_task_id`
23
+ * (snake-cased).
24
+ * - `mapSessionToStreamEvent` is a deprecated alias.
25
+ */
26
+ import { describe, expect, it } from 'vitest';
27
+ import { mapRunToStreamEvent, mapSessionToStreamEvent } from './mapper.js';
28
+ const RID = 'run_1';
29
+ describe('mapRunToStreamEvent — mapped variants', () => {
30
+ it('run_started → run.started', () => {
31
+ const r = mapRunToStreamEvent({ type: 'run_started', runId: RID, systemPrompt: 'be terse' }, RID);
32
+ expect(r?.wire).toBe('run.started');
33
+ expect(r?.data).toMatchObject({ run_id: RID, system_prompt: 'be terse' });
34
+ });
35
+ it('run_started with no systemPrompt → system_prompt: null', () => {
36
+ const r = mapRunToStreamEvent({ type: 'run_started', runId: RID }, RID);
37
+ expect(r?.data).toMatchObject({ system_prompt: null });
38
+ });
39
+ it('iteration_started / iteration_completed carry iteration number', () => {
40
+ const a = mapRunToStreamEvent({ type: 'iteration_started', runId: RID, iteration: 2 }, RID);
41
+ expect(a).toEqual({ wire: 'iteration.started', data: { run_id: RID, iteration: 2 } });
42
+ const b = mapRunToStreamEvent({ type: 'iteration_completed', runId: RID, iteration: 2, hasToolCalls: false }, RID);
43
+ expect(b).toEqual({ wire: 'iteration.completed', data: { run_id: RID, iteration: 2 } });
44
+ });
45
+ it('llm_response → message.delta with content + has_tool_calls', () => {
46
+ const r = mapRunToStreamEvent({ type: 'llm_response', runId: RID, content: 'hi', hasToolCalls: false }, RID);
47
+ expect(r).toEqual({
48
+ wire: 'message.delta',
49
+ data: { run_id: RID, content: 'hi', has_tool_calls: false },
50
+ });
51
+ });
52
+ it('llm_response with null content → content: null', () => {
53
+ const r = mapRunToStreamEvent({ type: 'llm_response', runId: RID, content: null, hasToolCalls: true }, RID);
54
+ expect(r?.data).toMatchObject({ content: null, has_tool_calls: true });
55
+ });
56
+ it('tool_executing / tool_completed carry tool_name + input/result', () => {
57
+ const exec = mapRunToStreamEvent({ type: 'tool_executing', runId: RID, toolName: 'read_file', input: { path: '/a' } }, RID);
58
+ expect(exec?.wire).toBe('tool.executing');
59
+ expect(exec?.data).toMatchObject({ tool_name: 'read_file', input: { path: '/a' } });
60
+ const done = mapRunToStreamEvent({ type: 'tool_completed', runId: RID, toolName: 'read_file', result: 'ok' }, RID);
61
+ expect(done?.wire).toBe('tool.completed');
62
+ expect(done?.data).toMatchObject({ tool_name: 'read_file', result: 'ok' });
63
+ });
64
+ it('tool_review_requested / tool_review_completed carry review fields', () => {
65
+ const a = mapRunToStreamEvent({
66
+ type: 'tool_review_requested',
67
+ runId: RID,
68
+ iteration: 1,
69
+ toolCalls: [{ id: 'tc1', name: 'write_file', input: {}, isDestructive: true }],
70
+ }, RID);
71
+ expect(a?.wire).toBe('review.requested');
72
+ expect(a?.data.iteration).toBe(1);
73
+ const b = mapRunToStreamEvent({ type: 'tool_review_completed', runId: RID, decision: 'modified' }, RID);
74
+ expect(b).toEqual({ wire: 'review.completed', data: { run_id: RID, decision: 'modified' } });
75
+ });
76
+ it('checkpoint_created → checkpoint.created', () => {
77
+ const r = mapRunToStreamEvent({
78
+ type: 'checkpoint_created',
79
+ runId: RID,
80
+ checkpointId: 'ckpt_1',
81
+ iteration: 1,
82
+ }, RID);
83
+ expect(r?.wire).toBe('checkpoint.created');
84
+ expect(r?.data).toMatchObject({ checkpoint_id: 'ckpt_1', iteration: 1 });
85
+ });
86
+ it('run_paused / run_resuming carry checkpoint fields', () => {
87
+ const p = mapRunToStreamEvent({
88
+ type: 'run_paused',
89
+ runId: RID,
90
+ checkpointId: 'ckpt_2',
91
+ reason: 'input required',
92
+ }, RID);
93
+ expect(p?.wire).toBe('run.paused');
94
+ expect(p?.data).toMatchObject({ checkpoint_id: 'ckpt_2', reason: 'input required' });
95
+ const r = mapRunToStreamEvent({ type: 'run_resuming', runId: RID, fromCheckpointId: 'ckpt_2' }, RID);
96
+ expect(r).toEqual({
97
+ wire: 'run.resuming',
98
+ data: { run_id: RID, from_checkpoint_id: 'ckpt_2' },
99
+ });
100
+ });
101
+ it('plan_* events carry plan_id', () => {
102
+ const ready = mapRunToStreamEvent({
103
+ type: 'plan_ready',
104
+ runId: RID,
105
+ planId: 'plan_1',
106
+ title: 't',
107
+ summary: 's',
108
+ steps: [],
109
+ }, RID);
110
+ expect(ready?.wire).toBe('plan.ready');
111
+ expect(mapRunToStreamEvent({ type: 'plan_approved', runId: RID, planId: 'plan_1' }, RID)
112
+ ?.wire).toBe('plan.approved');
113
+ expect(mapRunToStreamEvent({ type: 'plan_rejected', runId: RID, planId: 'plan_1', reason: 'nope' }, RID)?.wire).toBe('plan.rejected');
114
+ expect(mapRunToStreamEvent({
115
+ type: 'plan_step_updated',
116
+ runId: RID,
117
+ planId: 'plan_1',
118
+ stepId: 's1',
119
+ status: 'completed',
120
+ }, RID)?.wire).toBe('plan.step_updated');
121
+ });
122
+ it('agent_* events carry task_id', () => {
123
+ const pending = mapRunToStreamEvent({
124
+ type: 'agent_pending',
125
+ runId: RID,
126
+ taskId: 'task_1',
127
+ parentAgentId: 'a',
128
+ childAgentId: 'b',
129
+ depth: 1,
130
+ }, RID);
131
+ expect(pending?.wire).toBe('agent.pending');
132
+ expect(pending?.data).toMatchObject({ task_id: 'task_1', depth: 1 });
133
+ expect(mapRunToStreamEvent({
134
+ type: 'agent_completed',
135
+ runId: RID,
136
+ taskId: 'task_1',
137
+ result: {
138
+ runId: RID,
139
+ status: 'completed',
140
+ iterations: 1,
141
+ durationMs: 1,
142
+ messages: [],
143
+ usage: {
144
+ promptTokens: 0,
145
+ completionTokens: 0,
146
+ totalTokens: 0,
147
+ cachedTokens: 0,
148
+ cacheWriteTokens: 0,
149
+ },
150
+ cost: {
151
+ inputCostPer1M: 0,
152
+ outputCostPer1M: 0,
153
+ totalCost: 0,
154
+ cacheDiscount: 0,
155
+ },
156
+ },
157
+ }, RID)?.wire).toBe('agent.completed');
158
+ expect(mapRunToStreamEvent({ type: 'agent_failed', runId: RID, taskId: 'task_1', error: 'e' }, RID)?.wire).toBe('agent.failed');
159
+ expect(mapRunToStreamEvent({ type: 'agent_canceled', runId: RID, taskId: 'task_1' }, RID)
160
+ ?.wire).toBe('agent.canceled');
161
+ });
162
+ it('task_created / task_updated map cleanly', () => {
163
+ const a = mapRunToStreamEvent({
164
+ type: 'task_created',
165
+ runId: RID,
166
+ taskId: 'task_1',
167
+ subject: 's',
168
+ status: 'pending',
169
+ }, RID);
170
+ expect(a?.wire).toBe('task.created');
171
+ const b = mapRunToStreamEvent({
172
+ type: 'task_updated',
173
+ runId: RID,
174
+ taskId: 'task_1',
175
+ subject: 's',
176
+ status: 'completed',
177
+ }, RID);
178
+ expect(b?.wire).toBe('task.updated');
179
+ expect(b?.data.owner).toBe(null); // undefined owner → null
180
+ });
181
+ it('plugin_hook_* + sandbox_* + activity_* events map cleanly', () => {
182
+ expect(mapRunToStreamEvent({
183
+ type: 'plugin_hook_executing',
184
+ runId: RID,
185
+ pluginId: 'plugin_x',
186
+ hookEvent: 'pre_tool_use',
187
+ }, RID)?.wire).toBe('plugin.hook_executing');
188
+ expect(mapRunToStreamEvent({
189
+ type: 'plugin_hook_completed',
190
+ runId: RID,
191
+ pluginId: 'plugin_x',
192
+ hookEvent: 'pre_tool_use',
193
+ result: { action: 'continue' },
194
+ }, RID)?.wire).toBe('plugin.hook_completed');
195
+ expect(mapRunToStreamEvent({
196
+ type: 'sandbox_created',
197
+ runId: RID,
198
+ sandboxId: 'sbx_1',
199
+ environment: 'basic',
200
+ }, RID)?.wire).toBe('sandbox.created');
201
+ expect(mapRunToStreamEvent({
202
+ type: 'sandbox_exec',
203
+ runId: RID,
204
+ sandboxId: 'sbx_1',
205
+ command: 'ls',
206
+ exitCode: 0,
207
+ durationMs: 10,
208
+ }, RID)?.wire).toBe('sandbox.exec');
209
+ expect(mapRunToStreamEvent({ type: 'sandbox_destroyed', runId: RID, sandboxId: 'sbx_1' }, RID)?.wire).toBe('sandbox.destroyed');
210
+ expect(mapRunToStreamEvent({
211
+ type: 'activity_created',
212
+ runId: RID,
213
+ activityId: 'act_1',
214
+ activityType: 'tool_call',
215
+ description: 'd',
216
+ }, RID)?.wire).toBe('activity.created');
217
+ expect(mapRunToStreamEvent({
218
+ type: 'activity_updated',
219
+ runId: RID,
220
+ activityId: 'act_1',
221
+ status: 'completed',
222
+ }, RID)?.wire).toBe('activity.updated');
223
+ });
224
+ it('token_usage_updated → token.usage with usage + cost passed through', () => {
225
+ const usage = {
226
+ promptTokens: 10,
227
+ completionTokens: 20,
228
+ totalTokens: 30,
229
+ cachedTokens: 0,
230
+ cacheWriteTokens: 0,
231
+ };
232
+ const cost = {
233
+ inputCostPer1M: 1,
234
+ outputCostPer1M: 2,
235
+ totalCost: 0.01,
236
+ cacheDiscount: 0,
237
+ };
238
+ const r = mapRunToStreamEvent({ type: 'token_usage_updated', runId: RID, usage, cost }, RID);
239
+ expect(r?.wire).toBe('token.usage');
240
+ expect(r?.data).toMatchObject({ usage, cost });
241
+ });
242
+ it('source_agent_id + parent_task_id are mirrored when present on the event', () => {
243
+ const event = {
244
+ type: 'run_started',
245
+ runId: RID,
246
+ sourceAgentId: 'sub_agent_1',
247
+ parentTaskId: 'task_42',
248
+ };
249
+ const r = mapRunToStreamEvent(event, RID);
250
+ expect(r?.data).toMatchObject({ source_agent_id: 'sub_agent_1', parent_task_id: 'task_42' });
251
+ });
252
+ });
253
+ describe('mapRunToStreamEvent — explicit null set', () => {
254
+ it.each([
255
+ [{ type: 'run_completed', runId: RID, result: 'ok' }],
256
+ [{ type: 'run_failed', runId: RID, error: 'boom' }],
257
+ ])('%o returns null', (event) => {
258
+ expect(mapRunToStreamEvent(event, RID)).toBeNull();
259
+ });
260
+ });
261
+ describe('mapSessionToStreamEvent (deprecated alias)', () => {
262
+ it('is the same function reference as mapRunToStreamEvent', () => {
263
+ // Identity check is deterministic. toEqual on paired calls
264
+ // would work here (SSE mapper doesn't touch the clock), but
265
+ // we mirror the a2a mapper test pattern for consistency —
266
+ // the deprecation shim is literal assignment, so identity is
267
+ // the strictest possible assertion.
268
+ expect(mapSessionToStreamEvent).toBe(mapRunToStreamEvent);
269
+ });
270
+ });
271
+ //# sourceMappingURL=mapper.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapper.test.js","sourceRoot":"","sources":["../../../src/bridge/sse/mapper.test.ts"],"names":[],"mappings":"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"}
@@ -12,13 +12,13 @@ declare const ConnectorRouterInputSchema: z.ZodObject<{
12
12
  method: z.ZodString;
13
13
  input: z.ZodRecord<z.ZodString, z.ZodUnknown>;
14
14
  }, "strip", z.ZodTypeAny, {
15
- method: string;
16
15
  input: Record<string, unknown>;
16
+ method: string;
17
17
  connectorId: string;
18
18
  instanceId: string;
19
19
  }, {
20
- method: string;
21
20
  input: Record<string, unknown>;
21
+ method: string;
22
22
  connectorId: string;
23
23
  instanceId: string;
24
24
  }>;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Current-code invariants asserted (2026-04-21, ses_006 Phase 2):
3
+ *
4
+ * - `connectorMethodToTool(connectorId, instanceId, method, manager)`
5
+ * produces a `ToolDefinition` with:
6
+ * - `name: '<connectorId>_<methodName>'`
7
+ * - `description: '[<connectorId>] <method.description>'`
8
+ * - `category: 'network'`, `permissions: ['network_access']`,
9
+ * all read/destructive/concurrency flags set (readOnly:false,
10
+ * destructive:false, concurrencySafe:true) — current behavior,
11
+ * regardless of what the underlying method actually does.
12
+ * - `execute(input, ctx)` calls `manager.execute` and wraps the
13
+ * result; output is JSON-stringified on success, empty string
14
+ * on failure; `_context` is ignored (§2.7).
15
+ * - `connectorInstanceToTools(instanceId, manager)` throws when the
16
+ * instance is missing; returns one tool per method otherwise.
17
+ * - `allConnectorTools(manager)` enumerates
18
+ * `manager.listConnectedInstances()` and flattens per-instance tool
19
+ * lists.
20
+ * - `createConnectorRouterTool(manager)` returns a single
21
+ * `connector_execute` tool that routes by
22
+ * `{connectorId, instanceId, method, input}`; returns
23
+ * `{success: false}` results (not thrown errors) for missing
24
+ * instance or connectorId mismatch. The description enumerates
25
+ * currently connected instances.
26
+ */
27
+ export {};
28
+ //# sourceMappingURL=adapter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.test.d.ts","sourceRoot":"","sources":["../../../../src/bridge/tools/connector/adapter.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG"}
@@ -0,0 +1,182 @@
1
+ /**
2
+ * Current-code invariants asserted (2026-04-21, ses_006 Phase 2):
3
+ *
4
+ * - `connectorMethodToTool(connectorId, instanceId, method, manager)`
5
+ * produces a `ToolDefinition` with:
6
+ * - `name: '<connectorId>_<methodName>'`
7
+ * - `description: '[<connectorId>] <method.description>'`
8
+ * - `category: 'network'`, `permissions: ['network_access']`,
9
+ * all read/destructive/concurrency flags set (readOnly:false,
10
+ * destructive:false, concurrencySafe:true) — current behavior,
11
+ * regardless of what the underlying method actually does.
12
+ * - `execute(input, ctx)` calls `manager.execute` and wraps the
13
+ * result; output is JSON-stringified on success, empty string
14
+ * on failure; `_context` is ignored (§2.7).
15
+ * - `connectorInstanceToTools(instanceId, manager)` throws when the
16
+ * instance is missing; returns one tool per method otherwise.
17
+ * - `allConnectorTools(manager)` enumerates
18
+ * `manager.listConnectedInstances()` and flattens per-instance tool
19
+ * lists.
20
+ * - `createConnectorRouterTool(manager)` returns a single
21
+ * `connector_execute` tool that routes by
22
+ * `{connectorId, instanceId, method, input}`; returns
23
+ * `{success: false}` results (not thrown errors) for missing
24
+ * instance or connectorId mismatch. The description enumerates
25
+ * currently connected instances.
26
+ */
27
+ import { describe, expect, it, vi } from 'vitest';
28
+ import { z } from 'zod';
29
+ import { allConnectorTools, connectorInstanceToTools, connectorMethodToTool, createConnectorRouterTool, } from './adapter.js';
30
+ const CID = 'conn_http';
31
+ const IID1 = 'ci_abc123';
32
+ const IID2 = 'ci_def456';
33
+ function makeMethod(name, description = `${name} description`) {
34
+ return { name, description, inputSchema: z.object({}) };
35
+ }
36
+ function makeManager(overrides = {}) {
37
+ const execute = vi.fn();
38
+ const def = {
39
+ id: CID,
40
+ name: 'HTTP',
41
+ description: 'HTTP connector',
42
+ connectionType: 'http',
43
+ configSchema: z.object({}),
44
+ methods: [makeMethod('request'), makeMethod('send')],
45
+ };
46
+ const registry = {
47
+ getOrThrow: vi.fn(() => def),
48
+ get: vi.fn(() => def),
49
+ };
50
+ const instance = {
51
+ id: IID1,
52
+ connectorId: CID,
53
+ config: { connectorId: CID, name: 'default' },
54
+ status: 'connected',
55
+ createdAt: Date.now(),
56
+ };
57
+ return {
58
+ getInstance: vi.fn(() => instance),
59
+ getRegistry: vi.fn(() => registry),
60
+ listConnectedInstances: vi.fn(() => [instance]),
61
+ listInstances: vi.fn(() => [instance]),
62
+ execute,
63
+ ...overrides,
64
+ };
65
+ }
66
+ const ctx = {};
67
+ describe('connectorMethodToTool', () => {
68
+ it('produces the expected name + description + flags', () => {
69
+ const manager = makeManager();
70
+ const tool = connectorMethodToTool(CID, IID1, makeMethod('request'), manager);
71
+ expect(tool.name).toBe(`${CID}_request`);
72
+ expect(tool.description).toBe(`[${CID}] request description`);
73
+ expect(tool.category).toBe('network');
74
+ expect(tool.permissions).toEqual(['network_access']);
75
+ expect(tool.isReadOnly?.({})).toBe(false);
76
+ expect(tool.isDestructive?.({})).toBe(false);
77
+ expect(tool.isConcurrencySafe?.({})).toBe(true);
78
+ });
79
+ it('execute wraps manager.execute success into a ToolResult with stringified output', async () => {
80
+ const manager = makeManager();
81
+ vi.mocked(manager.execute).mockResolvedValueOnce({
82
+ success: true,
83
+ output: { answer: 42 },
84
+ durationMs: 10,
85
+ });
86
+ const tool = connectorMethodToTool(CID, IID1, makeMethod('request'), manager);
87
+ const result = await tool.execute({}, ctx);
88
+ expect(result.success).toBe(true);
89
+ expect(result.output).toBe(JSON.stringify({ answer: 42 }, null, 2));
90
+ expect(result.data).toEqual({ answer: 42 });
91
+ });
92
+ it('execute carries through failure, leaves output as empty string', async () => {
93
+ const manager = makeManager();
94
+ vi.mocked(manager.execute).mockResolvedValueOnce({
95
+ success: false,
96
+ output: undefined,
97
+ durationMs: 5,
98
+ error: 'boom',
99
+ });
100
+ const tool = connectorMethodToTool(CID, IID1, makeMethod('request'), manager);
101
+ const result = await tool.execute({}, ctx);
102
+ expect(result.success).toBe(false);
103
+ expect(result.output).toBe('');
104
+ expect(result.error).toBe('boom');
105
+ });
106
+ });
107
+ describe('connectorInstanceToTools', () => {
108
+ it('returns one tool per method on the definition', () => {
109
+ const manager = makeManager();
110
+ const tools = connectorInstanceToTools(IID1, manager);
111
+ expect(tools.map((t) => t.name)).toEqual([`${CID}_request`, `${CID}_send`]);
112
+ });
113
+ it('throws when the instance is not found', () => {
114
+ const manager = makeManager({
115
+ getInstance: vi.fn(() => undefined),
116
+ });
117
+ expect(() => connectorInstanceToTools(IID2, manager)).toThrow(/not found/);
118
+ });
119
+ });
120
+ describe('allConnectorTools', () => {
121
+ it('enumerates every connected instance', () => {
122
+ const manager = makeManager();
123
+ const tools = allConnectorTools(manager);
124
+ expect(tools).toHaveLength(2);
125
+ expect(manager.listConnectedInstances).toHaveBeenCalled();
126
+ });
127
+ it('returns empty array when no connected instances', () => {
128
+ const manager = makeManager({
129
+ listConnectedInstances: vi.fn(() => []),
130
+ });
131
+ expect(allConnectorTools(manager)).toEqual([]);
132
+ });
133
+ });
134
+ describe('createConnectorRouterTool', () => {
135
+ it('returns a single connector_execute tool', () => {
136
+ const tool = createConnectorRouterTool(makeManager());
137
+ expect(tool.name).toBe('connector_execute');
138
+ expect(tool.category).toBe('network');
139
+ });
140
+ it('description enumerates currently connected instances', () => {
141
+ const tool = createConnectorRouterTool(makeManager());
142
+ expect(tool.description).toContain(CID);
143
+ expect(tool.description).toContain(IID1);
144
+ expect(tool.description).toContain('request');
145
+ });
146
+ it('description notes "No connectors are currently connected" when empty', () => {
147
+ const manager = makeManager({
148
+ listConnectedInstances: vi.fn(() => []),
149
+ });
150
+ const tool = createConnectorRouterTool(manager);
151
+ expect(tool.description).toContain('No connectors are currently connected');
152
+ });
153
+ it('execute returns {success: false} when instance is missing', async () => {
154
+ const manager = makeManager({
155
+ getInstance: vi.fn(() => undefined),
156
+ });
157
+ const tool = createConnectorRouterTool(manager);
158
+ const result = await tool.execute({ connectorId: CID, instanceId: IID2, method: 'request', input: {} }, ctx);
159
+ expect(result.success).toBe(false);
160
+ expect(result.error).toMatch(/not found/);
161
+ });
162
+ it('execute returns {success: false} when connectorId mismatches the instance', async () => {
163
+ const manager = makeManager();
164
+ const tool = createConnectorRouterTool(manager);
165
+ const result = await tool.execute({ connectorId: 'conn_other', instanceId: IID1, method: 'request', input: {} }, ctx);
166
+ expect(result.success).toBe(false);
167
+ expect(result.error).toMatch(/belongs to connector/);
168
+ });
169
+ it('execute delegates to manager.execute on happy path', async () => {
170
+ const manager = makeManager();
171
+ vi.mocked(manager.execute).mockResolvedValueOnce({
172
+ success: true,
173
+ output: 'hello',
174
+ durationMs: 1,
175
+ });
176
+ const tool = createConnectorRouterTool(manager);
177
+ const result = await tool.execute({ connectorId: CID, instanceId: IID1, method: 'request', input: { k: 'v' } }, ctx);
178
+ expect(result.success).toBe(true);
179
+ expect(result.data).toBe('hello');
180
+ });
181
+ });
182
+ //# sourceMappingURL=adapter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.test.js","sourceRoot":"","sources":["../../../../src/bridge/tools/connector/adapter.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Current-code invariants asserted (2026-04-21, ses_006 Phase 2):
3
+ *
4
+ * - `createConnectorExecuteTool(config)` returns a `defineTool`-wrapped
5
+ * tool named `connector_execute` that:
6
+ * - Returns `{success: false, error: '... not found'}` when instance
7
+ * is missing.
8
+ * - Returns `{success: false, error: '... not connected'}` when the
9
+ * instance exists but `status !== 'connected'`.
10
+ * - Returns `{success: false, error: ...}` when `manager.execute`
11
+ * itself reports failure; falls back to 'Connector execution
12
+ * failed' when the execute error is undefined.
13
+ * - On success, stringifies non-string outputs to JSON; strings pass
14
+ * through as-is.
15
+ * - Attaches `data: { durationMs, metadata }` on success.
16
+ * - `createConnectorListTool(config)` returns a tool named
17
+ * `connector_list` that:
18
+ * - Emits "No connector instances configured." when none exist.
19
+ * - Lists each instance with `- <id> (<connectorId>): <name> [<status>]`.
20
+ * - `createConnectorTools(config)` returns the pair of tools above.
21
+ */
22
+ export {};
23
+ //# sourceMappingURL=definitions.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definitions.test.d.ts","sourceRoot":"","sources":["../../../../src/bridge/tools/connector/definitions.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG"}