@namzu/sdk 3.0.0 → 3.2.0

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 (307) hide show
  1. package/CHANGELOG.md +223 -0
  2. package/dist/advisory/__tests__/consultation-context.test.d.ts +2 -0
  3. package/dist/advisory/__tests__/consultation-context.test.d.ts.map +1 -0
  4. package/dist/advisory/__tests__/consultation-context.test.js +124 -0
  5. package/dist/advisory/__tests__/consultation-context.test.js.map +1 -0
  6. package/dist/advisory/context.d.ts +25 -0
  7. package/dist/advisory/context.d.ts.map +1 -1
  8. package/dist/advisory/context.js +18 -0
  9. package/dist/advisory/context.js.map +1 -1
  10. package/dist/advisory/executor.d.ts.map +1 -1
  11. package/dist/advisory/executor.js +25 -3
  12. package/dist/advisory/executor.js.map +1 -1
  13. package/dist/compaction/__tests__/context-reducer.test.d.ts +2 -0
  14. package/dist/compaction/__tests__/context-reducer.test.d.ts.map +1 -0
  15. package/dist/compaction/__tests__/context-reducer.test.js +197 -0
  16. package/dist/compaction/__tests__/context-reducer.test.js.map +1 -0
  17. package/dist/compaction/factory.d.ts +7 -0
  18. package/dist/compaction/factory.d.ts.map +1 -1
  19. package/dist/compaction/factory.js +7 -0
  20. package/dist/compaction/factory.js.map +1 -1
  21. package/dist/compaction/index.d.ts +2 -0
  22. package/dist/compaction/index.d.ts.map +1 -1
  23. package/dist/compaction/index.js +1 -0
  24. package/dist/compaction/index.js.map +1 -1
  25. package/dist/compaction/interface.d.ts +13 -0
  26. package/dist/compaction/interface.d.ts.map +1 -1
  27. package/dist/compaction/managers/null.d.ts +3 -0
  28. package/dist/compaction/managers/null.d.ts.map +1 -1
  29. package/dist/compaction/managers/null.js +3 -0
  30. package/dist/compaction/managers/null.js.map +1 -1
  31. package/dist/compaction/managers/slidingWindow.d.ts +6 -0
  32. package/dist/compaction/managers/slidingWindow.d.ts.map +1 -1
  33. package/dist/compaction/managers/slidingWindow.js +6 -0
  34. package/dist/compaction/managers/slidingWindow.js.map +1 -1
  35. package/dist/compaction/managers/structured.d.ts +10 -0
  36. package/dist/compaction/managers/structured.d.ts.map +1 -1
  37. package/dist/compaction/managers/structured.js +10 -0
  38. package/dist/compaction/managers/structured.js.map +1 -1
  39. package/dist/compaction/reducer.d.ts +86 -0
  40. package/dist/compaction/reducer.d.ts.map +1 -0
  41. package/dist/compaction/reducer.js +77 -0
  42. package/dist/compaction/reducer.js.map +1 -0
  43. package/dist/connector/builtins/__tests__/oauth2-auth.test.d.ts +2 -0
  44. package/dist/connector/builtins/__tests__/oauth2-auth.test.d.ts.map +1 -0
  45. package/dist/connector/builtins/__tests__/oauth2-auth.test.js +54 -0
  46. package/dist/connector/builtins/__tests__/oauth2-auth.test.js.map +1 -0
  47. package/dist/connector/builtins/http.d.ts.map +1 -1
  48. package/dist/connector/builtins/http.js +24 -2
  49. package/dist/connector/builtins/http.js.map +1 -1
  50. package/dist/connector/builtins/http.test.js +18 -2
  51. package/dist/connector/builtins/http.test.js.map +1 -1
  52. package/dist/connector/index.d.ts +2 -2
  53. package/dist/connector/index.d.ts.map +1 -1
  54. package/dist/connector/index.js +1 -1
  55. package/dist/connector/index.js.map +1 -1
  56. package/dist/connector/mcp/__tests__/prompts-and-lifecycle.test.d.ts +2 -0
  57. package/dist/connector/mcp/__tests__/prompts-and-lifecycle.test.d.ts.map +1 -0
  58. package/dist/connector/mcp/__tests__/prompts-and-lifecycle.test.js +214 -0
  59. package/dist/connector/mcp/__tests__/prompts-and-lifecycle.test.js.map +1 -0
  60. package/dist/connector/mcp/client.d.ts +52 -1
  61. package/dist/connector/mcp/client.d.ts.map +1 -1
  62. package/dist/connector/mcp/client.js +86 -0
  63. package/dist/connector/mcp/client.js.map +1 -1
  64. package/dist/connector/mcp/discovery.d.ts +12 -1
  65. package/dist/connector/mcp/discovery.d.ts.map +1 -1
  66. package/dist/connector/mcp/discovery.js +19 -4
  67. package/dist/connector/mcp/discovery.js.map +1 -1
  68. package/dist/connector/mcp/index.d.ts +2 -2
  69. package/dist/connector/mcp/index.d.ts.map +1 -1
  70. package/dist/connector/mcp/index.js +1 -1
  71. package/dist/connector/mcp/index.js.map +1 -1
  72. package/dist/connector/mcp/server.d.ts +42 -1
  73. package/dist/connector/mcp/server.d.ts.map +1 -1
  74. package/dist/connector/mcp/server.js +77 -4
  75. package/dist/connector/mcp/server.js.map +1 -1
  76. package/dist/manager/agent/__tests__/depth-limit-authority.test.d.ts +2 -0
  77. package/dist/manager/agent/__tests__/depth-limit-authority.test.d.ts.map +1 -0
  78. package/dist/manager/agent/__tests__/depth-limit-authority.test.js +58 -0
  79. package/dist/manager/agent/__tests__/depth-limit-authority.test.js.map +1 -0
  80. package/dist/plugin/__tests__/discovery-scopes.test.d.ts +2 -0
  81. package/dist/plugin/__tests__/discovery-scopes.test.d.ts.map +1 -0
  82. package/dist/plugin/__tests__/discovery-scopes.test.js +97 -0
  83. package/dist/plugin/__tests__/discovery-scopes.test.js.map +1 -0
  84. package/dist/plugin/__tests__/enable-contributions.test.js +5 -1
  85. package/dist/plugin/__tests__/enable-contributions.test.js.map +1 -1
  86. package/dist/plugin/__tests__/mcp-admission.test.d.ts +2 -0
  87. package/dist/plugin/__tests__/mcp-admission.test.d.ts.map +1 -0
  88. package/dist/plugin/__tests__/mcp-admission.test.js +192 -0
  89. package/dist/plugin/__tests__/mcp-admission.test.js.map +1 -0
  90. package/dist/plugin/lifecycle.d.ts +41 -0
  91. package/dist/plugin/lifecycle.d.ts.map +1 -1
  92. package/dist/plugin/lifecycle.js +29 -1
  93. package/dist/plugin/lifecycle.js.map +1 -1
  94. package/dist/plugin/loader.d.ts +39 -3
  95. package/dist/plugin/loader.d.ts.map +1 -1
  96. package/dist/plugin/loader.js +37 -4
  97. package/dist/plugin/loader.js.map +1 -1
  98. package/dist/public-runtime.d.ts +5 -3
  99. package/dist/public-runtime.d.ts.map +1 -1
  100. package/dist/public-runtime.js +11 -3
  101. package/dist/public-runtime.js.map +1 -1
  102. package/dist/public-types.d.ts +2 -2
  103. package/dist/public-types.d.ts.map +1 -1
  104. package/dist/rag/__tests__/namespace-isolation.test.d.ts +2 -0
  105. package/dist/rag/__tests__/namespace-isolation.test.d.ts.map +1 -0
  106. package/dist/rag/__tests__/namespace-isolation.test.js +80 -0
  107. package/dist/rag/__tests__/namespace-isolation.test.js.map +1 -0
  108. package/dist/rag/ingestion.d.ts.map +1 -1
  109. package/dist/rag/ingestion.js +1 -0
  110. package/dist/rag/ingestion.js.map +1 -1
  111. package/dist/rag/retriever.d.ts.map +1 -1
  112. package/dist/rag/retriever.js +2 -0
  113. package/dist/rag/retriever.js.map +1 -1
  114. package/dist/rag/vector-store.d.ts.map +1 -1
  115. package/dist/rag/vector-store.js +6 -0
  116. package/dist/rag/vector-store.js.map +1 -1
  117. package/dist/registry/tool/execute.d.ts.map +1 -1
  118. package/dist/registry/tool/execute.js +113 -109
  119. package/dist/registry/tool/execute.js.map +1 -1
  120. package/dist/runtime/query/__tests__/capability-negotiation.test.js +59 -0
  121. package/dist/runtime/query/__tests__/capability-negotiation.test.js.map +1 -1
  122. package/dist/runtime/query/__tests__/per-step-skills.test.d.ts +10 -0
  123. package/dist/runtime/query/__tests__/per-step-skills.test.d.ts.map +1 -0
  124. package/dist/runtime/query/__tests__/per-step-skills.test.js +122 -0
  125. package/dist/runtime/query/__tests__/per-step-skills.test.js.map +1 -0
  126. package/dist/runtime/query/__tests__/per-step-tool-choice.test.d.ts +2 -0
  127. package/dist/runtime/query/__tests__/per-step-tool-choice.test.d.ts.map +1 -0
  128. package/dist/runtime/query/__tests__/per-step-tool-choice.test.js +153 -0
  129. package/dist/runtime/query/__tests__/per-step-tool-choice.test.js.map +1 -0
  130. package/dist/runtime/query/__tests__/resume-run.test.d.ts +2 -0
  131. package/dist/runtime/query/__tests__/resume-run.test.d.ts.map +1 -0
  132. package/dist/runtime/query/__tests__/resume-run.test.js +211 -0
  133. package/dist/runtime/query/__tests__/resume-run.test.js.map +1 -0
  134. package/dist/runtime/query/executor.d.ts +1 -0
  135. package/dist/runtime/query/executor.d.ts.map +1 -1
  136. package/dist/runtime/query/executor.js +10 -1
  137. package/dist/runtime/query/executor.js.map +1 -1
  138. package/dist/runtime/query/index.d.ts +10 -0
  139. package/dist/runtime/query/index.d.ts.map +1 -1
  140. package/dist/runtime/query/index.js +26 -0
  141. package/dist/runtime/query/index.js.map +1 -1
  142. package/dist/runtime/query/iteration/index.d.ts.map +1 -1
  143. package/dist/runtime/query/iteration/index.js +118 -34
  144. package/dist/runtime/query/iteration/index.js.map +1 -1
  145. package/dist/runtime/query/iteration/phases/compaction-model-routing.test.d.ts +2 -0
  146. package/dist/runtime/query/iteration/phases/compaction-model-routing.test.d.ts.map +1 -0
  147. package/dist/runtime/query/iteration/phases/compaction-model-routing.test.js +96 -0
  148. package/dist/runtime/query/iteration/phases/compaction-model-routing.test.js.map +1 -0
  149. package/dist/runtime/query/iteration/phases/compaction.d.ts.map +1 -1
  150. package/dist/runtime/query/iteration/phases/compaction.js +95 -5
  151. package/dist/runtime/query/iteration/phases/compaction.js.map +1 -1
  152. package/dist/runtime/query/iteration/phases/context-reducer-dispatch.test.d.ts +2 -0
  153. package/dist/runtime/query/iteration/phases/context-reducer-dispatch.test.d.ts.map +1 -0
  154. package/dist/runtime/query/iteration/phases/context-reducer-dispatch.test.js +180 -0
  155. package/dist/runtime/query/iteration/phases/context-reducer-dispatch.test.js.map +1 -0
  156. package/dist/runtime/query/iteration/phases/context.d.ts +9 -0
  157. package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
  158. package/dist/runtime/query/iteration/phases/context.js.map +1 -1
  159. package/dist/runtime/query/resume-run.d.ts +70 -0
  160. package/dist/runtime/query/resume-run.d.ts.map +1 -0
  161. package/dist/runtime/query/resume-run.js +46 -0
  162. package/dist/runtime/query/resume-run.js.map +1 -0
  163. package/dist/telemetry/__tests__/model-call-span.test.d.ts +2 -0
  164. package/dist/telemetry/__tests__/model-call-span.test.d.ts.map +1 -0
  165. package/dist/telemetry/__tests__/model-call-span.test.js +147 -0
  166. package/dist/telemetry/__tests__/model-call-span.test.js.map +1 -0
  167. package/dist/telemetry/__tests__/span-closure.test.d.ts +2 -0
  168. package/dist/telemetry/__tests__/span-closure.test.d.ts.map +1 -0
  169. package/dist/telemetry/__tests__/span-closure.test.js +124 -0
  170. package/dist/telemetry/__tests__/span-closure.test.js.map +1 -0
  171. package/dist/tools/advisory/index.js +1 -1
  172. package/dist/tools/advisory/index.js.map +1 -1
  173. package/dist/tools/builtins/__tests__/edit-commits-atomically.test.d.ts +2 -0
  174. package/dist/tools/builtins/__tests__/edit-commits-atomically.test.d.ts.map +1 -0
  175. package/dist/tools/builtins/__tests__/edit-commits-atomically.test.js +78 -0
  176. package/dist/tools/builtins/__tests__/edit-commits-atomically.test.js.map +1 -0
  177. package/dist/tools/builtins/__tests__/edit.test.js +242 -1
  178. package/dist/tools/builtins/__tests__/edit.test.js.map +1 -1
  179. package/dist/tools/builtins/__tests__/stale-file-refusal.test.d.ts +2 -0
  180. package/dist/tools/builtins/__tests__/stale-file-refusal.test.d.ts.map +1 -0
  181. package/dist/tools/builtins/__tests__/stale-file-refusal.test.js +187 -0
  182. package/dist/tools/builtins/__tests__/stale-file-refusal.test.js.map +1 -0
  183. package/dist/tools/builtins/atomic-write-file.d.ts +1 -1
  184. package/dist/tools/builtins/atomic-write-file.d.ts.map +1 -1
  185. package/dist/tools/builtins/atomic-write-file.js +31 -2
  186. package/dist/tools/builtins/atomic-write-file.js.map +1 -1
  187. package/dist/tools/builtins/content-fingerprint.d.ts +23 -0
  188. package/dist/tools/builtins/content-fingerprint.d.ts.map +1 -0
  189. package/dist/tools/builtins/content-fingerprint.js +30 -0
  190. package/dist/tools/builtins/content-fingerprint.js.map +1 -0
  191. package/dist/tools/builtins/edit.d.ts.map +1 -1
  192. package/dist/tools/builtins/edit.js +172 -31
  193. package/dist/tools/builtins/edit.js.map +1 -1
  194. package/dist/tools/builtins/read-file.d.ts.map +1 -1
  195. package/dist/tools/builtins/read-file.js +5 -2
  196. package/dist/tools/builtins/read-file.js.map +1 -1
  197. package/dist/tools/builtins/write-file.d.ts.map +1 -1
  198. package/dist/tools/builtins/write-file.js +75 -27
  199. package/dist/tools/builtins/write-file.js.map +1 -1
  200. package/dist/tools/coordinator/__tests__/ask-user-question.test.js +55 -0
  201. package/dist/tools/coordinator/__tests__/ask-user-question.test.js.map +1 -1
  202. package/dist/tools/coordinator/__tests__/plan-dependencies.test.d.ts +2 -0
  203. package/dist/tools/coordinator/__tests__/plan-dependencies.test.d.ts.map +1 -0
  204. package/dist/tools/coordinator/__tests__/plan-dependencies.test.js +126 -0
  205. package/dist/tools/coordinator/__tests__/plan-dependencies.test.js.map +1 -0
  206. package/dist/tools/coordinator/index.d.ts.map +1 -1
  207. package/dist/tools/coordinator/index.js +75 -5
  208. package/dist/tools/coordinator/index.js.map +1 -1
  209. package/dist/tools/coordinator/plan-dependencies.d.ts +43 -0
  210. package/dist/tools/coordinator/plan-dependencies.d.ts.map +1 -0
  211. package/dist/tools/coordinator/plan-dependencies.js +148 -0
  212. package/dist/tools/coordinator/plan-dependencies.js.map +1 -0
  213. package/dist/types/agent/supervisor.d.ts +15 -0
  214. package/dist/types/agent/supervisor.d.ts.map +1 -1
  215. package/dist/types/connector/core.d.ts +34 -0
  216. package/dist/types/connector/core.d.ts.map +1 -1
  217. package/dist/types/connector/definition.d.ts +10 -0
  218. package/dist/types/connector/definition.d.ts.map +1 -1
  219. package/dist/types/connector/mcp.d.ts +13 -0
  220. package/dist/types/connector/mcp.d.ts.map +1 -1
  221. package/dist/types/rag/retrieval.d.ts +16 -0
  222. package/dist/types/rag/retrieval.d.ts.map +1 -1
  223. package/dist/types/rag/storage.d.ts +9 -0
  224. package/dist/types/rag/storage.d.ts.map +1 -1
  225. package/dist/types/rag/vector.d.ts +11 -0
  226. package/dist/types/rag/vector.d.ts.map +1 -1
  227. package/dist/types/router/task-router.d.ts +19 -0
  228. package/dist/types/router/task-router.d.ts.map +1 -1
  229. package/dist/types/run/prepare-step.d.ts +56 -3
  230. package/dist/types/run/prepare-step.d.ts.map +1 -1
  231. package/dist/types/tool/index.d.ts +17 -1
  232. package/dist/types/tool/index.d.ts.map +1 -1
  233. package/dist/types/tool/index.js.map +1 -1
  234. package/dist/types/toolset/index.d.ts +22 -0
  235. package/dist/types/toolset/index.d.ts.map +1 -1
  236. package/package.json +1 -1
  237. package/src/advisory/__tests__/consultation-context.test.ts +191 -0
  238. package/src/advisory/context.ts +32 -0
  239. package/src/advisory/executor.ts +30 -3
  240. package/src/compaction/__tests__/context-reducer.test.ts +239 -0
  241. package/src/compaction/factory.ts +7 -0
  242. package/src/compaction/index.ts +8 -0
  243. package/src/compaction/interface.ts +13 -0
  244. package/src/compaction/managers/null.ts +3 -0
  245. package/src/compaction/managers/slidingWindow.ts +6 -0
  246. package/src/compaction/managers/structured.ts +10 -0
  247. package/src/compaction/reducer.ts +154 -0
  248. package/src/connector/builtins/__tests__/oauth2-auth.test.ts +73 -0
  249. package/src/connector/builtins/http.test.ts +28 -2
  250. package/src/connector/builtins/http.ts +26 -2
  251. package/src/connector/index.ts +6 -2
  252. package/src/connector/mcp/__tests__/prompts-and-lifecycle.test.ts +286 -0
  253. package/src/connector/mcp/client.ts +95 -0
  254. package/src/connector/mcp/discovery.ts +19 -4
  255. package/src/connector/mcp/index.ts +6 -2
  256. package/src/connector/mcp/server.ts +101 -3
  257. package/src/manager/agent/__tests__/depth-limit-authority.test.ts +74 -0
  258. package/src/plugin/__tests__/discovery-scopes.test.ts +133 -0
  259. package/src/plugin/__tests__/enable-contributions.test.ts +5 -1
  260. package/src/plugin/__tests__/mcp-admission.test.ts +242 -0
  261. package/src/plugin/lifecycle.ts +57 -1
  262. package/src/plugin/loader.ts +57 -3
  263. package/src/public-runtime.ts +16 -1
  264. package/src/public-types.ts +5 -0
  265. package/src/rag/__tests__/namespace-isolation.test.ts +109 -0
  266. package/src/rag/ingestion.ts +1 -0
  267. package/src/rag/retriever.ts +2 -0
  268. package/src/rag/vector-store.ts +5 -0
  269. package/src/registry/tool/execute.ts +123 -119
  270. package/src/runtime/query/__tests__/capability-negotiation.test.ts +69 -0
  271. package/src/runtime/query/__tests__/per-step-skills.test.ts +154 -0
  272. package/src/runtime/query/__tests__/per-step-tool-choice.test.ts +180 -0
  273. package/src/runtime/query/__tests__/resume-run.test.ts +262 -0
  274. package/src/runtime/query/executor.ts +9 -1
  275. package/src/runtime/query/index.ts +39 -0
  276. package/src/runtime/query/iteration/index.ts +130 -34
  277. package/src/runtime/query/iteration/phases/compaction-model-routing.test.ts +125 -0
  278. package/src/runtime/query/iteration/phases/compaction.ts +106 -5
  279. package/src/runtime/query/iteration/phases/context-reducer-dispatch.test.ts +238 -0
  280. package/src/runtime/query/iteration/phases/context.ts +11 -0
  281. package/src/runtime/query/resume-run.ts +93 -0
  282. package/src/telemetry/__tests__/model-call-span.test.ts +189 -0
  283. package/src/telemetry/__tests__/span-closure.test.ts +153 -0
  284. package/src/tools/advisory/index.ts +1 -1
  285. package/src/tools/builtins/__tests__/edit-commits-atomically.test.ts +103 -0
  286. package/src/tools/builtins/__tests__/edit.test.ts +324 -1
  287. package/src/tools/builtins/__tests__/stale-file-refusal.test.ts +258 -0
  288. package/src/tools/builtins/atomic-write-file.ts +30 -2
  289. package/src/tools/builtins/content-fingerprint.ts +33 -0
  290. package/src/tools/builtins/edit.ts +188 -36
  291. package/src/tools/builtins/read-file.ts +5 -2
  292. package/src/tools/builtins/write-file.ts +79 -28
  293. package/src/tools/coordinator/__tests__/ask-user-question.test.ts +68 -0
  294. package/src/tools/coordinator/__tests__/plan-dependencies.test.ts +186 -0
  295. package/src/tools/coordinator/index.ts +116 -42
  296. package/src/tools/coordinator/plan-dependencies.ts +175 -0
  297. package/src/types/agent/supervisor.ts +15 -0
  298. package/src/types/connector/core.ts +34 -0
  299. package/src/types/connector/definition.ts +10 -0
  300. package/src/types/connector/mcp.ts +14 -0
  301. package/src/types/rag/retrieval.ts +16 -0
  302. package/src/types/rag/storage.ts +9 -0
  303. package/src/types/rag/vector.ts +11 -0
  304. package/src/types/router/task-router.ts +19 -0
  305. package/src/types/run/prepare-step.ts +58 -3
  306. package/src/types/tool/index.ts +17 -1
  307. package/src/types/toolset/index.ts +22 -0
@@ -0,0 +1,180 @@
1
+ import { describe, expect, it, vi } from 'vitest';
2
+ import { WorkingStateManager } from '../../../../compaction/manager.js';
3
+ import { CompactionConfigSchema } from '../../../../config/runtime.js';
4
+ import { runCompactionCheck } from './compaction.js';
5
+ /**
6
+ * `strategy` had three values and two behaviours.
7
+ *
8
+ * The runtime asked only `strategy !== 'disabled'`, so `'sliding-window'` —
9
+ * the name a host picks precisely to AVOID paying for summarization — ran the
10
+ * full structured pass, model call included. These tests are about the
11
+ * dispatch rather than the algorithms: that choosing a strategy selects one,
12
+ * that a host-supplied reducer outranks the enum, and that the structured
13
+ * pass does not also run when something else owns reduction.
14
+ */
15
+ const sys = (content) => ({ role: 'system', content, timestamp: 1 });
16
+ const user = (content) => ({ role: 'user', content, timestamp: 1 });
17
+ function longHistory() {
18
+ // Long enough to be over any threshold once the window is small.
19
+ return [sys('prompt'), ...Array.from({ length: 40 }, (_, i) => user(`turn ${i} `.repeat(200)))];
20
+ }
21
+ function harness(over) {
22
+ const messages = longHistory();
23
+ const config = {
24
+ ...CompactionConfigSchema.parse({}),
25
+ // A tiny window puts the run over the trigger immediately.
26
+ contextWindowTokens: 1_000,
27
+ keepRecentMessages: 4,
28
+ ...over.compaction,
29
+ };
30
+ const warnings = [];
31
+ let providerCalls = 0;
32
+ const ctx = {
33
+ compactionConfig: config,
34
+ workingStateManager: new WorkingStateManager(config),
35
+ runConfig: { model: 'mock-model' },
36
+ runMgr: {
37
+ id: 'run_dispatch',
38
+ messages,
39
+ accumulateUsage: vi.fn(),
40
+ clearLastPromptTokens: vi.fn(),
41
+ },
42
+ provider: {
43
+ // The structured path's only observable side effect that a reducer
44
+ // path must not have: it pays for a summary.
45
+ chat: async () => {
46
+ providerCalls++;
47
+ return { content: 'summary', usage: { promptTokens: 1, completionTokens: 1 } };
48
+ },
49
+ },
50
+ log: {
51
+ debug: vi.fn(),
52
+ info: vi.fn(),
53
+ warn: (message) => warnings.push(message),
54
+ error: vi.fn(),
55
+ },
56
+ ...over,
57
+ };
58
+ return { ctx, messages, providerCalls: () => providerCalls, warnings };
59
+ }
60
+ describe('choosing a strategy selects one', () => {
61
+ it("'sliding-window' trims and summarizes nothing", async () => {
62
+ const h = harness({ compaction: { strategy: 'sliding-window', llmVerification: true } });
63
+ await runCompactionCheck(h.ctx);
64
+ expect(h.messages.length).toBeLessThan(41);
65
+ // The whole reason a host names this strategy.
66
+ expect(h.providerCalls()).toBe(0);
67
+ // Every survivor is verbatim — no `[COMPACTED CONTEXT]` block appears.
68
+ expect(h.messages.some((m) => String(m.content).includes('COMPACTED CONTEXT'))).toBe(false);
69
+ });
70
+ it("'structured' still summarizes", async () => {
71
+ const h = harness({ compaction: { strategy: 'structured', llmVerification: false } });
72
+ await runCompactionCheck(h.ctx);
73
+ expect(h.messages.some((m) => String(m.content).includes('COMPACTED CONTEXT'))).toBe(true);
74
+ });
75
+ it("'disabled' leaves the history alone", async () => {
76
+ const h = harness({ compaction: { strategy: 'disabled' } });
77
+ await runCompactionCheck(h.ctx);
78
+ expect(h.messages.length).toBe(41);
79
+ });
80
+ });
81
+ describe('a host reducer outranks the enum', () => {
82
+ it('runs instead of the structured pass', async () => {
83
+ // Deliberately NOT a tiny slice: leave more than the structured pass
84
+ // needs to act, so "the reducer ran" and "only the reducer ran" are
85
+ // different observations.
86
+ const reduce = ({ messages }) => messages.slice(0, 20);
87
+ const h = harness({ contextReducer: reduce, compaction: { strategy: 'structured' } });
88
+ await runCompactionCheck(h.ctx);
89
+ expect(h.messages.length).toBe(20);
90
+ expect(h.messages.some((m) => String(m.content).includes('COMPACTED CONTEXT'))).toBe(false);
91
+ });
92
+ it('is told whether the provider already rejected the prompt', async () => {
93
+ const seen = [];
94
+ const reduce = ({ messages, reason }) => {
95
+ seen.push(reason);
96
+ return messages.slice(0, 5);
97
+ };
98
+ const h = harness({ contextReducer: reduce });
99
+ await runCompactionCheck(h.ctx);
100
+ await runCompactionCheck(h.ctx, { force: true });
101
+ expect(seen).toEqual(['threshold', 'overflow']);
102
+ });
103
+ it('may be async, so a reducer can call a model of its own', async () => {
104
+ const reduce = async ({ messages }) => {
105
+ await Promise.resolve();
106
+ return messages.slice(0, 3);
107
+ };
108
+ const h = harness({ contextReducer: reduce });
109
+ await runCompactionCheck(h.ctx);
110
+ expect(h.messages.length).toBe(3);
111
+ });
112
+ it('gets the window it has to fit, not the run token budget', async () => {
113
+ let saw = 0;
114
+ const reduce = ({ contextWindowTokens, messages }) => {
115
+ saw = contextWindowTokens;
116
+ return messages.slice(0, 5);
117
+ };
118
+ const h = harness({ contextReducer: reduce, compaction: { contextWindowTokens: 12_345 } });
119
+ await runCompactionCheck(h.ctx);
120
+ expect(saw).toBe(12_345);
121
+ });
122
+ });
123
+ describe('a reducer that cannot be trusted is not obeyed', () => {
124
+ it('keeps the full history when the reducer throws', async () => {
125
+ const reduce = () => {
126
+ throw new Error('boom');
127
+ };
128
+ const h = harness({ contextReducer: reduce });
129
+ await runCompactionCheck(h.ctx);
130
+ // Fail open: a broken reduction hook should not take down a healthy run,
131
+ // the same way a broken `prepareStep` does not.
132
+ expect(h.messages.length).toBe(41);
133
+ expect(h.warnings.some((w) => w.includes('threw'))).toBe(true);
134
+ });
135
+ it('refuses a result that orphans a tool result', async () => {
136
+ const h = harness({
137
+ contextReducer: ({ messages }) => [
138
+ messages[0],
139
+ { role: 'tool', content: 'ok', timestamp: 1, toolCallId: 'nobody' },
140
+ ],
141
+ });
142
+ await runCompactionCheck(h.ctx);
143
+ // Installing this would trade a nameable "your reducer split a tool
144
+ // pair" for an opaque provider rejection a call later.
145
+ expect(h.messages.length).toBe(41);
146
+ expect(h.warnings.some((w) => w.includes('split a tool pair'))).toBe(true);
147
+ });
148
+ it('ignores a reducer that returns the history unchanged', async () => {
149
+ const h = harness({ contextReducer: ({ messages }) => messages });
150
+ await runCompactionCheck(h.ctx);
151
+ expect(h.messages.length).toBe(41);
152
+ });
153
+ it('leaves the history alone when the reducer declines', async () => {
154
+ const h = harness({ contextReducer: () => undefined });
155
+ await runCompactionCheck(h.ctx);
156
+ expect(h.messages.length).toBe(41);
157
+ });
158
+ });
159
+ describe('the threshold still governs a reducer', () => {
160
+ it('does not run one below the trigger', async () => {
161
+ const reduce = vi.fn(() => undefined);
162
+ const h = harness({
163
+ contextReducer: reduce,
164
+ // A window far larger than the history.
165
+ compaction: { contextWindowTokens: 10_000_000 },
166
+ });
167
+ await runCompactionCheck(h.ctx);
168
+ expect(reduce).not.toHaveBeenCalled();
169
+ });
170
+ it('runs one below the trigger when the provider forced the issue', async () => {
171
+ const reduce = vi.fn(() => undefined);
172
+ const h = harness({
173
+ contextReducer: reduce,
174
+ compaction: { contextWindowTokens: 10_000_000 },
175
+ });
176
+ await runCompactionCheck(h.ctx, { force: true });
177
+ expect(reduce).toHaveBeenCalledOnce();
178
+ });
179
+ });
180
+ //# sourceMappingURL=context-reducer-dispatch.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-reducer-dispatch.test.js","sourceRoot":"","sources":["../../../../../src/runtime/query/iteration/phases/context-reducer-dispatch.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { AdvisoryContext } from '../../../../advisory/context.js';
2
2
  import type { AgentBus } from '../../../../bus/index.js';
3
3
  import type { WorkingStateManager } from '../../../../compaction/manager.js';
4
+ import type { ContextReducer } from '../../../../compaction/reducer.js';
4
5
  import type { CompactionConfig } from '../../../../config/runtime.js';
5
6
  import type { PlanManager } from '../../../../manager/plan/lifecycle.js';
6
7
  import type { RunPersistence } from '../../../../manager/run/persistence.js';
@@ -10,6 +11,7 @@ import type { WorkingMemoryProvider } from '../../../../types/agent/working-memo
10
11
  import type { HITLResumeDecision, IterationCheckpoint, ResumeHandler } from '../../../../types/hitl/index.js';
11
12
  import type { TaskId } from '../../../../types/ids/index.js';
12
13
  import type { LLMProvider } from '../../../../types/provider/index.js';
14
+ import type { TaskRouterConfig } from '../../../../types/router/index.js';
13
15
  import type { ReviewAnswer } from '../../../../types/run/answer-review.js';
14
16
  import type { AgentRunConfig, PrepareStepChain, RunEvent, StepResult, StopCondition } from '../../../../types/run/index.js';
15
17
  import type { StructuredOutputConfig } from '../../../../types/structured-output/index.js';
@@ -83,8 +85,15 @@ export interface IterationContext {
83
85
  * asked about again. Absent on paths that do not review tools.
84
86
  */
85
87
  readonly toolGrants?: ToolGrantSet;
88
+ /** Per-task model overrides. Consulted for the compaction summary call. */
89
+ readonly taskRouter?: TaskRouterConfig;
86
90
  readonly compactionConfig?: CompactionConfig;
87
91
  readonly workingStateManager?: WorkingStateManager;
92
+ /**
93
+ * Host-supplied context reduction. Outranks `compactionConfig.strategy`
94
+ * and replaces the structured pass for this run.
95
+ */
96
+ readonly contextReducer?: ContextReducer;
88
97
  readonly workingMemoryProvider?: WorkingMemoryProvider;
89
98
  readonly advisoryCtx?: AdvisoryContext;
90
99
  readonly agentBus?: AgentBus;
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/query/iteration/phases/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/query/iteration/phases/context.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../../src/runtime/query/iteration/phases/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../../src/runtime/query/iteration/phases/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import type { PendingDecision } from '../../types/hitl/index.js';
2
+ import type { CheckpointStore } from '../../types/run/checkpoint-store.js';
3
+ import type { Run } from '../../types/run/entity.js';
4
+ import type { RunState } from '../../types/run/state.js';
5
+ import { type QueryParams } from './index.js';
6
+ import { type RunStateScope } from './run-state.js';
7
+ /**
8
+ * What a resume attempt found.
9
+ *
10
+ * Three outcomes rather than a nullable `Run`, because the two failures
11
+ * mean opposite things to a caller. "No checkpoint" is a dead end — there
12
+ * is nothing to continue and starting fresh would be a different run
13
+ * wearing the same id. "Awaiting decision" is the run working as designed:
14
+ * it parked on a question, and continuing means answering it first.
15
+ */
16
+ export type ResumeOutcome = {
17
+ readonly resumed: false;
18
+ readonly reason: 'no-checkpoint';
19
+ } | {
20
+ readonly resumed: false;
21
+ readonly reason: 'awaiting-decision';
22
+ /** What to put in front of a human. */
23
+ readonly pending: PendingDecision;
24
+ readonly state: RunState;
25
+ } | {
26
+ readonly resumed: true;
27
+ readonly run: Run;
28
+ readonly state: RunState;
29
+ };
30
+ /**
31
+ * The half of a run that cannot be serialized, plus where to look.
32
+ *
33
+ * `messages` is deliberately absent. On resume the history comes from the
34
+ * checkpoint and any passed messages would be discarded, so accepting them
35
+ * would invite a caller to hand over a transcript that is silently ignored.
36
+ */
37
+ export interface ResumeRunParams extends Omit<QueryParams, 'messages' | 'runId' | 'resumeFromCheckpoint'> {
38
+ /** Identifies the run inside the checkpoint store. */
39
+ readonly scope: RunStateScope;
40
+ /** Required to find the checkpoint; also threaded into the resumed run. */
41
+ readonly checkpointStore: CheckpointStore;
42
+ /**
43
+ * Resume a specific checkpoint instead of the one the store would pick.
44
+ * Absent means the parked checkpoint if there is one, else the newest.
45
+ */
46
+ readonly checkpointId?: RunState['checkpointId'];
47
+ }
48
+ /**
49
+ * Continue a run that a different process started.
50
+ *
51
+ * Everything this needs already existed — `CheckpointManager` writes the
52
+ * history, budgets, working state, trace context and any park;
53
+ * `loadRunState` reads them back; `query` accepts `runId` +
54
+ * `resumeFromCheckpoint` and restores all of it. What was missing was the
55
+ * few lines that join them, so every host wrote their own — and in this
56
+ * repo nothing outside the SDK ever did, which means the whole path shipped
57
+ * untravelled.
58
+ *
59
+ * The division of labour is the one the mechanism already implies: the
60
+ * CALLER brings what cannot be serialized — the provider client, the tool
61
+ * registry, the sandbox, the working directory — and the STORE brings the
62
+ * state. A snapshot deliberately holds no socket, no client and no open
63
+ * file, so it could never have carried the first half.
64
+ *
65
+ * Refusing beats guessing at both failure points. A missing checkpoint does
66
+ * not silently become a fresh run under a recycled id, and a park is not
67
+ * resumed past without the answer it is waiting for.
68
+ */
69
+ export declare function resumeRun(params: ResumeRunParams): Promise<ResumeOutcome>;
70
+ //# sourceMappingURL=resume-run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resume-run.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/resume-run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAC1E,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAA;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,KAAK,WAAW,EAAc,MAAM,YAAY,CAAA;AACzD,OAAO,EAAE,KAAK,aAAa,EAAgB,MAAM,gBAAgB,CAAA;AAEjE;;;;;;;;GAQG;AACH,MAAM,MAAM,aAAa,GACtB;IAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;CAAE,GAC7D;IACA,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAA;IACvB,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAA;IACpC,uCAAuC;IACvC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;IACjC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAA;CACvB,GACD;IAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,CAAA;AAE1E;;;;;;GAMG;AACH,MAAM,WAAW,eAChB,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,GAAG,sBAAsB,CAAC;IACxE,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;IAC7B,2EAA2E;IAC3E,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;IACzC;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAA;CAChD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,CAwB/E"}
@@ -0,0 +1,46 @@
1
+ import { drainQuery } from './index.js';
2
+ import { loadRunState } from './run-state.js';
3
+ /**
4
+ * Continue a run that a different process started.
5
+ *
6
+ * Everything this needs already existed — `CheckpointManager` writes the
7
+ * history, budgets, working state, trace context and any park;
8
+ * `loadRunState` reads them back; `query` accepts `runId` +
9
+ * `resumeFromCheckpoint` and restores all of it. What was missing was the
10
+ * few lines that join them, so every host wrote their own — and in this
11
+ * repo nothing outside the SDK ever did, which means the whole path shipped
12
+ * untravelled.
13
+ *
14
+ * The division of labour is the one the mechanism already implies: the
15
+ * CALLER brings what cannot be serialized — the provider client, the tool
16
+ * registry, the sandbox, the working directory — and the STORE brings the
17
+ * state. A snapshot deliberately holds no socket, no client and no open
18
+ * file, so it could never have carried the first half.
19
+ *
20
+ * Refusing beats guessing at both failure points. A missing checkpoint does
21
+ * not silently become a fresh run under a recycled id, and a park is not
22
+ * resumed past without the answer it is waiting for.
23
+ */
24
+ export async function resumeRun(params) {
25
+ const { scope, checkpointStore, checkpointId, pendingDecision, ...rest } = params;
26
+ const state = await loadRunState(checkpointStore, scope, checkpointId);
27
+ if (!state?.checkpointId)
28
+ return { resumed: false, reason: 'no-checkpoint' };
29
+ // A park is outstanding until it is answered. `resolvedAt` is what marks
30
+ // an answered one, so a checkpoint that carries a resolved decision is an
31
+ // ordinary resume, not a question waiting on anybody.
32
+ const outstanding = state.pending && !state.pending.resolvedAt ? state.pending : undefined;
33
+ if (outstanding && !pendingDecision) {
34
+ return { resumed: false, reason: 'awaiting-decision', pending: outstanding, state };
35
+ }
36
+ const run = await drainQuery({
37
+ ...rest,
38
+ messages: [],
39
+ runId: state.runId,
40
+ resumeFromCheckpoint: state.checkpointId,
41
+ checkpointStore,
42
+ ...(pendingDecision ? { pendingDecision } : {}),
43
+ });
44
+ return { resumed: true, run, state };
45
+ }
46
+ //# sourceMappingURL=resume-run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resume-run.js","sourceRoot":"","sources":["../../../src/runtime/query/resume-run.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoB,UAAU,EAAE,MAAM,YAAY,CAAA;AACzD,OAAO,EAAsB,YAAY,EAAE,MAAM,gBAAgB,CAAA;AA0CjE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAuB;IACtD,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAA;IAEjF,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,KAAK,EAAE,YAAY,CAAC,CAAA;IACtE,IAAI,CAAC,KAAK,EAAE,YAAY;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAA;IAE5E,yEAAyE;IACzE,0EAA0E;IAC1E,sDAAsD;IACtD,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;IAC1F,IAAI,WAAW,IAAI,CAAC,eAAe,EAAE,CAAC;QACrC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAA;IACpF,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC;QAC5B,GAAG,IAAI;QACP,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,oBAAoB,EAAE,KAAK,CAAC,YAAY;QACxC,eAAe;QACf,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChC,CAAC,CAAA;IAEjB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAA;AACrC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=model-call-span.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-call-span.test.d.ts","sourceRoot":"","sources":["../../../src/telemetry/__tests__/model-call-span.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,147 @@
1
+ import { mkdtemp, rm } from 'node:fs/promises';
2
+ import { tmpdir } from 'node:os';
3
+ import { join } from 'node:path';
4
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
5
+ const spans = [];
6
+ vi.mock('../runtime-accessors.js', () => ({
7
+ getTracer: () => ({
8
+ startSpan: (name) => {
9
+ const rec = { name, attributes: {}, ended: false };
10
+ spans.push(rec);
11
+ return {
12
+ setAttributes: (a) => Object.assign(rec.attributes, a),
13
+ setAttribute: (k, v) => {
14
+ rec.attributes[k] = v;
15
+ },
16
+ setStatus: (s) => {
17
+ rec.status = s.code;
18
+ },
19
+ recordException: () => undefined,
20
+ addEvent: () => undefined,
21
+ end: () => {
22
+ rec.ended = true;
23
+ },
24
+ spanContext: () => ({ traceId: 't', spanId: 's', traceFlags: 1 }),
25
+ isRecording: () => true,
26
+ updateName: () => undefined,
27
+ };
28
+ },
29
+ startActiveSpan: (_n, _o, _c, fn) => fn({
30
+ setAttributes: () => undefined,
31
+ setStatus: () => undefined,
32
+ recordException: () => undefined,
33
+ end: () => undefined,
34
+ spanContext: () => ({ traceId: 't', spanId: 's', traceFlags: 1 }),
35
+ isRecording: () => true,
36
+ }),
37
+ }),
38
+ getMeter: () => ({
39
+ createCounter: () => ({ add: () => undefined }),
40
+ createHistogram: () => ({ record: () => undefined }),
41
+ }),
42
+ }));
43
+ let workdirs = [];
44
+ beforeEach(() => {
45
+ spans.length = 0;
46
+ });
47
+ afterEach(async () => {
48
+ await Promise.all(workdirs.map((d) => rm(d, { recursive: true, force: true })));
49
+ workdirs = [];
50
+ });
51
+ async function runOnce(turns) {
52
+ const { MockLLMProvider } = await import('../../provider/mock.js');
53
+ const { ToolRegistry } = await import('../../registry/tool/execute.js');
54
+ const { drainQuery } = await import('../../runtime/query/index.js');
55
+ const { createUserMessage } = await import('../../types/message/index.js');
56
+ const dir = await mkdtemp(join(tmpdir(), 'namzu-chatspan-'));
57
+ workdirs.push(dir);
58
+ await drainQuery({
59
+ provider: new MockLLMProvider({ turns: turns }),
60
+ tools: new ToolRegistry(),
61
+ runConfig: {
62
+ model: 'mock-model',
63
+ timeoutMs: 30_000,
64
+ tokenBudget: 100_000,
65
+ maxIterations: 3,
66
+ maxResponseTokens: 256,
67
+ temperature: 0.3,
68
+ },
69
+ agentId: 'agent_cs',
70
+ agentName: 'Chat Span Agent',
71
+ workingDirectory: dir,
72
+ sessionId: 'ses_cs',
73
+ threadId: 'thd_cs',
74
+ projectId: 'prj_cs',
75
+ tenantId: 'tnt_cs',
76
+ messages: [createUserMessage('go')],
77
+ });
78
+ }
79
+ const chatSpans = () => spans.filter((s) => s.name.startsWith('chat '));
80
+ describe('the model call has a span of its own', () => {
81
+ it('opens one named for the model', async () => {
82
+ await runOnce([{ text: 'done' }]);
83
+ // One per model call. A run makes at least one, and a forced-final
84
+ // turn makes another — both are model calls and both deserve a span.
85
+ expect(chatSpans().length).toBeGreaterThanOrEqual(1);
86
+ for (const s of chatSpans())
87
+ expect(s.name).toBe('chat mock-model');
88
+ });
89
+ it('closes it', async () => {
90
+ await runOnce([{ text: 'done' }]);
91
+ for (const s of chatSpans())
92
+ expect(s.ended).toBe(true);
93
+ });
94
+ it('carries the request parameters that were actually used', async () => {
95
+ await runOnce([{ text: 'done' }]);
96
+ const attrs = chatSpans()[0]?.attributes ?? {};
97
+ expect(attrs['gen_ai.operation.name']).toBe('chat');
98
+ expect(attrs['gen_ai.request.model']).toBe('mock-model');
99
+ expect(attrs['gen_ai.request.temperature']).toBe(0.3);
100
+ expect(attrs['gen_ai.request.max_tokens']).toBe(256);
101
+ });
102
+ it('carries the usage on the call that produced it', async () => {
103
+ await runOnce([{ text: 'done' }]);
104
+ const attrs = chatSpans()[0]?.attributes ?? {};
105
+ // These previously landed only on the iteration span — one level up
106
+ // from the operation that spent the tokens.
107
+ expect(attrs).toHaveProperty('gen_ai.usage.input_tokens');
108
+ expect(attrs).toHaveProperty('gen_ai.usage.output_tokens');
109
+ });
110
+ it('records what the response said it was, not only what was asked for', async () => {
111
+ await runOnce([{ text: 'done' }]);
112
+ const attrs = chatSpans()[0]?.attributes ?? {};
113
+ // A provider may answer on a different model than the alias asked
114
+ // for, and the response id is how a trace is matched to a provider's
115
+ // own logs. Both constants existed and neither was ever set.
116
+ expect(attrs['gen_ai.response.model']).toBe('mock-model');
117
+ expect(attrs['gen_ai.response.id']).toBeDefined();
118
+ });
119
+ it('records the finish reason as an array, per the convention', async () => {
120
+ await runOnce([{ text: 'done' }]);
121
+ // One call can finish several ways when a provider returns more than
122
+ // one choice, which is why the convention makes it a list.
123
+ expect(Array.isArray(chatSpans()[0]?.attributes['gen_ai.response.finish_reasons'])).toBe(true);
124
+ });
125
+ it('reports cache tokens, which had constants and no producer', async () => {
126
+ await runOnce([{ text: 'done' }]);
127
+ const attrs = chatSpans()[0]?.attributes ?? {};
128
+ expect(attrs).toHaveProperty('namzu.cache.read_tokens');
129
+ expect(attrs).toHaveProperty('namzu.cache.write_tokens');
130
+ });
131
+ it('opens one per turn, not one per run', async () => {
132
+ await runOnce([{ text: 'first' }, { text: 'second' }]);
133
+ // A run with several turns is exactly the case a trace is opened for.
134
+ expect(chatSpans().length).toBeGreaterThanOrEqual(1);
135
+ });
136
+ it('nests under the iteration span rather than emitting as a root', async () => {
137
+ await runOnce([{ text: 'done' }]);
138
+ // The iteration span is created first; the chat span is parented to it
139
+ // explicitly because this body is an async generator and the ambient
140
+ // context at resume time belongs to the consumer.
141
+ const iterationIndex = spans.findIndex((s) => s.name.includes('iteration'));
142
+ const chatIndex = spans.findIndex((s) => s.name.startsWith('chat '));
143
+ expect(iterationIndex).toBeGreaterThanOrEqual(0);
144
+ expect(chatIndex).toBeGreaterThan(iterationIndex);
145
+ });
146
+ });
147
+ //# sourceMappingURL=model-call-span.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-call-span.test.js","sourceRoot":"","sources":["../../../src/telemetry/__tests__/model-call-span.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=span-closure.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"span-closure.test.d.ts","sourceRoot":"","sources":["../../../src/telemetry/__tests__/span-closure.test.ts"],"names":[],"mappings":""}