@namzu/sdk 0.1.8 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (626) hide show
  1. package/CHANGELOG.md +69 -2
  2. package/dist/agents/ReactiveAgent.d.ts.map +1 -1
  3. package/dist/agents/ReactiveAgent.js +5 -2
  4. package/dist/agents/ReactiveAgent.js.map +1 -1
  5. package/dist/agents/RouterAgent.d.ts.map +1 -1
  6. package/dist/agents/RouterAgent.js +3 -0
  7. package/dist/agents/RouterAgent.js.map +1 -1
  8. package/dist/agents/SupervisorAgent.d.ts.map +1 -1
  9. package/dist/agents/SupervisorAgent.js +21 -5
  10. package/dist/agents/SupervisorAgent.js.map +1 -1
  11. package/dist/bridge/a2a/index.d.ts +1 -1
  12. package/dist/bridge/a2a/index.d.ts.map +1 -1
  13. package/dist/bridge/a2a/index.js +1 -1
  14. package/dist/bridge/a2a/index.js.map +1 -1
  15. package/dist/bridge/a2a/mapper.d.ts.map +1 -1
  16. package/dist/bridge/a2a/mapper.js +6 -0
  17. package/dist/bridge/a2a/mapper.js.map +1 -1
  18. package/dist/bridge/a2a/message.d.ts +0 -2
  19. package/dist/bridge/a2a/message.d.ts.map +1 -1
  20. package/dist/bridge/a2a/message.js +0 -26
  21. package/dist/bridge/a2a/message.js.map +1 -1
  22. package/dist/bridge/a2a/task.d.ts +5 -4
  23. package/dist/bridge/a2a/task.d.ts.map +1 -1
  24. package/dist/bridge/a2a/task.js +4 -4
  25. package/dist/bridge/a2a/task.js.map +1 -1
  26. package/dist/bridge/sse/mapper.d.ts.map +1 -1
  27. package/dist/bridge/sse/mapper.js +6 -0
  28. package/dist/bridge/sse/mapper.js.map +1 -1
  29. package/dist/constants/a2a/index.d.ts +2 -2
  30. package/dist/constants/a2a/index.d.ts.map +1 -1
  31. package/dist/constants/a2a/index.js.map +1 -1
  32. package/dist/contracts/api.d.ts +14 -27
  33. package/dist/contracts/api.d.ts.map +1 -1
  34. package/dist/contracts/ids.d.ts +1 -1
  35. package/dist/contracts/ids.d.ts.map +1 -1
  36. package/dist/contracts/index.d.ts +3 -3
  37. package/dist/contracts/index.d.ts.map +1 -1
  38. package/dist/contracts/index.js +1 -1
  39. package/dist/contracts/index.js.map +1 -1
  40. package/dist/contracts/schemas.d.ts +1 -31
  41. package/dist/contracts/schemas.d.ts.map +1 -1
  42. package/dist/contracts/schemas.js +1 -7
  43. package/dist/contracts/schemas.js.map +1 -1
  44. package/dist/gateway/local.d.ts.map +1 -1
  45. package/dist/gateway/local.js +6 -0
  46. package/dist/gateway/local.js.map +1 -1
  47. package/dist/index.d.ts +6 -3
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +6 -3
  50. package/dist/index.js.map +1 -1
  51. package/dist/manager/agent/__tests__/lifecycle.test.d.ts +2 -0
  52. package/dist/manager/agent/__tests__/lifecycle.test.d.ts.map +1 -0
  53. package/dist/manager/agent/__tests__/lifecycle.test.js +316 -0
  54. package/dist/manager/agent/__tests__/lifecycle.test.js.map +1 -0
  55. package/dist/manager/agent/lifecycle.d.ts +67 -3
  56. package/dist/manager/agent/lifecycle.d.ts.map +1 -1
  57. package/dist/manager/agent/lifecycle.js +375 -14
  58. package/dist/manager/agent/lifecycle.js.map +1 -1
  59. package/dist/manager/index.d.ts +2 -0
  60. package/dist/manager/index.d.ts.map +1 -1
  61. package/dist/manager/index.js +1 -0
  62. package/dist/manager/index.js.map +1 -1
  63. package/dist/manager/run/persistence.d.ts +10 -1
  64. package/dist/manager/run/persistence.d.ts.map +1 -1
  65. package/dist/manager/run/persistence.js +20 -0
  66. package/dist/manager/run/persistence.js.map +1 -1
  67. package/dist/manager/thread/__tests__/lifecycle.test.d.ts +2 -0
  68. package/dist/manager/thread/__tests__/lifecycle.test.d.ts.map +1 -0
  69. package/dist/manager/thread/__tests__/lifecycle.test.js +216 -0
  70. package/dist/manager/thread/__tests__/lifecycle.test.js.map +1 -0
  71. package/dist/manager/thread/lifecycle.d.ts +105 -0
  72. package/dist/manager/thread/lifecycle.d.ts.map +1 -0
  73. package/dist/manager/thread/lifecycle.js +186 -0
  74. package/dist/manager/thread/lifecycle.js.map +1 -0
  75. package/dist/rag/retriever.js +2 -2
  76. package/dist/run/reporter.d.ts.map +1 -1
  77. package/dist/run/reporter.js +25 -0
  78. package/dist/run/reporter.js.map +1 -1
  79. package/dist/runtime/query/__tests__/context.test.d.ts +2 -0
  80. package/dist/runtime/query/__tests__/context.test.d.ts.map +1 -0
  81. package/dist/runtime/query/__tests__/context.test.js +85 -0
  82. package/dist/runtime/query/__tests__/context.test.js.map +1 -0
  83. package/dist/runtime/query/context-cache.d.ts +3 -3
  84. package/dist/runtime/query/context-cache.d.ts.map +1 -1
  85. package/dist/runtime/query/context-cache.js +2 -2
  86. package/dist/runtime/query/context-cache.js.map +1 -1
  87. package/dist/runtime/query/context.d.ts +45 -1
  88. package/dist/runtime/query/context.d.ts.map +1 -1
  89. package/dist/runtime/query/context.js +50 -8
  90. package/dist/runtime/query/context.js.map +1 -1
  91. package/dist/runtime/query/events.d.ts.map +1 -1
  92. package/dist/runtime/query/events.js +8 -0
  93. package/dist/runtime/query/events.js.map +1 -1
  94. package/dist/runtime/query/index.d.ts +22 -1
  95. package/dist/runtime/query/index.d.ts.map +1 -1
  96. package/dist/runtime/query/index.js +11 -0
  97. package/dist/runtime/query/index.js.map +1 -1
  98. package/dist/session/__tests__/integration/_fixtures.d.ts +122 -0
  99. package/dist/session/__tests__/integration/_fixtures.d.ts.map +1 -0
  100. package/dist/session/__tests__/integration/_fixtures.js +215 -0
  101. package/dist/session/__tests__/integration/_fixtures.js.map +1 -0
  102. package/dist/session/__tests__/integration/archive-gate.test.d.ts +15 -0
  103. package/dist/session/__tests__/integration/archive-gate.test.d.ts.map +1 -0
  104. package/dist/session/__tests__/integration/archive-gate.test.js +214 -0
  105. package/dist/session/__tests__/integration/archive-gate.test.js.map +1 -0
  106. package/dist/session/__tests__/integration/capacity-caps.test.d.ts +13 -0
  107. package/dist/session/__tests__/integration/capacity-caps.test.d.ts.map +1 -0
  108. package/dist/session/__tests__/integration/capacity-caps.test.js +123 -0
  109. package/dist/session/__tests__/integration/capacity-caps.test.js.map +1 -0
  110. package/dist/session/__tests__/integration/e2e-spawn.test.d.ts +18 -0
  111. package/dist/session/__tests__/integration/e2e-spawn.test.d.ts.map +1 -0
  112. package/dist/session/__tests__/integration/e2e-spawn.test.js +238 -0
  113. package/dist/session/__tests__/integration/e2e-spawn.test.js.map +1 -0
  114. package/dist/session/__tests__/integration/event-stream-ordering.test.d.ts +15 -0
  115. package/dist/session/__tests__/integration/event-stream-ordering.test.d.ts.map +1 -0
  116. package/dist/session/__tests__/integration/event-stream-ordering.test.js +330 -0
  117. package/dist/session/__tests__/integration/event-stream-ordering.test.js.map +1 -0
  118. package/dist/session/__tests__/integration/handoff-broadcast-e2e.test.d.ts +12 -0
  119. package/dist/session/__tests__/integration/handoff-broadcast-e2e.test.d.ts.map +1 -0
  120. package/dist/session/__tests__/integration/handoff-broadcast-e2e.test.js +182 -0
  121. package/dist/session/__tests__/integration/handoff-broadcast-e2e.test.js.map +1 -0
  122. package/dist/session/__tests__/integration/handoff-illegal-transition.test.d.ts +18 -0
  123. package/dist/session/__tests__/integration/handoff-illegal-transition.test.d.ts.map +1 -0
  124. package/dist/session/__tests__/integration/handoff-illegal-transition.test.js +156 -0
  125. package/dist/session/__tests__/integration/handoff-illegal-transition.test.js.map +1 -0
  126. package/dist/session/__tests__/integration/handoff-single-e2e.test.d.ts +15 -0
  127. package/dist/session/__tests__/integration/handoff-single-e2e.test.d.ts.map +1 -0
  128. package/dist/session/__tests__/integration/handoff-single-e2e.test.js +179 -0
  129. package/dist/session/__tests__/integration/handoff-single-e2e.test.js.map +1 -0
  130. package/dist/session/__tests__/integration/hierarchy-lifecycle.test.d.ts +12 -0
  131. package/dist/session/__tests__/integration/hierarchy-lifecycle.test.d.ts.map +1 -0
  132. package/dist/session/__tests__/integration/hierarchy-lifecycle.test.js +158 -0
  133. package/dist/session/__tests__/integration/hierarchy-lifecycle.test.js.map +1 -0
  134. package/dist/session/__tests__/integration/migration-filesystem.test.d.ts +11 -0
  135. package/dist/session/__tests__/integration/migration-filesystem.test.d.ts.map +1 -0
  136. package/dist/session/__tests__/integration/migration-filesystem.test.js +140 -0
  137. package/dist/session/__tests__/integration/migration-filesystem.test.js.map +1 -0
  138. package/dist/session/__tests__/integration/migration-id-prefix.test.d.ts +13 -0
  139. package/dist/session/__tests__/integration/migration-id-prefix.test.d.ts.map +1 -0
  140. package/dist/session/__tests__/integration/migration-id-prefix.test.js +84 -0
  141. package/dist/session/__tests__/integration/migration-id-prefix.test.js.map +1 -0
  142. package/dist/session/__tests__/integration/prev-artifact-dag.test.d.ts +14 -0
  143. package/dist/session/__tests__/integration/prev-artifact-dag.test.d.ts.map +1 -0
  144. package/dist/session/__tests__/integration/prev-artifact-dag.test.js +242 -0
  145. package/dist/session/__tests__/integration/prev-artifact-dag.test.js.map +1 -0
  146. package/dist/session/__tests__/integration/retention-archive.test.d.ts +12 -0
  147. package/dist/session/__tests__/integration/retention-archive.test.d.ts.map +1 -0
  148. package/dist/session/__tests__/integration/retention-archive.test.js +187 -0
  149. package/dist/session/__tests__/integration/retention-archive.test.js.map +1 -0
  150. package/dist/session/__tests__/integration/spawn-rollback.test.d.ts +26 -0
  151. package/dist/session/__tests__/integration/spawn-rollback.test.d.ts.map +1 -0
  152. package/dist/session/__tests__/integration/spawn-rollback.test.js +236 -0
  153. package/dist/session/__tests__/integration/spawn-rollback.test.js.map +1 -0
  154. package/dist/session/__tests__/integration/summary-materialization-e2e.test.d.ts +18 -0
  155. package/dist/session/__tests__/integration/summary-materialization-e2e.test.d.ts.map +1 -0
  156. package/dist/session/__tests__/integration/summary-materialization-e2e.test.js +201 -0
  157. package/dist/session/__tests__/integration/summary-materialization-e2e.test.js.map +1 -0
  158. package/dist/session/__tests__/integration/tenant-isolation.test.d.ts +14 -0
  159. package/dist/session/__tests__/integration/tenant-isolation.test.d.ts.map +1 -0
  160. package/dist/session/__tests__/integration/tenant-isolation.test.js +189 -0
  161. package/dist/session/__tests__/integration/tenant-isolation.test.js.map +1 -0
  162. package/dist/session/errors.d.ts +139 -0
  163. package/dist/session/errors.d.ts.map +1 -0
  164. package/dist/session/errors.js +107 -0
  165. package/dist/session/errors.js.map +1 -0
  166. package/dist/session/events/index.d.ts +4 -0
  167. package/dist/session/events/index.d.ts.map +1 -0
  168. package/dist/session/events/index.js +8 -0
  169. package/dist/session/events/index.js.map +1 -0
  170. package/dist/session/events/schema-version.d.ts +13 -0
  171. package/dist/session/events/schema-version.d.ts.map +1 -0
  172. package/dist/session/events/schema-version.js +12 -0
  173. package/dist/session/events/schema-version.js.map +1 -0
  174. package/dist/session/events/types.d.ts +64 -0
  175. package/dist/session/events/types.d.ts.map +1 -0
  176. package/dist/session/events/types.js +2 -0
  177. package/dist/session/events/types.js.map +1 -0
  178. package/dist/session/handoff/__tests__/broadcast.test.d.ts +2 -0
  179. package/dist/session/handoff/__tests__/broadcast.test.d.ts.map +1 -0
  180. package/dist/session/handoff/__tests__/broadcast.test.js +261 -0
  181. package/dist/session/handoff/__tests__/broadcast.test.js.map +1 -0
  182. package/dist/session/handoff/__tests__/capacity.test.d.ts +2 -0
  183. package/dist/session/handoff/__tests__/capacity.test.d.ts.map +1 -0
  184. package/dist/session/handoff/__tests__/capacity.test.js +103 -0
  185. package/dist/session/handoff/__tests__/capacity.test.js.map +1 -0
  186. package/dist/session/handoff/__tests__/single.test.d.ts +2 -0
  187. package/dist/session/handoff/__tests__/single.test.d.ts.map +1 -0
  188. package/dist/session/handoff/__tests__/single.test.js +239 -0
  189. package/dist/session/handoff/__tests__/single.test.js.map +1 -0
  190. package/dist/session/handoff/assignment.d.ts +71 -0
  191. package/dist/session/handoff/assignment.d.ts.map +1 -0
  192. package/dist/session/handoff/assignment.js +11 -0
  193. package/dist/session/handoff/assignment.js.map +1 -0
  194. package/dist/session/handoff/broadcast.d.ts +54 -0
  195. package/dist/session/handoff/broadcast.d.ts.map +1 -0
  196. package/dist/session/handoff/broadcast.js +311 -0
  197. package/dist/session/handoff/broadcast.js.map +1 -0
  198. package/dist/session/handoff/capacity.d.ts +66 -0
  199. package/dist/session/handoff/capacity.d.ts.map +1 -0
  200. package/dist/session/handoff/capacity.js +60 -0
  201. package/dist/session/handoff/capacity.js.map +1 -0
  202. package/dist/session/handoff/events.d.ts +66 -0
  203. package/dist/session/handoff/events.d.ts.map +1 -0
  204. package/dist/session/handoff/events.js +13 -0
  205. package/dist/session/handoff/events.js.map +1 -0
  206. package/dist/session/handoff/index.d.ts +12 -0
  207. package/dist/session/handoff/index.d.ts.map +1 -0
  208. package/dist/session/handoff/index.js +9 -0
  209. package/dist/session/handoff/index.js.map +1 -0
  210. package/dist/session/handoff/single.d.ts +69 -0
  211. package/dist/session/handoff/single.d.ts.map +1 -0
  212. package/dist/session/handoff/single.js +229 -0
  213. package/dist/session/handoff/single.js.map +1 -0
  214. package/dist/session/handoff/version.d.ts +52 -0
  215. package/dist/session/handoff/version.d.ts.map +1 -0
  216. package/dist/session/handoff/version.js +36 -0
  217. package/dist/session/handoff/version.js.map +1 -0
  218. package/dist/session/hierarchy/__tests__/session.test.d.ts +2 -0
  219. package/dist/session/hierarchy/__tests__/session.test.d.ts.map +1 -0
  220. package/dist/session/hierarchy/__tests__/session.test.js +69 -0
  221. package/dist/session/hierarchy/__tests__/session.test.js.map +1 -0
  222. package/dist/session/hierarchy/actor.d.ts +26 -0
  223. package/dist/session/hierarchy/actor.d.ts.map +1 -0
  224. package/dist/session/hierarchy/actor.js +2 -0
  225. package/dist/session/hierarchy/actor.js.map +1 -0
  226. package/dist/session/hierarchy/index.d.ts +9 -0
  227. package/dist/session/hierarchy/index.d.ts.map +1 -0
  228. package/dist/session/hierarchy/index.js +4 -0
  229. package/dist/session/hierarchy/index.js.map +1 -0
  230. package/dist/session/hierarchy/lineage.d.ts +15 -0
  231. package/dist/session/hierarchy/lineage.d.ts.map +1 -0
  232. package/dist/session/hierarchy/lineage.js +2 -0
  233. package/dist/session/hierarchy/lineage.js.map +1 -0
  234. package/dist/session/hierarchy/project.d.ts +40 -0
  235. package/dist/session/hierarchy/project.d.ts.map +1 -0
  236. package/dist/session/hierarchy/project.js +2 -0
  237. package/dist/session/hierarchy/project.js.map +1 -0
  238. package/dist/session/hierarchy/session.d.ts +71 -0
  239. package/dist/session/hierarchy/session.d.ts.map +1 -0
  240. package/dist/session/hierarchy/session.js +51 -0
  241. package/dist/session/hierarchy/session.js.map +1 -0
  242. package/dist/session/hierarchy/sub-session.d.ts +76 -0
  243. package/dist/session/hierarchy/sub-session.d.ts.map +1 -0
  244. package/dist/session/hierarchy/sub-session.js +2 -0
  245. package/dist/session/hierarchy/sub-session.js.map +1 -0
  246. package/dist/session/hierarchy/tenant.d.ts +13 -0
  247. package/dist/session/hierarchy/tenant.d.ts.map +1 -0
  248. package/dist/session/hierarchy/tenant.js +2 -0
  249. package/dist/session/hierarchy/tenant.js.map +1 -0
  250. package/dist/session/hierarchy/thread.d.ts +54 -0
  251. package/dist/session/hierarchy/thread.d.ts.map +1 -0
  252. package/dist/session/hierarchy/thread.js +2 -0
  253. package/dist/session/hierarchy/thread.js.map +1 -0
  254. package/dist/session/index.d.ts +10 -0
  255. package/dist/session/index.d.ts.map +1 -0
  256. package/dist/session/index.js +15 -0
  257. package/dist/session/index.js.map +1 -0
  258. package/dist/session/intervention/__tests__/prev-artifact.test.d.ts +2 -0
  259. package/dist/session/intervention/__tests__/prev-artifact.test.d.ts.map +1 -0
  260. package/dist/session/intervention/__tests__/prev-artifact.test.js +179 -0
  261. package/dist/session/intervention/__tests__/prev-artifact.test.js.map +1 -0
  262. package/dist/session/intervention/index.d.ts +3 -0
  263. package/dist/session/intervention/index.d.ts.map +1 -0
  264. package/dist/session/intervention/index.js +8 -0
  265. package/dist/session/intervention/index.js.map +1 -0
  266. package/dist/session/intervention/prev-artifact.d.ts +103 -0
  267. package/dist/session/intervention/prev-artifact.d.ts.map +1 -0
  268. package/dist/session/intervention/prev-artifact.js +112 -0
  269. package/dist/session/intervention/prev-artifact.js.map +1 -0
  270. package/dist/session/migration/__tests__/filesystem.test.d.ts +2 -0
  271. package/dist/session/migration/__tests__/filesystem.test.d.ts.map +1 -0
  272. package/dist/session/migration/__tests__/filesystem.test.js +188 -0
  273. package/dist/session/migration/__tests__/filesystem.test.js.map +1 -0
  274. package/dist/session/migration/__tests__/id-prefix.test.d.ts +2 -0
  275. package/dist/session/migration/__tests__/id-prefix.test.d.ts.map +1 -0
  276. package/dist/session/migration/__tests__/id-prefix.test.js +83 -0
  277. package/dist/session/migration/__tests__/id-prefix.test.js.map +1 -0
  278. package/dist/session/migration/__tests__/marker.test.d.ts +2 -0
  279. package/dist/session/migration/__tests__/marker.test.d.ts.map +1 -0
  280. package/dist/session/migration/__tests__/marker.test.js +75 -0
  281. package/dist/session/migration/__tests__/marker.test.js.map +1 -0
  282. package/dist/session/migration/errors.d.ts +26 -0
  283. package/dist/session/migration/errors.d.ts.map +1 -0
  284. package/dist/session/migration/errors.js +22 -0
  285. package/dist/session/migration/errors.js.map +1 -0
  286. package/dist/session/migration/filesystem.d.ts +94 -0
  287. package/dist/session/migration/filesystem.d.ts.map +1 -0
  288. package/dist/session/migration/filesystem.js +319 -0
  289. package/dist/session/migration/filesystem.js.map +1 -0
  290. package/dist/session/migration/id-prefix.d.ts +93 -0
  291. package/dist/session/migration/id-prefix.d.ts.map +1 -0
  292. package/dist/session/migration/id-prefix.js +111 -0
  293. package/dist/session/migration/id-prefix.js.map +1 -0
  294. package/dist/session/migration/index.d.ts +8 -0
  295. package/dist/session/migration/index.d.ts.map +1 -0
  296. package/dist/session/migration/index.js +8 -0
  297. package/dist/session/migration/index.js.map +1 -0
  298. package/dist/session/migration/marker.d.ts +57 -0
  299. package/dist/session/migration/marker.d.ts.map +1 -0
  300. package/dist/session/migration/marker.js +111 -0
  301. package/dist/session/migration/marker.js.map +1 -0
  302. package/dist/session/retention/__tests__/archive.test.d.ts +2 -0
  303. package/dist/session/retention/__tests__/archive.test.d.ts.map +1 -0
  304. package/dist/session/retention/__tests__/archive.test.js +253 -0
  305. package/dist/session/retention/__tests__/archive.test.js.map +1 -0
  306. package/dist/session/retention/__tests__/disk-backend.test.d.ts +2 -0
  307. package/dist/session/retention/__tests__/disk-backend.test.d.ts.map +1 -0
  308. package/dist/session/retention/__tests__/disk-backend.test.js +154 -0
  309. package/dist/session/retention/__tests__/disk-backend.test.js.map +1 -0
  310. package/dist/session/retention/archive-backend-ref.d.ts +18 -0
  311. package/dist/session/retention/archive-backend-ref.d.ts.map +1 -0
  312. package/dist/session/retention/archive-backend-ref.js +2 -0
  313. package/dist/session/retention/archive-backend-ref.js.map +1 -0
  314. package/dist/session/retention/archive.d.ts +130 -0
  315. package/dist/session/retention/archive.d.ts.map +1 -0
  316. package/dist/session/retention/archive.js +203 -0
  317. package/dist/session/retention/archive.js.map +1 -0
  318. package/dist/session/retention/backend.d.ts +101 -0
  319. package/dist/session/retention/backend.d.ts.map +1 -0
  320. package/dist/session/retention/backend.js +15 -0
  321. package/dist/session/retention/backend.js.map +1 -0
  322. package/dist/session/retention/disk-backend.d.ts +59 -0
  323. package/dist/session/retention/disk-backend.d.ts.map +1 -0
  324. package/dist/session/retention/disk-backend.js +236 -0
  325. package/dist/session/retention/disk-backend.js.map +1 -0
  326. package/dist/session/retention/index.d.ts +9 -0
  327. package/dist/session/retention/index.d.ts.map +1 -0
  328. package/dist/session/retention/index.js +6 -0
  329. package/dist/session/retention/index.js.map +1 -0
  330. package/dist/session/retention/policy.d.ts +49 -0
  331. package/dist/session/retention/policy.d.ts.map +1 -0
  332. package/dist/session/retention/policy.js +21 -0
  333. package/dist/session/retention/policy.js.map +1 -0
  334. package/dist/session/summary/__tests__/materialize.test.d.ts +2 -0
  335. package/dist/session/summary/__tests__/materialize.test.d.ts.map +1 -0
  336. package/dist/session/summary/__tests__/materialize.test.js +270 -0
  337. package/dist/session/summary/__tests__/materialize.test.js.map +1 -0
  338. package/dist/session/summary/deliverable.d.ts +74 -0
  339. package/dist/session/summary/deliverable.d.ts.map +1 -0
  340. package/dist/session/summary/deliverable.js +20 -0
  341. package/dist/session/summary/deliverable.js.map +1 -0
  342. package/dist/session/summary/index.d.ts +6 -0
  343. package/dist/session/summary/index.d.ts.map +1 -0
  344. package/dist/session/summary/index.js +9 -0
  345. package/dist/session/summary/index.js.map +1 -0
  346. package/dist/session/summary/materialize.d.ts +82 -0
  347. package/dist/session/summary/materialize.d.ts.map +1 -0
  348. package/dist/session/summary/materialize.js +117 -0
  349. package/dist/session/summary/materialize.js.map +1 -0
  350. package/dist/session/summary/ref.d.ts +91 -0
  351. package/dist/session/summary/ref.d.ts.map +1 -0
  352. package/dist/session/summary/ref.js +51 -0
  353. package/dist/session/summary/ref.js.map +1 -0
  354. package/dist/session/workspace/__tests__/git-worktree.test.d.ts +2 -0
  355. package/dist/session/workspace/__tests__/git-worktree.test.d.ts.map +1 -0
  356. package/dist/session/workspace/__tests__/git-worktree.test.js +244 -0
  357. package/dist/session/workspace/__tests__/git-worktree.test.js.map +1 -0
  358. package/dist/session/workspace/__tests__/path-builder.test.d.ts +2 -0
  359. package/dist/session/workspace/__tests__/path-builder.test.d.ts.map +1 -0
  360. package/dist/session/workspace/__tests__/path-builder.test.js +37 -0
  361. package/dist/session/workspace/__tests__/path-builder.test.js.map +1 -0
  362. package/dist/session/workspace/driver.d.ts +55 -0
  363. package/dist/session/workspace/driver.d.ts.map +1 -0
  364. package/dist/session/workspace/driver.js +12 -0
  365. package/dist/session/workspace/driver.js.map +1 -0
  366. package/dist/session/workspace/git-worktree.d.ts +65 -0
  367. package/dist/session/workspace/git-worktree.d.ts.map +1 -0
  368. package/dist/session/workspace/git-worktree.js +156 -0
  369. package/dist/session/workspace/git-worktree.js.map +1 -0
  370. package/dist/session/workspace/index.d.ts +8 -0
  371. package/dist/session/workspace/index.d.ts.map +1 -0
  372. package/dist/session/workspace/index.js +7 -0
  373. package/dist/session/workspace/index.js.map +1 -0
  374. package/dist/session/workspace/path-builder.d.ts +50 -0
  375. package/dist/session/workspace/path-builder.d.ts.map +1 -0
  376. package/dist/session/workspace/path-builder.js +50 -0
  377. package/dist/session/workspace/path-builder.js.map +1 -0
  378. package/dist/session/workspace/ref.d.ts +46 -0
  379. package/dist/session/workspace/ref.d.ts.map +1 -0
  380. package/dist/session/workspace/ref.js +11 -0
  381. package/dist/session/workspace/ref.js.map +1 -0
  382. package/dist/session/workspace/registry.d.ts +26 -0
  383. package/dist/session/workspace/registry.d.ts.map +1 -0
  384. package/dist/session/workspace/registry.js +35 -0
  385. package/dist/session/workspace/registry.js.map +1 -0
  386. package/dist/store/index.d.ts +0 -2
  387. package/dist/store/index.d.ts.map +1 -1
  388. package/dist/store/index.js +0 -1
  389. package/dist/store/index.js.map +1 -1
  390. package/dist/store/session/__tests__/disk.test.d.ts +2 -0
  391. package/dist/store/session/__tests__/disk.test.d.ts.map +1 -0
  392. package/dist/store/session/__tests__/disk.test.js +267 -0
  393. package/dist/store/session/__tests__/disk.test.js.map +1 -0
  394. package/dist/store/session/__tests__/memory.test.d.ts +2 -0
  395. package/dist/store/session/__tests__/memory.test.d.ts.map +1 -0
  396. package/dist/store/session/__tests__/memory.test.js +258 -0
  397. package/dist/store/session/__tests__/memory.test.js.map +1 -0
  398. package/dist/store/session/disk.d.ts +86 -0
  399. package/dist/store/session/disk.d.ts.map +1 -0
  400. package/dist/store/session/disk.js +818 -0
  401. package/dist/store/session/disk.js.map +1 -0
  402. package/dist/store/session/index.d.ts +7 -0
  403. package/dist/store/session/index.d.ts.map +1 -0
  404. package/dist/store/session/index.js +10 -0
  405. package/dist/store/session/index.js.map +1 -0
  406. package/dist/store/session/linkage.d.ts +38 -0
  407. package/dist/store/session/linkage.d.ts.map +1 -0
  408. package/dist/store/session/linkage.js +64 -0
  409. package/dist/store/session/linkage.js.map +1 -0
  410. package/dist/store/session/memory.d.ts +49 -0
  411. package/dist/store/session/memory.d.ts.map +1 -0
  412. package/dist/store/session/memory.js +335 -0
  413. package/dist/store/session/memory.js.map +1 -0
  414. package/dist/store/session/messages.d.ts +20 -0
  415. package/dist/store/session/messages.d.ts.map +1 -0
  416. package/dist/store/session/messages.js +12 -0
  417. package/dist/store/session/messages.js.map +1 -0
  418. package/dist/store/thread/disk.d.ts +41 -0
  419. package/dist/store/thread/disk.d.ts.map +1 -0
  420. package/dist/store/thread/disk.js +229 -0
  421. package/dist/store/thread/disk.js.map +1 -0
  422. package/dist/store/thread/index.d.ts +4 -0
  423. package/dist/store/thread/index.d.ts.map +1 -0
  424. package/dist/store/thread/index.js +6 -0
  425. package/dist/store/thread/index.js.map +1 -0
  426. package/dist/store/thread/memory.d.ts +23 -0
  427. package/dist/store/thread/memory.d.ts.map +1 -0
  428. package/dist/store/thread/memory.js +90 -0
  429. package/dist/store/thread/memory.js.map +1 -0
  430. package/dist/tools/builtins/__tests__/structuredOutput.example.d.ts +1 -1
  431. package/dist/types/agent/base.d.ts +24 -1
  432. package/dist/types/agent/base.d.ts.map +1 -1
  433. package/dist/types/agent/factory.d.ts +8 -2
  434. package/dist/types/agent/factory.d.ts.map +1 -1
  435. package/dist/types/agent/task.d.ts +57 -2
  436. package/dist/types/agent/task.d.ts.map +1 -1
  437. package/dist/types/agent/task.js.map +1 -1
  438. package/dist/types/ids/index.d.ts +22 -3
  439. package/dist/types/ids/index.d.ts.map +1 -1
  440. package/dist/types/ids/index.js +8 -1
  441. package/dist/types/ids/index.js.map +1 -1
  442. package/dist/types/invocation/__tests__/state.test.js +36 -29
  443. package/dist/types/invocation/__tests__/state.test.js.map +1 -1
  444. package/dist/types/invocation/index.d.ts +20 -4
  445. package/dist/types/invocation/index.d.ts.map +1 -1
  446. package/dist/types/invocation/index.js +10 -7
  447. package/dist/types/invocation/index.js.map +1 -1
  448. package/dist/types/rag/retrieval.d.ts +4 -3
  449. package/dist/types/rag/retrieval.d.ts.map +1 -1
  450. package/dist/types/run/config.d.ts +12 -1
  451. package/dist/types/run/config.d.ts.map +1 -1
  452. package/dist/types/run/events.d.ts +26 -1
  453. package/dist/types/run/events.d.ts.map +1 -1
  454. package/dist/types/run/index.d.ts.map +1 -1
  455. package/dist/types/run/index.js +8 -0
  456. package/dist/types/run/index.js.map +1 -1
  457. package/dist/types/run/metadata.d.ts +12 -2
  458. package/dist/types/run/metadata.d.ts.map +1 -1
  459. package/dist/types/run/status.d.ts +26 -0
  460. package/dist/types/run/status.d.ts.map +1 -0
  461. package/dist/types/run/status.js +2 -0
  462. package/dist/types/run/status.js.map +1 -0
  463. package/dist/types/session/ids.d.ts +9 -0
  464. package/dist/types/session/ids.d.ts.map +1 -0
  465. package/dist/types/session/ids.js +9 -0
  466. package/dist/types/session/ids.js.map +1 -0
  467. package/dist/types/session/index.d.ts +3 -0
  468. package/dist/types/session/index.d.ts.map +1 -0
  469. package/dist/types/session/index.js +5 -0
  470. package/dist/types/session/index.js.map +1 -0
  471. package/dist/types/session/store.d.ts +210 -0
  472. package/dist/types/session/store.d.ts.map +1 -0
  473. package/dist/types/session/store.js +9 -0
  474. package/dist/types/session/store.js.map +1 -0
  475. package/dist/types/thread/index.d.ts +2 -0
  476. package/dist/types/thread/index.d.ts.map +1 -0
  477. package/dist/types/thread/index.js +5 -0
  478. package/dist/types/thread/index.js.map +1 -0
  479. package/dist/types/thread/store.d.ts +86 -0
  480. package/dist/types/thread/store.d.ts.map +1 -0
  481. package/dist/types/thread/store.js +22 -0
  482. package/dist/types/thread/store.js.map +1 -0
  483. package/dist/utils/id.d.ts +8 -2
  484. package/dist/utils/id.d.ts.map +1 -1
  485. package/dist/utils/id.js +22 -4
  486. package/dist/utils/id.js.map +1 -1
  487. package/package.json +6 -11
  488. package/src/agents/ReactiveAgent.ts +7 -2
  489. package/src/agents/RouterAgent.ts +5 -0
  490. package/src/agents/SupervisorAgent.ts +29 -6
  491. package/src/bridge/a2a/index.ts +0 -1
  492. package/src/bridge/a2a/mapper.ts +7 -0
  493. package/src/bridge/a2a/message.ts +0 -32
  494. package/src/bridge/a2a/task.ts +9 -8
  495. package/src/bridge/sse/mapper.ts +8 -1
  496. package/src/constants/a2a/index.ts +2 -2
  497. package/src/contracts/api.ts +14 -30
  498. package/src/contracts/ids.ts +1 -1
  499. package/src/contracts/index.ts +3 -7
  500. package/src/contracts/schemas.ts +1 -8
  501. package/src/gateway/local.ts +6 -0
  502. package/src/index.ts +14 -4
  503. package/src/manager/agent/__tests__/lifecycle.test.ts +473 -0
  504. package/src/manager/agent/lifecycle.ts +515 -21
  505. package/src/manager/index.ts +3 -0
  506. package/src/manager/run/persistence.ts +26 -1
  507. package/src/manager/thread/__tests__/lifecycle.test.ts +286 -0
  508. package/src/manager/thread/lifecycle.ts +217 -0
  509. package/src/rag/retriever.ts +2 -2
  510. package/src/run/reporter.ts +28 -0
  511. package/src/runtime/query/__tests__/context.test.ts +102 -0
  512. package/src/runtime/query/context-cache.ts +4 -4
  513. package/src/runtime/query/context.ts +98 -9
  514. package/src/runtime/query/events.ts +8 -0
  515. package/src/runtime/query/index.ts +38 -1
  516. package/src/session/__tests__/integration/_fixtures.ts +310 -0
  517. package/src/session/__tests__/integration/archive-gate.test.ts +288 -0
  518. package/src/session/__tests__/integration/capacity-caps.test.ts +171 -0
  519. package/src/session/__tests__/integration/e2e-spawn.test.ts +296 -0
  520. package/src/session/__tests__/integration/event-stream-ordering.test.ts +410 -0
  521. package/src/session/__tests__/integration/handoff-broadcast-e2e.test.ts +271 -0
  522. package/src/session/__tests__/integration/handoff-illegal-transition.test.ts +214 -0
  523. package/src/session/__tests__/integration/handoff-single-e2e.test.ts +251 -0
  524. package/src/session/__tests__/integration/hierarchy-lifecycle.test.ts +240 -0
  525. package/src/session/__tests__/integration/migration-filesystem.test.ts +209 -0
  526. package/src/session/__tests__/integration/migration-id-prefix.test.ts +101 -0
  527. package/src/session/__tests__/integration/prev-artifact-dag.test.ts +325 -0
  528. package/src/session/__tests__/integration/retention-archive.test.ts +233 -0
  529. package/src/session/__tests__/integration/spawn-rollback.test.ts +313 -0
  530. package/src/session/__tests__/integration/summary-materialization-e2e.test.ts +239 -0
  531. package/src/session/__tests__/integration/tenant-isolation.test.ts +292 -0
  532. package/src/session/errors.ts +159 -0
  533. package/src/session/events/index.ts +16 -0
  534. package/src/session/events/schema-version.ts +13 -0
  535. package/src/session/events/types.ts +71 -0
  536. package/src/session/handoff/__tests__/broadcast.test.ts +378 -0
  537. package/src/session/handoff/__tests__/capacity.test.ts +129 -0
  538. package/src/session/handoff/__tests__/single.test.ts +333 -0
  539. package/src/session/handoff/assignment.ts +74 -0
  540. package/src/session/handoff/broadcast.ts +406 -0
  541. package/src/session/handoff/capacity.ts +121 -0
  542. package/src/session/handoff/events.ts +72 -0
  543. package/src/session/handoff/index.ts +29 -0
  544. package/src/session/handoff/single.ts +310 -0
  545. package/src/session/handoff/version.ts +59 -0
  546. package/src/session/hierarchy/__tests__/session.test.ts +100 -0
  547. package/src/session/hierarchy/actor.ts +17 -0
  548. package/src/session/hierarchy/index.ts +18 -0
  549. package/src/session/hierarchy/lineage.ts +15 -0
  550. package/src/session/hierarchy/project.ts +41 -0
  551. package/src/session/hierarchy/session.ts +109 -0
  552. package/src/session/hierarchy/sub-session.ts +92 -0
  553. package/src/session/hierarchy/tenant.ts +13 -0
  554. package/src/session/hierarchy/thread.ts +55 -0
  555. package/src/session/index.ts +15 -0
  556. package/src/session/intervention/__tests__/prev-artifact.test.ts +234 -0
  557. package/src/session/intervention/index.ts +16 -0
  558. package/src/session/intervention/prev-artifact.ts +180 -0
  559. package/src/session/migration/__tests__/filesystem.test.ts +263 -0
  560. package/src/session/migration/__tests__/id-prefix.test.ts +101 -0
  561. package/src/session/migration/__tests__/marker.test.ts +84 -0
  562. package/src/session/migration/errors.ts +23 -0
  563. package/src/session/migration/filesystem.ts +401 -0
  564. package/src/session/migration/id-prefix.ts +141 -0
  565. package/src/session/migration/index.ts +38 -0
  566. package/src/session/migration/marker.ts +131 -0
  567. package/src/session/retention/__tests__/archive.test.ts +318 -0
  568. package/src/session/retention/__tests__/disk-backend.test.ts +180 -0
  569. package/src/session/retention/archive-backend-ref.ts +17 -0
  570. package/src/session/retention/archive.ts +281 -0
  571. package/src/session/retention/backend.ts +107 -0
  572. package/src/session/retention/disk-backend.ts +304 -0
  573. package/src/session/retention/index.ts +16 -0
  574. package/src/session/retention/policy.ts +53 -0
  575. package/src/session/summary/__tests__/materialize.test.ts +343 -0
  576. package/src/session/summary/deliverable.ts +84 -0
  577. package/src/session/summary/index.ts +31 -0
  578. package/src/session/summary/materialize.ts +169 -0
  579. package/src/session/summary/ref.ts +104 -0
  580. package/src/session/workspace/__tests__/git-worktree.test.ts +258 -0
  581. package/src/session/workspace/__tests__/path-builder.test.ts +51 -0
  582. package/src/session/workspace/driver.ts +60 -0
  583. package/src/session/workspace/git-worktree.ts +209 -0
  584. package/src/session/workspace/index.ts +25 -0
  585. package/src/session/workspace/path-builder.ts +71 -0
  586. package/src/session/workspace/ref.ts +50 -0
  587. package/src/session/workspace/registry.ts +42 -0
  588. package/src/store/index.ts +0 -3
  589. package/src/store/session/__tests__/disk.test.ts +397 -0
  590. package/src/store/session/__tests__/memory.test.ts +402 -0
  591. package/src/store/session/disk.ts +976 -0
  592. package/src/store/session/index.ts +13 -0
  593. package/src/store/session/linkage.ts +80 -0
  594. package/src/store/session/memory.ts +412 -0
  595. package/src/store/session/messages.ts +21 -0
  596. package/src/store/thread/disk.ts +261 -0
  597. package/src/store/thread/index.ts +7 -0
  598. package/src/store/thread/memory.ts +104 -0
  599. package/src/types/agent/base.ts +27 -1
  600. package/src/types/agent/factory.ts +8 -3
  601. package/src/types/agent/task.ts +66 -2
  602. package/src/types/ids/index.ts +34 -3
  603. package/src/types/invocation/__tests__/state.test.ts +37 -29
  604. package/src/types/invocation/index.ts +26 -10
  605. package/src/types/rag/retrieval.ts +4 -3
  606. package/src/types/run/config.ts +13 -1
  607. package/src/types/run/events.ts +36 -1
  608. package/src/types/run/index.ts +8 -0
  609. package/src/types/run/metadata.ts +12 -2
  610. package/src/types/run/status.ts +33 -0
  611. package/src/types/session/ids.ts +23 -0
  612. package/src/types/session/index.ts +27 -0
  613. package/src/types/session/store.ts +252 -0
  614. package/src/types/thread/index.ts +5 -0
  615. package/src/types/thread/store.ts +92 -0
  616. package/src/utils/id.ts +34 -4
  617. package/dist/store/conversation/memory.d.ts +0 -21
  618. package/dist/store/conversation/memory.d.ts.map +0 -1
  619. package/dist/store/conversation/memory.js +0 -86
  620. package/dist/store/conversation/memory.js.map +0 -1
  621. package/dist/types/conversation/index.d.ts +0 -7
  622. package/dist/types/conversation/index.d.ts.map +0 -1
  623. package/dist/types/conversation/index.js +0 -2
  624. package/dist/types/conversation/index.js.map +0 -1
  625. package/src/store/conversation/memory.ts +0 -121
  626. package/src/types/conversation/index.ts +0 -8
@@ -0,0 +1,74 @@
1
+ /**
2
+ * DeliverableRef — discriminated union of artifact types a completed
3
+ * sub-session may emit.
4
+ *
5
+ * Consumed by two surfaces:
6
+ * 1. `SessionSummaryRef.deliverables` — authoritative list of artifacts a
7
+ * completed sub-session produced. See session-hierarchy.md §4.7.
8
+ * 2. `SubSession.prevArtifactRef` — intervention chains reference a prior
9
+ * immutable artifact. See session-hierarchy.md §4.5, §8.1.
10
+ *
11
+ * The `session_summary` variant is what intervention sub-sessions use — a
12
+ * follow-up intervention points at the previous completed session's summary,
13
+ * forming a strict acyclic DAG validated by
14
+ * `session/intervention/prev-artifact.ts`.
15
+ *
16
+ * Convention #6: this is a discriminated union on `kind`; any consumer must
17
+ * handle all variants exhaustively.
18
+ */
19
+ import type { RunId, SessionId } from '../../types/ids/index.js';
20
+ import type { DeliverableId, SummaryId } from '../../types/session/ids.js';
21
+ /** Discriminator for {@link DeliverableRef}. */
22
+ export type DeliverableKind = 'file' | 'session_summary' | 'message' | 'artifact_blob';
23
+ /**
24
+ * A file deliverable — a path relative to the workspace root, plus a content
25
+ * hash pinning the file to its state at materialize time. Subsequent edits to
26
+ * the file on disk do not mutate the deliverable; the ref is a snapshot.
27
+ */
28
+ export interface FileDeliverable {
29
+ readonly id: DeliverableId;
30
+ readonly kind: 'file';
31
+ /** Path relative to the owning session's workspace root. */
32
+ readonly path: string;
33
+ /** sha256 of the file's content at materialize time. */
34
+ readonly contentHash: string;
35
+ readonly sizeBytes: number;
36
+ }
37
+ /**
38
+ * A pointer to a previously-materialized {@link SessionSummaryRef}. The
39
+ * intervention DAG uses this variant to reference the immutable output of a
40
+ * prior completed session.
41
+ */
42
+ export interface SessionSummaryDeliverable {
43
+ readonly id: DeliverableId;
44
+ readonly kind: 'session_summary';
45
+ readonly sessionId: SessionId;
46
+ readonly summaryRef: SummaryId;
47
+ readonly at: Date;
48
+ }
49
+ /**
50
+ * A specific persisted message within a session run — useful for referencing
51
+ * a single LLM turn as an artifact (e.g. a decision record).
52
+ */
53
+ export interface MessageDeliverable {
54
+ readonly id: DeliverableId;
55
+ readonly kind: 'message';
56
+ readonly sessionId: SessionId;
57
+ readonly runId: RunId;
58
+ /** Opaque identifier bound to the run's persisted message log. */
59
+ readonly messageId: string;
60
+ }
61
+ /**
62
+ * An opaque blob deliverable — content lives in an out-of-band storage
63
+ * backend (object store, artifact registry). The SDK does not fetch or
64
+ * validate blob contents; callers resolve via the `storageRef`.
65
+ */
66
+ export interface ArtifactBlobDeliverable {
67
+ readonly id: DeliverableId;
68
+ readonly kind: 'artifact_blob';
69
+ /** Opaque — bound to a storage backend the consumer owns. */
70
+ readonly storageRef: string;
71
+ readonly mediaType?: string;
72
+ }
73
+ export type DeliverableRef = FileDeliverable | SessionSummaryDeliverable | MessageDeliverable | ArtifactBlobDeliverable;
74
+ //# sourceMappingURL=deliverable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deliverable.d.ts","sourceRoot":"","sources":["../../../src/session/summary/deliverable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAE1E,gDAAgD;AAChD,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,iBAAiB,GAAG,SAAS,GAAG,eAAe,CAAA;AAEtF;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,wDAAwD;IACxD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC1B;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACzC,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;IAChC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAA;IAC9B,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;IACrB,kEAAkE;IAClE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC1B;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;IAC9B,6DAA6D;IAC7D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,MAAM,cAAc,GACvB,eAAe,GACf,yBAAyB,GACzB,kBAAkB,GAClB,uBAAuB,CAAA"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * DeliverableRef — discriminated union of artifact types a completed
3
+ * sub-session may emit.
4
+ *
5
+ * Consumed by two surfaces:
6
+ * 1. `SessionSummaryRef.deliverables` — authoritative list of artifacts a
7
+ * completed sub-session produced. See session-hierarchy.md §4.7.
8
+ * 2. `SubSession.prevArtifactRef` — intervention chains reference a prior
9
+ * immutable artifact. See session-hierarchy.md §4.5, §8.1.
10
+ *
11
+ * The `session_summary` variant is what intervention sub-sessions use — a
12
+ * follow-up intervention points at the previous completed session's summary,
13
+ * forming a strict acyclic DAG validated by
14
+ * `session/intervention/prev-artifact.ts`.
15
+ *
16
+ * Convention #6: this is a discriminated union on `kind`; any consumer must
17
+ * handle all variants exhaustively.
18
+ */
19
+ export {};
20
+ //# sourceMappingURL=deliverable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deliverable.js","sourceRoot":"","sources":["../../../src/session/summary/deliverable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG"}
@@ -0,0 +1,6 @@
1
+ export type { ArtifactBlobDeliverable, DeliverableKind, DeliverableRef, FileDeliverable, MessageDeliverable, SessionSummaryDeliverable, } from './deliverable.js';
2
+ export { AGENT_SUMMARY_MAX_CHARS, AgentSummaryTooLongError, SessionAlreadySummarizedError, } from './ref.js';
3
+ export type { SessionSummaryKeyDecision, SessionSummaryOutcome, SessionSummaryOutcomeStatus, SessionSummaryRef, } from './ref.js';
4
+ export { SessionSummaryMaterializer } from './materialize.js';
5
+ export type { MaterializeInput, SessionSummaryMaterializerDeps, } from './materialize.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/session/summary/index.ts"],"names":[],"mappings":"AAOA,YAAY,EACX,uBAAuB,EACvB,eAAe,EACf,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,yBAAyB,GACzB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACN,uBAAuB,EACvB,wBAAwB,EACxB,6BAA6B,GAC7B,MAAM,UAAU,CAAA;AACjB,YAAY,EACX,yBAAyB,EACzB,qBAAqB,EACrB,2BAA2B,EAC3B,iBAAiB,GACjB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAA;AAC7D,YAAY,EACX,gBAAgB,EAChB,8BAA8B,GAC9B,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,9 @@
1
+ // Sub-barrel for the session summary module (Convention #4).
2
+ //
3
+ // See session-hierarchy.md §4.7 (SessionSummaryRef shape) and §8.1
4
+ // (kernel-only emission invariant). Concrete types and the materializer live
5
+ // in sibling files; re-export them here so consumers import via
6
+ // `../session/summary/index.js`.
7
+ export { AGENT_SUMMARY_MAX_CHARS, AgentSummaryTooLongError, SessionAlreadySummarizedError, } from './ref.js';
8
+ export { SessionSummaryMaterializer } from './materialize.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/session/summary/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,EAAE;AACF,mEAAmE;AACnE,6EAA6E;AAC7E,gEAAgE;AAChE,iCAAiC;AAUjC,OAAO,EACN,uBAAuB,EACvB,wBAAwB,EACxB,6BAA6B,GAC7B,MAAM,UAAU,CAAA;AAOjB,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * SessionSummaryMaterializer — kernel terminalization primitive.
3
+ *
4
+ * The sole producer of {@link SessionSummaryRef}. No agent-callable surface
5
+ * exists to bypass this (Convention #0 load-bearing — see
6
+ * session-hierarchy.md §8.1).
7
+ *
8
+ * Atomicity contract (§8.1): the summary write and the owning session's
9
+ * `non-terminal → idle` status flip commit as one logical unit. In the
10
+ * InMemory store the two happen within the same method call under the store's
11
+ * Map guard; in the Disk store they are two sequential write-tmp-renames
12
+ * (summary.json first, then session.json). A mid-step crash leaves the
13
+ * summary persisted but the session still active — `recover()` replays the
14
+ * session-status flip idempotently on next boot.
15
+ *
16
+ * The class is function-call-style (no internal state beyond deps). Tests
17
+ * inject a fake generator for deterministic IDs; production uses
18
+ * `generateSummaryId` from `utils/id.ts`.
19
+ */
20
+ import type { SessionId, TenantId } from '../../types/ids/index.js';
21
+ import type { SummaryId } from '../../types/session/ids.js';
22
+ import type { SessionStore } from '../../types/session/store.js';
23
+ import type { DeliverableRef } from './deliverable.js';
24
+ import { type SessionSummaryKeyDecision, type SessionSummaryOutcome, type SessionSummaryRef } from './ref.js';
25
+ /**
26
+ * Dependencies for {@link SessionSummaryMaterializer}. The generator is
27
+ * injected so tests can produce deterministic IDs; production code wires
28
+ * `generateSummaryId` from `utils/id.ts`.
29
+ */
30
+ export interface SessionSummaryMaterializerDeps {
31
+ readonly store: SessionStore;
32
+ readonly generateSummaryId: () => SummaryId;
33
+ /** Clock hook — defaults to `new Date()` when omitted. */
34
+ readonly now?: () => Date;
35
+ }
36
+ /**
37
+ * Caller-supplied payload for {@link SessionSummaryMaterializer.materialize}.
38
+ * The materializer validates `agentSummary` length, constructs the
39
+ * `SessionSummaryRef`, and delegates the atomic write to the store.
40
+ */
41
+ export interface MaterializeInput {
42
+ readonly sessionId: SessionId;
43
+ readonly tenantId: TenantId;
44
+ readonly finalOutcome: SessionSummaryOutcome;
45
+ readonly agentSummary: string;
46
+ readonly declaredDeliverables: readonly DeliverableRef[];
47
+ readonly keyDecisions: readonly SessionSummaryKeyDecision[];
48
+ }
49
+ export declare class SessionSummaryMaterializer {
50
+ private readonly deps;
51
+ constructor(deps: SessionSummaryMaterializerDeps);
52
+ /**
53
+ * Kernel emission path. Validates, builds the immutable
54
+ * {@link SessionSummaryRef}, and hands it to the store for atomic write +
55
+ * status-flip. Rejects with:
56
+ *
57
+ * - {@link AgentSummaryTooLongError} — `agentSummary` exceeds the max char
58
+ * cap ({@link AGENT_SUMMARY_MAX_CHARS}).
59
+ * - `TenantIsolationError` — session is owned by a different tenant.
60
+ * - {@link SessionAlreadySummarizedError} — the session already has a
61
+ * persisted summary. Re-materialization would duplicate history; the
62
+ * caller should instead open an intervention sub-session (§4.5).
63
+ */
64
+ materialize(input: MaterializeInput): Promise<SessionSummaryRef>;
65
+ /**
66
+ * Recovery path. Called at boot (or explicitly by the lifecycle manager)
67
+ * for sessions whose `summary.json` is persisted but whose `session.json`
68
+ * still reports a non-terminal status — the crash window between the two
69
+ * atomic writes on disk.
70
+ *
71
+ * Idempotent: if the session is already `'idle'` (or another terminal
72
+ * state), no write occurs; the existing summary is returned. If no summary
73
+ * is persisted, returns `null` and no side effect occurs. This is the only
74
+ * non-materialize path that may touch the stored summary — it does not
75
+ * mint a new ID, only re-triggers the store's status flip via
76
+ * `recordSummary` when it detects the dangling session.
77
+ */
78
+ recover(sessionId: SessionId, tenantId: TenantId): Promise<SessionSummaryRef | null>;
79
+ private assertSummaryLength;
80
+ private clock;
81
+ }
82
+ //# sourceMappingURL=materialize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"materialize.d.ts","sourceRoot":"","sources":["../../../src/session/summary/materialize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAEhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAIN,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,MAAM,UAAU,CAAA;AAEjB;;;;GAIG;AACH,MAAM,WAAW,8BAA8B;IAC9C,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;IAC5B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,SAAS,CAAA;IAC3C,0DAA0D;IAC1D,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,YAAY,EAAE,qBAAqB,CAAA;IAC5C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,oBAAoB,EAAE,SAAS,cAAc,EAAE,CAAA;IACxD,QAAQ,CAAC,YAAY,EAAE,SAAS,yBAAyB,EAAE,CAAA;CAC3D;AAcD,qBAAa,0BAA0B;IACtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgC;gBAEzC,IAAI,EAAE,8BAA8B;IAIhD;;;;;;;;;;;OAWG;IACG,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAgCtE;;;;;;;;;;;;OAYG;IACG,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAoB1F,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,KAAK;CAGb"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * SessionSummaryMaterializer — kernel terminalization primitive.
3
+ *
4
+ * The sole producer of {@link SessionSummaryRef}. No agent-callable surface
5
+ * exists to bypass this (Convention #0 load-bearing — see
6
+ * session-hierarchy.md §8.1).
7
+ *
8
+ * Atomicity contract (§8.1): the summary write and the owning session's
9
+ * `non-terminal → idle` status flip commit as one logical unit. In the
10
+ * InMemory store the two happen within the same method call under the store's
11
+ * Map guard; in the Disk store they are two sequential write-tmp-renames
12
+ * (summary.json first, then session.json). A mid-step crash leaves the
13
+ * summary persisted but the session still active — `recover()` replays the
14
+ * session-status flip idempotently on next boot.
15
+ *
16
+ * The class is function-call-style (no internal state beyond deps). Tests
17
+ * inject a fake generator for deterministic IDs; production uses
18
+ * `generateSummaryId` from `utils/id.ts`.
19
+ */
20
+ import { AGENT_SUMMARY_MAX_CHARS, AgentSummaryTooLongError, SessionAlreadySummarizedError, } from './ref.js';
21
+ /**
22
+ * Session statuses from which a materialize call may legally transition to
23
+ * `'idle'` as part of the terminalization. Other states (already `'idle'`,
24
+ * `'failed'`, `'archived'`, `'awaiting_hitl'`) are left untouched; the
25
+ * materializer never moves a session *out of* `'failed'` or `'archived'`.
26
+ */
27
+ const TERMINALIZABLE_STATUSES = new Set([
28
+ 'active',
29
+ 'locked',
30
+ 'awaiting_merge',
31
+ ]);
32
+ export class SessionSummaryMaterializer {
33
+ deps;
34
+ constructor(deps) {
35
+ this.deps = deps;
36
+ }
37
+ /**
38
+ * Kernel emission path. Validates, builds the immutable
39
+ * {@link SessionSummaryRef}, and hands it to the store for atomic write +
40
+ * status-flip. Rejects with:
41
+ *
42
+ * - {@link AgentSummaryTooLongError} — `agentSummary` exceeds the max char
43
+ * cap ({@link AGENT_SUMMARY_MAX_CHARS}).
44
+ * - `TenantIsolationError` — session is owned by a different tenant.
45
+ * - {@link SessionAlreadySummarizedError} — the session already has a
46
+ * persisted summary. Re-materialization would duplicate history; the
47
+ * caller should instead open an intervention sub-session (§4.5).
48
+ */
49
+ async materialize(input) {
50
+ this.assertSummaryLength(input.agentSummary);
51
+ const session = await this.deps.store.getSession(input.sessionId, input.tenantId);
52
+ if (!session) {
53
+ throw new Error(`Session ${input.sessionId} not found`);
54
+ }
55
+ const existing = await this.deps.store.getSummary(input.sessionId, input.tenantId);
56
+ if (existing) {
57
+ throw new SessionAlreadySummarizedError({
58
+ sessionId: input.sessionId,
59
+ existingSummaryId: existing.id,
60
+ });
61
+ }
62
+ const summary = {
63
+ id: this.deps.generateSummaryId(),
64
+ sessionRef: input.sessionId,
65
+ tenantId: input.tenantId,
66
+ outcome: input.finalOutcome,
67
+ deliverables: input.declaredDeliverables,
68
+ agentSummary: input.agentSummary,
69
+ keyDecisions: input.keyDecisions,
70
+ at: this.clock(),
71
+ materializedBy: 'kernel',
72
+ };
73
+ await this.deps.store.recordSummary(summary, input.tenantId);
74
+ return summary;
75
+ }
76
+ /**
77
+ * Recovery path. Called at boot (or explicitly by the lifecycle manager)
78
+ * for sessions whose `summary.json` is persisted but whose `session.json`
79
+ * still reports a non-terminal status — the crash window between the two
80
+ * atomic writes on disk.
81
+ *
82
+ * Idempotent: if the session is already `'idle'` (or another terminal
83
+ * state), no write occurs; the existing summary is returned. If no summary
84
+ * is persisted, returns `null` and no side effect occurs. This is the only
85
+ * non-materialize path that may touch the stored summary — it does not
86
+ * mint a new ID, only re-triggers the store's status flip via
87
+ * `recordSummary` when it detects the dangling session.
88
+ */
89
+ async recover(sessionId, tenantId) {
90
+ const summary = await this.deps.store.getSummary(sessionId, tenantId);
91
+ if (!summary)
92
+ return null;
93
+ const session = await this.deps.store.getSession(sessionId, tenantId);
94
+ if (!session)
95
+ return summary;
96
+ if (TERMINALIZABLE_STATUSES.has(session.status)) {
97
+ // Dangling: summary persisted but session never flipped. Replay the
98
+ // status transition by re-invoking `recordSummary` — store impls
99
+ // treat an existing-summary path as "flip-only, no duplicate write".
100
+ // Cast preserves the kernel brand on the recovered record.
101
+ await this.deps.store.recordSummary(summary, tenantId);
102
+ }
103
+ return summary;
104
+ }
105
+ assertSummaryLength(agentSummary) {
106
+ if (agentSummary.length > AGENT_SUMMARY_MAX_CHARS) {
107
+ throw new AgentSummaryTooLongError({
108
+ actual: agentSummary.length,
109
+ max: AGENT_SUMMARY_MAX_CHARS,
110
+ });
111
+ }
112
+ }
113
+ clock() {
114
+ return this.deps.now ? this.deps.now() : new Date();
115
+ }
116
+ }
117
+ //# sourceMappingURL=materialize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"materialize.js","sourceRoot":"","sources":["../../../src/session/summary/materialize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAOH,OAAO,EACN,uBAAuB,EACvB,wBAAwB,EACxB,6BAA6B,GAI7B,MAAM,UAAU,CAAA;AA4BjB;;;;;GAKG;AACH,MAAM,uBAAuB,GAAmC,IAAI,GAAG,CAAC;IACvE,QAAQ;IACR,QAAQ;IACR,gBAAgB;CAChB,CAAC,CAAA;AAEF,MAAM,OAAO,0BAA0B;IACrB,IAAI,CAAgC;IAErD,YAAY,IAAoC;QAC/C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IACjB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,WAAW,CAAC,KAAuB;QACxC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;QAE5C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;QACjF,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,CAAC,SAAS,YAAY,CAAC,CAAA;QACxD,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;QAClF,IAAI,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,6BAA6B,CAAC;gBACvC,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,iBAAiB,EAAE,QAAQ,CAAC,EAAE;aAC9B,CAAC,CAAA;QACH,CAAC;QAED,MAAM,OAAO,GAAsB;YAClC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACjC,UAAU,EAAE,KAAK,CAAC,SAAS;YAC3B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,OAAO,EAAE,KAAK,CAAC,YAAY;YAC3B,YAAY,EAAE,KAAK,CAAC,oBAAoB;YACxC,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE;YAChB,cAAc,EAAE,QAAQ;SACxB,CAAA;QAED,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;QAC5D,OAAO,OAAO,CAAA;IACf,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,OAAO,CAAC,SAAoB,EAAE,QAAkB;QACrD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QACrE,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAA;QAEzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QACrE,IAAI,CAAC,OAAO;YAAE,OAAO,OAAO,CAAA;QAE5B,IAAI,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACjD,oEAAoE;YACpE,iEAAiE;YACjE,qEAAqE;YACrE,2DAA2D;YAC3D,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAClC,OAA2D,EAC3D,QAAQ,CACR,CAAA;QACF,CAAC;QACD,OAAO,OAAO,CAAA;IACf,CAAC;IAEO,mBAAmB,CAAC,YAAoB;QAC/C,IAAI,YAAY,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;YACnD,MAAM,IAAI,wBAAwB,CAAC;gBAClC,MAAM,EAAE,YAAY,CAAC,MAAM;gBAC3B,GAAG,EAAE,uBAAuB;aAC5B,CAAC,CAAA;QACH,CAAC;IACF,CAAC;IAEO,KAAK;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAA;IACpD,CAAC;CACD"}
@@ -0,0 +1,91 @@
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 {@link SessionSummaryMaterializer.materialize} (see
5
+ * `./materialize.ts`). See session-hierarchy.md §4.7 (shape) and §8.1
6
+ * (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
+ import type { SessionId, TenantId } from '../../types/ids/index.js';
19
+ import type { SummaryId } from '../../types/session/ids.js';
20
+ import type { DeliverableRef } from './deliverable.js';
21
+ /**
22
+ * Max characters allowed for {@link SessionSummaryRef.agentSummary}. See
23
+ * session-hierarchy.md §4.7 — the agent's narration is bounded to keep
24
+ * parent prompts token-finite regardless of the child's transcript length.
25
+ */
26
+ export declare const AGENT_SUMMARY_MAX_CHARS = 4000;
27
+ export type SessionSummaryOutcomeStatus = 'succeeded' | 'partial' | 'failed';
28
+ export interface SessionSummaryOutcome {
29
+ readonly status: SessionSummaryOutcomeStatus;
30
+ /** Short human-readable one-liner. Optional per pattern doc §4.7. */
31
+ readonly verdict?: string;
32
+ }
33
+ export interface SessionSummaryKeyDecision {
34
+ readonly at: Date;
35
+ readonly summary: string;
36
+ }
37
+ /**
38
+ * Structured completion pointer emitted by the kernel when a sub-session
39
+ * terminalizes. See session-hierarchy.md §4.7 and §8.1.
40
+ *
41
+ * Readonly across the board — the record is immutable once sealed.
42
+ */
43
+ export interface SessionSummaryRef {
44
+ readonly id: SummaryId;
45
+ readonly sessionRef: SessionId;
46
+ readonly tenantId: TenantId;
47
+ readonly outcome: SessionSummaryOutcome;
48
+ readonly deliverables: readonly DeliverableRef[];
49
+ /** Agent's own narration; bounded to {@link AGENT_SUMMARY_MAX_CHARS}. */
50
+ readonly agentSummary: string;
51
+ readonly keyDecisions: readonly SessionSummaryKeyDecision[];
52
+ /** When the summary was materialized. */
53
+ readonly at: Date;
54
+ /**
55
+ * Literal `'kernel'` — enforces kernel-only emission at the type level.
56
+ * See the module header for the invariant rationale.
57
+ */
58
+ readonly materializedBy: 'kernel';
59
+ }
60
+ /**
61
+ * Raised by {@link SessionSummaryMaterializer.materialize} when the provided
62
+ * `agentSummary` exceeds {@link AGENT_SUMMARY_MAX_CHARS}. Convention #5
63
+ * deny-by-default — the kernel does not truncate silently.
64
+ */
65
+ export declare class AgentSummaryTooLongError extends Error {
66
+ readonly details: {
67
+ readonly actual: number;
68
+ readonly max: number;
69
+ };
70
+ constructor(details: {
71
+ actual: number;
72
+ max: number;
73
+ });
74
+ }
75
+ /**
76
+ * Raised when {@link SessionSummaryMaterializer.materialize} is invoked
77
+ * against a session that already has a persisted summary. Re-materialization
78
+ * would duplicate history — callers wanting to append must open a new
79
+ * intervention sub-session (see session-hierarchy.md §4.5).
80
+ */
81
+ export declare class SessionAlreadySummarizedError extends Error {
82
+ readonly details: {
83
+ readonly sessionId: SessionId;
84
+ readonly existingSummaryId: SummaryId;
85
+ };
86
+ constructor(details: {
87
+ sessionId: SessionId;
88
+ existingSummaryId: SummaryId;
89
+ });
90
+ }
91
+ //# sourceMappingURL=ref.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ref.d.ts","sourceRoot":"","sources":["../../../src/session/summary/ref.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAC3D,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;AAED;;;;GAIG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;IAClD,QAAQ,CAAC,OAAO,EAAE;QACjB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;QACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KACpB,CAAA;gBAEW,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;CAKpD;AAED;;;;;GAKG;AACH,qBAAa,6BAA8B,SAAQ,KAAK;IACvD,QAAQ,CAAC,OAAO,EAAE;QACjB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;QAC7B,QAAQ,CAAC,iBAAiB,EAAE,SAAS,CAAA;KACrC,CAAA;gBAEW,OAAO,EAAE;QAAE,SAAS,EAAE,SAAS,CAAC;QAAC,iBAAiB,EAAE,SAAS,CAAA;KAAE;CAO3E"}
@@ -0,0 +1,51 @@
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 {@link SessionSummaryMaterializer.materialize} (see
5
+ * `./materialize.ts`). See session-hierarchy.md §4.7 (shape) and §8.1
6
+ * (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
+ /**
19
+ * Max characters allowed for {@link SessionSummaryRef.agentSummary}. See
20
+ * session-hierarchy.md §4.7 — the agent's narration is bounded to keep
21
+ * parent prompts token-finite regardless of the child's transcript length.
22
+ */
23
+ export const AGENT_SUMMARY_MAX_CHARS = 4000;
24
+ /**
25
+ * Raised by {@link SessionSummaryMaterializer.materialize} when the provided
26
+ * `agentSummary` exceeds {@link AGENT_SUMMARY_MAX_CHARS}. Convention #5
27
+ * deny-by-default — the kernel does not truncate silently.
28
+ */
29
+ export class AgentSummaryTooLongError extends Error {
30
+ details;
31
+ constructor(details) {
32
+ super(`agentSummary ${details.actual} chars exceeds max ${details.max}`);
33
+ this.name = 'AgentSummaryTooLongError';
34
+ this.details = details;
35
+ }
36
+ }
37
+ /**
38
+ * Raised when {@link SessionSummaryMaterializer.materialize} is invoked
39
+ * against a session that already has a persisted summary. Re-materialization
40
+ * would duplicate history — callers wanting to append must open a new
41
+ * intervention sub-session (see session-hierarchy.md §4.5).
42
+ */
43
+ export class SessionAlreadySummarizedError extends Error {
44
+ details;
45
+ constructor(details) {
46
+ super(`Session ${details.sessionId} already has summary ${details.existingSummaryId}; re-materialization rejected`);
47
+ this.name = 'SessionAlreadySummarizedError';
48
+ this.details = details;
49
+ }
50
+ }
51
+ //# sourceMappingURL=ref.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ref.js","sourceRoot":"","sources":["../../../src/session/summary/ref.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAMH;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAA;AAuC3C;;;;GAIG;AACH,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACzC,OAAO,CAGf;IAED,YAAY,OAAwC;QACnD,KAAK,CAAC,gBAAgB,OAAO,CAAC,MAAM,sBAAsB,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QACxE,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAA;QACtC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACvB,CAAC;CACD;AAED;;;;;GAKG;AACH,MAAM,OAAO,6BAA8B,SAAQ,KAAK;IAC9C,OAAO,CAGf;IAED,YAAY,OAA+D;QAC1E,KAAK,CACJ,WAAW,OAAO,CAAC,SAAS,wBAAwB,OAAO,CAAC,iBAAiB,+BAA+B,CAC5G,CAAA;QACD,IAAI,CAAC,IAAI,GAAG,+BAA+B,CAAA;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACvB,CAAC;CACD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=git-worktree.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-worktree.test.d.ts","sourceRoot":"","sources":["../../../../src/session/workspace/__tests__/git-worktree.test.ts"],"names":[],"mappings":""}