@namzu/sdk 0.2.0 → 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 (297) hide show
  1. package/CHANGELOG.md +53 -2
  2. package/dist/agents/ReactiveAgent.d.ts.map +1 -1
  3. package/dist/agents/ReactiveAgent.js +3 -2
  4. package/dist/agents/ReactiveAgent.js.map +1 -1
  5. package/dist/agents/SupervisorAgent.d.ts.map +1 -1
  6. package/dist/agents/SupervisorAgent.js +5 -2
  7. package/dist/agents/SupervisorAgent.js.map +1 -1
  8. package/dist/bridge/a2a/index.d.ts +1 -1
  9. package/dist/bridge/a2a/index.d.ts.map +1 -1
  10. package/dist/bridge/a2a/index.js +1 -1
  11. package/dist/bridge/a2a/index.js.map +1 -1
  12. package/dist/bridge/a2a/message.d.ts +0 -2
  13. package/dist/bridge/a2a/message.d.ts.map +1 -1
  14. package/dist/bridge/a2a/message.js +0 -26
  15. package/dist/bridge/a2a/message.js.map +1 -1
  16. package/dist/bridge/a2a/task.d.ts +4 -3
  17. package/dist/bridge/a2a/task.d.ts.map +1 -1
  18. package/dist/bridge/a2a/task.js +4 -4
  19. package/dist/bridge/a2a/task.js.map +1 -1
  20. package/dist/contracts/api.d.ts +6 -38
  21. package/dist/contracts/api.d.ts.map +1 -1
  22. package/dist/contracts/ids.d.ts +1 -1
  23. package/dist/contracts/ids.d.ts.map +1 -1
  24. package/dist/contracts/index.d.ts +3 -5
  25. package/dist/contracts/index.d.ts.map +1 -1
  26. package/dist/contracts/index.js +1 -1
  27. package/dist/contracts/index.js.map +1 -1
  28. package/dist/contracts/schemas.d.ts +1 -31
  29. package/dist/contracts/schemas.d.ts.map +1 -1
  30. package/dist/contracts/schemas.js +1 -7
  31. package/dist/contracts/schemas.js.map +1 -1
  32. package/dist/index.d.ts +2 -3
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +2 -3
  35. package/dist/index.js.map +1 -1
  36. package/dist/manager/agent/__tests__/lifecycle.test.js +27 -13
  37. package/dist/manager/agent/__tests__/lifecycle.test.js.map +1 -1
  38. package/dist/manager/agent/lifecycle.d.ts +9 -0
  39. package/dist/manager/agent/lifecycle.d.ts.map +1 -1
  40. package/dist/manager/agent/lifecycle.js +93 -31
  41. package/dist/manager/agent/lifecycle.js.map +1 -1
  42. package/dist/manager/index.d.ts +2 -0
  43. package/dist/manager/index.d.ts.map +1 -1
  44. package/dist/manager/index.js +1 -0
  45. package/dist/manager/index.js.map +1 -1
  46. package/dist/manager/run/persistence.d.ts +3 -1
  47. package/dist/manager/run/persistence.d.ts.map +1 -1
  48. package/dist/manager/run/persistence.js +5 -0
  49. package/dist/manager/run/persistence.js.map +1 -1
  50. package/dist/manager/thread/__tests__/lifecycle.test.d.ts +2 -0
  51. package/dist/manager/thread/__tests__/lifecycle.test.d.ts.map +1 -0
  52. package/dist/manager/thread/__tests__/lifecycle.test.js +216 -0
  53. package/dist/manager/thread/__tests__/lifecycle.test.js.map +1 -0
  54. package/dist/manager/thread/lifecycle.d.ts +105 -0
  55. package/dist/manager/thread/lifecycle.d.ts.map +1 -0
  56. package/dist/manager/thread/lifecycle.js +186 -0
  57. package/dist/manager/thread/lifecycle.js.map +1 -0
  58. package/dist/rag/retriever.js +2 -2
  59. package/dist/runtime/query/__tests__/context.test.js +8 -7
  60. package/dist/runtime/query/__tests__/context.test.js.map +1 -1
  61. package/dist/runtime/query/context-cache.d.ts +3 -3
  62. package/dist/runtime/query/context-cache.d.ts.map +1 -1
  63. package/dist/runtime/query/context-cache.js +2 -2
  64. package/dist/runtime/query/context-cache.js.map +1 -1
  65. package/dist/runtime/query/context.d.ts +12 -21
  66. package/dist/runtime/query/context.d.ts.map +1 -1
  67. package/dist/runtime/query/context.js +3 -1
  68. package/dist/runtime/query/context.js.map +1 -1
  69. package/dist/runtime/query/index.d.ts +13 -15
  70. package/dist/runtime/query/index.d.ts.map +1 -1
  71. package/dist/runtime/query/index.js +1 -0
  72. package/dist/runtime/query/index.js.map +1 -1
  73. package/dist/session/__tests__/integration/_fixtures.d.ts +11 -4
  74. package/dist/session/__tests__/integration/_fixtures.d.ts.map +1 -1
  75. package/dist/session/__tests__/integration/_fixtures.js +23 -6
  76. package/dist/session/__tests__/integration/_fixtures.js.map +1 -1
  77. package/dist/session/__tests__/integration/archive-gate.test.d.ts +15 -0
  78. package/dist/session/__tests__/integration/archive-gate.test.d.ts.map +1 -0
  79. package/dist/session/__tests__/integration/archive-gate.test.js +214 -0
  80. package/dist/session/__tests__/integration/archive-gate.test.js.map +1 -0
  81. package/dist/session/__tests__/integration/capacity-caps.test.js +13 -6
  82. package/dist/session/__tests__/integration/capacity-caps.test.js.map +1 -1
  83. package/dist/session/__tests__/integration/e2e-spawn.test.js +14 -2
  84. package/dist/session/__tests__/integration/e2e-spawn.test.js.map +1 -1
  85. package/dist/session/__tests__/integration/event-stream-ordering.test.js +14 -7
  86. package/dist/session/__tests__/integration/event-stream-ordering.test.js.map +1 -1
  87. package/dist/session/__tests__/integration/handoff-broadcast-e2e.test.js +26 -14
  88. package/dist/session/__tests__/integration/handoff-broadcast-e2e.test.js.map +1 -1
  89. package/dist/session/__tests__/integration/handoff-illegal-transition.test.js +30 -20
  90. package/dist/session/__tests__/integration/handoff-illegal-transition.test.js.map +1 -1
  91. package/dist/session/__tests__/integration/handoff-single-e2e.test.js +25 -9
  92. package/dist/session/__tests__/integration/handoff-single-e2e.test.js.map +1 -1
  93. package/dist/session/__tests__/integration/hierarchy-lifecycle.test.js +11 -10
  94. package/dist/session/__tests__/integration/hierarchy-lifecycle.test.js.map +1 -1
  95. package/dist/session/__tests__/integration/prev-artifact-dag.test.js +5 -4
  96. package/dist/session/__tests__/integration/prev-artifact-dag.test.js.map +1 -1
  97. package/dist/session/__tests__/integration/retention-archive.test.js +3 -2
  98. package/dist/session/__tests__/integration/retention-archive.test.js.map +1 -1
  99. package/dist/session/__tests__/integration/spawn-rollback.test.d.ts +26 -0
  100. package/dist/session/__tests__/integration/spawn-rollback.test.d.ts.map +1 -0
  101. package/dist/session/__tests__/integration/spawn-rollback.test.js +236 -0
  102. package/dist/session/__tests__/integration/spawn-rollback.test.js.map +1 -0
  103. package/dist/session/__tests__/integration/summary-materialization-e2e.test.js +2 -1
  104. package/dist/session/__tests__/integration/summary-materialization-e2e.test.js.map +1 -1
  105. package/dist/session/__tests__/integration/tenant-isolation.test.js +14 -5
  106. package/dist/session/__tests__/integration/tenant-isolation.test.js.map +1 -1
  107. package/dist/session/errors.d.ts +79 -0
  108. package/dist/session/errors.d.ts.map +1 -1
  109. package/dist/session/errors.js +57 -0
  110. package/dist/session/errors.js.map +1 -1
  111. package/dist/session/handoff/__tests__/broadcast.test.js +49 -31
  112. package/dist/session/handoff/__tests__/broadcast.test.js.map +1 -1
  113. package/dist/session/handoff/__tests__/capacity.test.js +21 -18
  114. package/dist/session/handoff/__tests__/capacity.test.js.map +1 -1
  115. package/dist/session/handoff/__tests__/single.test.js +39 -30
  116. package/dist/session/handoff/__tests__/single.test.js.map +1 -1
  117. package/dist/session/handoff/assignment.d.ts +13 -1
  118. package/dist/session/handoff/assignment.d.ts.map +1 -1
  119. package/dist/session/handoff/broadcast.d.ts +7 -0
  120. package/dist/session/handoff/broadcast.d.ts.map +1 -1
  121. package/dist/session/handoff/broadcast.js +16 -1
  122. package/dist/session/handoff/broadcast.js.map +1 -1
  123. package/dist/session/handoff/single.d.ts +7 -0
  124. package/dist/session/handoff/single.d.ts.map +1 -1
  125. package/dist/session/handoff/single.js +13 -1
  126. package/dist/session/handoff/single.js.map +1 -1
  127. package/dist/session/hierarchy/__tests__/session.test.js +2 -0
  128. package/dist/session/hierarchy/__tests__/session.test.js.map +1 -1
  129. package/dist/session/hierarchy/index.d.ts +1 -0
  130. package/dist/session/hierarchy/index.d.ts.map +1 -1
  131. package/dist/session/hierarchy/index.js.map +1 -1
  132. package/dist/session/hierarchy/session.d.ts +15 -3
  133. package/dist/session/hierarchy/session.d.ts.map +1 -1
  134. package/dist/session/hierarchy/session.js.map +1 -1
  135. package/dist/session/hierarchy/thread.d.ts +54 -0
  136. package/dist/session/hierarchy/thread.d.ts.map +1 -0
  137. package/dist/session/hierarchy/thread.js +2 -0
  138. package/dist/session/hierarchy/thread.js.map +1 -0
  139. package/dist/session/migration/id-prefix.d.ts +8 -13
  140. package/dist/session/migration/id-prefix.d.ts.map +1 -1
  141. package/dist/session/migration/id-prefix.js +8 -13
  142. package/dist/session/migration/id-prefix.js.map +1 -1
  143. package/dist/session/retention/__tests__/archive.test.js +3 -2
  144. package/dist/session/retention/__tests__/archive.test.js.map +1 -1
  145. package/dist/session/summary/__tests__/materialize.test.js +4 -3
  146. package/dist/session/summary/__tests__/materialize.test.js.map +1 -1
  147. package/dist/store/index.d.ts +0 -2
  148. package/dist/store/index.d.ts.map +1 -1
  149. package/dist/store/index.js +0 -1
  150. package/dist/store/index.js.map +1 -1
  151. package/dist/store/session/__tests__/disk.test.js +32 -5
  152. package/dist/store/session/__tests__/disk.test.js.map +1 -1
  153. package/dist/store/session/__tests__/memory.test.js +50 -9
  154. package/dist/store/session/__tests__/memory.test.js.map +1 -1
  155. package/dist/store/session/disk.d.ts +2 -1
  156. package/dist/store/session/disk.d.ts.map +1 -1
  157. package/dist/store/session/disk.js +61 -0
  158. package/dist/store/session/disk.js.map +1 -1
  159. package/dist/store/session/index.d.ts.map +1 -1
  160. package/dist/store/session/index.js +3 -4
  161. package/dist/store/session/index.js.map +1 -1
  162. package/dist/store/session/memory.d.ts +2 -1
  163. package/dist/store/session/memory.d.ts.map +1 -1
  164. package/dist/store/session/memory.js +13 -0
  165. package/dist/store/session/memory.js.map +1 -1
  166. package/dist/store/thread/disk.d.ts +41 -0
  167. package/dist/store/thread/disk.d.ts.map +1 -0
  168. package/dist/store/thread/disk.js +229 -0
  169. package/dist/store/thread/disk.js.map +1 -0
  170. package/dist/store/thread/index.d.ts +4 -0
  171. package/dist/store/thread/index.d.ts.map +1 -0
  172. package/dist/store/thread/index.js +6 -0
  173. package/dist/store/thread/index.js.map +1 -0
  174. package/dist/store/thread/memory.d.ts +23 -0
  175. package/dist/store/thread/memory.d.ts.map +1 -0
  176. package/dist/store/thread/memory.js +90 -0
  177. package/dist/store/thread/memory.js.map +1 -0
  178. package/dist/types/agent/base.d.ts +17 -21
  179. package/dist/types/agent/base.d.ts.map +1 -1
  180. package/dist/types/agent/factory.d.ts +8 -2
  181. package/dist/types/agent/factory.d.ts.map +1 -1
  182. package/dist/types/agent/task.d.ts +18 -11
  183. package/dist/types/agent/task.d.ts.map +1 -1
  184. package/dist/types/ids/index.d.ts +5 -9
  185. package/dist/types/ids/index.d.ts.map +1 -1
  186. package/dist/types/ids/index.js +4 -4
  187. package/dist/types/ids/index.js.map +1 -1
  188. package/dist/types/rag/retrieval.d.ts +4 -3
  189. package/dist/types/rag/retrieval.d.ts.map +1 -1
  190. package/dist/types/run/config.d.ts +6 -5
  191. package/dist/types/run/config.d.ts.map +1 -1
  192. package/dist/types/run/metadata.d.ts +5 -18
  193. package/dist/types/run/metadata.d.ts.map +1 -1
  194. package/dist/types/session/ids.d.ts +4 -13
  195. package/dist/types/session/ids.d.ts.map +1 -1
  196. package/dist/types/session/ids.js +3 -6
  197. package/dist/types/session/ids.js.map +1 -1
  198. package/dist/types/session/index.d.ts +1 -1
  199. package/dist/types/session/index.d.ts.map +1 -1
  200. package/dist/types/session/store.d.ts +32 -10
  201. package/dist/types/session/store.d.ts.map +1 -1
  202. package/dist/types/session/store.js +3 -8
  203. package/dist/types/session/store.js.map +1 -1
  204. package/dist/types/thread/index.d.ts +2 -0
  205. package/dist/types/thread/index.d.ts.map +1 -0
  206. package/dist/types/thread/index.js +5 -0
  207. package/dist/types/thread/index.js.map +1 -0
  208. package/dist/types/thread/store.d.ts +86 -0
  209. package/dist/types/thread/store.d.ts.map +1 -0
  210. package/dist/types/thread/store.js +22 -0
  211. package/dist/types/thread/store.js.map +1 -0
  212. package/dist/utils/id.d.ts +1 -12
  213. package/dist/utils/id.d.ts.map +1 -1
  214. package/dist/utils/id.js +3 -23
  215. package/dist/utils/id.js.map +1 -1
  216. package/package.json +6 -11
  217. package/src/agents/ReactiveAgent.ts +3 -2
  218. package/src/agents/SupervisorAgent.ts +5 -2
  219. package/src/bridge/a2a/index.ts +0 -1
  220. package/src/bridge/a2a/message.ts +0 -32
  221. package/src/bridge/a2a/task.ts +8 -7
  222. package/src/contracts/api.ts +6 -42
  223. package/src/contracts/ids.ts +1 -1
  224. package/src/contracts/index.ts +2 -8
  225. package/src/contracts/schemas.ts +1 -8
  226. package/src/index.ts +0 -4
  227. package/src/manager/agent/__tests__/lifecycle.test.ts +34 -13
  228. package/src/manager/agent/lifecycle.ts +114 -35
  229. package/src/manager/index.ts +3 -0
  230. package/src/manager/run/persistence.ts +7 -1
  231. package/src/manager/thread/__tests__/lifecycle.test.ts +286 -0
  232. package/src/manager/thread/lifecycle.ts +217 -0
  233. package/src/rag/retriever.ts +2 -2
  234. package/src/runtime/query/__tests__/context.test.ts +9 -8
  235. package/src/runtime/query/context-cache.ts +4 -4
  236. package/src/runtime/query/context.ts +15 -22
  237. package/src/runtime/query/index.ts +15 -16
  238. package/src/session/__tests__/integration/_fixtures.ts +36 -8
  239. package/src/session/__tests__/integration/archive-gate.test.ts +288 -0
  240. package/src/session/__tests__/integration/capacity-caps.test.ts +13 -6
  241. package/src/session/__tests__/integration/e2e-spawn.test.ts +20 -2
  242. package/src/session/__tests__/integration/event-stream-ordering.test.ts +14 -7
  243. package/src/session/__tests__/integration/handoff-broadcast-e2e.test.ts +39 -13
  244. package/src/session/__tests__/integration/handoff-illegal-transition.test.ts +54 -19
  245. package/src/session/__tests__/integration/handoff-single-e2e.test.ts +40 -9
  246. package/src/session/__tests__/integration/hierarchy-lifecycle.test.ts +13 -10
  247. package/src/session/__tests__/integration/prev-artifact-dag.test.ts +12 -5
  248. package/src/session/__tests__/integration/retention-archive.test.ts +5 -3
  249. package/src/session/__tests__/integration/spawn-rollback.test.ts +313 -0
  250. package/src/session/__tests__/integration/summary-materialization-e2e.test.ts +4 -2
  251. package/src/session/__tests__/integration/tenant-isolation.test.ts +16 -6
  252. package/src/session/errors.ts +89 -0
  253. package/src/session/handoff/__tests__/broadcast.test.ts +56 -28
  254. package/src/session/handoff/__tests__/capacity.test.ts +26 -20
  255. package/src/session/handoff/__tests__/single.test.ts +45 -28
  256. package/src/session/handoff/assignment.ts +13 -1
  257. package/src/session/handoff/broadcast.ts +26 -1
  258. package/src/session/handoff/single.ts +23 -1
  259. package/src/session/hierarchy/__tests__/session.test.ts +9 -1
  260. package/src/session/hierarchy/index.ts +1 -0
  261. package/src/session/hierarchy/session.ts +15 -3
  262. package/src/session/hierarchy/thread.ts +55 -0
  263. package/src/session/migration/id-prefix.ts +8 -13
  264. package/src/session/retention/__tests__/archive.test.ts +5 -3
  265. package/src/session/summary/__tests__/materialize.test.ts +6 -4
  266. package/src/store/index.ts +0 -3
  267. package/src/store/session/__tests__/disk.test.ts +57 -6
  268. package/src/store/session/__tests__/memory.test.ts +84 -9
  269. package/src/store/session/disk.ts +57 -1
  270. package/src/store/session/index.ts +3 -4
  271. package/src/store/session/memory.ts +13 -1
  272. package/src/store/thread/disk.ts +261 -0
  273. package/src/store/thread/index.ts +7 -0
  274. package/src/store/thread/memory.ts +104 -0
  275. package/src/types/agent/base.ts +17 -21
  276. package/src/types/agent/factory.ts +8 -3
  277. package/src/types/agent/task.ts +19 -11
  278. package/src/types/ids/index.ts +8 -15
  279. package/src/types/rag/retrieval.ts +4 -3
  280. package/src/types/run/config.ts +6 -5
  281. package/src/types/run/metadata.ts +5 -18
  282. package/src/types/session/ids.ts +4 -15
  283. package/src/types/session/index.ts +1 -2
  284. package/src/types/session/store.ts +34 -11
  285. package/src/types/thread/index.ts +5 -0
  286. package/src/types/thread/store.ts +92 -0
  287. package/src/utils/id.ts +3 -24
  288. package/dist/store/conversation/memory.d.ts +0 -43
  289. package/dist/store/conversation/memory.d.ts.map +0 -1
  290. package/dist/store/conversation/memory.js +0 -108
  291. package/dist/store/conversation/memory.js.map +0 -1
  292. package/dist/types/conversation/index.d.ts +0 -14
  293. package/dist/types/conversation/index.d.ts.map +0 -1
  294. package/dist/types/conversation/index.js +0 -2
  295. package/dist/types/conversation/index.js.map +0 -1
  296. package/src/store/conversation/memory.ts +0 -144
  297. package/src/types/conversation/index.ts +0 -15
@@ -1,43 +0,0 @@
1
- /**
2
- * @deprecated Use `InMemorySessionStore` from
3
- * `@namzu/sdk/store/session`. This class implements the deprecated
4
- * `ConversationStore` contract (thread-scoped, no tenantId) and is kept
5
- * for one migration window per session-hierarchy.md §13.1; it will be
6
- * removed in 0.3.0.
7
- *
8
- * INTERPRETATION (Phase 3): the old class exposes helpers
9
- * (`addUserMessage`, `createThread`, `hasThread`, `deleteThread`,
10
- * `messageCount`, `clear`) that are not part of `ConversationStore` and
11
- * whose signatures rely on `ThreadId` + `Message` without `TenantId`.
12
- * Those signatures are structurally incompatible with the new
13
- * `SessionStore` surface, so a strict alias re-export would lose API
14
- * (roadmap §2 Phase 3 option (a)). We pick option (b) — retain the
15
- * original class body verbatim with a deprecation banner — to preserve
16
- * existing consumers during the migration window without polluting the
17
- * new `InMemorySessionStore` with thread-scoped helpers.
18
- */
19
- import type { ConversationStore } from '../../types/conversation/index.js';
20
- import type { MessageId, RunId, ThreadId } from '../../types/ids/index.js';
21
- import { type Message } from '../../types/message/index.js';
22
- export interface InMemoryConversationStoreConfig {
23
- readonly maxMessages?: number;
24
- }
25
- /**
26
- * @deprecated See module banner. Use `InMemorySessionStore` from
27
- * `@namzu/sdk/store/session`.
28
- */
29
- export declare class InMemoryConversationStore implements ConversationStore {
30
- private readonly threads;
31
- private readonly maxMessages;
32
- constructor(config?: InMemoryConversationStoreConfig);
33
- loadMessages(threadId: ThreadId): Message[];
34
- persistRunResult(threadId: ThreadId, runId: RunId, messages: Message[]): void;
35
- addUserMessage(threadId: ThreadId, content: string): MessageId;
36
- hasThread(threadId: ThreadId): boolean;
37
- createThread(threadId: ThreadId): boolean;
38
- deleteThread(threadId: ThreadId): boolean;
39
- messageCount(threadId: ThreadId): number;
40
- clear(): void;
41
- private ensureThread;
42
- }
43
- //# sourceMappingURL=memory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/store/conversation/memory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAC1E,OAAO,EACN,KAAK,OAAO,EAGZ,MAAM,8BAA8B,CAAA;AAkBrC,MAAM,WAAW,+BAA+B;IAC/C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED;;;GAGG;AACH,qBAAa,yBAA0B,YAAW,iBAAiB;IAClE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6C;IACrE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;gBAExB,MAAM,GAAE,+BAAoC;IAIxD,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,EAAE;IA4B3C,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IAe7E,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS;IAa9D,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAItC,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAMzC,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAIzC,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;IAIxC,KAAK,IAAI,IAAI;IAIb,OAAO,CAAC,YAAY;CAKpB"}
@@ -1,108 +0,0 @@
1
- /**
2
- * @deprecated Use `InMemorySessionStore` from
3
- * `@namzu/sdk/store/session`. This class implements the deprecated
4
- * `ConversationStore` contract (thread-scoped, no tenantId) and is kept
5
- * for one migration window per session-hierarchy.md §13.1; it will be
6
- * removed in 0.3.0.
7
- *
8
- * INTERPRETATION (Phase 3): the old class exposes helpers
9
- * (`addUserMessage`, `createThread`, `hasThread`, `deleteThread`,
10
- * `messageCount`, `clear`) that are not part of `ConversationStore` and
11
- * whose signatures rely on `ThreadId` + `Message` without `TenantId`.
12
- * Those signatures are structurally incompatible with the new
13
- * `SessionStore` surface, so a strict alias re-export would lose API
14
- * (roadmap §2 Phase 3 option (a)). We pick option (b) — retain the
15
- * original class body verbatim with a deprecation banner — to preserve
16
- * existing consumers during the migration window without polluting the
17
- * new `InMemorySessionStore` with thread-scoped helpers.
18
- */
19
- import { findSafeTrimIndex } from '../../compaction/dangling.js';
20
- import { createAssistantMessage, createUserMessage, } from '../../types/message/index.js';
21
- import { extractFinalResponse } from '../../utils/conversation.js';
22
- import { generateMessageId } from '../../utils/id.js';
23
- /**
24
- * @deprecated See module banner. Use `InMemorySessionStore` from
25
- * `@namzu/sdk/store/session`.
26
- */
27
- export class InMemoryConversationStore {
28
- threads = new Map();
29
- maxMessages;
30
- constructor(config = {}) {
31
- this.maxMessages = config.maxMessages ?? 100;
32
- }
33
- loadMessages(threadId) {
34
- const messages = this.threads.get(threadId);
35
- if (!messages)
36
- return [];
37
- // Convert to Message type for trim safety check
38
- const convertedMessages = messages.map((m) => {
39
- switch (m.role) {
40
- case 'user':
41
- return createUserMessage(m.content);
42
- case 'assistant':
43
- return createAssistantMessage(m.content);
44
- default: {
45
- const _exhaustive = m.role;
46
- throw new Error(`Unhandled message role: ${_exhaustive}`);
47
- }
48
- }
49
- });
50
- // Apply safe trimming to preserve tool call/result atomicity
51
- let trimStartIdx = 0;
52
- if (convertedMessages.length > this.maxMessages) {
53
- const desiredTrimPoint = convertedMessages.length - this.maxMessages;
54
- trimStartIdx = findSafeTrimIndex(convertedMessages, desiredTrimPoint);
55
- }
56
- return convertedMessages.slice(trimStartIdx);
57
- }
58
- persistRunResult(threadId, runId, messages) {
59
- const finalAssistant = extractFinalResponse(messages);
60
- if (!finalAssistant || !finalAssistant.content)
61
- return;
62
- this.ensureThread(threadId);
63
- this.threads.get(threadId)?.push({
64
- id: generateMessageId(),
65
- threadId,
66
- role: 'assistant',
67
- content: finalAssistant.content,
68
- runId,
69
- createdAt: new Date().toISOString(),
70
- });
71
- }
72
- addUserMessage(threadId, content) {
73
- this.ensureThread(threadId);
74
- const id = generateMessageId();
75
- this.threads.get(threadId)?.push({
76
- id,
77
- threadId,
78
- role: 'user',
79
- content,
80
- createdAt: new Date().toISOString(),
81
- });
82
- return id;
83
- }
84
- hasThread(threadId) {
85
- return this.threads.has(threadId);
86
- }
87
- createThread(threadId) {
88
- if (this.threads.has(threadId))
89
- return false;
90
- this.threads.set(threadId, []);
91
- return true;
92
- }
93
- deleteThread(threadId) {
94
- return this.threads.delete(threadId);
95
- }
96
- messageCount(threadId) {
97
- return this.threads.get(threadId)?.length ?? 0;
98
- }
99
- clear() {
100
- this.threads.clear();
101
- }
102
- ensureThread(threadId) {
103
- if (!this.threads.has(threadId)) {
104
- this.threads.set(threadId, []);
105
- }
106
- }
107
- }
108
- //# sourceMappingURL=memory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/store/conversation/memory.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import type { RunId, ThreadId } from '../ids/index.js';
2
- import type { Message } from '../message/index.js';
3
- /**
4
- * @deprecated Use `SessionStore` from `@namzu/sdk` (import via
5
- * `types/session/store.ts` or the root barrel). `ConversationStore` is
6
- * thread-scoped and does not carry the `tenantId` required by
7
- * session-hierarchy.md §12.1. Scheduled for removal in 0.3.0; the one-
8
- * version migration window follows session-hierarchy.md §13.1.
9
- */
10
- export interface ConversationStore {
11
- loadMessages(threadId: ThreadId): Message[];
12
- persistRunResult(threadId: ThreadId, runId: RunId, messages: Message[]): void;
13
- }
14
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/conversation/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IACjC,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,EAAE,CAAA;IAE3C,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;CAC7E"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/conversation/index.ts"],"names":[],"mappings":""}
@@ -1,144 +0,0 @@
1
- /**
2
- * @deprecated Use `InMemorySessionStore` from
3
- * `@namzu/sdk/store/session`. This class implements the deprecated
4
- * `ConversationStore` contract (thread-scoped, no tenantId) and is kept
5
- * for one migration window per session-hierarchy.md §13.1; it will be
6
- * removed in 0.3.0.
7
- *
8
- * INTERPRETATION (Phase 3): the old class exposes helpers
9
- * (`addUserMessage`, `createThread`, `hasThread`, `deleteThread`,
10
- * `messageCount`, `clear`) that are not part of `ConversationStore` and
11
- * whose signatures rely on `ThreadId` + `Message` without `TenantId`.
12
- * Those signatures are structurally incompatible with the new
13
- * `SessionStore` surface, so a strict alias re-export would lose API
14
- * (roadmap §2 Phase 3 option (a)). We pick option (b) — retain the
15
- * original class body verbatim with a deprecation banner — to preserve
16
- * existing consumers during the migration window without polluting the
17
- * new `InMemorySessionStore` with thread-scoped helpers.
18
- */
19
-
20
- import { findSafeTrimIndex } from '../../compaction/dangling.js'
21
- import type { ConversationStore } from '../../types/conversation/index.js'
22
- import type { MessageId, RunId, ThreadId } from '../../types/ids/index.js'
23
- import {
24
- type Message,
25
- createAssistantMessage,
26
- createUserMessage,
27
- } from '../../types/message/index.js'
28
- import { extractFinalResponse } from '../../utils/conversation.js'
29
- import { generateMessageId } from '../../utils/id.js'
30
-
31
- interface ConversationMessage {
32
- readonly id: MessageId
33
-
34
- readonly threadId: ThreadId
35
-
36
- readonly role: 'user' | 'assistant'
37
-
38
- readonly content: string
39
-
40
- readonly runId?: RunId
41
-
42
- readonly createdAt: string
43
- }
44
-
45
- export interface InMemoryConversationStoreConfig {
46
- readonly maxMessages?: number
47
- }
48
-
49
- /**
50
- * @deprecated See module banner. Use `InMemorySessionStore` from
51
- * `@namzu/sdk/store/session`.
52
- */
53
- export class InMemoryConversationStore implements ConversationStore {
54
- private readonly threads = new Map<ThreadId, ConversationMessage[]>()
55
- private readonly maxMessages: number
56
-
57
- constructor(config: InMemoryConversationStoreConfig = {}) {
58
- this.maxMessages = config.maxMessages ?? 100
59
- }
60
-
61
- loadMessages(threadId: ThreadId): Message[] {
62
- const messages = this.threads.get(threadId)
63
- if (!messages) return []
64
-
65
- // Convert to Message type for trim safety check
66
- const convertedMessages: Message[] = messages.map((m) => {
67
- switch (m.role) {
68
- case 'user':
69
- return createUserMessage(m.content)
70
- case 'assistant':
71
- return createAssistantMessage(m.content)
72
- default: {
73
- const _exhaustive: never = m.role
74
- throw new Error(`Unhandled message role: ${_exhaustive}`)
75
- }
76
- }
77
- })
78
-
79
- // Apply safe trimming to preserve tool call/result atomicity
80
- let trimStartIdx = 0
81
- if (convertedMessages.length > this.maxMessages) {
82
- const desiredTrimPoint = convertedMessages.length - this.maxMessages
83
- trimStartIdx = findSafeTrimIndex(convertedMessages, desiredTrimPoint)
84
- }
85
-
86
- return convertedMessages.slice(trimStartIdx)
87
- }
88
-
89
- persistRunResult(threadId: ThreadId, runId: RunId, messages: Message[]): void {
90
- const finalAssistant = extractFinalResponse(messages)
91
- if (!finalAssistant || !finalAssistant.content) return
92
-
93
- this.ensureThread(threadId)
94
- this.threads.get(threadId)?.push({
95
- id: generateMessageId(),
96
- threadId,
97
- role: 'assistant',
98
- content: finalAssistant.content,
99
- runId,
100
- createdAt: new Date().toISOString(),
101
- })
102
- }
103
-
104
- addUserMessage(threadId: ThreadId, content: string): MessageId {
105
- this.ensureThread(threadId)
106
- const id = generateMessageId()
107
- this.threads.get(threadId)?.push({
108
- id,
109
- threadId,
110
- role: 'user',
111
- content,
112
- createdAt: new Date().toISOString(),
113
- })
114
- return id
115
- }
116
-
117
- hasThread(threadId: ThreadId): boolean {
118
- return this.threads.has(threadId)
119
- }
120
-
121
- createThread(threadId: ThreadId): boolean {
122
- if (this.threads.has(threadId)) return false
123
- this.threads.set(threadId, [])
124
- return true
125
- }
126
-
127
- deleteThread(threadId: ThreadId): boolean {
128
- return this.threads.delete(threadId)
129
- }
130
-
131
- messageCount(threadId: ThreadId): number {
132
- return this.threads.get(threadId)?.length ?? 0
133
- }
134
-
135
- clear(): void {
136
- this.threads.clear()
137
- }
138
-
139
- private ensureThread(threadId: ThreadId): void {
140
- if (!this.threads.has(threadId)) {
141
- this.threads.set(threadId, [])
142
- }
143
- }
144
- }
@@ -1,15 +0,0 @@
1
- import type { RunId, ThreadId } from '../ids/index.js'
2
- import type { Message } from '../message/index.js'
3
-
4
- /**
5
- * @deprecated Use `SessionStore` from `@namzu/sdk` (import via
6
- * `types/session/store.ts` or the root barrel). `ConversationStore` is
7
- * thread-scoped and does not carry the `tenantId` required by
8
- * session-hierarchy.md §12.1. Scheduled for removal in 0.3.0; the one-
9
- * version migration window follows session-hierarchy.md §13.1.
10
- */
11
- export interface ConversationStore {
12
- loadMessages(threadId: ThreadId): Message[]
13
-
14
- persistRunResult(threadId: ThreadId, runId: RunId, messages: Message[]): void
15
- }