@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,26 @@
1
+ /**
2
+ * Domain Run status enum. See session-hierarchy.md §4.6 + §5.2 state machine.
3
+ *
4
+ * Distinct from the wire-side {@link WireRunStatus} in `contracts/api.ts`,
5
+ * which maps these states onto HTTP payload shapes (`completed` /
6
+ * `cancelling` / `expired`). Keep this enum purely the domain surface; any
7
+ * consumer that needs the HTTP representation should translate at the bridge
8
+ * boundary.
9
+ *
10
+ * Variants:
11
+ * - `queued` — run created, not yet started.
12
+ * - `running` — iteration loop in flight.
13
+ * - `awaiting_hitl` — synchronous-wait on a HITL gate (user present).
14
+ * - `awaiting_hitl_resolution` — persisted-wait after a HITL timeout under
15
+ * `HITLConfig.onTimeout = 'pause_run_until_resolved'`. User absent; Run
16
+ * persists until resolved or cancelled (permission-policies.md §13.3).
17
+ * - `awaiting_subsession` — parent Run has delegated to a child SubSession
18
+ * and is suspended until the Materializer seals the child's summary.
19
+ * Session-level fan-in treats this as `active` (delegation in flight
20
+ * means the parent IS active). See session-hierarchy.md §5.1.
21
+ * - `succeeded` — terminal, run completed without error.
22
+ * - `failed` — terminal, run errored out.
23
+ * - `cancelled` — terminal, explicitly cancelled.
24
+ */
25
+ export type RunStatus = 'queued' | 'running' | 'awaiting_hitl' | 'awaiting_hitl_resolution' | 'awaiting_subsession' | 'succeeded' | 'failed' | 'cancelled';
26
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/types/run/status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,SAAS,GAClB,QAAQ,GACR,SAAS,GACT,eAAe,GACf,0BAA0B,GAC1B,qBAAqB,GACrB,WAAW,GACX,QAAQ,GACR,WAAW,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/types/run/status.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Session hierarchy branded ID re-export barrel.
3
+ *
4
+ * Canonical definitions live in `../ids/index.ts`. This barrel exists solely
5
+ * for ergonomic co-location with session-scoped callers (they already import
6
+ * from `types/session/`).
7
+ */
8
+ export type { ProjectId, ThreadId, SubSessionId, HandoffId, WorkspaceId, SummaryId, DeliverableId, SessionId, TenantId, RunId, AgentId, UserId, TaskId, } from '../ids/index.js';
9
+ //# sourceMappingURL=ids.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../../src/types/session/ids.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,YAAY,EACX,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,WAAW,EACX,SAAS,EACT,aAAa,EACb,SAAS,EACT,QAAQ,EACR,KAAK,EACL,OAAO,EACP,MAAM,EACN,MAAM,GACN,MAAM,iBAAiB,CAAA"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Session hierarchy branded ID re-export barrel.
3
+ *
4
+ * Canonical definitions live in `../ids/index.ts`. This barrel exists solely
5
+ * for ergonomic co-location with session-scoped callers (they already import
6
+ * from `types/session/`).
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=ids.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ids.js","sourceRoot":"","sources":["../../../src/types/session/ids.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,3 @@
1
+ export type { ProjectId, ThreadId, SubSessionId, HandoffId, WorkspaceId, SummaryId, DeliverableId, SessionId, TenantId, RunId, AgentId, UserId, TaskId, } from './ids.js';
2
+ export type { SessionStore, SessionView, CreateProjectParams, CreateSessionParams, CreateSubSessionParams, } from './store.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/session/index.ts"],"names":[],"mappings":"AAIA,YAAY,EACX,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,WAAW,EACX,SAAS,EACT,aAAa,EACb,SAAS,EACT,QAAQ,EACR,KAAK,EACL,OAAO,EACP,MAAM,EACN,MAAM,GACN,MAAM,UAAU,CAAA;AAEjB,YAAY,EACX,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,GACtB,MAAM,YAAY,CAAA"}
@@ -0,0 +1,5 @@
1
+ // Sub-barrel for session-hierarchy type surface.
2
+ // Concrete definitions live in sibling files; re-export them here so other
3
+ // modules import via `../types/session/index.js`.
4
+ export {};
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/session/index.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,2EAA2E;AAC3E,kDAAkD"}
@@ -0,0 +1,210 @@
1
+ /**
2
+ * SessionStore — canonical persistence contract for the session hierarchy.
3
+ *
4
+ * Every accessor takes explicit {@link TenantId} (Convention #17). Cross-tenant
5
+ * access rejects with `TenantIsolationError`. Convention #0: no speculative
6
+ * API — extensions land alongside their consumers.
7
+ */
8
+ import type { ActorRef } from '../../session/hierarchy/actor.js';
9
+ import type { Project } from '../../session/hierarchy/project.js';
10
+ import type { Session } from '../../session/hierarchy/session.js';
11
+ import type { CompletionMode, FailureMode, SubSession, SubSessionKind } from '../../session/hierarchy/sub-session.js';
12
+ import type { SessionSummaryRef } from '../../session/summary/ref.js';
13
+ import type { SessionMessage } from '../../store/session/messages.js';
14
+ import type { MessageId, SessionId, TenantId } from '../ids/index.js';
15
+ import type { Message } from '../message/index.js';
16
+ import type { ProjectId, SubSessionId, SummaryId, ThreadId } from '../session/ids.js';
17
+ /**
18
+ * Params for {@link SessionStore.createSession}. The store owns id generation,
19
+ * `ownerVersion` initialization, and timestamps.
20
+ *
21
+ * Both `threadId` and `projectId` are required. `projectId` must equal the
22
+ * `projectId` of the thread identified by `threadId`; the store does NOT
23
+ * perform that cross-store consistency check (it has no ThreadStore handle
24
+ * by design — see the store-boundary rationale in {@link ThreadStore}). The
25
+ * caller is the authority; typically spawn and handoff paths copy both from
26
+ * a freshly-loaded `Thread` record or from their own context which already
27
+ * tracks both.
28
+ */
29
+ export interface CreateSessionParams {
30
+ threadId: ThreadId;
31
+ projectId: ProjectId;
32
+ /**
33
+ * Initial owner of the session. May be `null` for bootstrap scenarios where
34
+ * the first Run attaches an actor; the store rejects mutations against
35
+ * actor-less sessions from downstream consumers.
36
+ */
37
+ currentActor: ActorRef | null;
38
+ }
39
+ /**
40
+ * Params for {@link SessionStore.createSubSession}. `workspaceId` is optional
41
+ * because Phase 3 does not yet wire workspace creation into spawn — Phase 6
42
+ * makes the two atomic. `summaryRef` is populated by the materializer in
43
+ * Phase 5, never by callers of this API.
44
+ */
45
+ export interface CreateSubSessionParams {
46
+ parentSessionId: SessionId;
47
+ childSessionId: SessionId;
48
+ kind: SubSessionKind;
49
+ spawnedBy: ActorRef;
50
+ failureMode?: FailureMode;
51
+ completionMode?: CompletionMode;
52
+ }
53
+ /**
54
+ * Minimal Project surface needed by the store in Phase 3. The full Project
55
+ * entity lives in `session/hierarchy/project.ts`; a dedicated `ProjectStore`
56
+ * is out of scope for this phase (session-hierarchy.md §11 defers the project
57
+ * store to a later phase).
58
+ */
59
+ export interface CreateProjectParams {
60
+ tenantId: TenantId;
61
+ name: string;
62
+ }
63
+ /**
64
+ * Return shape for {@link SessionStore.drill}. See session-hierarchy.md §14.3.
65
+ * The fields are final — consumers may rely on exhaustiveness (Convention #6).
66
+ *
67
+ * `ancestry` is root-to-self. `children` lists direct sub-sessions only
68
+ * (recursive drill-down is the consumer's responsibility).
69
+ */
70
+ export interface SessionView {
71
+ session: Session;
72
+ children: readonly SubSession[];
73
+ ancestry: readonly SessionId[];
74
+ }
75
+ /**
76
+ * Canonical persistence contract. Every accessor takes explicit `tenantId`.
77
+ * Cross-tenant reads/writes must reject with `TenantIsolationError`
78
+ * (see `session/errors.ts`).
79
+ *
80
+ * Read accessors return `null` when the resource does not exist for the
81
+ * supplied tenant — this is the deny-by-default surface (Convention #5):
82
+ * callers never get a fallback and must branch on missing explicitly.
83
+ */
84
+ export interface SessionStore {
85
+ createProject(params: CreateProjectParams, tenantId: TenantId): Promise<Project>;
86
+ getProject(projectId: ProjectId, tenantId: TenantId): Promise<Project | null>;
87
+ createSession(params: CreateSessionParams, tenantId: TenantId): Promise<Session>;
88
+ getSession(sessionId: SessionId, tenantId: TenantId): Promise<Session | null>;
89
+ updateSession(session: Session, tenantId: TenantId): Promise<void>;
90
+ /**
91
+ * List every Session that belongs to the given Thread for the caller's
92
+ * tenant, ordered by `createdAt` ascending. Returns an empty array when
93
+ * none exist.
94
+ *
95
+ * Thread-scoped queries rely on `session.threadId` (set at creation, never
96
+ * rewritten). Cross-tenant sessions that happen to share the supplied
97
+ * `threadId` are silently skipped — the listing is tenant-scoped, not an
98
+ * isolation violation (the caller did not request a specific record).
99
+ *
100
+ * Exists to back ThreadManager's archival + delete preconditions
101
+ * ({@link import('../../manager/thread/lifecycle.js').ThreadManager.archive}
102
+ * rejects when any session is in a non-terminal state; `delete` rejects
103
+ * while any session still references the thread). Keeping this primitive
104
+ * on {@link SessionStore} preserves the store-ownership boundary —
105
+ * ThreadStore stays unaware of session layout (Convention #0).
106
+ */
107
+ listSessions(threadId: ThreadId, tenantId: TenantId): Promise<readonly Session[]>;
108
+ /**
109
+ * Hard-delete a session. Idempotent — absent sessions succeed as a no-op.
110
+ * Rejects with `TenantIsolationError` on cross-tenant access.
111
+ *
112
+ * Closes the Phase 4 Known Delta (broadcast rollback previously had to
113
+ * flip status to `'archived'` as a stopgap). Used by:
114
+ * - Broadcast rollback (compensating cleanup — pattern doc §6.2)
115
+ * - Archival tombstone consolidation when a caller prefers deletion
116
+ * over the in-slot tombstone (uncommon — default is in-slot).
117
+ *
118
+ * Policy: rejects when the session still has sub-sessions attached —
119
+ * callers must delete children first. This keeps the operation a single,
120
+ * locally-reasoning write rather than an implicit recursive cascade
121
+ * (Convention #5 deny-by-default).
122
+ */
123
+ deleteSession(sessionId: SessionId, tenantId: TenantId): Promise<void>;
124
+ createSubSession(params: CreateSubSessionParams, tenantId: TenantId): Promise<SubSession>;
125
+ getSubSession(subSessionId: SubSessionId, tenantId: TenantId): Promise<SubSession | null>;
126
+ updateSubSession(subSession: SubSession, tenantId: TenantId): Promise<void>;
127
+ /**
128
+ * Hard-delete a sub-session record. Idempotent — absent sub-sessions
129
+ * succeed as a no-op. Rejects with `TenantIsolationError` on cross-tenant
130
+ * access. Does not cascade to the owned child session; the caller owns
131
+ * that (typical broadcast-rollback flow deletes the sub-session first,
132
+ * then the child session).
133
+ */
134
+ deleteSubSession(subSessionId: SubSessionId, tenantId: TenantId): Promise<void>;
135
+ /**
136
+ * Append a single message to the session's message log. Returns the
137
+ * assigned {@link MessageId}. Write is append-only; the store never
138
+ * rewrites or reorders previously persisted messages.
139
+ */
140
+ appendMessage(sessionId: SessionId, message: Message, tenantId: TenantId): Promise<MessageId>;
141
+ /**
142
+ * Load the full message history for a session in insertion order.
143
+ * Returns an empty array when the session has no messages.
144
+ *
145
+ * Returns payload-only {@link Message} records. Callers that need the
146
+ * full persistence envelope (including {@link MessageId} and timestamp)
147
+ * should use {@link SessionStore.loadSessionMessages} instead.
148
+ */
149
+ loadMessages(sessionId: SessionId, tenantId: TenantId): Promise<readonly Message[]>;
150
+ /**
151
+ * Load the full {@link SessionMessage} envelope for every persisted
152
+ * message in insertion order (Phase 9 Known Delta #7). Unlike
153
+ * {@link SessionStore.loadMessages} this preserves the original
154
+ * {@link MessageId} and timestamp — required for full-fidelity archival
155
+ * round-trips via {@link ArchivalManager.archive}.
156
+ *
157
+ * Returns an empty array when the session has no messages; cross-tenant
158
+ * reads reject with `TenantIsolationError` (Convention #17).
159
+ */
160
+ loadSessionMessages(sessionId: SessionId, tenantId: TenantId): Promise<readonly SessionMessage[]>;
161
+ /**
162
+ * Direct children of the session (one level). Returns an empty array when
163
+ * the session has no delegations.
164
+ */
165
+ getChildren(sessionId: SessionId, tenantId: TenantId): Promise<readonly SubSession[]>;
166
+ /**
167
+ * Session id chain from root to self, inclusive. Walks parent sub-session
168
+ * links. Rejects on cycle via `session/errors.ts#AncestryCycleError` —
169
+ * the write path enforces acyclicity, so a cycle here indicates store
170
+ * corruption.
171
+ */
172
+ getAncestry(sessionId: SessionId, tenantId: TenantId): Promise<readonly SessionId[]>;
173
+ /**
174
+ * Single-round navigation primitive. Returns `null` when the session does
175
+ * not exist for the tenant. See session-hierarchy.md §14.3.
176
+ */
177
+ drill(sessionId: SessionId, tenantId: TenantId): Promise<SessionView | null>;
178
+ /**
179
+ * @internal Kernel-internal. Call through
180
+ * `SessionSummaryMaterializer.materialize`, never directly. The
181
+ * `materializedBy: 'kernel'` constraint on the argument type ensures
182
+ * external callers cannot construct a valid input — the only mint site for
183
+ * `SummaryId` is `generateSummaryId` inside the Materializer.
184
+ *
185
+ * Atomic write-then-status-flip (Convention #8): persists the summary and
186
+ * transitions the owning Session's status to `'idle'` if it was in a
187
+ * non-terminal state (`'active' | 'locked' | 'awaiting_merge'`). The two
188
+ * writes commit as one logical unit; mid-crash recovery is replay via
189
+ * `SessionSummaryMaterializer.recover()`.
190
+ *
191
+ * Rejects with {@link SessionAlreadySummarizedError} if a summary already
192
+ * exists for the session (re-materialization forbidden; see
193
+ * session-hierarchy.md §4.7 immutability invariant).
194
+ */
195
+ recordSummary(summary: SessionSummaryRef & {
196
+ materializedBy: 'kernel';
197
+ }, tenantId: TenantId): Promise<void>;
198
+ /**
199
+ * Loads the persisted summary for a session. Returns `null` when none has
200
+ * been materialized. Cross-tenant reads reject with `TenantIsolationError`
201
+ * (Convention #17).
202
+ */
203
+ getSummary(sessionId: SessionId, tenantId: TenantId): Promise<SessionSummaryRef | null>;
204
+ }
205
+ /**
206
+ * Re-export of {@link SummaryId} so downstream consumers importing from
207
+ * `types/session/store.js` pick up the brand alongside the store contract.
208
+ */
209
+ export type { SummaryId };
210
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/types/session/store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * SessionStore — canonical persistence contract for the session hierarchy.
3
+ *
4
+ * Every accessor takes explicit {@link TenantId} (Convention #17). Cross-tenant
5
+ * access rejects with `TenantIsolationError`. Convention #0: no speculative
6
+ * API — extensions land alongside their consumers.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/types/session/store.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,2 @@
1
+ export type { ThreadStore, CreateThreadParams } from './store.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/thread/index.ts"],"names":[],"mappings":"AAIA,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA"}
@@ -0,0 +1,5 @@
1
+ // Sub-barrel for the Thread type surface (Convention #4).
2
+ // Concrete types live in sibling files; re-export them here so consumers
3
+ // import via `../types/thread/index.js`.
4
+ export {};
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/thread/index.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,yEAAyE;AACzE,yCAAyC"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * ThreadStore — canonical persistence contract for the Thread topic layer
3
+ * (Project → **Thread** → Session → SubSession → Run).
4
+ *
5
+ * Threads are pure containers (Phase 0 decision B.1). They have no own
6
+ * message stream and no fan-in `deriveStatus()` — status is owner-managed
7
+ * (`'open' | 'archived'`). Every accessor takes explicit {@link TenantId};
8
+ * cross-tenant access rejects with `TenantIsolationError` (Convention #17).
9
+ *
10
+ * Read accessors return `null` when the resource does not exist for the
11
+ * supplied tenant (deny-by-default surface). Callers branch on missing
12
+ * explicitly — no fallback substitution.
13
+ *
14
+ * `deleteThread` is intentionally a dumb record-delete at this layer:
15
+ * it does NOT walk session ownership. The "reject when sessions attached"
16
+ * precondition lives in {@link import('../../manager/thread/lifecycle.js').ThreadManager}
17
+ * where both stores are in scope. Keeping ThreadStore free of cross-store
18
+ * awareness preserves the single-boundary ownership boundary that Phase 2
19
+ * has just introduced for this layer (Convention #0).
20
+ */
21
+ import type { Thread } from '../../session/hierarchy/thread.js';
22
+ import type { TenantId } from '../ids/index.js';
23
+ import type { ProjectId, ThreadId } from '../session/ids.js';
24
+ /**
25
+ * Params for {@link ThreadStore.createThread}. The store owns id generation,
26
+ * `ownerVersion` initialization (0 at create), and timestamps.
27
+ */
28
+ export interface CreateThreadParams {
29
+ projectId: ProjectId;
30
+ /**
31
+ * User-facing display label. Not unique within the project — see
32
+ * {@link Thread} JSDoc. Empty strings are permitted; callers that require
33
+ * a label should validate at the API layer.
34
+ */
35
+ title: string;
36
+ }
37
+ /**
38
+ * Canonical persistence contract for the Thread layer. Every accessor takes
39
+ * explicit `tenantId`; cross-tenant reads/writes reject with
40
+ * `TenantIsolationError` (`session/errors.ts`, Convention #17).
41
+ */
42
+ export interface ThreadStore {
43
+ /**
44
+ * Persist a new Thread under the given project. Returns the minted
45
+ * {@link Thread} with `ownerVersion: 0` and freshly-generated
46
+ * {@link ThreadId}. Callers must ensure the parent project exists and
47
+ * belongs to the same tenant — the store does not validate project
48
+ * ownership (that is a cross-store precondition owned by the manager).
49
+ */
50
+ createThread(params: CreateThreadParams, tenantId: TenantId): Promise<Thread>;
51
+ /**
52
+ * Read a Thread by id. Returns `null` when absent. Cross-tenant reads
53
+ * reject with `TenantIsolationError`.
54
+ */
55
+ getThread(threadId: ThreadId, tenantId: TenantId): Promise<Thread | null>;
56
+ /**
57
+ * Persist a mutation to a Thread record. CAS on `ownerVersion`: if the
58
+ * supplied `thread.ownerVersion` does not match the persisted version,
59
+ * rejects with `StaleThreadError`. On success the write commits with
60
+ * `ownerVersion + 1` and a refreshed `updatedAt`.
61
+ *
62
+ * Archival transition (`status: 'open' → 'archived'`) shares this path;
63
+ * the caller is responsible for verifying that no non-terminal Sessions
64
+ * are attached before flipping (see ThreadManager.archiveThread).
65
+ */
66
+ updateThread(thread: Thread, tenantId: TenantId): Promise<void>;
67
+ /**
68
+ * Hard-delete a Thread record. Idempotent — absent threads succeed as a
69
+ * no-op. Rejects with `TenantIsolationError` on cross-tenant access.
70
+ *
71
+ * **Does NOT cascade to child Sessions** — the caller (typically
72
+ * ThreadManager) enforces the precondition that no Sessions reference
73
+ * this thread. Convention #5: deny-by-default, no implicit cascade.
74
+ */
75
+ deleteThread(threadId: ThreadId, tenantId: TenantId): Promise<void>;
76
+ /**
77
+ * List all Threads under a project for the given tenant, ordered by
78
+ * `createdAt` ascending. Returns an empty array when none exist.
79
+ * Cross-tenant reads reject with `TenantIsolationError`.
80
+ *
81
+ * The return shape is a concrete snapshot — callers that mutate the
82
+ * result array do not affect store state.
83
+ */
84
+ listThreads(projectId: ProjectId, tenantId: TenantId): Promise<readonly Thread[]>;
85
+ }
86
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/types/thread/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE5D;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAClC,SAAS,EAAE,SAAS,CAAA;IACpB;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAA;CACb;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC3B;;;;;;OAMG;IACH,YAAY,CAAC,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAE7E;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAEzE;;;;;;;;;OASG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE/D;;;;;;;OAOG;IACH,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEnE;;;;;;;OAOG;IACH,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAA;CACjF"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * ThreadStore — canonical persistence contract for the Thread topic layer
3
+ * (Project → **Thread** → Session → SubSession → Run).
4
+ *
5
+ * Threads are pure containers (Phase 0 decision B.1). They have no own
6
+ * message stream and no fan-in `deriveStatus()` — status is owner-managed
7
+ * (`'open' | 'archived'`). Every accessor takes explicit {@link TenantId};
8
+ * cross-tenant access rejects with `TenantIsolationError` (Convention #17).
9
+ *
10
+ * Read accessors return `null` when the resource does not exist for the
11
+ * supplied tenant (deny-by-default surface). Callers branch on missing
12
+ * explicitly — no fallback substitution.
13
+ *
14
+ * `deleteThread` is intentionally a dumb record-delete at this layer:
15
+ * it does NOT walk session ownership. The "reject when sessions attached"
16
+ * precondition lives in {@link import('../../manager/thread/lifecycle.js').ThreadManager}
17
+ * where both stores are in scope. Keeping ThreadStore free of cross-store
18
+ * awareness preserves the single-boundary ownership boundary that Phase 2
19
+ * has just introduced for this layer (Convention #0).
20
+ */
21
+ export {};
22
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/types/thread/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG"}
@@ -1,4 +1,5 @@
1
- import type { ActivityId, AdvisoryCallId, AdvisoryId, CheckpointId, ChunkId, ConnectorId, ConnectorInstanceId, CredentialId, DocumentId, EmergencySaveId, EnvironmentId, ExecutionContextId, KnowledgeBaseId, MCPClientId, MCPServerId, MCPSessionId, MemoryId, MessageId, PlanId, PluginId, RunId, SandboxId, SessionId, TaskId, TenantId, ThreadId, ToolCallId } from '../types/ids/index.js';
1
+ import type { ActivityId, AdvisoryCallId, AdvisoryId, CheckpointId, ChunkId, ConnectorId, ConnectorInstanceId, CredentialId, DeliverableId, DocumentId, EmergencySaveId, EnvironmentId, ExecutionContextId, HandoffId, KnowledgeBaseId, MCPClientId, MCPServerId, MCPSessionId, MemoryId, MessageId, PlanId, PluginId, ProjectId, RunId, SandboxId, SessionId, SubSessionId, SummaryId, TaskId, TenantId, ThreadId, ToolCallId, WorkspaceId } from '../types/ids/index.js';
2
+ export declare function generateProjectId(): ProjectId;
2
3
  export declare function generateThreadId(): ThreadId;
3
4
  export declare function generateRunId(): RunId;
4
5
  export declare function generateMessageId(): MessageId;
@@ -26,7 +27,12 @@ export declare function generateEmergencySaveId(): EmergencySaveId;
26
27
  export declare function generateMemoryId(): MemoryId;
27
28
  export declare function generatePluginId(): PluginId;
28
29
  export declare function generateSandboxId(): SandboxId;
29
- export declare function parseThreadId(raw: string): ThreadId;
30
+ export declare function generateWorkspaceId(): WorkspaceId;
31
+ export declare function generateSubSessionId(): SubSessionId;
32
+ export declare function generateSummaryId(): SummaryId;
33
+ export declare function generateHandoffId(): HandoffId;
34
+ export declare function generateDeliverableId(): DeliverableId;
35
+ export declare function parseProjectId(raw: string): ProjectId;
30
36
  export declare function parseRunId(raw: string): RunId;
31
37
  export declare function parseConnectorInstanceId(raw: string): ConnectorInstanceId;
32
38
  export declare function parsePluginId(raw: string): PluginId;
@@ -1 +1 @@
1
- {"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,UAAU,EACV,cAAc,EACd,UAAU,EACV,YAAY,EACZ,OAAO,EACP,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,MAAM,EACN,QAAQ,EACR,KAAK,EACL,SAAS,EACT,SAAS,EACT,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,MAAM,uBAAuB,CAAA;AAsB9B,wBAAgB,gBAAgB,IAAI,QAAQ,CAE3C;AAED,wBAAgB,aAAa,IAAI,KAAK,CAErC;AAED,wBAAgB,iBAAiB,IAAI,SAAS,CAE7C;AAED,wBAAgB,iBAAiB,IAAI,SAAS,CAE7C;AAED,wBAAgB,kBAAkB,IAAI,UAAU,CAE/C;AAED,wBAAgB,kBAAkB,IAAI,UAAU,CAE/C;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,uBAAuB,IAAI,eAAe,CAEzD;AAED,wBAAgB,kBAAkB,IAAI,UAAU,CAE/C;AAED,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED,wBAAgB,mBAAmB,IAAI,WAAW,CAEjD;AAED,wBAAgB,2BAA2B,IAAI,mBAAmB,CAEjE;AAED,wBAAgB,gBAAgB,IAAI,QAAQ,CAE3C;AAED,wBAAgB,oBAAoB,IAAI,YAAY,CAEnD;AAED,wBAAgB,0BAA0B,IAAI,kBAAkB,CAE/D;AAED,wBAAgB,mBAAmB,IAAI,WAAW,CAEjD;AAED,wBAAgB,mBAAmB,IAAI,WAAW,CAEjD;AAED,wBAAgB,oBAAoB,IAAI,YAAY,CAEnD;AAED,wBAAgB,qBAAqB,IAAI,aAAa,CAErD;AAED,wBAAgB,oBAAoB,IAAI,YAAY,CAEnD;AAED,wBAAgB,kBAAkB,IAAI,UAAU,CAE/C;AAED,wBAAgB,sBAAsB,IAAI,cAAc,CAEvD;AAED,wBAAgB,uBAAuB,IAAI,eAAe,CAEzD;AAED,wBAAgB,gBAAgB,IAAI,QAAQ,CAE3C;AAED,wBAAgB,gBAAgB,IAAI,QAAQ,CAE3C;AAED,wBAAgB,iBAAiB,IAAI,SAAS,CAE7C;AASD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAEnD;AACD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAE7C;AACD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAEzE;AACD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAEnD;AACD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAErD"}
1
+ {"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,UAAU,EACV,cAAc,EACd,UAAU,EACV,YAAY,EACZ,OAAO,EACP,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,UAAU,EACV,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,WAAW,EACX,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,MAAM,EACN,QAAQ,EACR,SAAS,EACT,KAAK,EACL,SAAS,EACT,SAAS,EACT,YAAY,EACZ,SAAS,EACT,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,WAAW,EACX,MAAM,uBAAuB,CAAA;AAsB9B,wBAAgB,iBAAiB,IAAI,SAAS,CAE7C;AAED,wBAAgB,gBAAgB,IAAI,QAAQ,CAE3C;AAED,wBAAgB,aAAa,IAAI,KAAK,CAErC;AAED,wBAAgB,iBAAiB,IAAI,SAAS,CAE7C;AAED,wBAAgB,iBAAiB,IAAI,SAAS,CAE7C;AAED,wBAAgB,kBAAkB,IAAI,UAAU,CAE/C;AAED,wBAAgB,kBAAkB,IAAI,UAAU,CAE/C;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,uBAAuB,IAAI,eAAe,CAEzD;AAED,wBAAgB,kBAAkB,IAAI,UAAU,CAE/C;AAED,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED,wBAAgB,mBAAmB,IAAI,WAAW,CAEjD;AAED,wBAAgB,2BAA2B,IAAI,mBAAmB,CAEjE;AAED,wBAAgB,gBAAgB,IAAI,QAAQ,CAE3C;AAED,wBAAgB,oBAAoB,IAAI,YAAY,CAEnD;AAED,wBAAgB,0BAA0B,IAAI,kBAAkB,CAE/D;AAED,wBAAgB,mBAAmB,IAAI,WAAW,CAEjD;AAED,wBAAgB,mBAAmB,IAAI,WAAW,CAEjD;AAED,wBAAgB,oBAAoB,IAAI,YAAY,CAEnD;AAED,wBAAgB,qBAAqB,IAAI,aAAa,CAErD;AAED,wBAAgB,oBAAoB,IAAI,YAAY,CAEnD;AAED,wBAAgB,kBAAkB,IAAI,UAAU,CAE/C;AAED,wBAAgB,sBAAsB,IAAI,cAAc,CAEvD;AAED,wBAAgB,uBAAuB,IAAI,eAAe,CAEzD;AAED,wBAAgB,gBAAgB,IAAI,QAAQ,CAE3C;AAED,wBAAgB,gBAAgB,IAAI,QAAQ,CAE3C;AAED,wBAAgB,iBAAiB,IAAI,SAAS,CAE7C;AAED,wBAAgB,mBAAmB,IAAI,WAAW,CAEjD;AAED,wBAAgB,oBAAoB,IAAI,YAAY,CAEnD;AAED,wBAAgB,iBAAiB,IAAI,SAAS,CAE7C;AAED,wBAAgB,iBAAiB,IAAI,SAAS,CAE7C;AAED,wBAAgB,qBAAqB,IAAI,aAAa,CAErD;AASD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAErD;AACD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAE7C;AACD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAEzE;AACD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAEnD;AACD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAErD"}
package/dist/utils/id.js CHANGED
@@ -18,6 +18,9 @@ function generateId(prefix, length = 12) {
18
18
  }
19
19
  return `${prefix}${suffix}`;
20
20
  }
21
+ export function generateProjectId() {
22
+ return generateId('prj_');
23
+ }
21
24
  export function generateThreadId() {
22
25
  return generateId('thd_');
23
26
  }
@@ -28,7 +31,7 @@ export function generateMessageId() {
28
31
  return generateId('msg_');
29
32
  }
30
33
  export function generateSessionId() {
31
- return generateId('sess_');
34
+ return generateId('ses_');
32
35
  }
33
36
  export function generateToolCallId() {
34
37
  return generateId('call_', 8);
@@ -58,7 +61,7 @@ export function generateConnectorInstanceId() {
58
61
  return generateId('ci_');
59
62
  }
60
63
  export function generateTenantId() {
61
- return generateId('ten_');
64
+ return generateId('tnt_');
62
65
  }
63
66
  export function generateCredentialId() {
64
67
  return generateId('cred_');
@@ -99,14 +102,29 @@ export function generatePluginId() {
99
102
  export function generateSandboxId() {
100
103
  return generateId('sbx_');
101
104
  }
105
+ export function generateWorkspaceId() {
106
+ return generateId('wsp_');
107
+ }
108
+ export function generateSubSessionId() {
109
+ return generateId('sub_');
110
+ }
111
+ export function generateSummaryId() {
112
+ return generateId('sum_');
113
+ }
114
+ export function generateHandoffId() {
115
+ return generateId('hof_');
116
+ }
117
+ export function generateDeliverableId() {
118
+ return generateId('del_');
119
+ }
102
120
  function parseId(raw, prefix, typeName) {
103
121
  if (!raw.startsWith(prefix)) {
104
122
  throw new Error(`Invalid ${typeName}: expected "${prefix}" prefix, got "${raw}"`);
105
123
  }
106
124
  return raw;
107
125
  }
108
- export function parseThreadId(raw) {
109
- return parseId(raw, 'thd_', 'ThreadId');
126
+ export function parseProjectId(raw) {
127
+ return parseId(raw, 'prj_', 'ProjectId');
110
128
  }
111
129
  export function parseRunId(raw) {
112
130
  return parseId(raw, 'run_', 'RunId');
@@ -1 +1 @@
1
- {"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@namzu/sdk",
3
- "version": "0.1.8",
3
+ "version": "0.3.0",
4
4
  "description": "Open-source AI agent SDK with a built-in runtime. Nothing between you and your agents.",
5
5
  "license": "FSL-1.1-MIT",
6
6
  "type": "module",
@@ -16,8 +16,8 @@
16
16
  "types": "./dist/index.d.ts",
17
17
  "exports": {
18
18
  ".": {
19
- "import": "./dist/index.js",
20
- "types": "./dist/index.d.ts"
19
+ "types": "./dist/index.d.ts",
20
+ "import": "./dist/index.js"
21
21
  }
22
22
  },
23
23
  "files": [
@@ -49,6 +49,7 @@
49
49
  "devDependencies": {
50
50
  "@biomejs/biome": "^1.9.4",
51
51
  "@types/node": "^22.19.17",
52
+ "knip": "^6.4.1",
52
53
  "typescript": "^5.5.0",
53
54
  "vitest": "^2.0.0"
54
55
  },
@@ -60,13 +61,7 @@
60
61
  "format": "biome format --write src/",
61
62
  "test": "vitest run --passWithNoTests",
62
63
  "typecheck": "tsc --noEmit",
63
- "verify": "bash scripts/verify.sh",
64
- "release:patch": "bash scripts/release.sh patch",
65
- "release:minor": "bash scripts/release.sh minor",
66
- "release:major": "bash scripts/release.sh major",
67
- "release:rc": "bash scripts/release.sh rc",
68
- "release:beta": "bash scripts/release.sh beta",
69
- "release:stable": "bash scripts/release.sh stable",
70
- "release:dry": "bash scripts/release.sh patch --dry-run"
64
+ "knip": "knip",
65
+ "knip:production": "knip --production"
71
66
  }
72
67
  }
@@ -32,8 +32,10 @@ export class ReactiveAgent extends AbstractAgent<ReactiveAgentConfig, ReactiveAg
32
32
  ): Promise<ReactiveAgentResult> {
33
33
  const startTime = Date.now()
34
34
 
35
- if (!config.threadId) {
36
- throw new Error('ReactiveAgent.run requires a threadId in config')
35
+ if (!config.sessionId || !config.threadId || !config.projectId || !config.tenantId) {
36
+ throw new Error(
37
+ 'ReactiveAgent requires sessionId, threadId, projectId, and tenantId in config (session-hierarchy.md §12.1).',
38
+ )
37
39
  }
38
40
 
39
41
  const run = await drainQuery(
@@ -58,7 +60,10 @@ export class ReactiveAgent extends AbstractAgent<ReactiveAgentConfig, ReactiveAg
58
60
  agentId: this.metadata.id,
59
61
  agentName: this.metadata.name,
60
62
  workingDirectory: input.workingDirectory,
63
+ sessionId: config.sessionId,
61
64
  threadId: config.threadId,
65
+ projectId: config.projectId,
66
+ tenantId: config.tenantId,
62
67
  parentRunId: config.parentRunId,
63
68
  depth: config.depth,
64
69
  contextLevel: config.contextLevel,