@namzu/sdk 0.4.1 → 0.4.2

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 (480) hide show
  1. package/CHANGELOG.md +73 -0
  2. package/dist/__tests__/replay-public-surface.test.d.ts +2 -0
  3. package/dist/__tests__/replay-public-surface.test.d.ts.map +1 -0
  4. package/dist/__tests__/replay-public-surface.test.js +45 -0
  5. package/dist/__tests__/replay-public-surface.test.js.map +1 -0
  6. package/dist/agents/SupervisorAgent.d.ts.map +1 -1
  7. package/dist/agents/SupervisorAgent.js.map +1 -1
  8. package/dist/bridge/a2a/task.d.ts +2 -2
  9. package/dist/bridge/a2a/task.d.ts.map +1 -1
  10. package/dist/bridge/a2a/task.js.map +1 -1
  11. package/dist/config/runtime.d.ts +24 -25
  12. package/dist/config/runtime.d.ts.map +1 -1
  13. package/dist/config/runtime.js.map +1 -1
  14. package/dist/contracts/api.d.ts +2 -2
  15. package/dist/contracts/api.d.ts.map +1 -1
  16. package/dist/contracts/index.d.ts +1 -2
  17. package/dist/contracts/index.d.ts.map +1 -1
  18. package/dist/contracts/index.js.map +1 -1
  19. package/dist/contracts/schemas.d.ts +10 -10
  20. package/dist/index.d.ts +3 -103
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +9 -89
  23. package/dist/index.js.map +1 -1
  24. package/dist/manager/agent/__tests__/lifecycle.test.js.map +1 -1
  25. package/dist/manager/agent/lifecycle.d.ts +1 -1
  26. package/dist/manager/agent/lifecycle.d.ts.map +1 -1
  27. package/dist/manager/agent/lifecycle.js +1 -1
  28. package/dist/manager/agent/lifecycle.js.map +1 -1
  29. package/dist/manager/run/persistence.d.ts +3 -3
  30. package/dist/manager/run/persistence.d.ts.map +1 -1
  31. package/dist/manager/run/persistence.js.map +1 -1
  32. package/dist/manager/thread/__tests__/lifecycle.test.js.map +1 -1
  33. package/dist/manager/thread/lifecycle.d.ts +1 -1
  34. package/dist/manager/thread/lifecycle.d.ts.map +1 -1
  35. package/dist/plugin/loader.d.ts +0 -5
  36. package/dist/plugin/loader.d.ts.map +1 -1
  37. package/dist/plugin/loader.js +1 -13
  38. package/dist/plugin/loader.js.map +1 -1
  39. package/dist/public-runtime.d.ts +70 -0
  40. package/dist/public-runtime.d.ts.map +1 -0
  41. package/dist/public-runtime.js +108 -0
  42. package/dist/public-runtime.js.map +1 -0
  43. package/dist/public-tools.d.ts +19 -0
  44. package/dist/public-tools.d.ts.map +1 -0
  45. package/dist/public-tools.js +34 -0
  46. package/dist/public-tools.js.map +1 -0
  47. package/dist/public-types.d.ts +55 -0
  48. package/dist/public-types.d.ts.map +1 -0
  49. package/dist/public-types.js +14 -0
  50. package/dist/public-types.js.map +1 -0
  51. package/dist/rag/rag-tool.d.ts +1 -1
  52. package/dist/run/LimitChecker.d.ts +0 -1
  53. package/dist/run/LimitChecker.d.ts.map +1 -1
  54. package/dist/run/LimitChecker.js +0 -6
  55. package/dist/run/LimitChecker.js.map +1 -1
  56. package/dist/run/reporter.d.ts +2 -2
  57. package/dist/run/reporter.d.ts.map +1 -1
  58. package/dist/run/reporter.js.map +1 -1
  59. package/dist/runtime/query/__tests__/checkpoint.test.d.ts +2 -0
  60. package/dist/runtime/query/__tests__/checkpoint.test.d.ts.map +1 -0
  61. package/dist/runtime/query/__tests__/checkpoint.test.js +150 -0
  62. package/dist/runtime/query/__tests__/checkpoint.test.js.map +1 -0
  63. package/dist/runtime/query/checkpoint.d.ts +23 -0
  64. package/dist/runtime/query/checkpoint.d.ts.map +1 -1
  65. package/dist/runtime/query/checkpoint.js +49 -0
  66. package/dist/runtime/query/checkpoint.js.map +1 -1
  67. package/dist/runtime/query/context.d.ts +0 -2
  68. package/dist/runtime/query/context.d.ts.map +1 -1
  69. package/dist/runtime/query/context.js +0 -4
  70. package/dist/runtime/query/context.js.map +1 -1
  71. package/dist/runtime/query/index.d.ts +3 -3
  72. package/dist/runtime/query/index.d.ts.map +1 -1
  73. package/dist/runtime/query/replay/__tests__/mutate.test.d.ts +2 -0
  74. package/dist/runtime/query/replay/__tests__/mutate.test.d.ts.map +1 -0
  75. package/dist/runtime/query/replay/__tests__/mutate.test.js +123 -0
  76. package/dist/runtime/query/replay/__tests__/mutate.test.js.map +1 -0
  77. package/dist/runtime/query/replay/__tests__/prepare.test.d.ts +2 -0
  78. package/dist/runtime/query/replay/__tests__/prepare.test.d.ts.map +1 -0
  79. package/dist/runtime/query/replay/__tests__/prepare.test.js +171 -0
  80. package/dist/runtime/query/replay/__tests__/prepare.test.js.map +1 -0
  81. package/dist/runtime/query/replay/list.d.ts +24 -0
  82. package/dist/runtime/query/replay/list.d.ts.map +1 -0
  83. package/dist/runtime/query/replay/list.js +21 -0
  84. package/dist/runtime/query/replay/list.js.map +1 -0
  85. package/dist/runtime/query/replay/mutate.d.ts +17 -0
  86. package/dist/runtime/query/replay/mutate.d.ts.map +1 -0
  87. package/dist/runtime/query/replay/mutate.js +62 -0
  88. package/dist/runtime/query/replay/mutate.js.map +1 -0
  89. package/dist/runtime/query/replay/prepare.d.ts +56 -0
  90. package/dist/runtime/query/replay/prepare.d.ts.map +1 -0
  91. package/dist/runtime/query/replay/prepare.js +65 -0
  92. package/dist/runtime/query/replay/prepare.js.map +1 -0
  93. package/dist/runtime/query/result.d.ts +2 -2
  94. package/dist/runtime/query/result.d.ts.map +1 -1
  95. package/dist/session/__tests__/integration/_fixtures.d.ts +4 -4
  96. package/dist/session/__tests__/integration/_fixtures.d.ts.map +1 -1
  97. package/dist/session/__tests__/integration/_fixtures.js.map +1 -1
  98. package/dist/session/__tests__/integration/archive-gate.test.js.map +1 -1
  99. package/dist/session/__tests__/integration/capacity-caps.test.js.map +1 -1
  100. package/dist/session/__tests__/integration/e2e-spawn.test.js.map +1 -1
  101. package/dist/session/__tests__/integration/handoff-broadcast-e2e.test.js.map +1 -1
  102. package/dist/session/__tests__/integration/handoff-single-e2e.test.js.map +1 -1
  103. package/dist/session/__tests__/integration/prev-artifact-dag.test.js.map +1 -1
  104. package/dist/session/__tests__/integration/retention-archive.test.js.map +1 -1
  105. package/dist/session/__tests__/integration/spawn-rollback.test.js.map +1 -1
  106. package/dist/session/__tests__/integration/summary-materialization-e2e.test.js +1 -1
  107. package/dist/session/__tests__/integration/summary-materialization-e2e.test.js.map +1 -1
  108. package/dist/session/errors.d.ts +1 -1
  109. package/dist/session/errors.d.ts.map +1 -1
  110. package/dist/session/events/index.d.ts +3 -3
  111. package/dist/session/events/index.d.ts.map +1 -1
  112. package/dist/session/events/index.js +3 -2
  113. package/dist/session/events/index.js.map +1 -1
  114. package/dist/session/handoff/__tests__/broadcast.test.js.map +1 -1
  115. package/dist/session/handoff/__tests__/capacity.test.js.map +1 -1
  116. package/dist/session/handoff/__tests__/single.test.js.map +1 -1
  117. package/dist/session/handoff/assignment.d.ts +1 -1
  118. package/dist/session/handoff/assignment.d.ts.map +1 -1
  119. package/dist/session/handoff/broadcast.d.ts.map +1 -1
  120. package/dist/session/handoff/broadcast.js.map +1 -1
  121. package/dist/session/handoff/single.d.ts.map +1 -1
  122. package/dist/session/handoff/single.js.map +1 -1
  123. package/dist/session/index.d.ts +0 -1
  124. package/dist/session/index.d.ts.map +1 -1
  125. package/dist/session/index.js +7 -6
  126. package/dist/session/index.js.map +1 -1
  127. package/dist/session/intervention/__tests__/prev-artifact.test.js.map +1 -1
  128. package/dist/session/intervention/prev-artifact.d.ts +1 -1
  129. package/dist/session/intervention/prev-artifact.d.ts.map +1 -1
  130. package/dist/session/retention/__tests__/archive.test.js.map +1 -1
  131. package/dist/session/retention/__tests__/disk-backend.test.js.map +1 -1
  132. package/dist/session/retention/archive.d.ts +1 -1
  133. package/dist/session/retention/archive.d.ts.map +1 -1
  134. package/dist/session/retention/backend.d.ts +4 -4
  135. package/dist/session/retention/backend.d.ts.map +1 -1
  136. package/dist/session/retention/disk-backend.d.ts +1 -1
  137. package/dist/session/retention/disk-backend.d.ts.map +1 -1
  138. package/dist/session/retention/index.d.ts +3 -3
  139. package/dist/session/retention/index.d.ts.map +1 -1
  140. package/dist/session/retention/index.js +4 -2
  141. package/dist/session/retention/index.js.map +1 -1
  142. package/dist/session/status/__tests__/derive.test.d.ts +2 -0
  143. package/dist/session/status/__tests__/derive.test.d.ts.map +1 -0
  144. package/dist/session/{hierarchy/__tests__/session.test.js → status/__tests__/derive.test.js} +2 -2
  145. package/dist/session/status/__tests__/derive.test.js.map +1 -0
  146. package/dist/session/status/derive.d.ts +33 -0
  147. package/dist/session/status/derive.d.ts.map +1 -0
  148. package/dist/session/{hierarchy/session.js → status/derive.js} +6 -1
  149. package/dist/session/status/derive.js.map +1 -0
  150. package/dist/session/summary/__tests__/materialize.test.js +2 -1
  151. package/dist/session/summary/__tests__/materialize.test.js.map +1 -1
  152. package/dist/session/summary/errors.d.ts +43 -0
  153. package/dist/session/summary/errors.d.ts.map +1 -0
  154. package/dist/session/summary/errors.js +37 -0
  155. package/dist/session/summary/errors.js.map +1 -0
  156. package/dist/session/summary/index.d.ts +4 -3
  157. package/dist/session/summary/index.d.ts.map +1 -1
  158. package/dist/session/summary/index.js +5 -4
  159. package/dist/session/summary/index.js.map +1 -1
  160. package/dist/session/summary/materialize.d.ts +2 -2
  161. package/dist/session/summary/materialize.d.ts.map +1 -1
  162. package/dist/session/summary/materialize.js +2 -1
  163. package/dist/session/summary/materialize.js.map +1 -1
  164. package/dist/session/workspace/__tests__/git-worktree.test.js.map +1 -1
  165. package/dist/session/workspace/driver.d.ts +2 -2
  166. package/dist/session/workspace/driver.d.ts.map +1 -1
  167. package/dist/session/workspace/git-worktree.d.ts +1 -1
  168. package/dist/session/workspace/git-worktree.d.ts.map +1 -1
  169. package/dist/session/workspace/git-worktree.js.map +1 -1
  170. package/dist/session/workspace/index.d.ts +1 -1
  171. package/dist/session/workspace/index.d.ts.map +1 -1
  172. package/dist/session/workspace/index.js +3 -2
  173. package/dist/session/workspace/index.js.map +1 -1
  174. package/dist/store/run/disk.d.ts +4 -4
  175. package/dist/store/run/disk.d.ts.map +1 -1
  176. package/dist/store/run/disk.js.map +1 -1
  177. package/dist/store/session/__tests__/disk.test.js.map +1 -1
  178. package/dist/store/session/__tests__/memory.test.js.map +1 -1
  179. package/dist/store/session/disk.d.ts +6 -6
  180. package/dist/store/session/disk.d.ts.map +1 -1
  181. package/dist/store/session/disk.js +1 -1
  182. package/dist/store/session/disk.js.map +1 -1
  183. package/dist/store/session/index.d.ts +1 -1
  184. package/dist/store/session/index.d.ts.map +1 -1
  185. package/dist/store/session/index.js +2 -1
  186. package/dist/store/session/index.js.map +1 -1
  187. package/dist/store/session/linkage.d.ts +1 -1
  188. package/dist/store/session/linkage.d.ts.map +1 -1
  189. package/dist/store/session/memory.d.ts +5 -5
  190. package/dist/store/session/memory.d.ts.map +1 -1
  191. package/dist/store/session/memory.js +1 -1
  192. package/dist/store/session/memory.js.map +1 -1
  193. package/dist/store/thread/disk.d.ts +1 -1
  194. package/dist/store/thread/disk.d.ts.map +1 -1
  195. package/dist/store/thread/memory.d.ts +1 -1
  196. package/dist/store/thread/memory.d.ts.map +1 -1
  197. package/dist/telemetry/attributes.d.ts +0 -1
  198. package/dist/telemetry/attributes.d.ts.map +1 -1
  199. package/dist/telemetry/attributes.js +0 -3
  200. package/dist/telemetry/attributes.js.map +1 -1
  201. package/dist/telemetry/runtime-accessors.d.ts +1 -2
  202. package/dist/telemetry/runtime-accessors.d.ts.map +1 -1
  203. package/dist/telemetry/runtime-accessors.js +1 -4
  204. package/dist/telemetry/runtime-accessors.js.map +1 -1
  205. package/dist/tools/builtins/bash.d.ts +1 -1
  206. package/dist/tools/builtins/computer-use.d.ts +4 -4
  207. package/dist/tools/builtins/edit.d.ts +1 -1
  208. package/dist/tools/builtins/glob.d.ts +1 -1
  209. package/dist/tools/builtins/grep.d.ts +1 -1
  210. package/dist/tools/builtins/ls.d.ts +1 -1
  211. package/dist/tools/builtins/read-file.d.ts +1 -1
  212. package/dist/tools/builtins/search-tools.d.ts +1 -1
  213. package/dist/tools/builtins/write-file.d.ts +1 -1
  214. package/dist/types/agent/task.d.ts +2 -2
  215. package/dist/types/agent/task.d.ts.map +1 -1
  216. package/dist/{session/hierarchy/project.d.ts → types/project/entity.d.ts} +4 -4
  217. package/dist/types/project/entity.d.ts.map +1 -0
  218. package/dist/types/project/entity.js +2 -0
  219. package/dist/types/project/entity.js.map +1 -0
  220. package/dist/types/project/index.d.ts +2 -0
  221. package/dist/types/project/index.d.ts.map +1 -0
  222. package/dist/types/project/index.js +4 -0
  223. package/dist/types/project/index.js.map +1 -0
  224. package/dist/types/retention/archive-backend-ref.d.ts.map +1 -0
  225. package/dist/types/retention/archive-backend-ref.js.map +1 -0
  226. package/dist/types/retention/index.d.ts +4 -0
  227. package/dist/types/retention/index.d.ts.map +1 -0
  228. package/dist/types/retention/index.js +4 -0
  229. package/dist/types/retention/index.js.map +1 -0
  230. package/dist/types/retention/policy.d.ts.map +1 -0
  231. package/dist/types/retention/policy.js.map +1 -0
  232. package/dist/types/run/entity.d.ts +56 -0
  233. package/dist/types/run/entity.d.ts.map +1 -0
  234. package/dist/types/run/entity.js +2 -0
  235. package/dist/types/run/entity.js.map +1 -0
  236. package/dist/types/run/events.d.ts +2 -2
  237. package/dist/types/run/events.d.ts.map +1 -1
  238. package/dist/types/run/index.d.ts +7 -1
  239. package/dist/types/run/index.d.ts.map +1 -1
  240. package/dist/types/run/index.js +8 -9
  241. package/dist/types/run/index.js.map +1 -1
  242. package/dist/{session/hierarchy → types/run}/lineage.d.ts +1 -1
  243. package/dist/types/run/lineage.d.ts.map +1 -0
  244. package/dist/types/run/lineage.js.map +1 -0
  245. package/dist/types/run/replay.d.ts +53 -0
  246. package/dist/types/run/replay.d.ts.map +1 -0
  247. package/dist/types/run/replay.js +15 -0
  248. package/dist/types/run/replay.js.map +1 -0
  249. package/dist/types/run/schema-version.d.ts.map +1 -0
  250. package/dist/types/run/schema-version.js.map +1 -0
  251. package/dist/{session/events/types.d.ts → types/run/subsession-events.d.ts} +5 -5
  252. package/dist/types/run/subsession-events.d.ts.map +1 -0
  253. package/dist/types/run/subsession-events.js +2 -0
  254. package/dist/types/run/subsession-events.js.map +1 -0
  255. package/dist/{session/hierarchy → types/session}/actor.d.ts +1 -1
  256. package/dist/types/session/actor.d.ts.map +1 -0
  257. package/dist/{session/hierarchy → types/session}/actor.js.map +1 -1
  258. package/dist/types/session/entity.d.ts +51 -0
  259. package/dist/types/session/entity.d.ts.map +1 -0
  260. package/dist/types/session/entity.js +2 -0
  261. package/dist/types/session/entity.js.map +1 -0
  262. package/dist/types/session/index.d.ts +4 -0
  263. package/dist/types/session/index.d.ts.map +1 -1
  264. package/dist/{store → types}/session/messages.d.ts +2 -2
  265. package/dist/{store → types}/session/messages.d.ts.map +1 -1
  266. package/dist/types/session/messages.js.map +1 -0
  267. package/dist/types/session/store.d.ts +6 -6
  268. package/dist/types/session/store.d.ts.map +1 -1
  269. package/dist/{session/hierarchy → types/session}/sub-session.d.ts +9 -9
  270. package/dist/types/session/sub-session.d.ts.map +1 -0
  271. package/dist/types/session/sub-session.js.map +1 -0
  272. package/dist/{session → types}/summary/deliverable.d.ts +2 -2
  273. package/dist/types/summary/deliverable.d.ts.map +1 -0
  274. package/dist/types/summary/deliverable.js.map +1 -0
  275. package/dist/types/summary/index.d.ts +4 -0
  276. package/dist/types/summary/index.d.ts.map +1 -0
  277. package/dist/types/summary/index.js +4 -0
  278. package/dist/types/summary/index.js.map +1 -0
  279. package/dist/{session → types}/summary/ref.d.ts +9 -36
  280. package/dist/types/summary/ref.d.ts.map +1 -0
  281. package/dist/types/summary/ref.js +28 -0
  282. package/dist/types/summary/ref.js.map +1 -0
  283. package/dist/{session/hierarchy/tenant.d.ts → types/tenant/entity.d.ts} +2 -2
  284. package/dist/types/tenant/entity.d.ts.map +1 -0
  285. package/dist/types/tenant/entity.js +2 -0
  286. package/dist/types/tenant/entity.js.map +1 -0
  287. package/dist/types/tenant/index.d.ts +2 -0
  288. package/dist/types/tenant/index.d.ts.map +1 -0
  289. package/dist/types/tenant/index.js +4 -0
  290. package/dist/types/tenant/index.js.map +1 -0
  291. package/dist/{session/hierarchy/thread.d.ts → types/thread/entity.d.ts} +31 -7
  292. package/dist/types/thread/entity.d.ts.map +1 -0
  293. package/dist/types/thread/entity.js +2 -0
  294. package/dist/types/thread/entity.js.map +1 -0
  295. package/dist/types/thread/index.d.ts +1 -0
  296. package/dist/types/thread/index.d.ts.map +1 -1
  297. package/dist/types/thread/store.d.ts +1 -1
  298. package/dist/types/thread/store.d.ts.map +1 -1
  299. package/dist/types/workspace/index.d.ts +2 -0
  300. package/dist/types/workspace/index.d.ts.map +1 -0
  301. package/dist/types/workspace/index.js +7 -0
  302. package/dist/types/workspace/index.js.map +1 -0
  303. package/dist/{session → types}/workspace/ref.d.ts +1 -1
  304. package/dist/types/workspace/ref.d.ts.map +1 -0
  305. package/dist/types/workspace/ref.js.map +1 -0
  306. package/package.json +1 -1
  307. package/src/__tests__/replay-public-surface.test.ts +54 -0
  308. package/src/agents/SupervisorAgent.ts +1 -1
  309. package/src/bridge/a2a/task.ts +4 -4
  310. package/src/config/runtime.ts +0 -2
  311. package/src/contracts/api.ts +2 -2
  312. package/src/contracts/index.ts +1 -3
  313. package/src/index.ts +11 -362
  314. package/src/manager/agent/__tests__/lifecycle.test.ts +2 -2
  315. package/src/manager/agent/lifecycle.ts +5 -5
  316. package/src/manager/run/persistence.ts +4 -4
  317. package/src/manager/thread/__tests__/lifecycle.test.ts +1 -1
  318. package/src/manager/thread/lifecycle.ts +2 -2
  319. package/src/plugin/loader.ts +0 -16
  320. package/src/public-runtime.ts +373 -0
  321. package/src/public-tools.ts +63 -0
  322. package/src/public-types.ts +156 -0
  323. package/src/run/LimitChecker.ts +0 -9
  324. package/src/run/reporter.ts +3 -3
  325. package/src/runtime/query/__tests__/checkpoint.test.ts +169 -0
  326. package/src/runtime/query/checkpoint.ts +54 -0
  327. package/src/runtime/query/context.ts +0 -5
  328. package/src/runtime/query/index.ts +4 -4
  329. package/src/runtime/query/replay/__tests__/mutate.test.ts +134 -0
  330. package/src/runtime/query/replay/__tests__/prepare.test.ts +207 -0
  331. package/src/runtime/query/replay/list.ts +32 -0
  332. package/src/runtime/query/replay/mutate.ts +76 -0
  333. package/src/runtime/query/replay/prepare.ts +114 -0
  334. package/src/runtime/query/result.ts +2 -2
  335. package/src/session/__tests__/integration/_fixtures.ts +2 -2
  336. package/src/session/__tests__/integration/archive-gate.test.ts +1 -1
  337. package/src/session/__tests__/integration/capacity-caps.test.ts +1 -1
  338. package/src/session/__tests__/integration/e2e-spawn.test.ts +1 -1
  339. package/src/session/__tests__/integration/handoff-broadcast-e2e.test.ts +1 -1
  340. package/src/session/__tests__/integration/handoff-single-e2e.test.ts +1 -1
  341. package/src/session/__tests__/integration/prev-artifact-dag.test.ts +4 -1
  342. package/src/session/__tests__/integration/retention-archive.test.ts +1 -1
  343. package/src/session/__tests__/integration/spawn-rollback.test.ts +2 -2
  344. package/src/session/__tests__/integration/summary-materialization-e2e.test.ts +1 -1
  345. package/src/session/errors.ts +1 -1
  346. package/src/session/events/index.ts +5 -4
  347. package/src/session/handoff/__tests__/broadcast.test.ts +1 -1
  348. package/src/session/handoff/__tests__/capacity.test.ts +1 -1
  349. package/src/session/handoff/__tests__/single.test.ts +1 -1
  350. package/src/session/handoff/assignment.ts +1 -1
  351. package/src/session/handoff/broadcast.ts +2 -2
  352. package/src/session/handoff/single.ts +2 -2
  353. package/src/session/index.ts +7 -6
  354. package/src/session/intervention/__tests__/prev-artifact.test.ts +4 -1
  355. package/src/session/intervention/prev-artifact.ts +1 -1
  356. package/src/session/retention/__tests__/archive.test.ts +3 -3
  357. package/src/session/retention/__tests__/disk-backend.test.ts +4 -4
  358. package/src/session/retention/archive.ts +2 -2
  359. package/src/session/retention/backend.ts +4 -4
  360. package/src/session/retention/disk-backend.ts +4 -4
  361. package/src/session/retention/index.ts +6 -4
  362. package/src/session/{hierarchy/__tests__/session.test.ts → status/__tests__/derive.test.ts} +3 -2
  363. package/src/session/{hierarchy/session.ts → status/derive.ts} +9 -55
  364. package/src/session/summary/__tests__/materialize.test.ts +4 -7
  365. package/src/session/summary/errors.ts +51 -0
  366. package/src/session/summary/index.ts +7 -10
  367. package/src/session/summary/materialize.ts +4 -5
  368. package/src/session/workspace/__tests__/git-worktree.test.ts +1 -1
  369. package/src/session/workspace/driver.ts +2 -2
  370. package/src/session/workspace/git-worktree.ts +1 -1
  371. package/src/session/workspace/index.ts +7 -6
  372. package/src/store/run/disk.ts +4 -4
  373. package/src/store/session/__tests__/disk.test.ts +2 -2
  374. package/src/store/session/__tests__/memory.test.ts +2 -2
  375. package/src/store/session/disk.ts +12 -12
  376. package/src/store/session/index.ts +3 -2
  377. package/src/store/session/linkage.ts +1 -1
  378. package/src/store/session/memory.ts +6 -6
  379. package/src/store/thread/disk.ts +1 -1
  380. package/src/store/thread/memory.ts +1 -1
  381. package/src/telemetry/attributes.ts +0 -4
  382. package/src/telemetry/runtime-accessors.ts +1 -5
  383. package/src/types/agent/task.ts +2 -2
  384. package/src/{session/hierarchy/project.ts → types/project/entity.ts} +3 -3
  385. package/src/types/project/index.ts +4 -0
  386. package/src/types/retention/index.ts +6 -0
  387. package/src/types/run/entity.ts +63 -0
  388. package/src/types/run/events.ts +6 -6
  389. package/src/types/run/index.ts +16 -9
  390. package/src/{session/hierarchy → types/run}/lineage.ts +1 -1
  391. package/src/types/run/replay.ts +61 -0
  392. package/src/{session/events/types.ts → types/run/subsession-events.ts} +4 -4
  393. package/src/{session/hierarchy → types/session}/actor.ts +1 -1
  394. package/src/types/session/entity.ts +59 -0
  395. package/src/types/session/index.ts +15 -0
  396. package/src/{store → types}/session/messages.ts +2 -2
  397. package/src/types/session/store.ts +6 -6
  398. package/src/{session/hierarchy → types/session}/sub-session.ts +9 -9
  399. package/src/{session → types}/summary/deliverable.ts +2 -2
  400. package/src/types/summary/index.ts +18 -0
  401. package/src/{session → types}/summary/ref.ts +9 -44
  402. package/src/{session/hierarchy/tenant.ts → types/tenant/entity.ts} +1 -1
  403. package/src/types/tenant/index.ts +4 -0
  404. package/src/{session/hierarchy/thread.ts → types/thread/entity.ts} +30 -6
  405. package/src/types/thread/index.ts +1 -0
  406. package/src/types/thread/store.ts +1 -1
  407. package/src/types/workspace/index.ts +12 -0
  408. package/src/{session → types}/workspace/ref.ts +1 -1
  409. package/dist/contracts/ids.d.ts +0 -2
  410. package/dist/contracts/ids.d.ts.map +0 -1
  411. package/dist/contracts/ids.js +0 -2
  412. package/dist/contracts/ids.js.map +0 -1
  413. package/dist/session/events/schema-version.d.ts.map +0 -1
  414. package/dist/session/events/schema-version.js.map +0 -1
  415. package/dist/session/events/types.d.ts.map +0 -1
  416. package/dist/session/events/types.js +0 -2
  417. package/dist/session/events/types.js.map +0 -1
  418. package/dist/session/hierarchy/__tests__/session.test.d.ts +0 -2
  419. package/dist/session/hierarchy/__tests__/session.test.d.ts.map +0 -1
  420. package/dist/session/hierarchy/__tests__/session.test.js.map +0 -1
  421. package/dist/session/hierarchy/actor.d.ts.map +0 -1
  422. package/dist/session/hierarchy/index.d.ts +0 -9
  423. package/dist/session/hierarchy/index.d.ts.map +0 -1
  424. package/dist/session/hierarchy/index.js +0 -4
  425. package/dist/session/hierarchy/index.js.map +0 -1
  426. package/dist/session/hierarchy/lineage.d.ts.map +0 -1
  427. package/dist/session/hierarchy/lineage.js.map +0 -1
  428. package/dist/session/hierarchy/project.d.ts.map +0 -1
  429. package/dist/session/hierarchy/project.js +0 -2
  430. package/dist/session/hierarchy/project.js.map +0 -1
  431. package/dist/session/hierarchy/session.d.ts +0 -71
  432. package/dist/session/hierarchy/session.d.ts.map +0 -1
  433. package/dist/session/hierarchy/session.js.map +0 -1
  434. package/dist/session/hierarchy/sub-session.d.ts.map +0 -1
  435. package/dist/session/hierarchy/sub-session.js.map +0 -1
  436. package/dist/session/hierarchy/tenant.d.ts.map +0 -1
  437. package/dist/session/hierarchy/tenant.js +0 -2
  438. package/dist/session/hierarchy/tenant.js.map +0 -1
  439. package/dist/session/hierarchy/thread.d.ts.map +0 -1
  440. package/dist/session/hierarchy/thread.js +0 -2
  441. package/dist/session/hierarchy/thread.js.map +0 -1
  442. package/dist/session/retention/archive-backend-ref.d.ts.map +0 -1
  443. package/dist/session/retention/archive-backend-ref.js.map +0 -1
  444. package/dist/session/retention/policy.d.ts.map +0 -1
  445. package/dist/session/retention/policy.js.map +0 -1
  446. package/dist/session/summary/deliverable.d.ts.map +0 -1
  447. package/dist/session/summary/deliverable.js.map +0 -1
  448. package/dist/session/summary/ref.d.ts.map +0 -1
  449. package/dist/session/summary/ref.js +0 -51
  450. package/dist/session/summary/ref.js.map +0 -1
  451. package/dist/session/workspace/ref.d.ts.map +0 -1
  452. package/dist/session/workspace/ref.js.map +0 -1
  453. package/dist/store/session/messages.js.map +0 -1
  454. package/dist/tools/builtins/__tests__/structuredOutput.example.d.ts +0 -140
  455. package/dist/tools/builtins/__tests__/structuredOutput.example.d.ts.map +0 -1
  456. package/dist/tools/builtins/__tests__/structuredOutput.example.js +0 -183
  457. package/dist/tools/builtins/__tests__/structuredOutput.example.js.map +0 -1
  458. package/dist/types/run/state.d.ts +0 -30
  459. package/dist/types/run/state.d.ts.map +0 -1
  460. package/dist/types/run/state.js +0 -2
  461. package/dist/types/run/state.js.map +0 -1
  462. package/src/contracts/ids.ts +0 -1
  463. package/src/session/hierarchy/index.ts +0 -18
  464. package/src/tools/builtins/__tests__/structuredOutput.example.ts +0 -221
  465. package/src/types/run/state.ts +0 -35
  466. /package/dist/{session → types}/retention/archive-backend-ref.d.ts +0 -0
  467. /package/dist/{session → types}/retention/archive-backend-ref.js +0 -0
  468. /package/dist/{session → types}/retention/policy.d.ts +0 -0
  469. /package/dist/{session → types}/retention/policy.js +0 -0
  470. /package/dist/{session/hierarchy → types/run}/lineage.js +0 -0
  471. /package/dist/{session/events → types/run}/schema-version.d.ts +0 -0
  472. /package/dist/{session/events → types/run}/schema-version.js +0 -0
  473. /package/dist/{session/hierarchy → types/session}/actor.js +0 -0
  474. /package/dist/{store → types}/session/messages.js +0 -0
  475. /package/dist/{session/hierarchy → types/session}/sub-session.js +0 -0
  476. /package/dist/{session → types}/summary/deliverable.js +0 -0
  477. /package/dist/{session → types}/workspace/ref.js +0 -0
  478. /package/src/{session → types}/retention/archive-backend-ref.ts +0 -0
  479. /package/src/{session → types}/retention/policy.ts +0 -0
  480. /package/src/{session/events → types/run}/schema-version.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ref.d.ts","sourceRoot":"","sources":["../../../src/types/summary/ref.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,OAAO,CAAA;AAE3C,MAAM,MAAM,2BAA2B,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAA;AAE5E,MAAM,WAAW,qBAAqB;IACrC,QAAQ,CAAC,MAAM,EAAE,2BAA2B,CAAA;IAC5C,qEAAqE;IACrE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,yBAAyB;IACzC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;IACjB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACxB;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAA;IACtB,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAA;IAC9B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAA;IACvC,QAAQ,CAAC,YAAY,EAAE,SAAS,cAAc,EAAE,CAAA;IAChD,yEAAyE;IACzE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,YAAY,EAAE,SAAS,yBAAyB,EAAE,CAAA;IAC3D,yCAAyC;IACzC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;IACjB;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAA;CACjC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * SessionSummaryRef — the structured pointer a parent session sees when a
3
+ * sub-session completes. Kernel-owned terminalization primitive: the only
4
+ * producer is `SessionSummaryMaterializer.materialize` (see
5
+ * `session/summary/materialize.ts`). See session-hierarchy.md §4.7 (shape)
6
+ * and §8.1 (emission invariant).
7
+ *
8
+ * The `materializedBy: 'kernel'` literal field is load-bearing — combined
9
+ * with the opaque {@link SummaryId} brand (mintable only by
10
+ * `generateSummaryId`), it enforces at the type level that no agent or tool
11
+ * can construct a valid `SessionSummaryRef`. `SessionStore.recordSummary`
12
+ * only accepts `SessionSummaryRef & { materializedBy: 'kernel' }`, so even a
13
+ * payload shaped correctly would fail the structural check.
14
+ *
15
+ * This is Convention #0 load-bearing: there is no "tool" path to emit a
16
+ * summary; the parent agent sees only what the kernel seals.
17
+ *
18
+ * Runtime errors related to summary emission (`AgentSummaryTooLongError`,
19
+ * `SessionAlreadySummarizedError`) are runtime and therefore live at
20
+ * `session/summary/errors.ts` — they are NOT pure shapes.
21
+ */
22
+ /**
23
+ * Max characters allowed for {@link SessionSummaryRef.agentSummary}. See
24
+ * session-hierarchy.md §4.7 — the agent's narration is bounded to keep
25
+ * parent prompts token-finite regardless of the child's transcript length.
26
+ */
27
+ export const AGENT_SUMMARY_MAX_CHARS = 4000;
28
+ //# sourceMappingURL=ref.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ref.js","sourceRoot":"","sources":["../../../src/types/summary/ref.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { TenantId } from '../../types/ids/index.js';
1
+ import type { TenantId } from '../ids/index.js';
2
2
  /**
3
3
  * Tenancy boundary for everything in the hierarchy.
4
4
  *
@@ -10,4 +10,4 @@ export interface Tenant {
10
10
  id: TenantId;
11
11
  createdAt: Date;
12
12
  }
13
- //# sourceMappingURL=tenant.d.ts.map
13
+ //# sourceMappingURL=entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/types/tenant/entity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE/C;;;;;;GAMG;AACH,MAAM,WAAW,MAAM;IACtB,EAAE,EAAE,QAAQ,CAAA;IACZ,SAAS,EAAE,IAAI,CAAA;CACf"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../src/types/tenant/entity.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export type { Tenant } from './entity.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/tenant/index.ts"],"names":[],"mappings":"AAGA,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1,4 @@
1
+ // Sub-barrel for the tenancy shape surface (Convention #4).
2
+ // Concrete types live in sibling files; re-export them here.
3
+ export {};
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/tenant/index.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,6DAA6D"}
@@ -1,5 +1,5 @@
1
- import type { TenantId } from '../../types/ids/index.js';
2
- import type { ProjectId, ThreadId } from '../../types/session/ids.js';
1
+ import type { TenantId } from '../ids/index.js';
2
+ import type { ProjectId, ThreadId } from '../session/ids.js';
3
3
  /**
4
4
  * Lifecycle state of a Thread.
5
5
  *
@@ -17,8 +17,8 @@ import type { ProjectId, ThreadId } from '../../types/session/ids.js';
17
17
  export type ThreadStatus = 'open' | 'archived';
18
18
  /**
19
19
  * Topic-level container sitting between {@link ProjectId Project} and
20
- * {@link import('../../types/session/ids.js').SessionId Session} in the
21
- * five-layer hierarchy (Project → Thread → Session → SubSession → Run).
20
+ * {@link import('../session/ids.js').SessionId Session} in the five-layer hierarchy
21
+ * (Project → Thread → Session → SubSession → Run).
22
22
  *
23
23
  * A Thread groups together many Sessions that address the same coherent
24
24
  * topic or line-of-work within a Project (e.g. "auth refactor", "billing
@@ -26,7 +26,31 @@ export type ThreadStatus = 'open' | 'archived';
26
26
  * resources (memory, vaults, knowledge bases) but have independent actor
27
27
  * state, handoff history, and Run streams.
28
28
  *
29
- * Design §4 (`docs.local/sessions/ses_001-hierarchy-redesign/design.md`):
29
+ * ## Why Thread is a first-class layer (A2A-connection surface)
30
+ *
31
+ * The layer exists because of how enterprise sharing works in Namzu:
32
+ *
33
+ * - **Project is the folder-bound sharing unit.** An enterprise team shares
34
+ * a Project (`.namzu/` in a repo, a long-lived goal scope). Everyone with
35
+ * Project access sees its shape but not necessarily its active work.
36
+ * - **Thread is the path-independent, A2A-attachable topic surface.** A
37
+ * Project can have multiple Threads — one per objective or line-of-work —
38
+ * and the Threads can be partitioned by device, user, or agent identity.
39
+ * A2A (agent-to-agent) connections attach at the Thread level: connecting
40
+ * to a Thread exposes every Session under it and the ability to join the
41
+ * ongoing work.
42
+ * - **Sessions are the immediate work unit.** A user or agent enters a
43
+ * Thread and opens/resumes Sessions for the concrete interval of work.
44
+ *
45
+ * This is the mental model ses_001 ratified (Phase 0, 2026-04-18). Industry
46
+ * frameworks (OpenAI Responses, LangGraph, Claude Agent SDK, Temporal) do
47
+ * not have an exact analogue for the Thread layer — it is Namzu's answer to
48
+ * the question "how do you expose a multi-session topic to A2A without
49
+ * coupling it to the Project's filesystem identity?".
50
+ *
51
+ * ## Design reference
52
+ *
53
+ * Session design §4 (`docs.local/sessions/ses_001-hierarchy-redesign/design.md`):
30
54
  * - Container only. No own message stream, no own Run stream. Messages
31
55
  * live in Sessions (Phase 0 decision B.1).
32
56
  * - `title` is a user-facing label. **Titles are NOT unique within a
@@ -37,7 +61,7 @@ export type ThreadStatus = 'open' | 'archived';
37
61
  * - `ownerVersion` is the CAS counter for mutations — `updateThread` and
38
62
  * archival transitions require a matching version and reject
39
63
  * {@link StaleThreadError} on mismatch. Mirrors the
40
- * {@link import('./session.js').Session} handoff CAS pattern (§6.1).
64
+ * {@link import('./entity.js').Session} handoff CAS pattern (§6.1).
41
65
  * - No fan-in `deriveStatus()` helper — status is owner-managed, not
42
66
  * Run-derived. This is the Thread-vs-Session contract boundary.
43
67
  */
@@ -51,4 +75,4 @@ export interface Thread {
51
75
  createdAt: Date;
52
76
  updatedAt: Date;
53
77
  }
54
- //# sourceMappingURL=thread.d.ts.map
78
+ //# sourceMappingURL=entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/types/thread/entity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE5D;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,UAAU,CAAA;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,MAAM,WAAW,MAAM;IACtB,EAAE,EAAE,QAAQ,CAAA;IACZ,SAAS,EAAE,SAAS,CAAA;IACpB,QAAQ,EAAE,QAAQ,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,YAAY,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;CACf"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../src/types/thread/entity.ts"],"names":[],"mappings":""}
@@ -1,2 +1,3 @@
1
1
  export type { ThreadStore, CreateThreadParams } from './store.js';
2
+ export type { Thread, ThreadStatus } from './entity.js';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/thread/index.ts"],"names":[],"mappings":"AAIA,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/thread/index.ts"],"names":[],"mappings":"AAIA,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACjE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA"}
@@ -18,7 +18,7 @@
18
18
  * awareness preserves the single-boundary ownership boundary that Phase 2
19
19
  * has just introduced for this layer (Convention #0).
20
20
  */
21
- import type { Thread } from '../../session/hierarchy/thread.js';
21
+ import type { Thread } from '../../types/thread/entity.js';
22
22
  import type { TenantId } from '../ids/index.js';
23
23
  import type { ProjectId, ThreadId } from '../session/ids.js';
24
24
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/types/thread/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE5D;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAClC,SAAS,EAAE,SAAS,CAAA;IACpB;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAA;CACb;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC3B;;;;;;OAMG;IACH,YAAY,CAAC,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAE7E;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAEzE;;;;;;;;;OASG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE/D;;;;;;;OAOG;IACH,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEnE;;;;;;;OAOG;IACH,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAA;CACjF"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/types/thread/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE5D;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAClC,SAAS,EAAE,SAAS,CAAA;IACpB;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAA;CACb;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC3B;;;;;;OAMG;IACH,YAAY,CAAC,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAE7E;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAEzE;;;;;;;;;OASG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE/D;;;;;;;OAOG;IACH,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEnE;;;;;;;OAOG;IACH,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAA;CACjF"}
@@ -0,0 +1,2 @@
1
+ export type { GitWorktreeBackendMeta, WorkspaceBackendKind, WorkspaceBackendMeta, WorkspaceRef, } from './ref.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/workspace/index.ts"],"names":[],"mappings":"AAMA,YAAY,EACX,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,GACZ,MAAM,UAAU,CAAA"}
@@ -0,0 +1,7 @@
1
+ // Sub-barrel for the workspace shape surface (Convention #4).
2
+ // Concrete types live in sibling files; re-export them here.
3
+ //
4
+ // Runtime workspace machinery (drivers, registry, path-builder, git-worktree)
5
+ // stays under `session/workspace/` — this barrel is shape-only.
6
+ export {};
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/workspace/index.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,6DAA6D;AAC7D,EAAE;AACF,8EAA8E;AAC9E,gEAAgE"}
@@ -7,7 +7,7 @@
7
7
  * in a later phase of the overall roadmap (post-MVP) without breaking
8
8
  * existing consumers (Convention #6).
9
9
  */
10
- import type { WorkspaceId } from '../../types/session/ids.js';
10
+ import type { WorkspaceId } from '../session/ids.js';
11
11
  /**
12
12
  * Supported backend kinds. Additional variants are append-only; existing
13
13
  * consumers switch with an `_exhaustive` never-guard and will fail to compile
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ref.d.ts","sourceRoot":"","sources":["../../../src/types/workspace/ref.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,CAAA;AAEpF;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC,OAAO,EAAE,cAAc,CAAA;IACvB,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAA;IAChB,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAA;IACd,+CAA+C;IAC/C,YAAY,EAAE,MAAM,CAAA;CACpB;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,sBAAsB,CAAA;AAEzD;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,WAAW,CAAA;IACf,IAAI,EAAE,oBAAoB,CAAA;IAC1B,SAAS,EAAE,IAAI,CAAA;CACf"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ref.js","sourceRoot":"","sources":["../../../src/types/workspace/ref.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@namzu/sdk",
3
- "version": "0.4.1",
3
+ "version": "0.4.2",
4
4
  "description": "Open-source AI agent SDK with a built-in runtime. Nothing between you and your agents.",
5
5
  "license": "FSL-1.1-MIT",
6
6
  "type": "module",
@@ -0,0 +1,54 @@
1
+ import { describe, expect, it } from 'vitest'
2
+ import {
3
+ CheckpointManager,
4
+ MutationNotApplicableError,
5
+ listCheckpoints,
6
+ prepareReplayState,
7
+ projectEmergencyToCheckpoint,
8
+ } from '../index.js'
9
+ import type { CheckpointListEntry, Mutation, ReplayAttribution, Run } from '../index.js'
10
+
11
+ describe('ses_005 replay primitive — root public surface', () => {
12
+ it('exposes runtime values at the package root', () => {
13
+ expect(typeof prepareReplayState).toBe('function')
14
+ expect(typeof listCheckpoints).toBe('function')
15
+ expect(typeof projectEmergencyToCheckpoint).toBe('function')
16
+ expect(typeof CheckpointManager).toBe('function')
17
+ expect(typeof MutationNotApplicableError).toBe('function')
18
+ })
19
+
20
+ it('MutationNotApplicableError is a throwable Error subclass with availableToolCallIds', () => {
21
+ const err = new MutationNotApplicableError('nope', ['call_x', 'call_y'] as never)
22
+ expect(err).toBeInstanceOf(Error)
23
+ expect(err).toBeInstanceOf(MutationNotApplicableError)
24
+ expect(err.name).toBe('MutationNotApplicableError')
25
+ expect(err.availableToolCallIds).toEqual(['call_x', 'call_y'])
26
+ })
27
+
28
+ // Type-only checks — if these expressions compile, the type surface is
29
+ // correctly flowing through public-types.ts.
30
+ it('exposes replay types (compile-time check)', () => {
31
+ const mutation: Mutation = {
32
+ type: 'injectToolResponse',
33
+ toolCallId: 'call_a' as never,
34
+ response: { success: true, output: '' },
35
+ }
36
+ const entry: CheckpointListEntry = {
37
+ id: 'cp_x' as never,
38
+ runId: 'run_x' as never,
39
+ iteration: 0,
40
+ createdAt: 0,
41
+ messageCount: 0,
42
+ }
43
+ const attribution: ReplayAttribution = {
44
+ sourceRunId: 'run_source' as never,
45
+ fromCheckpointId: 'cp_x' as never,
46
+ mutations: [mutation],
47
+ replayedAt: 0,
48
+ }
49
+ const run: Pick<Run, 'replayOf'> = { replayOf: attribution }
50
+ expect(mutation.type).toBe('injectToolResponse')
51
+ expect(entry.iteration).toBe(0)
52
+ expect(run.replayOf?.sourceRunId).toBe('run_source')
53
+ })
54
+ })
@@ -3,7 +3,6 @@ import { LocalTaskGateway } from '../gateway/local.js'
3
3
  import { ToolRegistry } from '../registry/tool/execute.js'
4
4
  import { drainQuery } from '../runtime/query/index.js'
5
5
  import type { LaunchedTaskMeta } from '../runtime/query/iteration/phases/context.js'
6
- import type { ActorRef } from '../session/hierarchy/actor.js'
7
6
  import { buildCoordinatorTools } from '../tools/coordinator/index.js'
8
7
  import type { TaskGateway } from '../types/agent/gateway.js'
9
8
  import type {
@@ -16,6 +15,7 @@ import type { AgentTaskContext } from '../types/agent/task.js'
16
15
  import type { AgentId, TaskId } from '../types/ids/index.js'
17
16
  import { deriveChildState } from '../types/invocation/index.js'
18
17
  import type { RunEventListener } from '../types/run/index.js'
18
+ import type { ActorRef } from '../types/session/actor.js'
19
19
  import { ZERO_COST } from '../utils/cost.js'
20
20
  import { AbstractAgent } from './AbstractAgent.js'
21
21
 
@@ -1,5 +1,5 @@
1
1
  import { RUN_STATUS_TO_A2A, TERMINAL_STATES } from '../../constants/a2a/index.js'
2
- import type { Run, RunConfig, WireRunStatus } from '../../contracts/index.js'
2
+ import type { RunConfig, WireRun, WireRunStatus } from '../../contracts/index.js'
3
3
  import type {
4
4
  A2AArtifact,
5
5
  A2AMessage,
@@ -19,7 +19,7 @@ export function runStatusToA2AState(status: WireRunStatus): A2ATaskState {
19
19
  return RUN_STATUS_TO_A2A[status]
20
20
  }
21
21
 
22
- function buildTaskStatus(run: Run): A2ATaskStatus {
22
+ function buildTaskStatus(run: WireRun): A2ATaskStatus {
23
23
  const state = runStatusToA2AState(run.status)
24
24
  const timestamp = run.completed_at ?? run.started_at ?? run.created_at
25
25
 
@@ -32,7 +32,7 @@ function buildTaskStatus(run: Run): A2ATaskStatus {
32
32
  return { state, message, timestamp }
33
33
  }
34
34
 
35
- function buildArtifacts(run: Run): A2AArtifact[] | undefined {
35
+ function buildArtifacts(run: WireRun): A2AArtifact[] | undefined {
36
36
  if (!run.result) return undefined
37
37
 
38
38
  return [
@@ -54,7 +54,7 @@ function buildArtifacts(run: Run): A2AArtifact[] | undefined {
54
54
  ]
55
55
  }
56
56
 
57
- export function runToA2ATask(run: Run, messages?: readonly Message[]): A2ATask {
57
+ export function runToA2ATask(run: WireRun, messages?: readonly Message[]): A2ATask {
58
58
  return {
59
59
  id: run.id,
60
60
  contextId: run.project_id ?? undefined,
@@ -51,8 +51,6 @@ export const PromptCacheConfigSchema = z.object({
51
51
  strategy: z.enum(['auto', 'disabled']).default('auto'),
52
52
  })
53
53
 
54
- export type PromptCacheConfig = z.infer<typeof PromptCacheConfigSchema>
55
-
56
54
  export const PluginRuntimeConfigSchema = z.object({
57
55
  enabled: z.boolean().default(false),
58
56
  autoDiscovery: z.boolean().default(true),
@@ -1,7 +1,7 @@
1
1
  import type { AgentCapabilities, AgentType } from '../types/agent/base.js'
2
+ import type { ProjectId, RunId, SessionId } from '../types/ids/index.js'
2
3
  import type { MessageRole } from '../types/message/index.js'
3
4
  import type { StopReason } from '../types/run/events.js'
4
- import type { ProjectId, RunId, SessionId } from './ids.js'
5
5
 
6
6
  export type { MessageRole, StopReason, AgentType, AgentCapabilities }
7
7
 
@@ -65,7 +65,7 @@ export type WireRunStatus =
65
65
  // identifier even if the domain type is later renamed.
66
66
  export type RunStopReason = StopReason
67
67
 
68
- export interface Run {
68
+ export interface WireRun {
69
69
  id: RunId
70
70
  project_id: ProjectId | null
71
71
  session_id?: SessionId
@@ -14,7 +14,7 @@ export type {
14
14
  CreateMessageRequest,
15
15
  WireRunStatus,
16
16
  RunStopReason,
17
- Run,
17
+ WireRun,
18
18
  RunHierarchyNode,
19
19
  ApiPermissionMode,
20
20
  RunConfig,
@@ -29,8 +29,6 @@ export type {
29
29
  ApiError,
30
30
  } from './api.js'
31
31
 
32
- export type { ProjectId, RunId, MessageId, SessionId } from './ids.js'
33
-
34
32
  export {
35
33
  ProjectIdSchema,
36
34
  RunIdSchema,