@multiplayer-app/sandbox 0.0.7 → 0.0.9

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 (273) hide show
  1. package/dist/agents/content-generator.agent.d.ts +4 -0
  2. package/dist/agents/content-generator.agent.d.ts.map +1 -0
  3. package/dist/agents/content-generator.agent.js +41 -0
  4. package/dist/agents/content-generator.agent.js.map +1 -0
  5. package/dist/agents/html-generator.agent.d.ts +1 -3
  6. package/dist/agents/html-generator.agent.d.ts.map +1 -1
  7. package/dist/agents/html-generator.agent.js +4 -93
  8. package/dist/agents/html-generator.agent.js.map +1 -1
  9. package/dist/agents/markdown-generator.agent.d.ts.map +1 -1
  10. package/dist/agents/markdown-generator.agent.js +12 -10
  11. package/dist/agents/markdown-generator.agent.js.map +1 -1
  12. package/dist/agents/shared/content-generator-system-prompt.d.ts +3 -0
  13. package/dist/agents/shared/content-generator-system-prompt.d.ts.map +1 -0
  14. package/dist/agents/shared/content-generator-system-prompt.js +32 -0
  15. package/dist/agents/shared/content-generator-system-prompt.js.map +1 -0
  16. package/dist/agents/shared/get-session-artifact-content.tool.d.ts +7 -0
  17. package/dist/agents/shared/get-session-artifact-content.tool.d.ts.map +1 -0
  18. package/dist/agents/shared/get-session-artifact-content.tool.js +44 -0
  19. package/dist/agents/shared/get-session-artifact-content.tool.js.map +1 -0
  20. package/dist/agents/shared/list-session-artifact-paths.tool.d.ts +5 -0
  21. package/dist/agents/shared/list-session-artifact-paths.tool.d.ts.map +1 -0
  22. package/dist/agents/shared/list-session-artifact-paths.tool.js +37 -0
  23. package/dist/agents/shared/list-session-artifact-paths.tool.js.map +1 -0
  24. package/dist/agents/shared/publish-session-artifacts.tool.d.ts +1 -10
  25. package/dist/agents/shared/publish-session-artifacts.tool.d.ts.map +1 -1
  26. package/dist/agents/shared/publish-session-artifacts.tool.js +97 -81
  27. package/dist/agents/shared/publish-session-artifacts.tool.js.map +1 -1
  28. package/dist/agents/shared/update-session-artifacts.tool.d.ts +18 -0
  29. package/dist/agents/shared/update-session-artifacts.tool.d.ts.map +1 -0
  30. package/dist/agents/shared/update-session-artifacts.tool.js +146 -0
  31. package/dist/agents/shared/update-session-artifacts.tool.js.map +1 -0
  32. package/dist/agents/shared/validate-artifact-content.tools.d.ts +12 -0
  33. package/dist/agents/shared/validate-artifact-content.tools.d.ts.map +1 -0
  34. package/dist/agents/shared/validate-artifact-content.tools.js +131 -0
  35. package/dist/agents/shared/validate-artifact-content.tools.js.map +1 -0
  36. package/dist/agents.d.ts.map +1 -1
  37. package/dist/agents.js +2 -4
  38. package/dist/agents.js.map +1 -1
  39. package/dist/ai-agent.service.d.ts.map +1 -1
  40. package/dist/ai-agent.service.js +0 -2
  41. package/dist/ai-agent.service.js.map +1 -1
  42. package/dist/create-builder-api.d.ts +4 -0
  43. package/dist/create-builder-api.d.ts.map +1 -1
  44. package/dist/create-builder-api.js.map +1 -1
  45. package/dist/index.d.ts +3 -2
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +11 -5
  48. package/dist/index.js.map +1 -1
  49. package/dist/lib/chat-access.d.ts +19 -0
  50. package/dist/lib/chat-access.d.ts.map +1 -0
  51. package/dist/lib/chat-access.js +75 -0
  52. package/dist/lib/chat-access.js.map +1 -0
  53. package/dist/lib/list-user-chats.d.ts +22 -0
  54. package/dist/lib/list-user-chats.d.ts.map +1 -0
  55. package/dist/lib/list-user-chats.js +48 -0
  56. package/dist/lib/list-user-chats.js.map +1 -0
  57. package/dist/lib/session-artifacts/apply-hashline-edits.d.ts +3 -0
  58. package/dist/lib/session-artifacts/apply-hashline-edits.d.ts.map +1 -0
  59. package/dist/lib/session-artifacts/apply-hashline-edits.js +25 -0
  60. package/dist/lib/session-artifacts/apply-hashline-edits.js.map +1 -0
  61. package/dist/lib/session-artifacts/artifact-text-edit.d.ts +8 -0
  62. package/dist/lib/session-artifacts/artifact-text-edit.d.ts.map +1 -0
  63. package/dist/lib/session-artifacts/artifact-text-edit.js +23 -0
  64. package/dist/lib/session-artifacts/artifact-text-edit.js.map +1 -0
  65. package/dist/lib/session-artifacts/hashline-diff-guide.d.ts +3 -0
  66. package/dist/lib/session-artifacts/hashline-diff-guide.d.ts.map +1 -0
  67. package/dist/lib/session-artifacts/hashline-diff-guide.js +19 -0
  68. package/dist/lib/session-artifacts/hashline-diff-guide.js.map +1 -0
  69. package/dist/lib/session-artifacts/hashline-tag.d.ts +33 -0
  70. package/dist/lib/session-artifacts/hashline-tag.d.ts.map +1 -0
  71. package/dist/lib/session-artifacts/hashline-tag.js +80 -0
  72. package/dist/lib/session-artifacts/hashline-tag.js.map +1 -0
  73. package/dist/lib/session-artifacts/parse-hashline-diff.d.ts +10 -0
  74. package/dist/lib/session-artifacts/parse-hashline-diff.d.ts.map +1 -0
  75. package/dist/lib/session-artifacts/parse-hashline-diff.js +33 -0
  76. package/dist/lib/session-artifacts/parse-hashline-diff.js.map +1 -0
  77. package/dist/lib/session-pages/artifact-storage-paths.d.ts +13 -0
  78. package/dist/lib/session-pages/artifact-storage-paths.d.ts.map +1 -0
  79. package/dist/lib/session-pages/artifact-storage-paths.js +46 -0
  80. package/dist/lib/session-pages/artifact-storage-paths.js.map +1 -0
  81. package/dist/lib/session-pages/artifact-storage.d.ts +8 -0
  82. package/dist/lib/session-pages/artifact-storage.d.ts.map +1 -0
  83. package/dist/lib/session-pages/artifact-storage.js +113 -0
  84. package/dist/lib/session-pages/artifact-storage.js.map +1 -0
  85. package/dist/lib/session-pages/delete-session-artifact.d.ts +5 -0
  86. package/dist/lib/session-pages/delete-session-artifact.d.ts.map +1 -0
  87. package/dist/lib/session-pages/delete-session-artifact.js +56 -0
  88. package/dist/lib/session-pages/delete-session-artifact.js.map +1 -0
  89. package/dist/lib/session-pages/index.d.ts +3 -4
  90. package/dist/lib/session-pages/index.d.ts.map +1 -1
  91. package/dist/lib/session-pages/index.js +6 -8
  92. package/dist/lib/session-pages/index.js.map +1 -1
  93. package/dist/lib/session-pages/inject-preview-error-reporter.d.ts +3 -0
  94. package/dist/lib/session-pages/inject-preview-error-reporter.d.ts.map +1 -0
  95. package/dist/lib/session-pages/inject-preview-error-reporter.js +30 -0
  96. package/dist/lib/session-pages/inject-preview-error-reporter.js.map +1 -0
  97. package/dist/lib/session-pages/list-session-artifacts.d.ts.map +1 -1
  98. package/dist/lib/session-pages/list-session-artifacts.js +19 -3
  99. package/dist/lib/session-pages/list-session-artifacts.js.map +1 -1
  100. package/dist/lib/session-pages/paths.d.ts +0 -1
  101. package/dist/lib/session-pages/paths.d.ts.map +1 -1
  102. package/dist/lib/session-pages/paths.js +0 -8
  103. package/dist/lib/session-pages/paths.js.map +1 -1
  104. package/dist/lib/session-pages/read-session-artifacts.d.ts +9 -0
  105. package/dist/lib/session-pages/read-session-artifacts.d.ts.map +1 -0
  106. package/dist/lib/session-pages/read-session-artifacts.js +56 -0
  107. package/dist/lib/session-pages/read-session-artifacts.js.map +1 -0
  108. package/dist/lib/session-pages/session-pico-css.d.ts +5 -0
  109. package/dist/lib/session-pages/session-pico-css.d.ts.map +1 -0
  110. package/dist/lib/session-pages/session-pico-css.js +11 -0
  111. package/dist/lib/session-pages/session-pico-css.js.map +1 -0
  112. package/dist/lib/session-pages/write-session-artifacts.d.ts +0 -10
  113. package/dist/lib/session-pages/write-session-artifacts.d.ts.map +1 -1
  114. package/dist/lib/session-pages/write-session-artifacts.js +9 -57
  115. package/dist/lib/session-pages/write-session-artifacts.js.map +1 -1
  116. package/dist/lib/socket/artifact-events.d.ts +1 -1
  117. package/dist/lib/socket/artifact-events.d.ts.map +1 -1
  118. package/dist/lib/socket/artifact-events.js.map +1 -1
  119. package/dist/middleware/index.d.ts +2 -0
  120. package/dist/middleware/index.d.ts.map +1 -0
  121. package/dist/middleware/index.js +38 -0
  122. package/dist/middleware/index.js.map +1 -0
  123. package/dist/middleware/validation/activity.validation.d.ts +5 -0
  124. package/dist/middleware/validation/activity.validation.d.ts.map +1 -0
  125. package/dist/middleware/validation/activity.validation.js +19 -0
  126. package/dist/middleware/validation/activity.validation.js.map +1 -0
  127. package/dist/middleware/validation/agent.validation.d.ts +4 -0
  128. package/dist/middleware/validation/agent.validation.d.ts.map +1 -0
  129. package/dist/middleware/validation/agent.validation.js +25 -0
  130. package/dist/middleware/validation/agent.validation.js.map +1 -0
  131. package/dist/middleware/validation/chat.validation.d.ts +12 -0
  132. package/dist/middleware/validation/chat.validation.d.ts.map +1 -0
  133. package/dist/middleware/validation/chat.validation.js +94 -0
  134. package/dist/middleware/validation/chat.validation.js.map +1 -0
  135. package/dist/middleware/validation/index.d.ts +4 -0
  136. package/dist/middleware/validation/index.d.ts.map +1 -0
  137. package/dist/middleware/validation/index.js +40 -0
  138. package/dist/middleware/validation/index.js.map +1 -0
  139. package/dist/middleware/validation/zod-validate.d.ts +5 -0
  140. package/dist/middleware/validation/zod-validate.d.ts.map +1 -0
  141. package/dist/middleware/validation/zod-validate.js +25 -0
  142. package/dist/middleware/validation/zod-validate.js.map +1 -0
  143. package/dist/realtime/reset-session-artifact-y-docs.d.ts.map +1 -1
  144. package/dist/realtime/reset-session-artifact-y-docs.js +6 -1
  145. package/dist/realtime/reset-session-artifact-y-docs.js.map +1 -1
  146. package/dist/realtime/session-artifact-document-id.d.ts.map +1 -1
  147. package/dist/realtime/session-artifact-document-id.js +0 -2
  148. package/dist/realtime/session-artifact-document-id.js.map +1 -1
  149. package/dist/realtime/session-artifact-y-socket-io.d.ts.map +1 -1
  150. package/dist/realtime/session-artifact-y-socket-io.js +0 -11
  151. package/dist/realtime/session-artifact-y-socket-io.js.map +1 -1
  152. package/dist/realtime/session-artifact-yjs-store.d.ts +22 -5
  153. package/dist/realtime/session-artifact-yjs-store.d.ts.map +1 -1
  154. package/dist/realtime/session-artifact-yjs-store.js +118 -52
  155. package/dist/realtime/session-artifact-yjs-store.js.map +1 -1
  156. package/dist/routes/activities/get.d.ts +3 -0
  157. package/dist/routes/activities/get.d.ts.map +1 -0
  158. package/dist/routes/activities/get.js +28 -0
  159. package/dist/routes/activities/get.js.map +1 -0
  160. package/dist/routes/activities/index.d.ts +2 -0
  161. package/dist/routes/activities/index.d.ts.map +1 -0
  162. package/dist/routes/activities/index.js +16 -0
  163. package/dist/routes/activities/index.js.map +1 -0
  164. package/dist/routes/activities/list.d.ts +3 -0
  165. package/dist/routes/activities/list.d.ts.map +1 -0
  166. package/dist/routes/activities/list.js +41 -0
  167. package/dist/routes/activities/list.js.map +1 -0
  168. package/dist/routes/activities/source-types.d.ts +3 -0
  169. package/dist/routes/activities/source-types.d.ts.map +1 -0
  170. package/dist/routes/activities/source-types.js +33 -0
  171. package/dist/routes/activities/source-types.js.map +1 -0
  172. package/dist/routes/activities/summary.d.ts +3 -0
  173. package/dist/routes/activities/summary.d.ts.map +1 -0
  174. package/dist/routes/activities/summary.js +38 -0
  175. package/dist/routes/activities/summary.js.map +1 -0
  176. package/dist/routes/agents/getConfig.d.ts +3 -0
  177. package/dist/routes/agents/getConfig.d.ts.map +1 -0
  178. package/dist/routes/agents/getConfig.js +16 -0
  179. package/dist/routes/agents/getConfig.js.map +1 -0
  180. package/dist/routes/agents/index.d.ts +2 -0
  181. package/dist/routes/agents/index.d.ts.map +1 -0
  182. package/dist/routes/agents/index.js +13 -0
  183. package/dist/routes/agents/index.js.map +1 -0
  184. package/dist/routes/agents/upsertPreferences.d.ts +4 -0
  185. package/dist/routes/agents/upsertPreferences.d.ts.map +1 -0
  186. package/dist/routes/agents/upsertPreferences.js +42 -0
  187. package/dist/routes/agents/upsertPreferences.js.map +1 -0
  188. package/dist/routes/chats/abort.d.ts +2 -2
  189. package/dist/routes/chats/abort.d.ts.map +1 -1
  190. package/dist/routes/chats/abort.js +10 -5
  191. package/dist/routes/chats/abort.js.map +1 -1
  192. package/dist/routes/chats/actions.d.ts +2 -2
  193. package/dist/routes/chats/actions.d.ts.map +1 -1
  194. package/dist/routes/chats/actions.js +12 -12
  195. package/dist/routes/chats/actions.js.map +1 -1
  196. package/dist/routes/chats/artifacts.d.ts +2 -2
  197. package/dist/routes/chats/artifacts.d.ts.map +1 -1
  198. package/dist/routes/chats/artifacts.js +15 -4
  199. package/dist/routes/chats/artifacts.js.map +1 -1
  200. package/dist/routes/chats/chat-route-errors.d.ts +3 -0
  201. package/dist/routes/chats/chat-route-errors.d.ts.map +1 -0
  202. package/dist/routes/chats/chat-route-errors.js +23 -0
  203. package/dist/routes/chats/chat-route-errors.js.map +1 -0
  204. package/dist/routes/chats/delete.d.ts +2 -2
  205. package/dist/routes/chats/delete.d.ts.map +1 -1
  206. package/dist/routes/chats/delete.js +12 -3
  207. package/dist/routes/chats/delete.js.map +1 -1
  208. package/dist/routes/chats/get.d.ts +2 -2
  209. package/dist/routes/chats/get.d.ts.map +1 -1
  210. package/dist/routes/chats/get.js +8 -4
  211. package/dist/routes/chats/get.js.map +1 -1
  212. package/dist/routes/chats/getStream.d.ts +2 -2
  213. package/dist/routes/chats/getStream.d.ts.map +1 -1
  214. package/dist/routes/chats/getStream.js +16 -8
  215. package/dist/routes/chats/getStream.js.map +1 -1
  216. package/dist/routes/chats/index.d.ts.map +1 -1
  217. package/dist/routes/chats/index.js +19 -13
  218. package/dist/routes/chats/index.js.map +1 -1
  219. package/dist/routes/chats/invite-participants.d.ts +3 -0
  220. package/dist/routes/chats/invite-participants.d.ts.map +1 -0
  221. package/dist/routes/chats/invite-participants.js +56 -0
  222. package/dist/routes/chats/invite-participants.js.map +1 -0
  223. package/dist/routes/chats/list.d.ts +2 -2
  224. package/dist/routes/chats/list.d.ts.map +1 -1
  225. package/dist/routes/chats/list.js +22 -25
  226. package/dist/routes/chats/list.js.map +1 -1
  227. package/dist/routes/chats/messages.d.ts +2 -2
  228. package/dist/routes/chats/messages.d.ts.map +1 -1
  229. package/dist/routes/chats/messages.js +13 -6
  230. package/dist/routes/chats/messages.js.map +1 -1
  231. package/dist/routes/chats/multiUserMessages.d.ts +2 -2
  232. package/dist/routes/chats/multiUserMessages.d.ts.map +1 -1
  233. package/dist/routes/chats/multiUserMessages.js +19 -19
  234. package/dist/routes/chats/multiUserMessages.js.map +1 -1
  235. package/dist/routes/chats/remove-participants.d.ts +3 -0
  236. package/dist/routes/chats/remove-participants.d.ts.map +1 -0
  237. package/dist/routes/chats/remove-participants.js +46 -0
  238. package/dist/routes/chats/remove-participants.js.map +1 -0
  239. package/dist/routes/chats/stream.d.ts +2 -2
  240. package/dist/routes/chats/stream.d.ts.map +1 -1
  241. package/dist/routes/chats/stream.js +28 -11
  242. package/dist/routes/chats/stream.js.map +1 -1
  243. package/dist/routes/chats/title.d.ts +2 -2
  244. package/dist/routes/chats/title.d.ts.map +1 -1
  245. package/dist/routes/chats/title.js +14 -8
  246. package/dist/routes/chats/title.js.map +1 -1
  247. package/dist/routes/chats/updateToolCall.d.ts +2 -2
  248. package/dist/routes/chats/updateToolCall.d.ts.map +1 -1
  249. package/dist/routes/chats/updateToolCall.js +16 -20
  250. package/dist/routes/chats/updateToolCall.js.map +1 -1
  251. package/dist/routes/route-errors.d.ts +3 -0
  252. package/dist/routes/route-errors.d.ts.map +1 -0
  253. package/dist/routes/route-errors.js +13 -0
  254. package/dist/routes/route-errors.js.map +1 -0
  255. package/dist/routes/schemas.d.ts +80 -0
  256. package/dist/routes/schemas.d.ts.map +1 -1
  257. package/dist/routes/schemas.js +95 -1
  258. package/dist/routes/schemas.js.map +1 -1
  259. package/dist/routes/sessions.d.ts.map +1 -1
  260. package/dist/routes/sessions.js +77 -9
  261. package/dist/routes/sessions.js.map +1 -1
  262. package/dist/routes/tenants/credentials.d.ts +5 -0
  263. package/dist/routes/tenants/credentials.d.ts.map +1 -0
  264. package/dist/routes/tenants/credentials.js +50 -0
  265. package/dist/routes/tenants/credentials.js.map +1 -0
  266. package/dist/routes/tenants/index.d.ts +2 -0
  267. package/dist/routes/tenants/index.d.ts.map +1 -0
  268. package/dist/routes/tenants/index.js +10 -0
  269. package/dist/routes/tenants/index.js.map +1 -0
  270. package/dist/server.d.ts.map +1 -1
  271. package/dist/server.js +6 -0
  272. package/dist/server.js.map +1 -1
  273. package/package.json +5 -4
@@ -1 +1 @@
1
- {"version":3,"file":"create-builder-api.d.ts","sourceRoot":"","sources":["../src/create-builder-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,WAAW,CAAA;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AAC3F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAuB,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAGjF,OAAO,EAAwB,KAAK,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAC7E,OAAO,EAA2E,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAGzH,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,gBAAgB,CAAA;IACxB,UAAU,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/D,YAAY,EAAE,sBAAsB,GAAG;QACrC,kBAAkB,EAAE,qBAAqB,CAAC,oBAAoB,CAAC,CAAA;QAC/D,qBAAqB,EAAE,qBAAqB,CAAC,uBAAuB,CAAC,CAAA;QACrE,4BAA4B,EAAE,qBAAqB,CAAC,8BAA8B,CAAC,CAAA;KACpF,CAAA;IACD,gEAAgE;IAChE,kBAAkB,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAA;IACnD,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,CAAA;IAChD,6GAA6G;IAC7G,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,UAAU,CAAA;IACtB,YAAY,EAAE,cAAc,CAAA;IAC5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACtB;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA2DpG"}
1
+ {"version":3,"file":"create-builder-api.d.ts","sourceRoot":"","sources":["../src/create-builder-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,WAAW,CAAA;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AAC3F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAuB,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAGjF,OAAO,EAAwB,KAAK,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAC7E,OAAO,EAA2E,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAGzH;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,gBAAgB,CAAA;IACxB,UAAU,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/D,YAAY,EAAE,sBAAsB,GAAG;QACrC,kBAAkB,EAAE,qBAAqB,CAAC,oBAAoB,CAAC,CAAA;QAC/D,qBAAqB,EAAE,qBAAqB,CAAC,uBAAuB,CAAC,CAAA;QACrE,4BAA4B,EAAE,qBAAqB,CAAC,8BAA8B,CAAC,CAAA;KACpF,CAAA;IACD,gEAAgE;IAChE,kBAAkB,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAA;IACnD,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,CAAA;IAChD,6GAA6G;IAC7G,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,UAAU,CAAA;IACtB,YAAY,EAAE,cAAc,CAAA;IAC5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACtB;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA2DpG"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-builder-api.js","sourceRoot":"","sources":["../src/create-builder-api.ts"],"names":[],"mappings":";;AAkCA,4CA2DC;AA1FD,6DAAiF;AACjF,qCAA4C;AAC5C,yDAAsD;AACtD,uCAA6E;AAC7E,qCAAyH;AACzH,4DAA8E;AA0BvE,KAAK,UAAU,gBAAgB,CAAC,OAAgC;;IACrE,MAAM,GAAG,GAAG,IAAA,gCAAuB,EAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACnD,IAAA,kCAAyB,EAAC,GAAG,CAAC,CAAA;IAE9B,MAAM,EACJ,UAAU,EACV,MAAM,EACN,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,QAAQ,GACT,GAAG,OAAO,CAAA;IAEX,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,GAClH,YAAY,CAAA;IAEd,IAAI,gBAAgB,GAA4B,MAAM,IAAA,4BAAY,EAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IAEhG,MAAM,SAAS,GAAG,IAAA,wCAAmB,EAAC,MAAM,CAAC,CAAA;IAC7C,MAAM,aAAa,GAAG,MAAA,OAAO,CAAC,WAAW,mCAAI,IAAA,0BAAiB,EAAC,SAAS,CAAC,CAAA;IAEzE,oCAAiB,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC;QACzC,cAAc;QACd,iBAAiB;QACjB,kBAAkB;QAClB,qBAAqB;QACrB,4BAA4B;QAC5B,WAAW,EAAE,aAAa;QAC1B,MAAM,EAAE,kBAAkB;QAC1B,MAAM,EAAE,GAAG;KACZ,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG,oCAAiB,CAAC,WAAW,EAAE,CAAC,OAAO,CAAA;IAE5D,IAAA,8BAAoB,EAAC;QACnB,MAAM;QACN,MAAM,EAAE,GAAG;QACX,YAAY;QACZ,YAAY,EAAE,EAAE,cAAc,EAAE,iBAAiB,EAAE;KACpD,CAAC,CAAA;IAEF,OAAO;QACL,UAAU;QACV,YAAY;QACZ,KAAK,CAAC,KAAK;YACT,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,YAAY,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;gBAC5D,IAAA,4BAAmB,GAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;YACrD,CAAC;YAED,MAAM,YAAY,CAAC,KAAK,EAAE,CAAA;QAC5B,CAAC;QACD,KAAK,CAAC,IAAI;;YACR,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,EAAE,CAAA;YACrC,MAAM,YAAY,GAAG,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,KAAK,EAAE,mCAAI,OAAO,CAAC,OAAO,EAAE,CAAA;YACnE,gBAAgB,GAAG,IAAI,CAAA;YACvB,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAA;QACrD,CAAC;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"create-builder-api.js","sourceRoot":"","sources":["../src/create-builder-api.ts"],"names":[],"mappings":";;AAsCA,4CA2DC;AA9FD,6DAAiF;AACjF,qCAA4C;AAC5C,yDAAsD;AACtD,uCAA6E;AAC7E,qCAAyH;AACzH,4DAA8E;AA8BvE,KAAK,UAAU,gBAAgB,CAAC,OAAgC;;IACrE,MAAM,GAAG,GAAG,IAAA,gCAAuB,EAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACnD,IAAA,kCAAyB,EAAC,GAAG,CAAC,CAAA;IAE9B,MAAM,EACJ,UAAU,EACV,MAAM,EACN,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,QAAQ,GACT,GAAG,OAAO,CAAA;IAEX,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,GAClH,YAAY,CAAA;IAEd,IAAI,gBAAgB,GAA4B,MAAM,IAAA,4BAAY,EAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IAEhG,MAAM,SAAS,GAAG,IAAA,wCAAmB,EAAC,MAAM,CAAC,CAAA;IAC7C,MAAM,aAAa,GAAG,MAAA,OAAO,CAAC,WAAW,mCAAI,IAAA,0BAAiB,EAAC,SAAS,CAAC,CAAA;IAEzE,oCAAiB,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC;QACzC,cAAc;QACd,iBAAiB;QACjB,kBAAkB;QAClB,qBAAqB;QACrB,4BAA4B;QAC5B,WAAW,EAAE,aAAa;QAC1B,MAAM,EAAE,kBAAkB;QAC1B,MAAM,EAAE,GAAG;KACZ,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG,oCAAiB,CAAC,WAAW,EAAE,CAAC,OAAO,CAAA;IAE5D,IAAA,8BAAoB,EAAC;QACnB,MAAM;QACN,MAAM,EAAE,GAAG;QACX,YAAY;QACZ,YAAY,EAAE,EAAE,cAAc,EAAE,iBAAiB,EAAE;KACpD,CAAC,CAAA;IAEF,OAAO;QACL,UAAU;QACV,YAAY;QACZ,KAAK,CAAC,KAAK;YACT,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,YAAY,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;gBAC5D,IAAA,4BAAmB,GAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;YACrD,CAAC;YAED,MAAM,YAAY,CAAC,KAAK,EAAE,CAAA;QAC5B,CAAC;QACD,KAAK,CAAC,IAAI;;YACR,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,EAAE,CAAA;YACrC,MAAM,YAAY,GAAG,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,KAAK,EAAE,mCAAI,OAAO,CAAC,OAAO,EAAE,CAAA;YACnE,gBAAgB,GAAG,IAAI,CAAA;YACvB,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAA;QACrD,CAAC;KACF,CAAA;AACH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -6,6 +6,7 @@ export { getBuilderApiRouter } from './server';
6
6
  export { setupAgents, createSetupAgents } from './agents';
7
7
  export { AgentServiceStore } from './ai-agent.service';
8
8
  export { initRealtime, type RealtimeServices } from './realtime/init-realtime';
9
- export { createHtmlGeneratorAgent } from './agents/html-generator.agent';
10
- export { createMarkdownGeneratorAgent } from './agents/markdown-generator.agent';
9
+ export { assertSessionAccess, hasChatAccess, loadChatForUser, CHAT_NOT_FOUND, } from './lib/chat-access';
10
+ export { parseSessionArtifactDocumentId, buildSessionArtifactDocumentId, } from './realtime/session-artifact-document-id';
11
+ export { createContentGeneratorAgent } from './agents/content-generator.agent';
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAC9G,OAAO,EACL,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,uBAAuB,EACvB,KAAK,gBAAgB,GACtB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAC5I,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAC9G,OAAO,EACL,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,uBAAuB,EACvB,KAAK,gBAAgB,GACtB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAC5I,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC9E,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,cAAc,GACf,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,8BAA8B,EAC9B,8BAA8B,GAC/B,MAAM,yCAAyC,CAAA;AAChD,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAA"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createMarkdownGeneratorAgent = exports.createHtmlGeneratorAgent = exports.initRealtime = exports.AgentServiceStore = exports.createSetupAgents = exports.setupAgents = exports.getBuilderApiRouter = exports.getAgentService = exports.getBuilderApiContext = exports.setBuilderApiContext = exports.resolveBuilderApiLogger = exports.getBuilderApiLogger = exports.configureBuilderApiLogger = exports.agentDepsFromConfig = exports.createBuilderApi = void 0;
3
+ exports.createContentGeneratorAgent = exports.buildSessionArtifactDocumentId = exports.parseSessionArtifactDocumentId = exports.CHAT_NOT_FOUND = exports.loadChatForUser = exports.hasChatAccess = exports.assertSessionAccess = exports.initRealtime = exports.AgentServiceStore = exports.createSetupAgents = exports.setupAgents = exports.getBuilderApiRouter = exports.getAgentService = exports.getBuilderApiContext = exports.setBuilderApiContext = exports.resolveBuilderApiLogger = exports.getBuilderApiLogger = exports.configureBuilderApiLogger = exports.agentDepsFromConfig = exports.createBuilderApi = void 0;
4
4
  var create_builder_api_1 = require("./create-builder-api");
5
5
  Object.defineProperty(exports, "createBuilderApi", { enumerable: true, get: function () { return create_builder_api_1.createBuilderApi; } });
6
6
  var builder_api_config_1 = require("./builder-api-config");
@@ -22,8 +22,14 @@ var ai_agent_service_1 = require("./ai-agent.service");
22
22
  Object.defineProperty(exports, "AgentServiceStore", { enumerable: true, get: function () { return ai_agent_service_1.AgentServiceStore; } });
23
23
  var init_realtime_1 = require("./realtime/init-realtime");
24
24
  Object.defineProperty(exports, "initRealtime", { enumerable: true, get: function () { return init_realtime_1.initRealtime; } });
25
- var html_generator_agent_1 = require("./agents/html-generator.agent");
26
- Object.defineProperty(exports, "createHtmlGeneratorAgent", { enumerable: true, get: function () { return html_generator_agent_1.createHtmlGeneratorAgent; } });
27
- var markdown_generator_agent_1 = require("./agents/markdown-generator.agent");
28
- Object.defineProperty(exports, "createMarkdownGeneratorAgent", { enumerable: true, get: function () { return markdown_generator_agent_1.createMarkdownGeneratorAgent; } });
25
+ var chat_access_1 = require("./lib/chat-access");
26
+ Object.defineProperty(exports, "assertSessionAccess", { enumerable: true, get: function () { return chat_access_1.assertSessionAccess; } });
27
+ Object.defineProperty(exports, "hasChatAccess", { enumerable: true, get: function () { return chat_access_1.hasChatAccess; } });
28
+ Object.defineProperty(exports, "loadChatForUser", { enumerable: true, get: function () { return chat_access_1.loadChatForUser; } });
29
+ Object.defineProperty(exports, "CHAT_NOT_FOUND", { enumerable: true, get: function () { return chat_access_1.CHAT_NOT_FOUND; } });
30
+ var session_artifact_document_id_1 = require("./realtime/session-artifact-document-id");
31
+ Object.defineProperty(exports, "parseSessionArtifactDocumentId", { enumerable: true, get: function () { return session_artifact_document_id_1.parseSessionArtifactDocumentId; } });
32
+ Object.defineProperty(exports, "buildSessionArtifactDocumentId", { enumerable: true, get: function () { return session_artifact_document_id_1.buildSessionArtifactDocumentId; } });
33
+ var content_generator_agent_1 = require("./agents/content-generator.agent");
34
+ Object.defineProperty(exports, "createContentGeneratorAgent", { enumerable: true, get: function () { return content_generator_agent_1.createContentGeneratorAgent; } });
29
35
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,2DAA8G;AAArG,sHAAA,gBAAgB,OAAA;AACzB,2DAI6B;AAH3B,yHAAA,mBAAmB,OAAA;AAIrB,mCAKiB;AAJf,mHAAA,yBAAyB,OAAA;AACzB,6GAAA,mBAAmB,OAAA;AACnB,iHAAA,uBAAuB,OAAA;AAGzB,qCAA4I;AAAnI,+GAAA,oBAAoB,OAAA;AAAE,+GAAA,oBAAoB,OAAA;AAAE,0GAAA,eAAe,OAAA;AACpE,mCAA8C;AAArC,6GAAA,mBAAmB,OAAA;AAC5B,mCAAyD;AAAhD,qGAAA,WAAW,OAAA;AAAE,2GAAA,iBAAiB,OAAA;AACvC,uDAAsD;AAA7C,qHAAA,iBAAiB,OAAA;AAC1B,0DAA8E;AAArE,6GAAA,YAAY,OAAA;AACrB,sEAAwE;AAA/D,gIAAA,wBAAwB,OAAA;AACjC,8EAAgF;AAAvE,wIAAA,4BAA4B,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,2DAA8G;AAArG,sHAAA,gBAAgB,OAAA;AACzB,2DAI6B;AAH3B,yHAAA,mBAAmB,OAAA;AAIrB,mCAKiB;AAJf,mHAAA,yBAAyB,OAAA;AACzB,6GAAA,mBAAmB,OAAA;AACnB,iHAAA,uBAAuB,OAAA;AAGzB,qCAA4I;AAAnI,+GAAA,oBAAoB,OAAA;AAAE,+GAAA,oBAAoB,OAAA;AAAE,0GAAA,eAAe,OAAA;AACpE,mCAA8C;AAArC,6GAAA,mBAAmB,OAAA;AAC5B,mCAAyD;AAAhD,qGAAA,WAAW,OAAA;AAAE,2GAAA,iBAAiB,OAAA;AACvC,uDAAsD;AAA7C,qHAAA,iBAAiB,OAAA;AAC1B,0DAA8E;AAArE,6GAAA,YAAY,OAAA;AACrB,iDAK0B;AAJxB,kHAAA,mBAAmB,OAAA;AACnB,4GAAA,aAAa,OAAA;AACb,8GAAA,eAAe,OAAA;AACf,6GAAA,cAAc,OAAA;AAEhB,wFAGgD;AAF9C,8IAAA,8BAA8B,OAAA;AAC9B,8IAAA,8BAA8B,OAAA;AAEhC,4EAA8E;AAArE,sIAAA,2BAA2B,OAAA"}
@@ -0,0 +1,19 @@
1
+ import type { Request } from 'express';
2
+ import type { AgentChat } from '@multiplayer-app/ai-agent-types';
3
+ export declare const CHAT_NOT_FOUND = "Chat not found";
4
+ export declare const UNAUTHORIZED_USER_MESSAGE = "Unauthorized: userId is required";
5
+ export declare const OWNER_INVITE_REQUIRED_MESSAGE = "Only the chat owner can invite participants";
6
+ export declare const OWNER_REMOVE_PARTICIPANTS_MESSAGE = "Only the chat owner can remove participants";
7
+ export declare const OWNER_DELETE_REQUIRED_MESSAGE = "Only the chat owner can delete this chat";
8
+ export declare const ACCOUNT_ACCESS_MIDDLEWARE_REQUIRED = "Account access middleware is required to invite participants";
9
+ export declare function getChatOwnerId(chat: AgentChat): string | undefined;
10
+ export declare function getChatParticipantIds(chat: AgentChat): string[];
11
+ export declare function hasChatAccess(chat: AgentChat, userId: string | undefined): boolean;
12
+ export declare function isChatOwner(chat: AgentChat, userId: string): boolean;
13
+ export declare function isParticipantOnly(chat: AgentChat, userId: string): boolean;
14
+ export declare function requireUserId(req: Request): string;
15
+ export declare function loadChatForUser(chatId: string, userId: string | undefined): Promise<AgentChat>;
16
+ export declare function assertSessionAccess(sessionId: string, userId: string | undefined): Promise<void>;
17
+ export declare function isUnauthorizedUserError(error: unknown): boolean;
18
+ export declare function isChatNotFoundError(error: unknown): boolean;
19
+ //# sourceMappingURL=chat-access.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-access.d.ts","sourceRoot":"","sources":["../../src/lib/chat-access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAA;AAGhE,eAAO,MAAM,cAAc,mBAAmB,CAAA;AAC9C,eAAO,MAAM,yBAAyB,qCAAqC,CAAA;AAC3E,eAAO,MAAM,6BAA6B,gDAAgD,CAAA;AAC1F,eAAO,MAAM,iCAAiC,gDAAgD,CAAA;AAC9F,eAAO,MAAM,6BAA6B,6CAA6C,CAAA;AACvF,eAAO,MAAM,kCAAkC,iEACiB,CAAA;AAEhE,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAGlE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,EAAE,CAG/D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAKlF;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAEpE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAE1E;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAKlD;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAiBpG;AAED,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtG;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE/D;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE3D"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ACCOUNT_ACCESS_MIDDLEWARE_REQUIRED = exports.OWNER_DELETE_REQUIRED_MESSAGE = exports.OWNER_REMOVE_PARTICIPANTS_MESSAGE = exports.OWNER_INVITE_REQUIRED_MESSAGE = exports.UNAUTHORIZED_USER_MESSAGE = exports.CHAT_NOT_FOUND = void 0;
4
+ exports.getChatOwnerId = getChatOwnerId;
5
+ exports.getChatParticipantIds = getChatParticipantIds;
6
+ exports.hasChatAccess = hasChatAccess;
7
+ exports.isChatOwner = isChatOwner;
8
+ exports.isParticipantOnly = isParticipantOnly;
9
+ exports.requireUserId = requireUserId;
10
+ exports.loadChatForUser = loadChatForUser;
11
+ exports.assertSessionAccess = assertSessionAccess;
12
+ exports.isUnauthorizedUserError = isUnauthorizedUserError;
13
+ exports.isChatNotFoundError = isChatNotFoundError;
14
+ const context_1 = require("../context");
15
+ exports.CHAT_NOT_FOUND = 'Chat not found';
16
+ exports.UNAUTHORIZED_USER_MESSAGE = 'Unauthorized: userId is required';
17
+ exports.OWNER_INVITE_REQUIRED_MESSAGE = 'Only the chat owner can invite participants';
18
+ exports.OWNER_REMOVE_PARTICIPANTS_MESSAGE = 'Only the chat owner can remove participants';
19
+ exports.OWNER_DELETE_REQUIRED_MESSAGE = 'Only the chat owner can delete this chat';
20
+ exports.ACCOUNT_ACCESS_MIDDLEWARE_REQUIRED = 'Account access middleware is required to invite participants';
21
+ function getChatOwnerId(chat) {
22
+ var _a, _b;
23
+ const owner = (_a = chat.userId) !== null && _a !== void 0 ? _a : (_b = chat.tenants) === null || _b === void 0 ? void 0 : _b.userId;
24
+ return owner && owner.length > 0 ? owner : undefined;
25
+ }
26
+ function getChatParticipantIds(chat) {
27
+ var _a;
28
+ const owner = getChatOwnerId(chat);
29
+ return Array.from(new Set([owner, ...((_a = chat.participantIds) !== null && _a !== void 0 ? _a : [])].filter(Boolean)));
30
+ }
31
+ function hasChatAccess(chat, userId) {
32
+ if (!userId) {
33
+ return false;
34
+ }
35
+ return getChatParticipantIds(chat).includes(userId);
36
+ }
37
+ function isChatOwner(chat, userId) {
38
+ return getChatOwnerId(chat) === userId;
39
+ }
40
+ function isParticipantOnly(chat, userId) {
41
+ return hasChatAccess(chat, userId) && !isChatOwner(chat, userId);
42
+ }
43
+ function requireUserId(req) {
44
+ if (!req.userId) {
45
+ throw new Error(exports.UNAUTHORIZED_USER_MESSAGE);
46
+ }
47
+ return req.userId;
48
+ }
49
+ async function loadChatForUser(chatId, userId) {
50
+ let chat;
51
+ try {
52
+ chat = await (0, context_1.getAgentService)().getChatProcessor().getChat(chatId);
53
+ }
54
+ catch (error) {
55
+ const message = error.message;
56
+ if (message === exports.CHAT_NOT_FOUND) {
57
+ throw new Error(exports.CHAT_NOT_FOUND);
58
+ }
59
+ throw error;
60
+ }
61
+ if (!hasChatAccess(chat, userId)) {
62
+ throw new Error(exports.CHAT_NOT_FOUND);
63
+ }
64
+ return chat;
65
+ }
66
+ async function assertSessionAccess(sessionId, userId) {
67
+ await loadChatForUser(sessionId, userId);
68
+ }
69
+ function isUnauthorizedUserError(error) {
70
+ return error instanceof Error && error.message === exports.UNAUTHORIZED_USER_MESSAGE;
71
+ }
72
+ function isChatNotFoundError(error) {
73
+ return error instanceof Error && error.message === exports.CHAT_NOT_FOUND;
74
+ }
75
+ //# sourceMappingURL=chat-access.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-access.js","sourceRoot":"","sources":["../../src/lib/chat-access.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { SortOrder, type AgentChat } from '@multiplayer-app/ai-agent-types';
2
+ export type ChatMembershipFilter = 'all' | 'owner' | 'participant';
3
+ export interface ListUserChatsParams {
4
+ userId: string;
5
+ contextKey?: string;
6
+ skip?: number;
7
+ limit?: number;
8
+ sortField?: string;
9
+ sortOrder?: SortOrder;
10
+ multiUser?: boolean;
11
+ membership?: ChatMembershipFilter;
12
+ }
13
+ export interface ListUserChatsResult {
14
+ cursor: {
15
+ skip?: number;
16
+ limit?: number;
17
+ total: number;
18
+ };
19
+ data: AgentChat[];
20
+ }
21
+ export declare function listUserChats(params: ListUserChatsParams): Promise<ListUserChatsResult>;
22
+ //# sourceMappingURL=list-user-chats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-user-chats.d.ts","sourceRoot":"","sources":["../../src/lib/list-user-chats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,iCAAiC,CAAA;AAI7F,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,OAAO,GAAG,aAAa,CAAA;AAElE,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,oBAAoB,CAAA;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IACxD,IAAI,EAAE,SAAS,EAAE,CAAA;CAClB;AAmBD,wBAAsB,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAgC7F"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listUserChats = listUserChats;
4
+ const ai_agent_types_1 = require("@multiplayer-app/ai-agent-types");
5
+ const context_1 = require("../context");
6
+ const chat_access_1 = require("./chat-access");
7
+ function matchesMembership(chat, userId, membership) {
8
+ if (!(0, chat_access_1.hasChatAccess)(chat, userId)) {
9
+ return false;
10
+ }
11
+ if (membership === 'owner') {
12
+ return (0, chat_access_1.isChatOwner)(chat, userId);
13
+ }
14
+ if (membership === 'participant') {
15
+ return (0, chat_access_1.isParticipantOnly)(chat, userId);
16
+ }
17
+ return true;
18
+ }
19
+ async function listUserChats(params) {
20
+ var _a, _b, _c, _d;
21
+ const membership = (_a = params.membership) !== null && _a !== void 0 ? _a : 'all';
22
+ const sortField = (_b = params.sortField) !== null && _b !== void 0 ? _b : 'updatedAt';
23
+ const sortOrder = (_c = params.sortOrder) !== null && _c !== void 0 ? _c : ai_agent_types_1.SortOrder.Desc;
24
+ const skip = (_d = params.skip) !== null && _d !== void 0 ? _d : 0;
25
+ const limit = params.limit;
26
+ const filter = {
27
+ userId: params.userId,
28
+ sessionKind: ai_agent_types_1.AgentSessionKind.ROOT,
29
+ ...(params.contextKey !== undefined ? { contextKey: params.contextKey } : {}),
30
+ ...(params.multiUser !== undefined ? { multiUser: params.multiUser } : {}),
31
+ };
32
+ const { chatRepository } = (0, context_1.getBuilderApiRepositories)();
33
+ const allAccessible = await chatRepository.find(filter, {
34
+ sort: { field: sortField, order: sortOrder },
35
+ });
36
+ const filtered = allAccessible.filter((chat) => matchesMembership(chat, params.userId, membership));
37
+ const total = filtered.length;
38
+ const data = limit !== undefined ? filtered.slice(skip, skip + limit) : filtered.slice(skip);
39
+ return {
40
+ cursor: {
41
+ ...(params.skip != null ? { skip: params.skip } : {}),
42
+ ...(params.limit != null ? { limit: params.limit } : {}),
43
+ total,
44
+ },
45
+ data,
46
+ };
47
+ }
48
+ //# sourceMappingURL=list-user-chats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-user-chats.js","sourceRoot":"","sources":["../../src/lib/list-user-chats.ts"],"names":[],"mappings":";;AAuCA,sCAgCC;AAvED,oEAA6F;AAC7F,wCAAsD;AACtD,+CAA6E;AAoB7E,SAAS,iBAAiB,CACxB,IAAe,EACf,MAAc,EACd,UAAgC;IAEhC,IAAI,CAAC,IAAA,2BAAa,EAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;QACjC,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,IAAA,yBAAW,EAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAClC,CAAC;IACD,IAAI,UAAU,KAAK,aAAa,EAAE,CAAC;QACjC,OAAO,IAAA,+BAAiB,EAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACxC,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,MAA2B;;IAC7D,MAAM,UAAU,GAAG,MAAA,MAAM,CAAC,UAAU,mCAAI,KAAK,CAAA;IAC7C,MAAM,SAAS,GAAG,MAAA,MAAM,CAAC,SAAS,mCAAI,WAAW,CAAA;IACjD,MAAM,SAAS,GAAG,MAAA,MAAM,CAAC,SAAS,mCAAI,0BAAS,CAAC,IAAI,CAAA;IACpD,MAAM,IAAI,GAAG,MAAA,MAAM,CAAC,IAAI,mCAAI,CAAC,CAAA;IAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;IAE1B,MAAM,MAAM,GAAG;QACb,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,WAAW,EAAE,iCAAgB,CAAC,IAAI;QAClC,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3E,CAAA;IAED,MAAM,EAAE,cAAc,EAAE,GAAG,IAAA,mCAAyB,GAAE,CAAA;IACtD,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE;QACtD,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;KAC7C,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAA;IACnG,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAA;IAC7B,MAAM,IAAI,GACR,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAEjF,OAAO;QACL,MAAM,EAAE;YACN,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,KAAK;SACN;QACD,IAAI;KACL,CAAA;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { HashlineReplaceEdit } from './parse-hashline-diff';
2
+ export declare function applyHashlineEditsToContent(content: string, edits: HashlineReplaceEdit[]): string;
3
+ //# sourceMappingURL=apply-hashline-edits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-hashline-edits.d.ts","sourceRoot":"","sources":["../../../src/lib/session-artifacts/apply-hashline-edits.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAEhE,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE,GAAG,MAAM,CAwBjG"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.applyHashlineEditsToContent = applyHashlineEditsToContent;
4
+ const hashline_tag_1 = require("./hashline-tag");
5
+ function applyHashlineEditsToContent(content, edits) {
6
+ if (edits.length === 0) {
7
+ throw new Error('At least one hashline edit is required');
8
+ }
9
+ const baseDocument = (0, hashline_tag_1.buildHashlineDocument)(content);
10
+ const { trailingNewline } = baseDocument;
11
+ let lineTexts = baseDocument.lines.map((line) => line.text);
12
+ const resolveStartIndex = (edit) => {
13
+ const snapshot = (0, hashline_tag_1.buildHashlineDocument)((0, hashline_tag_1.joinContentLines)(lineTexts, trailingNewline));
14
+ return (0, hashline_tag_1.resolveHashlineRange)(snapshot, edit.startTag, edit.endTag).startIndex;
15
+ };
16
+ const sortedEdits = [...edits].sort((a, b) => resolveStartIndex(b) - resolveStartIndex(a));
17
+ for (const edit of sortedEdits) {
18
+ const snapshot = (0, hashline_tag_1.buildHashlineDocument)((0, hashline_tag_1.joinContentLines)(lineTexts, trailingNewline));
19
+ const { startIndex, endIndex } = (0, hashline_tag_1.resolveHashlineRange)(snapshot, edit.startTag, edit.endTag);
20
+ const replacementLines = (0, hashline_tag_1.splitContentLines)(edit.content).lines;
21
+ lineTexts.splice(startIndex, endIndex - startIndex + 1, ...replacementLines);
22
+ }
23
+ return (0, hashline_tag_1.joinContentLines)(lineTexts, trailingNewline);
24
+ }
25
+ //# sourceMappingURL=apply-hashline-edits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-hashline-edits.js","sourceRoot":"","sources":["../../../src/lib/session-artifacts/apply-hashline-edits.ts"],"names":[],"mappings":";;AAQA,kEAwBC;AAhCD,iDAKuB;AAGvB,SAAgB,2BAA2B,CAAC,OAAe,EAAE,KAA4B;IACvF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;IAC3D,CAAC;IAED,MAAM,YAAY,GAAG,IAAA,oCAAqB,EAAC,OAAO,CAAC,CAAA;IACnD,MAAM,EAAE,eAAe,EAAE,GAAG,YAAY,CAAA;IACxC,IAAI,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAE3D,MAAM,iBAAiB,GAAG,CAAC,IAAyB,EAAU,EAAE;QAC9D,MAAM,QAAQ,GAAG,IAAA,oCAAqB,EAAC,IAAA,+BAAgB,EAAC,SAAS,EAAE,eAAe,CAAC,CAAC,CAAA;QACpF,OAAO,IAAA,mCAAoB,EAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,UAAU,CAAA;IAC9E,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAA;IAE1F,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAA,oCAAqB,EAAC,IAAA,+BAAgB,EAAC,SAAS,EAAE,eAAe,CAAC,CAAC,CAAA;QACpF,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,IAAA,mCAAoB,EAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAC3F,MAAM,gBAAgB,GAAG,IAAA,gCAAiB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAA;QAC9D,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,GAAG,UAAU,GAAG,CAAC,EAAE,GAAG,gBAAgB,CAAC,CAAA;IAC9E,CAAC;IAED,OAAO,IAAA,+BAAgB,EAAC,SAAS,EAAE,eAAe,CAAC,CAAA;AACrD,CAAC"}
@@ -0,0 +1,8 @@
1
+ export interface ArtifactTextEdit {
2
+ /** Exact substring in the current document (must occur exactly once). */
3
+ search: string;
4
+ /** Replacement text (empty string deletes the match). */
5
+ replace: string;
6
+ }
7
+ export declare function applyArtifactTextEditsToContent(content: string, edits: ArtifactTextEdit[]): string;
8
+ //# sourceMappingURL=artifact-text-edit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact-text-edit.d.ts","sourceRoot":"","sources":["../../../src/lib/session-artifacts/artifact-text-edit.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAA;IACd,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,gBAAgB,EAAE,GACxB,MAAM,CAuBR"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.applyArtifactTextEditsToContent = applyArtifactTextEditsToContent;
4
+ function applyArtifactTextEditsToContent(content, edits) {
5
+ let current = content;
6
+ for (let index = 0; index < edits.length; index++) {
7
+ const edit = edits[index];
8
+ if (!edit.search.length) {
9
+ throw new Error(`Edit ${index + 1}: search must not be empty`);
10
+ }
11
+ const first = current.indexOf(edit.search);
12
+ if (first === -1) {
13
+ throw new Error(`Edit ${index + 1}: search text not found in document`);
14
+ }
15
+ const second = current.indexOf(edit.search, first + edit.search.length);
16
+ if (second !== -1) {
17
+ throw new Error(`Edit ${index + 1}: search text is ambiguous (multiple matches)`);
18
+ }
19
+ current = current.slice(0, first) + edit.replace + current.slice(first + edit.search.length);
20
+ }
21
+ return current;
22
+ }
23
+ //# sourceMappingURL=artifact-text-edit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact-text-edit.js","sourceRoot":"","sources":["../../../src/lib/session-artifacts/artifact-text-edit.ts"],"names":[],"mappings":";;AAOA,0EA0BC;AA1BD,SAAgB,+BAA+B,CAC7C,OAAe,EACf,KAAyB;IAEzB,IAAI,OAAO,GAAG,OAAO,CAAA;IAErB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;QACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,GAAG,CAAC,4BAA4B,CAAC,CAAA;QAChE,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC1C,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,GAAG,CAAC,qCAAqC,CAAC,CAAA;QACzE,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACvE,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,GAAG,CAAC,+CAA+C,CAAC,CAAA;QACnF,CAAC;QAED,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC9F,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Injected into session-artefact-updater system prompt. */
2
+ export declare const HASHLINE_DIFF_GUIDE = "Hashline diffs reference line tags from getSessionArtifactLatestContent (format lineNumber:hash, e.g. 45:d4). Use ONLY this format in applySessionArtifactDiff:\n\nSearch/replace blocks (tag range on the first line; optional search context until >>>REPLACE is ignored):\n<<<SEARCH 45:d4..52:a3\n old text\n>>>REPLACE\n new data goes here\n<<<END\n\nRules:\n- range start/end tags on the <<<SEARCH line must come from the latest content snapshot you just read.\n- you may include the old lines between <<<SEARCH and >>>REPLACE for clarity; edits are applied by tags only.\n- A single-tag range (e.g. 10:ab..10:ab) replaces one line.\n- Apply minimal SEARCH/REPLACE blocks; multiple SEARCH/REPLACE blocks are allowed.";
3
+ //# sourceMappingURL=hashline-diff-guide.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hashline-diff-guide.d.ts","sourceRoot":"","sources":["../../../src/lib/session-artifacts/hashline-diff-guide.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB,qtBAamD,CAAA"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HASHLINE_DIFF_GUIDE = void 0;
4
+ /** Injected into session-artefact-updater system prompt. */
5
+ exports.HASHLINE_DIFF_GUIDE = `Hashline diffs reference line tags from getSessionArtifactLatestContent (format lineNumber:hash, e.g. 45:d4). Use ONLY this format in applySessionArtifactDiff:
6
+
7
+ Search/replace blocks (tag range on the first line; optional search context until >>>REPLACE is ignored):
8
+ <<<SEARCH 45:d4..52:a3
9
+ old text
10
+ >>>REPLACE
11
+ new data goes here
12
+ <<<END
13
+
14
+ Rules:
15
+ - range start/end tags on the <<<SEARCH line must come from the latest content snapshot you just read.
16
+ - you may include the old lines between <<<SEARCH and >>>REPLACE for clarity; edits are applied by tags only.
17
+ - A single-tag range (e.g. 10:ab..10:ab) replaces one line.
18
+ - Apply minimal SEARCH/REPLACE blocks; multiple SEARCH/REPLACE blocks are allowed.`;
19
+ //# sourceMappingURL=hashline-diff-guide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hashline-diff-guide.js","sourceRoot":"","sources":["../../../src/lib/session-artifacts/hashline-diff-guide.ts"],"names":[],"mappings":";;;AAAA,4DAA4D;AAC/C,QAAA,mBAAmB,GAAG;;;;;;;;;;;;;mFAagD,CAAA"}
@@ -0,0 +1,33 @@
1
+ export interface HashlineLine {
2
+ /** 1-based line number in the current document snapshot */
3
+ lineNumber: number;
4
+ text: string;
5
+ /** e.g. 45:d4 — line number + content fingerprint */
6
+ tag: string;
7
+ }
8
+ export declare function hashlineFingerprint(text: string): string;
9
+ export declare function buildLineTag(lineNumber: number, text: string): string;
10
+ export declare function parseLineTag(tag: string): {
11
+ lineNumber: number;
12
+ hash: string;
13
+ };
14
+ export declare function parseTagRange(range: string): {
15
+ startTag: string;
16
+ endTag: string;
17
+ };
18
+ export declare function splitContentLines(content: string): {
19
+ lines: string[];
20
+ trailingNewline: boolean;
21
+ };
22
+ export declare function joinContentLines(lines: string[], trailingNewline: boolean): string;
23
+ export declare function buildHashlineDocument(content: string): {
24
+ lines: HashlineLine[];
25
+ trailingNewline: boolean;
26
+ };
27
+ export declare function resolveHashlineRange(document: {
28
+ lines: HashlineLine[];
29
+ }, startTag: string, endTag: string): {
30
+ startIndex: number;
31
+ endIndex: number;
32
+ };
33
+ //# sourceMappingURL=hashline-tag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hashline-tag.d.ts","sourceRoot":"","sources":["../../../src/lib/session-artifacts/hashline-tag.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,qDAAqD;IACrD,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAM9E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAcjF;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,eAAe,EAAE,OAAO,CAAA;CAAE,CAYhG;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,OAAO,GAAG,MAAM,CAKlF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG;IACtD,KAAK,EAAE,YAAY,EAAE,CAAA;IACrB,eAAe,EAAE,OAAO,CAAA;CACzB,CAOA;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE;IAAE,KAAK,EAAE,YAAY,EAAE,CAAA;CAAE,EACnC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAiB1C"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hashlineFingerprint = hashlineFingerprint;
4
+ exports.buildLineTag = buildLineTag;
5
+ exports.parseLineTag = parseLineTag;
6
+ exports.parseTagRange = parseTagRange;
7
+ exports.splitContentLines = splitContentLines;
8
+ exports.joinContentLines = joinContentLines;
9
+ exports.buildHashlineDocument = buildHashlineDocument;
10
+ exports.resolveHashlineRange = resolveHashlineRange;
11
+ const node_crypto_1 = require("node:crypto");
12
+ function hashlineFingerprint(text) {
13
+ return (0, node_crypto_1.createHash)('sha256').update(text, 'utf8').digest('hex').slice(0, 2);
14
+ }
15
+ function buildLineTag(lineNumber, text) {
16
+ return `${lineNumber}:${hashlineFingerprint(text)}`;
17
+ }
18
+ function parseLineTag(tag) {
19
+ const match = /^(\d+):([0-9a-f]+)$/i.exec(tag.trim());
20
+ if (!match) {
21
+ throw new Error(`Invalid line tag: ${tag}`);
22
+ }
23
+ return { lineNumber: Number(match[1]), hash: match[2].toLowerCase() };
24
+ }
25
+ function parseTagRange(range) {
26
+ const trimmed = range.trim();
27
+ const separator = trimmed.indexOf('..');
28
+ if (separator === -1) {
29
+ const tag = trimmed;
30
+ return { startTag: tag, endTag: tag };
31
+ }
32
+ const startTag = trimmed.slice(0, separator).trim();
33
+ const endTag = trimmed.slice(separator + 2).trim();
34
+ if (!startTag || !endTag) {
35
+ throw new Error(`Invalid tag range: ${range}`);
36
+ }
37
+ return { startTag, endTag };
38
+ }
39
+ function splitContentLines(content) {
40
+ if (content.length === 0) {
41
+ return { lines: [], trailingNewline: false };
42
+ }
43
+ const trailingNewline = content.endsWith('\n');
44
+ const body = trailingNewline ? content.slice(0, -1) : content;
45
+ if (body.length === 0) {
46
+ return { lines: [], trailingNewline };
47
+ }
48
+ return { lines: body.split('\n'), trailingNewline };
49
+ }
50
+ function joinContentLines(lines, trailingNewline) {
51
+ if (lines.length === 0) {
52
+ return trailingNewline ? '\n' : '';
53
+ }
54
+ return lines.join('\n') + (trailingNewline ? '\n' : '');
55
+ }
56
+ function buildHashlineDocument(content) {
57
+ const { lines: rawLines, trailingNewline } = splitContentLines(content);
58
+ const lines = rawLines.map((text, index) => {
59
+ const lineNumber = index + 1;
60
+ return { lineNumber, text, tag: buildLineTag(lineNumber, text) };
61
+ });
62
+ return { lines, trailingNewline };
63
+ }
64
+ function resolveHashlineRange(document, startTag, endTag) {
65
+ const normalizedStart = startTag.trim();
66
+ const normalizedEnd = endTag.trim();
67
+ const startIndex = document.lines.findIndex((line) => line.tag === normalizedStart);
68
+ const endIndex = document.lines.findIndex((line) => line.tag === normalizedEnd);
69
+ if (startIndex === -1) {
70
+ throw new Error(`Start tag not found: ${normalizedStart}`);
71
+ }
72
+ if (endIndex === -1) {
73
+ throw new Error(`End tag not found: ${normalizedEnd}`);
74
+ }
75
+ if (startIndex > endIndex) {
76
+ throw new Error(`Invalid tag range: ${normalizedStart}..${normalizedEnd}`);
77
+ }
78
+ return { startIndex, endIndex };
79
+ }
80
+ //# sourceMappingURL=hashline-tag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hashline-tag.js","sourceRoot":"","sources":["../../../src/lib/session-artifacts/hashline-tag.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import * as Y from 'yjs';
2
+ interface Patch {
3
+ range: string;
4
+ search: string;
5
+ replace: string;
6
+ }
7
+ export declare function parsePatches(input: string): Patch[];
8
+ export declare function applyPatch(ytext: Y.Text, patchText: string): void;
9
+ export {};
10
+ //# sourceMappingURL=parse-hashline-diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-hashline-diff.d.ts","sourceRoot":"","sources":["../../../src/lib/session-artifacts/parse-hashline-diff.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAExB,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB;AAKD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,CAcnD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAiBjE"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parsePatches = parsePatches;
4
+ exports.applyPatch = applyPatch;
5
+ const PATCH_PATTERN = /<<<SEARCH\s+([^\n]+)\n([\s\S]*?)>>>REPLACE\n([\s\S]*?)<<<END/g;
6
+ function parsePatches(input) {
7
+ const patches = [];
8
+ let match;
9
+ while ((match = PATCH_PATTERN.exec(input)) !== null) {
10
+ patches.push({
11
+ range: match[1].trim(),
12
+ search: match[2],
13
+ replace: match[3],
14
+ });
15
+ }
16
+ return patches;
17
+ }
18
+ function applyPatch(ytext, patchText) {
19
+ var _a;
20
+ const patches = parsePatches(patchText);
21
+ (_a = ytext.doc) === null || _a === void 0 ? void 0 : _a.transact(() => {
22
+ for (const patch of patches) {
23
+ const current = ytext.toString();
24
+ const start = current.indexOf(patch.search);
25
+ if (start === -1) {
26
+ throw new Error(`Search block not found for range ${patch.range}`);
27
+ }
28
+ ytext.delete(start, patch.search.length);
29
+ ytext.insert(start, patch.replace);
30
+ }
31
+ });
32
+ }
33
+ //# sourceMappingURL=parse-hashline-diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-hashline-diff.js","sourceRoot":"","sources":["../../../src/lib/session-artifacts/parse-hashline-diff.ts"],"names":[],"mappings":";;AAWA,oCAcC;AAED,gCAiBC;AApCD,MAAM,aAAa,GACf,+DAA+D,CAAA;AAEnE,SAAgB,YAAY,CAAC,KAAa;IACxC,MAAM,OAAO,GAAY,EAAE,CAAA;IAE3B,IAAI,KAA6B,CAAA;IAEjC,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;YACtB,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;YAChB,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;SAClB,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAgB,UAAU,CAAC,KAAa,EAAE,SAAiB;;IACzD,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,CAAA;IAEvC,MAAA,KAAK,CAAC,GAAG,0CAAE,QAAQ,CAAC,GAAG,EAAE;QACvB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;YAEhC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAE3C,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,oCAAoC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;YACpE,CAAC;YAED,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACxC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;QACpC,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ export declare const ARTIFACT_LATEST_STATE_SUFFIX = ".latest.state";
2
+ /** Relative path for the persisted Yjs update blob. */
3
+ export declare function artifactLatestStatePath(artifactPath: string): string;
4
+ /** Relative path for a point-in-time content snapshot. */
5
+ export declare function artifactSnapshotPath(artifactPath: string, at: Date): string;
6
+ export declare function isArtifactLatestStatePath(relativePath: string): boolean;
7
+ export declare function isArtifactSnapshotPath(relativePath: string): boolean;
8
+ /** Sidecar files managed by the artifact storage layer (not user-facing artifacts). */
9
+ export declare function isArtifactStorageSidecar(relativePath: string): boolean;
10
+ export declare function artifactPathFromLatestStatePath(statePath: string): string | null;
11
+ /** Whether `relativePath` is a dated snapshot for `artifactPath`. */
12
+ export declare function isSnapshotForArtifact(relativePath: string, artifactPath: string): boolean;
13
+ //# sourceMappingURL=artifact-storage-paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact-storage-paths.d.ts","sourceRoot":"","sources":["../../../src/lib/session-pages/artifact-storage-paths.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,4BAA4B,kBAAkB,CAAA;AAG3D,uDAAuD;AACvD,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAGpE;AAED,0DAA0D;AAC1D,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,GAAG,MAAM,CAI3E;AAED,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAEvE;AAED,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAEpE;AAED,uFAAuF;AACvF,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAEtE;AAED,wBAAgB,+BAA+B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKhF;AAED,qEAAqE;AACrE,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAGzF"}