@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,63 @@
1
+ import type { AgentStatus, CostInfo, TokenUsage } from '../common/index.js'
2
+ import type { RunId } from '../ids/index.js'
3
+ import type { Message } from '../message/index.js'
4
+ import type { AgentRunConfig } from './config.js'
5
+ import type { ReplayAttribution } from './replay.js'
6
+ import type { StopReason } from './stop-reason.js'
7
+
8
+ export interface RunStateMetadata {
9
+ agentId: string
10
+ agentName: string
11
+ config: AgentRunConfig
12
+ provider: string
13
+ }
14
+
15
+ export type SessionMetadata = RunStateMetadata
16
+
17
+ /**
18
+ * Domain Run entity — the persistence record for a single agent invocation
19
+ * under a {@link import('../session/entity.js').Session}. Renamed from
20
+ * `AgentRun` on 2026-04-21 (ses_010 commit 7) to match the 5-layer hierarchy
21
+ * (`Project → Thread → Session → SubSession → Run`) ratified in ses_001.
22
+ *
23
+ * The wire counterpart is `WireRun` under `contracts/api.ts` — the two stay
24
+ * decoupled so the HTTP field shape can evolve independently from this
25
+ * persistence record. See `docs/sdk/sessions/` for the public hierarchy
26
+ * reference.
27
+ */
28
+ export interface Run {
29
+ id: RunId
30
+ status: AgentStatus
31
+ metadata: RunStateMetadata
32
+ messages: Message[]
33
+ tokenUsage: TokenUsage
34
+ costInfo: CostInfo
35
+ currentIteration: number
36
+ startedAt: number
37
+ endedAt?: number
38
+ stopReason?: StopReason
39
+ lastError?: string
40
+ result?: string
41
+
42
+ parentRunId?: RunId
43
+
44
+ depth?: number
45
+
46
+ /**
47
+ * Present when this run was produced by {@link replay}. `undefined` for
48
+ * original runs. See `ses_005-deterministic-replay` for the primitive.
49
+ */
50
+ replayOf?: ReplayAttribution
51
+ }
52
+
53
+ /**
54
+ * @deprecated Use {@link Run}. Alias retained for the 0.4.x compatibility
55
+ * window; scheduled for removal in a later session.
56
+ */
57
+ export type AgentRun = Run
58
+
59
+ /**
60
+ * @deprecated Use {@link Run}. Alias retained for the 0.4.x compatibility
61
+ * window; scheduled for removal in a later session.
62
+ */
63
+ export type AgentSession = Run
@@ -1,9 +1,3 @@
1
- import type {
2
- SubsessionIdledEvent,
3
- SubsessionMessagedEvent,
4
- SubsessionSpawnedEvent,
5
- } from '../../session/events/index.js'
6
- import type { Lineage } from '../../session/hierarchy/lineage.js'
7
1
  import type { ActivityStatus, ActivityType } from '../activity/index.js'
8
2
  import type { BaseAgentResult } from '../agent/base.js'
9
3
  import type { CostInfo, TokenUsage } from '../common/index.js'
@@ -12,6 +6,12 @@ import type { ActivityId, PlanId, PluginId, RunId, SandboxId, TaskId } from '../
12
6
  import type { PlanStep } from '../plan/index.js'
13
7
  import type { PluginHookEvent, PluginHookResult } from '../plugin/index.js'
14
8
  import type { TaskStatus } from '../task/index.js'
9
+ import type { Lineage } from './lineage.js'
10
+ import type {
11
+ SubsessionIdledEvent,
12
+ SubsessionMessagedEvent,
13
+ SubsessionSpawnedEvent,
14
+ } from './subsession-events.js'
15
15
 
16
16
  export type { StopReason } from './stop-reason.js'
17
17
 
@@ -1,14 +1,21 @@
1
1
  export * from './stop-reason.js'
2
2
  export * from './config.js'
3
- export * from './state.js'
4
- // Note: `./status.js` is intentionally NOT re-exported via `export *` from
5
- // this barrel — the domain `RunStatus` type (session-hierarchy.md §4.6)
6
- // shares its name with the deprecated wire alias `RunStatus` in
7
- // `contracts/api.ts` (the canonical wire name is now `WireRunStatus`, see
8
- // Task 10 Phase 9). The root barrel re-exports the domain `RunStatus`
9
- // explicitly via `export type { RunStatus } from './types/run/status.js'`
10
- // so external consumers of `@namzu/sdk` land on the domain enum while
11
- // `@namzu/contracts` continues to own the wire shape.
3
+ export * from './entity.js'
4
+ export * from './replay.js'
5
+ // Domain `RunStatus` (session-hierarchy.md §4.6 state machine). Safe to
6
+ // re-export via `export *` now — the former wire-side `RunStatus` alias was
7
+ // renamed to `WireRunStatus` in ses_010 commit 7, so there is no longer a
8
+ // collision to avoid.
9
+ export * from './status.js'
12
10
  export * from './events.js'
13
11
  export * from './metadata.js'
14
12
  export * from './emergency.js'
13
+ export type { Lineage } from './lineage.js'
14
+ export type {
15
+ SubsessionIdledEvent,
16
+ SubsessionLifecycleEvent,
17
+ SubsessionMessagedEvent,
18
+ SubsessionSpawnedEvent,
19
+ } from './subsession-events.js'
20
+ export { RUN_EVENT_SCHEMA_VERSION } from './schema-version.js'
21
+ export type { RunEventSchemaVersion } from './schema-version.js'
@@ -1,4 +1,4 @@
1
- import type { SessionId } from '../../types/ids/index.js'
1
+ import type { SessionId } from '../ids/index.js'
2
2
 
3
3
  /**
4
4
  * Parent/root linkage carried on every sub-session event.
@@ -0,0 +1,61 @@
1
+ import type { CheckpointId, RunId, ToolCallId } from '../ids/index.js'
2
+ import type { ToolResult } from '../tool/index.js'
3
+
4
+ /**
5
+ * Controlled mutation applied at the fork point during {@link replay}.
6
+ *
7
+ * v1 ships a single variant: `injectToolResponse` — the 80% debugging use
8
+ * case. Additional variants (`swapProvider`, `overrideBudget`, etc.) are
9
+ * deferred; see ses_005-deterministic-replay §3.3.
10
+ */
11
+ export type Mutation = {
12
+ type: 'injectToolResponse'
13
+ toolCallId: ToolCallId
14
+ response: ToolResult
15
+ }
16
+
17
+ /**
18
+ * Lightweight listing entry returned by {@link listCheckpoints}. Projected
19
+ * from {@link import('../hitl/index.js').IterationCheckpoint} — not a full
20
+ * checkpoint payload, just enough to pick a fork point.
21
+ *
22
+ * Named `CheckpointListEntry` (not `CheckpointSummary`) to avoid collision
23
+ * with the pre-existing HITL `CheckpointSummary` shape at
24
+ * `types/hitl/index.ts`.
25
+ */
26
+ export interface CheckpointListEntry {
27
+ id: CheckpointId
28
+ runId: RunId
29
+ iteration: number
30
+ createdAt: number
31
+ messageCount: number
32
+ }
33
+
34
+ /**
35
+ * Attribution record stamped on a {@link Run} produced by {@link replay}.
36
+ * Non-replay runs have `replayOf === undefined`. Shape mirrors voltagent's
37
+ * `replayedFromExecutionId` / `replayFromStepId` pattern, folded into a
38
+ * single optional rather than three parallel ones.
39
+ */
40
+ export interface ReplayAttribution {
41
+ sourceRunId: RunId
42
+ fromCheckpointId: CheckpointId
43
+ mutations: Mutation[]
44
+ replayedAt: number
45
+ }
46
+
47
+ /**
48
+ * Thrown when a {@link Mutation} cannot be applied at the resolved fork
49
+ * point. Currently raised by `injectToolResponse` when the supplied
50
+ * `toolCallId` does not match any pending tool call in the checkpoint's
51
+ * last assistant message.
52
+ */
53
+ export class MutationNotApplicableError extends Error {
54
+ constructor(
55
+ message: string,
56
+ public readonly availableToolCallIds: readonly ToolCallId[],
57
+ ) {
58
+ super(message)
59
+ this.name = 'MutationNotApplicableError'
60
+ }
61
+ }
@@ -1,7 +1,7 @@
1
- import type { MessageId, RunId, SessionId } from '../../types/ids/index.js'
2
- import type { SubSessionId } from '../../types/session/ids.js'
3
- import type { ActorRef } from '../hierarchy/actor.js'
4
- import type { Lineage } from '../hierarchy/lineage.js'
1
+ import type { MessageId, RunId, SessionId } from '../ids/index.js'
2
+ import type { ActorRef } from '../session/actor.js'
3
+ import type { SubSessionId } from '../session/ids.js'
4
+ import type { Lineage } from './lineage.js'
5
5
  import type { RunEventSchemaVersion } from './schema-version.js'
6
6
 
7
7
  /**
@@ -1,4 +1,4 @@
1
- import type { AgentId, TenantId, UserId } from '../../types/ids/index.js'
1
+ import type { AgentId, TenantId, UserId } from '../ids/index.js'
2
2
 
3
3
  /**
4
4
  * Discriminated union of actors that can own a {@link Session}.
@@ -0,0 +1,59 @@
1
+ import type { SessionId, TenantId } from '../ids/index.js'
2
+ import type { ActorRef } from './actor.js'
3
+ import type { ProjectId, ThreadId, WorkspaceId } from './ids.js'
4
+
5
+ /**
6
+ * Session lifecycle states. See session-hierarchy.md §4.3 and the state
7
+ * machine in §5.1. `awaiting_merge` is a sub-state of idle used on the
8
+ * broadcast source session (§5.4) between fan-out and all recipients
9
+ * terminalizing.
10
+ */
11
+ export type SessionStatus =
12
+ | 'active'
13
+ | 'idle'
14
+ | 'locked'
15
+ | 'awaiting_hitl'
16
+ | 'awaiting_merge'
17
+ | 'failed'
18
+ | 'archived'
19
+
20
+ /**
21
+ * Multi-turn work unit owned by exactly one {@link ActorRef} at a time.
22
+ *
23
+ * Scope identifiers:
24
+ * - `threadId` — the topic-level {@link import('../thread/entity.js').Thread}
25
+ * this Session lives under. Set at creation, immutable; Sessions never
26
+ * move threads.
27
+ * - `projectId` — the {@link import('../project/entity.js').Project} the
28
+ * owning Thread belongs to. **Denormalized** from `thread.projectId` at
29
+ * creation time; immutable. Kept on the Session record for ergonomic
30
+ * access (Project-scoped consumers — handoff validators, archival,
31
+ * retention — would otherwise need a second round-trip to ThreadStore
32
+ * on every read). This is NOT a deprecated mirror of a fading field;
33
+ * it is a deliberate denormalization of structurally-immutable derived
34
+ * data.
35
+ *
36
+ * Other invariants (session-hierarchy.md §4.3):
37
+ * - `previousActors` is append-only and publicly read-only; previous
38
+ * owners cannot write to the session again.
39
+ * - `ownerVersion` is the CAS counter for handoff (§6.1 / §6.2 / §6.4).
40
+ * - `workspaceId` is nullable for sessions whose workspace has not yet
41
+ * been provisioned (or has been torn down during archival).
42
+ *
43
+ * The pure `deriveStatus(session, runs)` fan-in helper lives at
44
+ * `session/status/derive.ts` — it is runtime, not a shape, so it is not
45
+ * colocated with this interface.
46
+ */
47
+ export interface Session {
48
+ id: SessionId
49
+ threadId: ThreadId
50
+ projectId: ProjectId
51
+ tenantId: TenantId
52
+ status: SessionStatus
53
+ currentActor: ActorRef | null
54
+ previousActors: readonly ActorRef[]
55
+ workspaceId: WorkspaceId | null
56
+ ownerVersion: number
57
+ createdAt: Date
58
+ updatedAt: Date
59
+ }
@@ -25,3 +25,18 @@ export type {
25
25
  CreateSessionParams,
26
26
  CreateSubSessionParams,
27
27
  } from './store.js'
28
+
29
+ export type { SessionMessage } from './messages.js'
30
+
31
+ export type { ActorRef, SystemRoleId } from './actor.js'
32
+
33
+ export type { Session, SessionStatus } from './entity.js'
34
+
35
+ export type {
36
+ CompletionMode,
37
+ DeliverableRef,
38
+ FailureMode,
39
+ SubSession,
40
+ SubSessionKind,
41
+ SubSessionStatus,
42
+ } from './sub-session.js'
@@ -9,8 +9,8 @@
9
9
  * addressability + tenant isolation.
10
10
  */
11
11
 
12
- import type { MessageId, SessionId, TenantId } from '../../types/ids/index.js'
13
- import type { Message } from '../../types/message/index.js'
12
+ import type { MessageId, SessionId, TenantId } from '../ids/index.js'
13
+ import type { Message } from '../message/index.js'
14
14
 
15
15
  export interface SessionMessage {
16
16
  readonly id: MessageId
@@ -6,17 +6,17 @@
6
6
  * API — extensions land alongside their consumers.
7
7
  */
8
8
 
9
- import type { ActorRef } from '../../session/hierarchy/actor.js'
10
- import type { Project } from '../../session/hierarchy/project.js'
11
- import type { Session } from '../../session/hierarchy/session.js'
9
+ import type { Project } from '../../types/project/entity.js'
10
+ import type { ActorRef } from '../../types/session/actor.js'
11
+ import type { Session } from '../../types/session/entity.js'
12
+ import type { SessionMessage } from '../../types/session/messages.js'
12
13
  import type {
13
14
  CompletionMode,
14
15
  FailureMode,
15
16
  SubSession,
16
17
  SubSessionKind,
17
- } from '../../session/hierarchy/sub-session.js'
18
- import type { SessionSummaryRef } from '../../session/summary/ref.js'
19
- import type { SessionMessage } from '../../store/session/messages.js'
18
+ } from '../../types/session/sub-session.js'
19
+ import type { SessionSummaryRef } from '../../types/summary/ref.js'
20
20
  import type { MessageId, SessionId, TenantId } from '../ids/index.js'
21
21
  import type { Message } from '../message/index.js'
22
22
  import type { ProjectId, SubSessionId, SummaryId, ThreadId } from '../session/ids.js'
@@ -1,8 +1,8 @@
1
- import type { SessionId } from '../../types/ids/index.js'
2
- import type { SubSessionId, SummaryId, WorkspaceId } from '../../types/session/ids.js'
3
- import type { ArchiveBackendRef } from '../retention/archive-backend-ref.js'
4
- import type { DeliverableRef } from '../summary/deliverable.js'
1
+ import type { ArchiveBackendRef } from '../../types/retention/archive-backend-ref.js'
2
+ import type { DeliverableRef } from '../../types/summary/deliverable.js'
3
+ import type { SessionId } from '../ids/index.js'
5
4
  import type { ActorRef } from './actor.js'
5
+ import type { SubSessionId, SummaryId, WorkspaceId } from './ids.js'
6
6
 
7
7
  /**
8
8
  * Full 11-variant status union. See session-hierarchy.md §4.4 and the merge
@@ -50,15 +50,15 @@ export type CompletionMode = 'summary_ref' | 'merge_back'
50
50
  /**
51
51
  * Re-export of the real {@link DeliverableRef} discriminated union. The
52
52
  * concrete shape lives in `../summary/deliverable.ts` — see
53
- * session-hierarchy.md §4.7 / §8.1. Phase 5 (this phase) replaced the Phase 1
54
- * `unknown` placeholder with the real type.
53
+ * session-hierarchy.md §4.7 / §8.1. Phase 5 replaced the Phase 1 `unknown`
54
+ * placeholder with the real type.
55
55
  */
56
56
  export type { DeliverableRef }
57
57
 
58
58
  /**
59
- * Edge between a parent {@link Session} and a child session, carrying the
60
- * delegation metadata. The child session itself lives in `SessionStore`
61
- * like any other session — see session-hierarchy.md §4.4.
59
+ * Edge between a parent {@link import('./entity.js').Session} and a child
60
+ * session, carrying the delegation metadata. The child session itself lives
61
+ * in `SessionStore` like any other session — see session-hierarchy.md §4.4.
62
62
  */
63
63
  export interface SubSession {
64
64
  id: SubSessionId
@@ -17,8 +17,8 @@
17
17
  * handle all variants exhaustively.
18
18
  */
19
19
 
20
- import type { RunId, SessionId } from '../../types/ids/index.js'
21
- import type { DeliverableId, SummaryId } from '../../types/session/ids.js'
20
+ import type { RunId, SessionId } from '../ids/index.js'
21
+ import type { DeliverableId, SummaryId } from '../session/ids.js'
22
22
 
23
23
  /** Discriminator for {@link DeliverableRef}. */
24
24
  export type DeliverableKind = 'file' | 'session_summary' | 'message' | 'artifact_blob'
@@ -0,0 +1,18 @@
1
+ // Sub-barrel for the session-summary shape surface (Convention #4).
2
+ // Concrete types live in sibling files; re-export them here.
3
+
4
+ export type {
5
+ ArtifactBlobDeliverable,
6
+ DeliverableKind,
7
+ DeliverableRef,
8
+ FileDeliverable,
9
+ MessageDeliverable,
10
+ SessionSummaryDeliverable,
11
+ } from './deliverable.js'
12
+ export { AGENT_SUMMARY_MAX_CHARS } from './ref.js'
13
+ export type {
14
+ SessionSummaryKeyDecision,
15
+ SessionSummaryOutcome,
16
+ SessionSummaryOutcomeStatus,
17
+ SessionSummaryRef,
18
+ } from './ref.js'
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * SessionSummaryRef — the structured pointer a parent session sees when a
3
3
  * sub-session completes. Kernel-owned terminalization primitive: the only
4
- * producer is {@link SessionSummaryMaterializer.materialize} (see
5
- * `./materialize.ts`). See session-hierarchy.md §4.7 (shape) and §8.1
6
- * (emission invariant).
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
7
  *
8
8
  * The `materializedBy: 'kernel'` literal field is load-bearing — combined
9
9
  * with the opaque {@link SummaryId} brand (mintable only by
@@ -14,10 +14,14 @@
14
14
  *
15
15
  * This is Convention #0 load-bearing: there is no "tool" path to emit a
16
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.
17
21
  */
18
22
 
19
- import type { SessionId, TenantId } from '../../types/ids/index.js'
20
- import type { SummaryId } from '../../types/session/ids.js'
23
+ import type { SessionId, TenantId } from '../ids/index.js'
24
+ import type { SummaryId } from '../session/ids.js'
21
25
  import type { DeliverableRef } from './deliverable.js'
22
26
 
23
27
  /**
@@ -63,42 +67,3 @@ export interface SessionSummaryRef {
63
67
  */
64
68
  readonly materializedBy: 'kernel'
65
69
  }
66
-
67
- /**
68
- * Raised by {@link SessionSummaryMaterializer.materialize} when the provided
69
- * `agentSummary` exceeds {@link AGENT_SUMMARY_MAX_CHARS}. Convention #5
70
- * deny-by-default — the kernel does not truncate silently.
71
- */
72
- export class AgentSummaryTooLongError extends Error {
73
- readonly details: {
74
- readonly actual: number
75
- readonly max: number
76
- }
77
-
78
- constructor(details: { actual: number; max: number }) {
79
- super(`agentSummary ${details.actual} chars exceeds max ${details.max}`)
80
- this.name = 'AgentSummaryTooLongError'
81
- this.details = details
82
- }
83
- }
84
-
85
- /**
86
- * Raised when {@link SessionSummaryMaterializer.materialize} is invoked
87
- * against a session that already has a persisted summary. Re-materialization
88
- * would duplicate history — callers wanting to append must open a new
89
- * intervention sub-session (see session-hierarchy.md §4.5).
90
- */
91
- export class SessionAlreadySummarizedError extends Error {
92
- readonly details: {
93
- readonly sessionId: SessionId
94
- readonly existingSummaryId: SummaryId
95
- }
96
-
97
- constructor(details: { sessionId: SessionId; existingSummaryId: SummaryId }) {
98
- super(
99
- `Session ${details.sessionId} already has summary ${details.existingSummaryId}; re-materialization rejected`,
100
- )
101
- this.name = 'SessionAlreadySummarizedError'
102
- this.details = details
103
- }
104
- }
@@ -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
  /**
4
4
  * Tenancy boundary for everything in the hierarchy.
@@ -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
+
4
+ export type { Tenant } from './entity.js'
@@ -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
  /**
5
5
  * Lifecycle state of a Thread.
@@ -19,8 +19,8 @@ export type ThreadStatus = 'open' | 'archived'
19
19
 
20
20
  /**
21
21
  * Topic-level container sitting between {@link ProjectId Project} and
22
- * {@link import('../../types/session/ids.js').SessionId Session} in the
23
- * five-layer hierarchy (Project → Thread → Session → SubSession → Run).
22
+ * {@link import('../session/ids.js').SessionId Session} in the five-layer hierarchy
23
+ * (Project → Thread → Session → SubSession → Run).
24
24
  *
25
25
  * A Thread groups together many Sessions that address the same coherent
26
26
  * topic or line-of-work within a Project (e.g. "auth refactor", "billing
@@ -28,7 +28,31 @@ export type ThreadStatus = 'open' | 'archived'
28
28
  * resources (memory, vaults, knowledge bases) but have independent actor
29
29
  * state, handoff history, and Run streams.
30
30
  *
31
- * Design §4 (`docs.local/sessions/ses_001-hierarchy-redesign/design.md`):
31
+ * ## Why Thread is a first-class layer (A2A-connection surface)
32
+ *
33
+ * The layer exists because of how enterprise sharing works in Namzu:
34
+ *
35
+ * - **Project is the folder-bound sharing unit.** An enterprise team shares
36
+ * a Project (`.namzu/` in a repo, a long-lived goal scope). Everyone with
37
+ * Project access sees its shape but not necessarily its active work.
38
+ * - **Thread is the path-independent, A2A-attachable topic surface.** A
39
+ * Project can have multiple Threads — one per objective or line-of-work —
40
+ * and the Threads can be partitioned by device, user, or agent identity.
41
+ * A2A (agent-to-agent) connections attach at the Thread level: connecting
42
+ * to a Thread exposes every Session under it and the ability to join the
43
+ * ongoing work.
44
+ * - **Sessions are the immediate work unit.** A user or agent enters a
45
+ * Thread and opens/resumes Sessions for the concrete interval of work.
46
+ *
47
+ * This is the mental model ses_001 ratified (Phase 0, 2026-04-18). Industry
48
+ * frameworks (OpenAI Responses, LangGraph, Claude Agent SDK, Temporal) do
49
+ * not have an exact analogue for the Thread layer — it is Namzu's answer to
50
+ * the question "how do you expose a multi-session topic to A2A without
51
+ * coupling it to the Project's filesystem identity?".
52
+ *
53
+ * ## Design reference
54
+ *
55
+ * Session design §4 (`docs.local/sessions/ses_001-hierarchy-redesign/design.md`):
32
56
  * - Container only. No own message stream, no own Run stream. Messages
33
57
  * live in Sessions (Phase 0 decision B.1).
34
58
  * - `title` is a user-facing label. **Titles are NOT unique within a
@@ -39,7 +63,7 @@ export type ThreadStatus = 'open' | 'archived'
39
63
  * - `ownerVersion` is the CAS counter for mutations — `updateThread` and
40
64
  * archival transitions require a matching version and reject
41
65
  * {@link StaleThreadError} on mismatch. Mirrors the
42
- * {@link import('./session.js').Session} handoff CAS pattern (§6.1).
66
+ * {@link import('./entity.js').Session} handoff CAS pattern (§6.1).
43
67
  * - No fan-in `deriveStatus()` helper — status is owner-managed, not
44
68
  * Run-derived. This is the Thread-vs-Session contract boundary.
45
69
  */
@@ -3,3 +3,4 @@
3
3
  // import via `../types/thread/index.js`.
4
4
 
5
5
  export type { ThreadStore, CreateThreadParams } from './store.js'
6
+ export type { Thread, ThreadStatus } from './entity.js'
@@ -19,7 +19,7 @@
19
19
  * has just introduced for this layer (Convention #0).
20
20
  */
21
21
 
22
- import type { Thread } from '../../session/hierarchy/thread.js'
22
+ import type { Thread } from '../../types/thread/entity.js'
23
23
  import type { TenantId } from '../ids/index.js'
24
24
  import type { ProjectId, ThreadId } from '../session/ids.js'
25
25
 
@@ -0,0 +1,12 @@
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
+
7
+ export type {
8
+ GitWorktreeBackendMeta,
9
+ WorkspaceBackendKind,
10
+ WorkspaceBackendMeta,
11
+ WorkspaceRef,
12
+ } from './ref.js'
@@ -8,7 +8,7 @@
8
8
  * existing consumers (Convention #6).
9
9
  */
10
10
 
11
- import type { WorkspaceId } from '../../types/session/ids.js'
11
+ import type { WorkspaceId } from '../session/ids.js'
12
12
 
13
13
  /**
14
14
  * Supported backend kinds. Additional variants are append-only; existing
@@ -1,2 +0,0 @@
1
- export type { ProjectId, RunId, MessageId, SessionId } from '../types/ids/index.js';
2
- //# sourceMappingURL=ids.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../src/contracts/ids.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=ids.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ids.js","sourceRoot":"","sources":["../../src/contracts/ids.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema-version.d.ts","sourceRoot":"","sources":["../../../src/session/events/schema-version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB,EAAG,CAAU,CAAA;AAElD,MAAM,MAAM,qBAAqB,GAAG,OAAO,wBAAwB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema-version.js","sourceRoot":"","sources":["../../../src/session/events/schema-version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAU,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/session/events/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAEhE;;;;;;;;;;;;GAYG;AAEH;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACtC,IAAI,EAAE,oBAAoB,CAAA;IAC1B,KAAK,EAAE,KAAK,CAAA;IACZ,YAAY,EAAE,YAAY,CAAA;IAC1B,eAAe,EAAE,SAAS,CAAA;IAC1B,SAAS,EAAE,QAAQ,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,aAAa,EAAE,qBAAqB,CAAA;IACpC,EAAE,EAAE,IAAI,CAAA;CACR;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACvC,IAAI,EAAE,qBAAqB,CAAA;IAC3B,KAAK,EAAE,KAAK,CAAA;IACZ,YAAY,EAAE,YAAY,CAAA;IAC1B,eAAe,EAAE,SAAS,CAAA;IAC1B,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,aAAa,EAAE,qBAAqB,CAAA;IACpC,EAAE,EAAE,IAAI,CAAA;CACR;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACpC,IAAI,EAAE,kBAAkB,CAAA;IACxB,KAAK,EAAE,KAAK,CAAA;IACZ,YAAY,EAAE,YAAY,CAAA;IAC1B,eAAe,EAAE,SAAS,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,aAAa,EAAE,qBAAqB,CAAA;IACpC,EAAE,EAAE,IAAI,CAAA;CACR;AAED,MAAM,MAAM,wBAAwB,GACjC,sBAAsB,GACtB,uBAAuB,GACvB,oBAAoB,CAAA"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/session/events/types.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=session.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session.test.d.ts","sourceRoot":"","sources":["../../../../src/session/hierarchy/__tests__/session.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"session.test.js","sourceRoot":"","sources":["../../../../src/session/hierarchy/__tests__/session.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"actor.d.ts","sourceRoot":"","sources":["../../../src/session/hierarchy/actor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AAEzE;;;;;;;GAOG;AACH,MAAM,MAAM,QAAQ,GACjB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,GACpD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAC;IAAC,WAAW,CAAC,EAAE,QAAQ,CAAA;CAAE,GAC/E;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,CAAA;AAE7D,4DAA4D;AAC5D,MAAM,MAAM,YAAY,GAAG,OAAO,MAAM,EAAE,CAAA"}