@dxos/assistant-toolkit 0.8.4-main.3fbcb4aa9b → 0.8.4-main.4668b7de9b

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 (282) hide show
  1. package/LICENSE +102 -5
  2. package/dist/lib/neutral/{add-artifact-ZUJ5DMSY.mjs → add-artifact-ADKF427P.mjs} +6 -6
  3. package/dist/lib/neutral/{add-artifact-ZUJ5DMSY.mjs.map → add-artifact-ADKF427P.mjs.map} +3 -3
  4. package/dist/lib/neutral/{agent-5NIKAYUK.mjs → agent-4HT4GKKI.mjs} +9 -9
  5. package/dist/lib/neutral/{agent-5NIKAYUK.mjs.map → agent-4HT4GKKI.mjs.map} +2 -2
  6. package/dist/lib/neutral/{chunk-TO5IX24K.mjs → chunk-3ZDYN7BG.mjs} +16 -27
  7. package/dist/lib/neutral/chunk-3ZDYN7BG.mjs.map +7 -0
  8. package/dist/lib/neutral/{chunk-EJAQUAKM.mjs → chunk-53BZWMRB.mjs} +12 -8
  9. package/dist/lib/neutral/chunk-53BZWMRB.mjs.map +7 -0
  10. package/dist/lib/neutral/{chunk-WLR3BGO4.mjs → chunk-6SYN5IV3.mjs} +4 -2
  11. package/dist/lib/neutral/chunk-6SYN5IV3.mjs.map +7 -0
  12. package/dist/lib/neutral/{chunk-QO5SU37C.mjs → chunk-7OQIX2PP.mjs} +4 -4
  13. package/dist/lib/neutral/{chunk-QO5SU37C.mjs.map → chunk-7OQIX2PP.mjs.map} +1 -1
  14. package/dist/lib/neutral/{chunk-P4ZMYO4K.mjs → chunk-ALDU6VDG.mjs} +21 -33
  15. package/dist/lib/neutral/chunk-ALDU6VDG.mjs.map +7 -0
  16. package/dist/lib/neutral/{chunk-GV66MKAQ.mjs → chunk-AYV2KMAV.mjs} +7 -5
  17. package/dist/lib/neutral/chunk-AYV2KMAV.mjs.map +7 -0
  18. package/dist/lib/neutral/{chunk-ROMZO4CB.mjs → chunk-BB6X6NT6.mjs} +13 -10
  19. package/dist/lib/neutral/chunk-BB6X6NT6.mjs.map +7 -0
  20. package/dist/lib/neutral/{chunk-XUF53B6B.mjs → chunk-DBUT6FKM.mjs} +16 -14
  21. package/dist/lib/neutral/chunk-DBUT6FKM.mjs.map +7 -0
  22. package/dist/lib/neutral/{chunk-NR3GTWRC.mjs → chunk-GQRUBCMT.mjs} +8 -13
  23. package/dist/lib/neutral/chunk-GQRUBCMT.mjs.map +7 -0
  24. package/dist/lib/neutral/chunk-JRYAD4TG.mjs +67 -0
  25. package/dist/lib/neutral/chunk-JRYAD4TG.mjs.map +7 -0
  26. package/dist/lib/neutral/{chunk-ZFXLTBZG.mjs → chunk-PHZNOLXL.mjs} +5 -3
  27. package/dist/lib/neutral/chunk-PHZNOLXL.mjs.map +7 -0
  28. package/dist/lib/neutral/{chunk-KGU725LW.mjs → chunk-SOLG2NPH.mjs} +4 -7
  29. package/dist/lib/neutral/chunk-SOLG2NPH.mjs.map +7 -0
  30. package/dist/lib/neutral/{chunk-246ACKSH.mjs → chunk-T3RP4AUP.mjs} +24 -20
  31. package/dist/lib/neutral/chunk-T3RP4AUP.mjs.map +7 -0
  32. package/dist/lib/neutral/{chunk-IKBIORQX.mjs → chunk-V3PPVL3C.mjs} +57 -43
  33. package/dist/lib/neutral/chunk-V3PPVL3C.mjs.map +7 -0
  34. package/dist/lib/neutral/{context-add-VB7AOY3G.mjs → context-add-2G2CDRCK.mjs} +4 -4
  35. package/dist/lib/neutral/context-add-2G2CDRCK.mjs.map +7 -0
  36. package/dist/lib/neutral/{context-remove-VCM3VPSO.mjs → context-remove-QQOT57JC.mjs} +4 -4
  37. package/dist/lib/neutral/context-remove-QQOT57JC.mjs.map +7 -0
  38. package/dist/lib/neutral/{create-project-EIF4OJMY.mjs → create-project-LVIH4OLF.mjs} +7 -7
  39. package/dist/lib/neutral/{delete-J3PMWP7Z.mjs → delete-MRER3QMO.mjs} +3 -3
  40. package/dist/lib/neutral/{enable-blueprints-LBDZH2CY.mjs → enable-blueprints-GEIKTSRV.mjs} +12 -12
  41. package/dist/lib/neutral/enable-blueprints-GEIKTSRV.mjs.map +7 -0
  42. package/dist/lib/neutral/{fetch-KHMHV7JR.mjs → fetch-B2AYJK7F.mjs} +2 -2
  43. package/dist/lib/neutral/{fetch-messages-QOBBCTGC.mjs → fetch-messages-RUUU63L2.mjs} +2 -2
  44. package/dist/lib/neutral/{get-context-TN7X7U2H.mjs → get-context-3SXNFRXG.mjs} +10 -10
  45. package/dist/lib/neutral/{get-context-TN7X7U2H.mjs.map → get-context-3SXNFRXG.mjs.map} +3 -3
  46. package/dist/lib/neutral/index.mjs +94 -97
  47. package/dist/lib/neutral/index.mjs.map +3 -3
  48. package/dist/lib/neutral/{load-ALP3TK2E.mjs → load-YWYQ4THR.mjs} +2 -2
  49. package/dist/lib/neutral/meta.json +1 -1
  50. package/dist/lib/neutral/{object-create-Z57Y3X6Y.mjs → object-create-WME2XFGD.mjs} +9 -12
  51. package/dist/lib/neutral/object-create-WME2XFGD.mjs.map +7 -0
  52. package/dist/lib/neutral/{object-delete-X53LS37B.mjs → object-delete-I5OAPI32.mjs} +2 -2
  53. package/dist/lib/neutral/{object-update-GVKSBR7T.mjs → object-update-VCOL62NX.mjs} +3 -3
  54. package/dist/lib/neutral/{object-update-GVKSBR7T.mjs.map → object-update-VCOL62NX.mjs.map} +2 -2
  55. package/dist/lib/neutral/{project-HPHTZ2CI.mjs → project-4BYI2PZC.mjs} +6 -6
  56. package/dist/lib/neutral/{project-rules-IVDHKSKI.mjs → project-rules-7NYDDQ7K.mjs} +5 -5
  57. package/dist/lib/neutral/{prompt-Y7NN7M5D.mjs → prompt-DZP2K2NE.mjs} +6 -6
  58. package/dist/lib/neutral/prompt-DZP2K2NE.mjs.map +7 -0
  59. package/dist/lib/neutral/{qualifier-VDOY5CWU.mjs → qualifier-NLOWVZCM.mjs} +15 -14
  60. package/dist/lib/neutral/qualifier-NLOWVZCM.mjs.map +7 -0
  61. package/dist/lib/neutral/{query-PPJU5622.mjs → query-GZDTQRQ6.mjs} +12 -23
  62. package/dist/lib/neutral/query-GZDTQRQ6.mjs.map +7 -0
  63. package/dist/lib/neutral/{query-U56GNEV6.mjs → query-KBKGBYUO.mjs} +3 -3
  64. package/dist/lib/neutral/{query-blueprints-KXADGHSA.mjs → query-blueprints-MFXXRZBY.mjs} +5 -4
  65. package/dist/lib/neutral/query-blueprints-MFXXRZBY.mjs.map +7 -0
  66. package/dist/lib/neutral/{relation-create-XJ2IX6X3.mjs → relation-create-UHBWQQXS.mjs} +8 -11
  67. package/dist/lib/neutral/relation-create-UHBWQQXS.mjs.map +7 -0
  68. package/dist/lib/neutral/{relation-delete-EP4KXAFL.mjs → relation-delete-ZSB7JOHO.mjs} +2 -2
  69. package/dist/lib/neutral/{save-GWAPLT3Z.mjs → save-B2CSSFDG.mjs} +3 -3
  70. package/dist/lib/neutral/{schema-add-Z5CY6P24.mjs → schema-add-ZJ64RAZK.mjs} +13 -12
  71. package/dist/lib/neutral/schema-add-ZJ64RAZK.mjs.map +7 -0
  72. package/dist/lib/neutral/schema-list-3X3VNYYB.mjs +37 -0
  73. package/dist/lib/neutral/schema-list-3X3VNYYB.mjs.map +7 -0
  74. package/dist/lib/neutral/{sync-issues-4YE5XAK5.mjs → sync-issues-36TS2R7R.mjs} +5 -6
  75. package/dist/lib/neutral/sync-issues-36TS2R7R.mjs.map +7 -0
  76. package/dist/lib/neutral/{sync-triggers-CDMJVW6E.mjs → sync-triggers-MMHKQDNW.mjs} +39 -37
  77. package/dist/lib/neutral/sync-triggers-MMHKQDNW.mjs.map +7 -0
  78. package/dist/lib/neutral/{tag-add-VNIIOVJA.mjs → tag-add-7P5O3IAV.mjs} +4 -5
  79. package/dist/lib/neutral/tag-add-7P5O3IAV.mjs.map +7 -0
  80. package/dist/lib/neutral/{tag-remove-6R2R27W3.mjs → tag-remove-YZIMOFA4.mjs} +4 -5
  81. package/dist/lib/neutral/tag-remove-YZIMOFA4.mjs.map +7 -0
  82. package/dist/lib/neutral/testing/index.mjs +9 -12
  83. package/dist/lib/neutral/testing/index.mjs.map +3 -3
  84. package/dist/lib/neutral/update-tasks-6MJCJ2KC.mjs +13 -0
  85. package/dist/lib/neutral/update-tasks-6MJCJ2KC.mjs.map +7 -0
  86. package/dist/types/src/blueprints/blueprint-manager/functions/definitions.d.ts +12 -15
  87. package/dist/types/src/blueprints/blueprint-manager/functions/definitions.d.ts.map +1 -1
  88. package/dist/types/src/blueprints/blueprint-manager/functions/enable-blueprints.d.ts +7 -8
  89. package/dist/types/src/blueprints/blueprint-manager/functions/enable-blueprints.d.ts.map +1 -1
  90. package/dist/types/src/blueprints/blueprint-manager/functions/index.d.ts.map +1 -1
  91. package/dist/types/src/blueprints/blueprint-manager/functions/query-blueprints.d.ts +6 -6
  92. package/dist/types/src/blueprints/blueprint-manager/functions/query-blueprints.d.ts.map +1 -1
  93. package/dist/types/src/blueprints/database/functions/context-add.d.ts +3 -3
  94. package/dist/types/src/blueprints/database/functions/context-add.d.ts.map +1 -1
  95. package/dist/types/src/blueprints/database/functions/context-remove.d.ts +3 -3
  96. package/dist/types/src/blueprints/database/functions/context-remove.d.ts.map +1 -1
  97. package/dist/types/src/blueprints/database/functions/definitions.d.ts +23 -17
  98. package/dist/types/src/blueprints/database/functions/definitions.d.ts.map +1 -1
  99. package/dist/types/src/blueprints/database/functions/load.d.ts +2 -2
  100. package/dist/types/src/blueprints/database/functions/load.d.ts.map +1 -1
  101. package/dist/types/src/blueprints/database/functions/object-create.d.ts.map +1 -1
  102. package/dist/types/src/blueprints/database/functions/object-delete.d.ts +1 -1
  103. package/dist/types/src/blueprints/database/functions/object-update.d.ts +2 -2
  104. package/dist/types/src/blueprints/database/functions/object-update.d.ts.map +1 -1
  105. package/dist/types/src/blueprints/database/functions/query.d.ts +2 -3
  106. package/dist/types/src/blueprints/database/functions/query.d.ts.map +1 -1
  107. package/dist/types/src/blueprints/database/functions/relation-create.d.ts +3 -3
  108. package/dist/types/src/blueprints/database/functions/relation-create.d.ts.map +1 -1
  109. package/dist/types/src/blueprints/database/functions/relation-delete.d.ts +1 -1
  110. package/dist/types/src/blueprints/database/functions/schema-add.d.ts.map +1 -1
  111. package/dist/types/src/blueprints/database/functions/schema-list.d.ts.map +1 -1
  112. package/dist/types/src/blueprints/database/functions/tag-add.d.ts +6 -3
  113. package/dist/types/src/blueprints/database/functions/tag-add.d.ts.map +1 -1
  114. package/dist/types/src/blueprints/database/functions/tag-remove.d.ts +6 -3
  115. package/dist/types/src/blueprints/database/functions/tag-remove.d.ts.map +1 -1
  116. package/dist/types/src/blueprints/discord/functions/definitions.d.ts.map +1 -1
  117. package/dist/types/src/blueprints/github/functions/definitions.d.ts.map +1 -1
  118. package/dist/types/src/blueprints/linear/functions/definitions.d.ts.map +1 -1
  119. package/dist/types/src/blueprints/linear/functions/sync-issues.d.ts.map +1 -1
  120. package/dist/types/src/blueprints/memory/functions/definitions.d.ts +2 -2
  121. package/dist/types/src/blueprints/memory/functions/definitions.d.ts.map +1 -1
  122. package/dist/types/src/blueprints/memory/functions/delete.d.ts +2 -2
  123. package/dist/types/src/blueprints/planning/functions/index.d.ts +1 -1
  124. package/dist/types/src/blueprints/planning/functions/index.d.ts.map +1 -1
  125. package/dist/types/src/blueprints/planning/functions/update-tasks.d.ts +14 -1
  126. package/dist/types/src/blueprints/planning/functions/update-tasks.d.ts.map +1 -1
  127. package/dist/types/src/blueprints/planning/functions/update-tasks.test.d.ts +2 -0
  128. package/dist/types/src/blueprints/planning/functions/update-tasks.test.d.ts.map +1 -0
  129. package/dist/types/src/blueprints/project/functions/add-artifact.d.ts +1 -5
  130. package/dist/types/src/blueprints/project/functions/add-artifact.d.ts.map +1 -1
  131. package/dist/types/src/blueprints/project/functions/definitions.d.ts +60 -45
  132. package/dist/types/src/blueprints/project/functions/definitions.d.ts.map +1 -1
  133. package/dist/types/src/blueprints/project/functions/get-context.d.ts +1 -12
  134. package/dist/types/src/blueprints/project/functions/get-context.d.ts.map +1 -1
  135. package/dist/types/src/blueprints/project/functions/qualifier.d.ts +3 -71
  136. package/dist/types/src/blueprints/project/functions/qualifier.d.ts.map +1 -1
  137. package/dist/types/src/blueprints/project-wizard/functions/create-project.d.ts +23 -19
  138. package/dist/types/src/blueprints/project-wizard/functions/create-project.d.ts.map +1 -1
  139. package/dist/types/src/blueprints/project-wizard/functions/definitions.d.ts +45 -38
  140. package/dist/types/src/blueprints/project-wizard/functions/definitions.d.ts.map +1 -1
  141. package/dist/types/src/blueprints/project-wizard/functions/sync-triggers.d.ts +21 -17
  142. package/dist/types/src/blueprints/project-wizard/functions/sync-triggers.d.ts.map +1 -1
  143. package/dist/types/src/blueprints/testing.d.ts +4 -4
  144. package/dist/types/src/blueprints/testing.d.ts.map +1 -1
  145. package/dist/types/src/blueprints/websearch/functions/definitions.d.ts.map +1 -1
  146. package/dist/types/src/crud/graph.d.ts +8 -11
  147. package/dist/types/src/crud/graph.d.ts.map +1 -1
  148. package/dist/types/src/errors.d.ts +3 -3
  149. package/dist/types/src/errors.d.ts.map +1 -1
  150. package/dist/types/src/functions/agent/definitions.d.ts +14 -23
  151. package/dist/types/src/functions/agent/definitions.d.ts.map +1 -1
  152. package/dist/types/src/sync/sync.d.ts +1 -2
  153. package/dist/types/src/sync/sync.d.ts.map +1 -1
  154. package/dist/types/src/testing/plugins.d.ts +1 -1
  155. package/dist/types/src/testing/plugins.d.ts.map +1 -1
  156. package/dist/types/src/types/Agent.d.ts +25 -24
  157. package/dist/types/src/types/Agent.d.ts.map +1 -1
  158. package/dist/types/src/types/Chat.d.ts +17 -20
  159. package/dist/types/src/types/Chat.d.ts.map +1 -1
  160. package/dist/types/src/types/McpServer.d.ts +1 -2
  161. package/dist/types/src/types/McpServer.d.ts.map +1 -1
  162. package/dist/types/src/types/Memory.d.ts +1 -2
  163. package/dist/types/src/types/Memory.d.ts.map +1 -1
  164. package/dist/types/src/types/Plan.d.ts +15 -17
  165. package/dist/types/src/types/Plan.d.ts.map +1 -1
  166. package/dist/types/tsconfig.tsbuildinfo +1 -1
  167. package/package.json +25 -26
  168. package/src/blueprints/automation/blueprint.ts +3 -3
  169. package/src/blueprints/blueprint-manager/blueprint.conversations.json +1 -1
  170. package/src/blueprints/blueprint-manager/blueprint.test.ts +24 -67
  171. package/src/blueprints/blueprint-manager/blueprint.ts +5 -5
  172. package/src/blueprints/blueprint-manager/functions/definitions.ts +11 -20
  173. package/src/blueprints/blueprint-manager/functions/enable-blueprints.ts +10 -7
  174. package/src/blueprints/blueprint-manager/functions/index.ts +0 -1
  175. package/src/blueprints/blueprint-manager/functions/query-blueprints.ts +3 -2
  176. package/src/blueprints/browser/blueprint.conversations.json +1 -0
  177. package/src/blueprints/browser/blueprint.test.ts +4 -3
  178. package/src/blueprints/database/blueprint.conversations.json +1 -1
  179. package/src/blueprints/database/blueprint.test.ts +25 -25
  180. package/src/blueprints/database/functions/context-add.ts +2 -2
  181. package/src/blueprints/database/functions/context-remove.ts +2 -2
  182. package/src/blueprints/database/functions/definitions.ts +54 -40
  183. package/src/blueprints/database/functions/object-create.ts +8 -5
  184. package/src/blueprints/database/functions/object-update.ts +1 -1
  185. package/src/blueprints/database/functions/query.ts +16 -11
  186. package/src/blueprints/database/functions/relation-create.ts +7 -4
  187. package/src/blueprints/database/functions/schema-add.ts +7 -12
  188. package/src/blueprints/database/functions/schema-list.ts +12 -7
  189. package/src/blueprints/database/functions/tag-add.ts +2 -3
  190. package/src/blueprints/database/functions/tag-remove.ts +2 -3
  191. package/src/blueprints/discord/functions/definitions.ts +3 -1
  192. package/src/blueprints/discord/functions/fetch-messages.test.ts +7 -2
  193. package/src/blueprints/github/functions/definitions.ts +3 -1
  194. package/src/blueprints/linear/functions/definitions.ts +3 -1
  195. package/src/blueprints/linear/functions/linear.test.ts +1 -2
  196. package/src/blueprints/linear/functions/sync-issues.ts +1 -2
  197. package/src/blueprints/memory/blueprint.conversations.json +1 -1
  198. package/src/blueprints/memory/blueprint.test.ts +2 -2
  199. package/src/blueprints/memory/functions/definitions.ts +7 -3
  200. package/src/blueprints/planning/blueprint.ts +1 -1
  201. package/src/blueprints/planning/functions/index.ts +1 -1
  202. package/src/blueprints/planning/functions/{definitions.ts → update-tasks.md} +29 -50
  203. package/src/blueprints/planning/functions/update-tasks.test.ts +55 -0
  204. package/src/blueprints/planning/functions/update-tasks.ts +27 -3
  205. package/src/blueprints/project/blueprint.conversations.json +1 -1
  206. package/src/blueprints/project/blueprint.test.ts +14 -16
  207. package/src/blueprints/project/blueprint.ts +1 -1
  208. package/src/blueprints/project/functions/add-artifact.ts +1 -0
  209. package/src/blueprints/project/functions/agent.ts +4 -4
  210. package/src/blueprints/project/functions/definitions.ts +17 -14
  211. package/src/blueprints/project/functions/get-context.ts +5 -4
  212. package/src/blueprints/project/functions/qualifier.ts +8 -7
  213. package/src/blueprints/project-wizard/blueprint.ts +1 -1
  214. package/src/blueprints/project-wizard/functions/definitions.ts +11 -8
  215. package/src/blueprints/project-wizard/functions/sync-triggers.ts +33 -35
  216. package/src/blueprints/testing.ts +10 -4
  217. package/src/blueprints/websearch/blueprint.conversations.json +1 -1
  218. package/src/blueprints/websearch/functions/definitions.ts +3 -1
  219. package/src/crud/graph.test.ts +1 -1
  220. package/src/crud/graph.ts +143 -153
  221. package/src/errors.ts +3 -3
  222. package/src/functions/agent/definitions.ts +5 -3
  223. package/src/functions/agent/prompt.conversations.json +1 -1
  224. package/src/functions/agent/prompt.test.ts +10 -13
  225. package/src/functions/agent/prompt.ts +3 -3
  226. package/src/sync/sync.ts +7 -6
  227. package/src/testing/plugins.tsx +10 -15
  228. package/src/types/Agent.ts +27 -35
  229. package/src/types/Chat.ts +10 -20
  230. package/src/types/McpServer.ts +4 -10
  231. package/src/types/Memory.ts +4 -7
  232. package/src/types/Plan.ts +4 -11
  233. package/dist/lib/neutral/chunk-246ACKSH.mjs.map +0 -7
  234. package/dist/lib/neutral/chunk-EJAQUAKM.mjs.map +0 -7
  235. package/dist/lib/neutral/chunk-FIGO6CA6.mjs +0 -140
  236. package/dist/lib/neutral/chunk-FIGO6CA6.mjs.map +0 -7
  237. package/dist/lib/neutral/chunk-GV66MKAQ.mjs.map +0 -7
  238. package/dist/lib/neutral/chunk-IKBIORQX.mjs.map +0 -7
  239. package/dist/lib/neutral/chunk-KGU725LW.mjs.map +0 -7
  240. package/dist/lib/neutral/chunk-NR3GTWRC.mjs.map +0 -7
  241. package/dist/lib/neutral/chunk-P4ZMYO4K.mjs.map +0 -7
  242. package/dist/lib/neutral/chunk-ROMZO4CB.mjs.map +0 -7
  243. package/dist/lib/neutral/chunk-TO5IX24K.mjs.map +0 -7
  244. package/dist/lib/neutral/chunk-WLR3BGO4.mjs.map +0 -7
  245. package/dist/lib/neutral/chunk-XUF53B6B.mjs.map +0 -7
  246. package/dist/lib/neutral/chunk-ZFXLTBZG.mjs.map +0 -7
  247. package/dist/lib/neutral/context-add-VB7AOY3G.mjs.map +0 -7
  248. package/dist/lib/neutral/context-remove-VCM3VPSO.mjs.map +0 -7
  249. package/dist/lib/neutral/enable-blueprints-LBDZH2CY.mjs.map +0 -7
  250. package/dist/lib/neutral/object-create-Z57Y3X6Y.mjs.map +0 -7
  251. package/dist/lib/neutral/prompt-Y7NN7M5D.mjs.map +0 -7
  252. package/dist/lib/neutral/qualifier-VDOY5CWU.mjs.map +0 -7
  253. package/dist/lib/neutral/query-PPJU5622.mjs.map +0 -7
  254. package/dist/lib/neutral/query-blueprints-KXADGHSA.mjs.map +0 -7
  255. package/dist/lib/neutral/relation-create-XJ2IX6X3.mjs.map +0 -7
  256. package/dist/lib/neutral/schema-add-Z5CY6P24.mjs.map +0 -7
  257. package/dist/lib/neutral/schema-list-W326VPVX.mjs +0 -38
  258. package/dist/lib/neutral/schema-list-W326VPVX.mjs.map +0 -7
  259. package/dist/lib/neutral/sync-issues-4YE5XAK5.mjs.map +0 -7
  260. package/dist/lib/neutral/sync-triggers-CDMJVW6E.mjs.map +0 -7
  261. package/dist/lib/neutral/tag-add-VNIIOVJA.mjs.map +0 -7
  262. package/dist/lib/neutral/tag-remove-6R2R27W3.mjs.map +0 -7
  263. package/dist/lib/neutral/update-blueprints-N2AK2VUR.mjs +0 -16
  264. package/dist/lib/neutral/update-blueprints-N2AK2VUR.mjs.map +0 -7
  265. package/dist/lib/neutral/update-tasks-H7SWIFQL.mjs +0 -46
  266. package/dist/lib/neutral/update-tasks-H7SWIFQL.mjs.map +0 -7
  267. package/dist/types/src/blueprints/blueprint-manager/functions/update-blueprints.d.ts +0 -4
  268. package/dist/types/src/blueprints/blueprint-manager/functions/update-blueprints.d.ts.map +0 -1
  269. package/dist/types/src/blueprints/planning/functions/definitions.d.ts +0 -11
  270. package/dist/types/src/blueprints/planning/functions/definitions.d.ts.map +0 -1
  271. package/src/blueprints/blueprint-manager/functions/update-blueprints.ts +0 -18
  272. /package/dist/lib/neutral/{create-project-EIF4OJMY.mjs.map → create-project-LVIH4OLF.mjs.map} +0 -0
  273. /package/dist/lib/neutral/{delete-J3PMWP7Z.mjs.map → delete-MRER3QMO.mjs.map} +0 -0
  274. /package/dist/lib/neutral/{fetch-KHMHV7JR.mjs.map → fetch-B2AYJK7F.mjs.map} +0 -0
  275. /package/dist/lib/neutral/{fetch-messages-QOBBCTGC.mjs.map → fetch-messages-RUUU63L2.mjs.map} +0 -0
  276. /package/dist/lib/neutral/{load-ALP3TK2E.mjs.map → load-YWYQ4THR.mjs.map} +0 -0
  277. /package/dist/lib/neutral/{object-delete-X53LS37B.mjs.map → object-delete-I5OAPI32.mjs.map} +0 -0
  278. /package/dist/lib/neutral/{project-HPHTZ2CI.mjs.map → project-4BYI2PZC.mjs.map} +0 -0
  279. /package/dist/lib/neutral/{project-rules-IVDHKSKI.mjs.map → project-rules-7NYDDQ7K.mjs.map} +0 -0
  280. /package/dist/lib/neutral/{query-U56GNEV6.mjs.map → query-KBKGBYUO.mjs.map} +0 -0
  281. /package/dist/lib/neutral/{relation-delete-EP4KXAFL.mjs.map → relation-delete-ZSB7JOHO.mjs.map} +0 -0
  282. /package/dist/lib/neutral/{save-GWAPLT3Z.mjs.map → save-B2CSSFDG.mjs.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types/Plan.ts", "../../../src/types/Agent.ts", "../../../src/types/McpServer.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2026 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Schema from 'effect/Schema';\n\nimport { DXN, Annotation, Obj, Ref, Type } from '@dxos/echo';\n\nimport * as Chat from './Chat';\n\nexport const TaskId = Schema.String.pipe(Schema.brand('@dxos/assistant-toolkit/TaskId'));\nexport type TaskId = Schema.Schema.Type<typeof TaskId>;\n\nexport const Task = Schema.Struct({\n /**\n * Short task ID unique within the plan.\n */\n id: TaskId,\n\n title: Schema.String.annotations({\n description: 'Task title and description.',\n }),\n\n status: Schema.Literal('todo', 'in-progress', 'done'),\n\n /**\n * Parent task ID.\n */\n parent: Schema.optional(TaskId).annotations({\n description: 'Parent task ID.',\n }),\n\n /**\n * Chat object that this task is associated with.\n */\n chat: Schema.optional(Ref.Ref(Chat.Chat)),\n});\n\nexport type Task = Schema.Schema.Type<typeof Task>;\n/**\n * Hierarchical collection of tasks for humans and agents to track progress.\n */\nexport const Plan = Schema.Struct({\n tasks: Schema.Array(Task),\n}).pipe(Annotation.HiddenAnnotation.set(true), Type.makeObject(DXN.make('org.dxos.type.plan', '0.1.0')));\nexport type Plan = Type.InstanceType<typeof Plan>;\nexport const generateTaskId = (plan: Plan): TaskId => {\n const existingIds = plan.tasks\n .map((task) => {\n const [num, letter] = task.id.split('-');\n return parseInt(num);\n })\n .filter((_) => !isNaN(_));\n let newId;\n if (existingIds.length === 0) {\n newId = 1;\n } else {\n newId = Math.max(...existingIds) + 1;\n }\n // Add random suffix to avoid collisions.\n return TaskId.make(`${newId}-${crypto.randomUUID().slice(0, 2)}`);\n};\n\n/**\n * Add new tasks to a plan, generating IDs for new tasks.\n * Use inside an `Obj.update` callback.\n */\nexport const addTasks = (\n plan: Obj.Mutable<Plan>,\n tasks: (Pick<Task, 'title'> & Partial<Pick<Task, 'status' | 'parent' | 'chat'>>)[],\n) => {\n for (const task of tasks) {\n const taskId = generateTaskId(plan);\n plan.tasks.push({ id: taskId, ...task, status: task.status ?? 'todo' });\n }\n return plan;\n};\n\ninterface MakePlanProps {\n tasks: {\n title: string;\n status?: 'todo' | 'in-progress' | 'done';\n }[];\n}\n\nexport const makePlan = (props: MakePlanProps): Plan => {\n const plan = Obj.make(Plan, { tasks: [] });\n Obj.update(plan, (plan) => {\n addTasks(plan, props.tasks);\n });\n return plan;\n};\n\n/**\n * Formats plan to markdown format.\n */\nexport const formatPlan = (plan: Plan): string => {\n return plan.tasks\n .map((task) => `- **${task.status?.toLocaleUpperCase()}**: ${task.title ?? 'No title'} <!-- id=${task.id} -->`)\n .join('\\n');\n};\n", "//\n// Copyright 2026 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Effect from 'effect/Effect';\nimport * as Function from 'effect/Function';\nimport * as Schema from 'effect/Schema';\n\nimport { AiContext } from '@dxos/assistant';\nimport { type Blueprint } from '@dxos/compute';\nimport { DXN, Annotation, Database, Feed, Format, Obj, Ref, Relation, Type } from '@dxos/echo';\nimport { type EntityNotFoundError } from '@dxos/echo/Err';\nimport { FormInputAnnotation } from '@dxos/echo/internal';\nimport { acquireReleaseResource } from '@dxos/effect';\nimport { invariant } from '@dxos/invariant';\nimport { Text } from '@dxos/schema';\n\nimport * as Chat from './Chat';\nimport * as Plan from './Plan';\n\n/**\n * Agent schema definition.\n */\nexport const Agent = Schema.Struct({\n name: Schema.optional(Schema.String),\n\n /**\n * When false, agent triggers are disabled after sync-triggers runs.\n */\n enabled: Schema.optional(Schema.Boolean).annotations({\n title: 'Enabled',\n description: 'Master switch for agent automation; propagated to all triggers on sync.',\n }),\n\n /**\n * Instructions for the agent.\n */\n instructions: Ref.Ref(Text.Text).pipe(\n Format.FormatAnnotation.set(Format.TypeFormat.Markdown),\n Schema.annotations({ title: 'Instructions' }),\n ),\n\n /**\n * Primary chat for the agent.\n */\n // TODO(dmaretskyi): Multiple chats; RB: branching hierarchy.\n chat: Schema.optional(Ref.Ref(Chat.Chat).pipe(FormInputAnnotation.set(false))),\n\n // TODO(burdon): Is this used? Should it be an artifact?\n // Format.FormatAnnotation.set(Format.TypeFormat.Markdown)\n plan: Ref.Ref(Plan.Plan).pipe(FormInputAnnotation.set(false)),\n\n // TODO(burdon): Currently Memory.Memory objects are global to the space; make them artifacts?\n artifacts: Schema.Array(\n Schema.Struct({\n // TODO(dmaretskyi): Consider gettings names from the artifact itself using Obj.getLabel.\n name: Schema.String,\n // TODO(burdon): Rename object.\n data: Ref.Ref(Obj.Unknown),\n }),\n ).pipe(FormInputAnnotation.set(false)),\n\n /**\n * References to objects with a canonical queue property.\n * Schema must have the QueueAnnotation.\n */\n // Change to trigger.\n // TODO(dmaretskyi): Turn into an array of objects when form-data\n subscriptions: Schema.Array(Ref.Ref(Obj.Unknown)).pipe(FormInputAnnotation.set(false)),\n\n /**\n * Cron expression for a timer trigger that invokes the agent worker on a schedule.\n * The timer trigger bypasses the qualifier and goes straight to the agent worker.\n */\n // Change to trigger.\n cron: Schema.optional(Schema.String).annotations({\n title: 'Cron',\n description: 'Cron expression for a timer trigger that invokes the agent on a schedule.',\n }),\n\n /**\n * Allow the agent to filter events.\n * Related events will be added to the input queue of the agent.\n * It is recommended to enable this.\n * @deprecated\n */\n filterEvents: Schema.optional(Schema.Boolean).annotations({\n title: 'Filter events',\n description: 'Allow the agent to filter events.',\n }),\n\n /**\n * Input feed for subscriptions.\n * @deprecated Subscriptions will write directly to the agent.\n */\n feed: Schema.optional(Ref.Ref(Feed.Feed).pipe(FormInputAnnotation.set(false))),\n}).pipe(\n Annotation.LabelAnnotation.set(['name']),\n Annotation.IconAnnotation.set({ icon: 'ph--drone--regular', hue: 'sky' }),\n Type.makeObject(DXN.make('org.dxos.type.agent', '0.1.0')),\n);\n\nexport type Agent = Type.InstanceType<typeof Agent>;\n/**\n * Creates a fully initialized Agent with chat, queue, and context bindings.\n *\n * @param props - Agent properties including spec, plan, blueprints, and context objects.\n * @param blueprint - The blueprint to use for the agent context.\n * @returns An Effect that yields the initialized Agent.\n */\nexport const makeInitialized = (\n props: Omit<Obj.MakeProps<typeof Agent>, 'instructions' | 'plan' | 'artifacts' | 'subscriptions' | 'chat'> &\n Partial<Pick<Obj.MakeProps<typeof Agent>, 'artifacts' | 'subscriptions'>> & {\n instructions: string;\n blueprints?: Ref.Ref<Blueprint.Blueprint>[];\n contextObjects?: Ref.Ref<Obj.Any>[];\n },\n blueprint: Blueprint.Blueprint,\n): Effect.Effect<Agent, never, Feed.FeedService | Database.Service> =>\n Effect.gen(function* () {\n const agent = yield* Database.add(\n Obj.make(Agent, {\n ...props,\n instructions: Ref.make(Text.make({ content: props.instructions })),\n plan: Ref.make(Plan.makePlan({ tasks: [] })),\n artifacts: props.artifacts ?? [],\n subscriptions: props.subscriptions ?? [],\n filterEvents: props.filterEvents ?? true,\n enabled: props.enabled ?? true,\n }),\n );\n const feed = yield* Database.add(Feed.make());\n const runtime = yield* Effect.runtime<Feed.FeedService>();\n const contextBinder = new AiContext.Binder({ feed, runtime });\n // TODO(dmaretskyi): Blueprint registry.\n const agentBlueprint = yield* Database.add(Obj.clone(blueprint, { deep: true }));\n yield* Effect.promise(() =>\n contextBinder.bind({\n blueprints: [Ref.make(agentBlueprint), ...(props.blueprints ?? [])],\n objects: [Ref.make(agent), ...(props.contextObjects ?? [])],\n }),\n );\n const chat = yield* Database.add(\n Chat.make({\n [Obj.Parent]: agent,\n feed: Ref.make(feed),\n }),\n );\n Obj.setParent(feed, chat);\n yield* Database.add(\n Relation.make(Chat.CompanionTo, {\n [Relation.Source]: chat,\n [Relation.Target]: agent,\n }),\n );\n\n const inputFeed = yield* Database.add(Feed.make());\n\n Obj.update(agent, (agent) => {\n agent.chat = Ref.make(chat);\n agent.feed = Ref.make(inputFeed);\n });\n\n return agent;\n });\n\n/**\n * Resets the agent chat history by rebuilding the chat context.\n * Preserves the existing blueprints and objects from the current chat context.\n *\n * @param agent - The agent whose chat history should be reset. Must have an existing chat.\n * @returns An Effect that resets the chat history.\n */\nexport const resetChatHistory = (\n agent: Agent,\n): Effect.Effect<void, EntityNotFoundError, Feed.FeedService | Database.Service> =>\n Effect.gen(function* () {\n invariant(agent.chat, 'Agent must have an existing chat to reset.');\n\n const existingFeed = yield* agent.chat.pipe(Database.load).pipe(\n Effect.map((_) => _.feed),\n Effect.flatMap(Database.load),\n );\n const runtime = yield* Effect.runtime<Feed.FeedService>();\n const existingContextBinder = yield* acquireReleaseResource(\n () =>\n new AiContext.Binder({\n feed: existingFeed,\n runtime,\n }),\n );\n const blueprints = existingContextBinder.getBlueprints().map((blueprint) => Ref.make(blueprint));\n const objects = existingContextBinder.getObjects().map((object) => Ref.make(object));\n\n const feed = yield* Database.add(Feed.make());\n const contextBinder = new AiContext.Binder({ feed, runtime });\n yield* Effect.promise(() =>\n contextBinder.bind({\n blueprints,\n objects,\n }),\n );\n\n const chat = yield* Database.add(\n Chat.make({\n feed: Ref.make(feed),\n }),\n );\n Obj.setParent(feed, chat);\n Obj.update(agent, (agent) => {\n agent.chat = Ref.make(chat);\n });\n\n yield* Database.add(\n Relation.make(Chat.CompanionTo, {\n [Relation.Source]: chat,\n [Relation.Target]: agent,\n }),\n );\n }).pipe(Effect.scoped);\n\nexport const getFromChatContext: Effect.Effect<Agent, Error, AiContext.Service> = Effect.gen(function* () {\n const agents = yield* Function.pipe(AiContext.Service.findObjects(Agent));\n if (agents.length !== 1) {\n return yield* Effect.fail(new Error(`There should be exactly one agent in context. Got: ${agents.length}`));\n }\n\n const agent = agents[0];\n return agent;\n});\n", "//\n// Copyright 2026 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Schema from 'effect/Schema';\n\nimport { McpServer as McpServerSpec } from '@dxos/compute';\nimport { DXN, Annotation, Type } from '@dxos/echo';\nimport { LabelAnnotation } from '@dxos/echo/internal';\n\n/**\n * MCP server configuration stored as a space-level ECHO object.\n *\n * Composes the canonical connection spec from `@dxos/compute` (`url`, `protocol`, `apiKey`)\n * and adds instance-level fields (`name`, `enabled`) plus ECHO annotations.\n *\n * NOTE: `apiKey` is stored in plaintext and replicated to all peers with access to the space.\n * A future iteration should move secrets to per-device credential storage or use envelope encryption.\n */\nexport const McpServer = Schema.Struct({\n ...McpServerSpec.McpServer.fields,\n enabled: Schema.optional(Schema.Boolean),\n}).pipe(\n LabelAnnotation.set(['name']),\n Annotation.IconAnnotation.set({ icon: 'ph--plugs-connected--regular', hue: 'sky' }),\n Type.makeObject(DXN.make('org.dxos.type.assistant.mcpServer', '0.1.0')),\n);\n\nexport type McpServer = Type.InstanceType<typeof McpServer>;\n"],
5
+ "mappings": "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",
6
+ "names": ["Schema", "DXN", "Annotation", "Obj", "Ref", "Type", "TaskId", "String", "pipe", "brand", "Task", "Struct", "id", "title", "annotations", "description", "status", "Literal", "parent", "optional", "chat", "Ref", "Chat", "Plan", "tasks", "Array", "Annotation", "HiddenAnnotation", "set", "Type", "makeObject", "DXN", "make", "generateTaskId", "plan", "existingIds", "map", "task", "num", "letter", "split", "parseInt", "filter", "_", "isNaN", "newId", "length", "Math", "max", "crypto", "randomUUID", "slice", "addTasks", "taskId", "push", "makePlan", "props", "Obj", "update", "formatPlan", "toLocaleUpperCase", "join", "Effect", "Function", "Schema", "AiContext", "DXN", "Annotation", "Database", "Feed", "Format", "Obj", "Ref", "Relation", "Type", "FormInputAnnotation", "acquireReleaseResource", "invariant", "Text", "Ref", "artifacts", "Array", "Schema", "String", "data", "Obj", "description", "Annotation", "IconAnnotation", "icon", "hue", "Type", "makeObject", "props", "instructions", "Text", "make", "plan", "Plan", "subscriptions", "filterEvents", "enabled", "add", "contextBinder", "AiContext", "Binder", "feed", "runtime", "Effect", "agentBlueprint", "objects", "chat", "setParent", "Source", "Relation", "Target", "agent", "inputFeed", "existingFeed", "Database", "pipe", "existingContextBinder", "acquireReleaseResource", "blueprints", "scoped", "agents", "Error", "Schema", "McpServer", "McpServerSpec", "DXN", "Annotation", "Type", "LabelAnnotation", "Struct", "fields", "enabled", "optional", "Boolean", "pipe", "set", "IconAnnotation", "icon", "hue", "makeObject", "make"]
7
+ }
@@ -1,18 +1,20 @@
1
1
  import {
2
2
  Chat
3
- } from "./chunk-NR3GTWRC.mjs";
3
+ } from "./chunk-GQRUBCMT.mjs";
4
4
 
5
5
  // src/functions/agent/definitions.ts
6
6
  import * as Schema from "effect/Schema";
7
7
  import { AiService, OpaqueToolkit, ModelName } from "@dxos/ai";
8
8
  import { Routine, Trace, Operation, OperationRegistry } from "@dxos/compute";
9
9
  import { Database, Feed, Ref } from "@dxos/echo";
10
+ import { DXN } from "@dxos/keys";
10
11
  import { Text } from "@dxos/schema";
11
12
  var AgentPrompt = Operation.make({
12
13
  meta: {
13
- key: "org.dxos.function.prompt",
14
+ key: DXN.make("org.dxos.function.prompt"),
14
15
  name: "Run Routine",
15
- description: "Agentic worker that executes a provided prompt using blueprints and tools."
16
+ description: "Agentic worker that executes a provided prompt using blueprints and tools.",
17
+ icon: "ph--brain--regular"
16
18
  },
17
19
  input: Schema.Struct({
18
20
  prompt: Ref.Ref(Routine.Routine),
@@ -52,9 +54,9 @@ var AgentPrompt = Operation.make({
52
54
  OperationRegistry.Service,
53
55
  Trace.TraceService
54
56
  ]
55
- }).pipe(Operation.intrinsic);
57
+ });
56
58
 
57
59
  export {
58
60
  AgentPrompt
59
61
  };
60
- //# sourceMappingURL=chunk-GV66MKAQ.mjs.map
62
+ //# sourceMappingURL=chunk-AYV2KMAV.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/functions/agent/definitions.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { AiService, OpaqueToolkit, ModelName } from '@dxos/ai';\nimport { Routine, Trace, Operation, OperationRegistry } from '@dxos/compute';\nimport { Database, Feed, Ref } from '@dxos/echo';\nimport { DXN } from '@dxos/keys';\nimport { Text } from '@dxos/schema';\n\nimport * as Chat from '../../types/Chat';\n\n// TODO(dmaretskyi): Rename to RunRoutine.\nexport const AgentPrompt = Operation.make({\n meta: {\n key: DXN.make('org.dxos.function.prompt'),\n name: 'Run Routine',\n description: 'Agentic worker that executes a provided prompt using blueprints and tools.',\n icon: 'ph--brain--regular',\n },\n input: Schema.Struct({\n prompt: Ref.Ref(Routine.Routine),\n\n /**\n * When set, runs in this chat (history, queue, and bound context). Routine blueprints and context objects are merged into the conversation for this request.\n */\n chat: Schema.optional(Ref.Ref(Chat.Chat)),\n\n /**\n * @default @anthropic/claude-opus-4-6\n */\n model: Schema.optional(ModelName),\n\n /**\n * Input object or data.\n * References get auto-resolved.\n */\n input: Schema.Any.pipe(Schema.annotations({ title: 'Input' })),\n\n systemInstructions: Schema.optional(Schema.String).annotations({\n description: 'Additional system instructions to add to the system prompt.',\n }),\n }),\n output: Schema.Any,\n // ECHO types that the handler loads via Database.load(). Declaring them here ensures the\n // runtime registers their schema before remote invocation (e.g. via the EDGE function service).\n types: [Routine.Routine, Text.Text, Feed.Feed, Chat.Chat],\n services: [\n AiService.AiService,\n Database.Service,\n Feed.FeedService,\n OpaqueToolkit.OpaqueToolkitProvider,\n OperationRegistry.Service,\n Trace.TraceService,\n ],\n});\n"],
5
+ "mappings": ";;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,WAAWC,eAAeC,iBAAiB;AACpD,SAASC,SAASC,OAAOC,WAAWC,yBAAyB;AAC7D,SAASC,UAAUC,MAAMC,WAAW;AACpC,SAASC,WAAW;AACpB,SAASC,YAAY;AAKd,IAAMC,cAAcC,UAAUC,KAAK;EACxCC,MAAM;IACJC,KAAKC,IAAIH,KAAK,0BAAA;IACdI,MAAM;IACNC,aAAa;IACbC,MAAM;EACR;EACAC,OAAcC,cAAO;IACnBC,QAAQC,IAAIA,IAAIC,QAAQA,OAAO;;;;IAK/BC,MAAaC,gBAASH,IAAIA,IAASI,IAAI,CAAA;;;;IAKvCC,OAAcF,gBAASG,SAAAA;;;;;IAMvBT,OAAcU,WAAIC,KAAYC,mBAAY;MAAEC,OAAO;IAAQ,CAAA,CAAA;IAE3DC,oBAA2BR,gBAAgBS,aAAM,EAAEH,YAAY;MAC7Dd,aAAa;IACf,CAAA;EACF,CAAA;EACAkB,QAAeN;;;EAGfO,OAAO;IAACb,QAAQA;IAASc,KAAKA;IAAMC,KAAKA;IAAWZ;;EACpDa,UAAU;IACRC,UAAUA;IACVC,SAASC;IACTJ,KAAKK;IACLC,cAAcC;IACdC,kBAAkBJ;IAClBK,MAAMC;;AAEV,CAAA;",
6
+ "names": ["Schema", "AiService", "OpaqueToolkit", "ModelName", "Routine", "Trace", "Operation", "OperationRegistry", "Database", "Feed", "Ref", "DXN", "Text", "AgentPrompt", "Operation", "make", "meta", "key", "DXN", "name", "description", "icon", "input", "Struct", "prompt", "Ref", "Routine", "chat", "optional", "Chat", "model", "ModelName", "Any", "pipe", "annotations", "title", "systemInstructions", "String", "output", "types", "Text", "Feed", "services", "AiService", "Database", "Service", "FeedService", "OpaqueToolkit", "OpaqueToolkitProvider", "OperationRegistry", "Trace", "TraceService"]
7
+ }
@@ -2,11 +2,13 @@
2
2
  import * as Schema from "effect/Schema";
3
3
  import { Credential, Operation } from "@dxos/compute";
4
4
  import { Database } from "@dxos/echo";
5
+ import { DXN } from "@dxos/keys";
5
6
  var SyncIssues = Operation.make({
6
7
  meta: {
7
- key: "org.dxos.function.linear.sync-issues",
8
+ key: DXN.make("org.dxos.function.linear.syncIssues"),
8
9
  name: "Linear",
9
- description: "Sync issues from Linear."
10
+ description: "Sync issues from Linear.",
11
+ icon: "ph--arrows-clockwise--regular"
10
12
  },
11
13
  input: Schema.Struct({
12
14
  team: Schema.String.annotations({
@@ -22,9 +24,9 @@ var SyncIssues = Operation.make({
22
24
 
23
25
  // src/sync/sync.ts
24
26
  import * as Effect from "effect/Effect";
25
- import { Filter, Obj, Query, Ref } from "@dxos/echo";
26
- import { Database as Database2 } from "@dxos/echo";
27
+ import { Database as Database2, Filter, Obj, Query, Ref } from "@dxos/echo";
27
28
  import { failedInvariant } from "@dxos/invariant";
29
+ import { EID } from "@dxos/keys";
28
30
  import { log } from "@dxos/log";
29
31
  var __dxlog_file = "/__w/dxos/dxos/packages/core/compute/assistant-toolkit/src/sync/sync.ts";
30
32
  var syncObjects = Effect.fn("syncObjects")(function* (objs, { foreignKeyId }) {
@@ -40,7 +42,8 @@ var syncObjects = Effect.fn("syncObjects")(function* (objs, { foreignKeyId }) {
40
42
  if (!ref.target) {
41
43
  continue;
42
44
  }
43
- if (Obj.getDXN(ref.target).isLocalObjectId()) {
45
+ const targetUri = EID.tryParse(Obj.getURI(ref.target));
46
+ if (targetUri && EID.isLocal(targetUri)) {
44
47
  const [target] = yield* syncObjects([
45
48
  ref.target
46
49
  ], {
@@ -49,9 +52,9 @@ var syncObjects = Effect.fn("syncObjects")(function* (objs, { foreignKeyId }) {
49
52
  obj[key] = Ref.make(target);
50
53
  }
51
54
  }
52
- const schema = Obj.getSchema(obj) ?? failedInvariant("No schema.");
55
+ const type = Obj.getType(obj) ?? failedInvariant("No type.");
53
56
  const foreignId = Obj.getKeys(obj, foreignKeyId)[0]?.id ?? failedInvariant("No foreign key.");
54
- const [existing] = yield* Database2.runQuery(Query.select(Filter.foreignKeys(schema, [
57
+ const [existing] = yield* Database2.runQuery(Query.select(Filter.foreignKeys(type, [
55
58
  {
56
59
  source: foreignKeyId,
57
60
  id: foreignId
@@ -60,8 +63,8 @@ var syncObjects = Effect.fn("syncObjects")(function* (objs, { foreignKeyId }) {
60
63
  log("sync object", {
61
64
  type: Obj.getTypename(obj),
62
65
  foreignId,
63
- existing: existing ? Obj.getDXN(existing) : void 0
64
- }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 48, S: this });
66
+ existing: existing ? Obj.getURI(existing) : void 0
67
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 49, S: this });
65
68
  if (!existing) {
66
69
  yield* Database2.add(obj);
67
70
  return obj;
@@ -105,4 +108,4 @@ export {
105
108
  SyncIssues,
106
109
  syncObjects
107
110
  };
108
- //# sourceMappingURL=chunk-ROMZO4CB.mjs.map
111
+ //# sourceMappingURL=chunk-BB6X6NT6.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/blueprints/linear/functions/definitions.ts", "../../../src/sync/sync.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Credential, Operation } from '@dxos/compute';\nimport { Database } from '@dxos/echo';\nimport { DXN } from '@dxos/keys';\n\nexport const SyncIssues = Operation.make({\n meta: {\n key: DXN.make('org.dxos.function.linear.syncIssues'),\n name: 'Linear',\n description: 'Sync issues from Linear.',\n icon: 'ph--arrows-clockwise--regular',\n },\n input: Schema.Struct({\n team: Schema.String.annotations({\n description: 'Linear team id.',\n }),\n }),\n output: Schema.Any,\n services: [Credential.CredentialsService, Database.Service],\n});\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Database, Filter, Obj, Query, Ref } from '@dxos/echo';\nimport { failedInvariant } from '@dxos/invariant';\nimport { EID } from '@dxos/keys';\nimport { log } from '@dxos/log';\n\n/**\n * Syncs objects to the database.\n * If there's an object with a matching foreign key in the database, it will be updated.\n * Otherwise, a new object will be added.\n * Recursively syncs top-level refs.\n *\n * @param opts.foreignKeyId - The key to use for matching objects.\n */\nexport const syncObjects: (\n objs: Obj.Unknown[],\n opts: { foreignKeyId: string },\n) => Effect.Effect<Obj.Unknown[], never, Database.Service> = Effect.fn('syncObjects')(function* (\n objs,\n { foreignKeyId },\n) {\n return yield* Effect.forEach(\n objs,\n Effect.fnUntraced(function* (obj) {\n // Sync referenced objects.\n for (const key of Object.keys(obj)) {\n if (typeof key !== 'string' || key === 'id') {\n continue;\n }\n if (!Ref.isRef((obj as any)[key])) {\n continue;\n }\n const ref: Ref.Unknown = (obj as any)[key];\n if (!ref.target) {\n continue;\n }\n const targetUri = EID.tryParse(Obj.getURI(ref.target));\n if (targetUri && EID.isLocal(targetUri)) {\n // obj not persisted to db.\n const [target] = yield* syncObjects([ref.target], { foreignKeyId });\n (obj as any)[key] = Ref.make(target);\n }\n }\n\n const type = Obj.getType(obj) ?? failedInvariant('No type.');\n const foreignId = Obj.getKeys(obj, foreignKeyId)[0]?.id ?? failedInvariant('No foreign key.');\n const [existing] = yield* Database.runQuery(\n Query.select(Filter.foreignKeys(type, [{ source: foreignKeyId, id: foreignId }])),\n );\n log('sync object', {\n type: Obj.getTypename(obj),\n foreignId,\n existing: existing ? Obj.getURI(existing) : undefined,\n });\n if (!existing) {\n yield* Database.add(obj);\n return obj;\n } else {\n copyObjectData(existing, obj);\n return existing;\n }\n }),\n { concurrency: 1 },\n );\n});\n\nconst copyObjectData = (existing: Obj.Unknown, newObj: Obj.Unknown) => {\n Obj.update(existing, (existing) => {\n // Copy properties from newObj to existing.\n for (const key of Object.keys(newObj)) {\n if (typeof key !== 'string' || key === 'id') {\n continue;\n }\n if (\n typeof (newObj as any)[key] !== 'string' &&\n typeof (newObj as any)[key] !== 'number' &&\n typeof (newObj as any)[key] !== 'boolean' &&\n !Ref.isRef((newObj as any)[key])\n ) {\n continue;\n }\n (existing as any)[key] = (newObj as any)[key];\n }\n\n // Delete properties that don't exist in newObj.\n for (const key of Object.keys(existing)) {\n if (typeof key !== 'string' || key === 'id') {\n continue;\n }\n if (!(key in newObj)) {\n delete (existing as any)[key];\n }\n }\n\n // Update foreign keys.\n for (const foreignKey of Obj.getMeta(newObj).keys) {\n Obj.deleteKeys(existing, foreignKey.source);\n // TODO(dmaretskyi): Doesn't work: `Obj.getMeta(existing).keys.push(foreignKey);`\n Obj.getMeta(existing).keys.push({ ...foreignKey });\n }\n });\n};\n"],
5
+ "mappings": ";AAIA,YAAYA,YAAY;AAExB,SAASC,YAAYC,iBAAiB;AACtC,SAASC,gBAAgB;AACzB,SAASC,WAAW;AAEb,IAAMC,aAAaH,UAAUI,KAAK;EACvCC,MAAM;IACJC,KAAKJ,IAAIE,KAAK,qCAAA;IACdG,MAAM;IACNC,aAAa;IACbC,MAAM;EACR;EACAC,OAAcC,cAAO;IACnBC,MAAaC,cAAOC,YAAY;MAC9BN,aAAa;IACf,CAAA;EACF,CAAA;EACAO,QAAeC;EACfC,UAAU;IAAClB,WAAWmB;IAAoBjB,SAASkB;;AACrD,CAAA;;;ACpBA,YAAYC,YAAY;AAExB,SAASC,YAAAA,WAAUC,QAAQC,KAAKC,OAAOC,WAAW;AAClD,SAASC,uBAAuB;AAChC,SAASC,WAAW;AACpB,SAASC,WAAW;AAEpB,IAAA,eAAA;AAkBM,IAAA,cAA2B,UAAA,aAAA,EAAA,WAAA,MAAA,EAAA,aAAA,GAAA;SAC3B,OAAWC,eAAcC,MAAW,kBAAA,WAAA,KAAA;eAEhC,OAAA,OAAA,KAAA,GAAA,GAAA;AACF,UAAA,OAAA,QAAA,YAAA,QAAA,MAAA;AACI;;AAEJ,UAAA,CAAA,IAAA,MAAA,IAAA,GAAA,CAAA,GAAA;AACA;MACA;YACE,MAAA,IAAA,GAAA;AACF,UAAA,CAAA,IAAA,QAAA;AACA;MACA;YACE,YAAA,IAAA,SAA2B,IAAA,OAAA,IAAA,MAAA,CAAA;UAC3B,aAAOC,IAAU,QAAOC,SAAAA,GAAY;cAAc,CAAA,MAAA,IAAA,OAAA,YAAA;UAAEC,IAAAA;QAAa,GAAA;UACpDJ;QACf,CAAA;AACF,YAAA,GAAA,IAAA,IAAA,KAAA,MAAA;MAEA;IACA;AACA,UAAM,OAACK,IAAS,QAAG,GAAOb,KAAAA,gBACxBG,UAAaF;UAA0B,YAAA,IAAA,QAAA,KAAA,YAAA,EAAA,CAAA,GAAA,MAAA,gBAAA,iBAAA;mBAAEa,IAAQF,OAAAA,UAAAA,SAAAA,MAAAA,OAAAA,OAAAA,YAAAA,MAAAA;;QAA4B,QAAA;QAAE,IAAA;MAE7E;;QAEFG,eAAAA;MACAF,MAAAA,IAAUA,YAAWX,GAAIc;MAC3B;MACI,UAACH,WAAU,IAAA,OAAA,QAAA,IAAA;qBACNb,YAAaiB,GAAAA,cAAAA,GAAAA,IAAAA,GAAAA,KAAAA,CAAAA;QACpB,CAAA,UAAOA;AACT,aAAOjB,UAAA,IAAA,GAAA;AACLkB,aAAAA;WACA;AACF,qBAAA,UAAA,GAAA;AAEF,aAAA;IAAEC;EAAe,CAAA,GAAA;IAElB,aAAA;EAEH,CAAA;;qBAEI,CAAA,UAAA,WAAA;MACA,OAAK,UAAMX,CAAOY,cAAW;eAEzB,OAAA,OAAA,KAAA,MAAA,GAAA;AACF,UAAA,OAAA,QAAA,YAAA,QAAA,MAAA;AAEE;;AAMF,UAAA,OAAA,OAAA,GAAA,MAAA,YAAA,OAAA,OAAA,GAAA,MAAA,YAAA,OAAA,OAAA,GAAA,MAAA,aAAA,CAAA,IAAA,MAAA,OAAA,GAAA,CAAA,GAAA;AACCP;MACH;AAEA,MAAAA,UAAA,GAAA,IAAA,OAAA,GAAA;IACA;eAEI,OAAA,OAAA,KAAAA,SAAA,GAAA;AACF,UAAA,OAAA,QAAA,YAAA,QAAA,MAAA;AACI;;AAEJ,UAAA,EAAA,OAAA,SAAA;AACF,eAAAA,UAAA,GAAA;MAEA;IACA;eAEE,cAAA,IAAA,QAAA,MAAA,EAAA,MAAA;AACAX,UAAImB,WAAQR,WAAUJ,WAAU,MAAA;AAAgB,UAAA,QAAAI,SAAA,EAAA,KAAA,KAAA;QAClD,GAAA;MACF,CAAA;IACF;;;",
6
+ "names": ["Schema", "Credential", "Operation", "Database", "DXN", "SyncIssues", "make", "meta", "key", "name", "description", "icon", "input", "Struct", "team", "String", "annotations", "output", "Any", "services", "CredentialsService", "Service", "Effect", "Database", "Filter", "Obj", "Query", "Ref", "failedInvariant", "EID", "log", "key", "keys", "target", "syncObjects", "foreignKeyId", "existing", "source", "foreignId", "getURI", "obj", "copyObjectData", "concurrency", "Object", "getMeta"]
7
+ }
@@ -1,26 +1,28 @@
1
1
  import {
2
2
  Agent_exports
3
- } from "./chunk-P4ZMYO4K.mjs";
3
+ } from "./chunk-ALDU6VDG.mjs";
4
4
 
5
5
  // src/blueprints/project-wizard/functions/definitions.ts
6
6
  import * as Schema from "effect/Schema";
7
- import { Blueprint, Operation } from "@dxos/compute";
8
- import { Database, Feed, Obj, Ref } from "@dxos/echo";
9
- import { QueueService } from "@dxos/functions";
7
+ import { Operation } from "@dxos/compute";
8
+ import { Database, Feed, Obj, Ref, Registry, Type } from "@dxos/echo";
9
+ import { DXN } from "@dxos/keys";
10
10
  var AgentRules = Operation.make({
11
11
  meta: {
12
- key: "org.dxos.function.agent-wizard.agent-rules",
12
+ key: DXN.make("org.dxos.function.agentWizard.agentRules"),
13
13
  name: "Agent rules",
14
- description: "Gets the rules for creating an agent."
14
+ description: "Gets the rules for creating an agent.",
15
+ icon: "ph--book-open--regular"
15
16
  },
16
17
  input: Schema.Struct({}),
17
18
  output: Schema.String
18
19
  });
19
20
  var CreateAgent = Operation.make({
20
21
  meta: {
21
- key: "org.dxos.function.agent-wizard.create-agent",
22
+ key: DXN.make("org.dxos.function.agentWizard.createAgent"),
22
23
  name: "Create agent",
23
- description: "Creates a new agent."
24
+ description: "Creates a new agent.",
25
+ icon: "ph--brain--regular"
24
26
  },
25
27
  input: Schema.Struct({
26
28
  name: Schema.String.annotations({
@@ -42,19 +44,19 @@ var CreateAgent = Operation.make({
42
44
  description: "The objects to subscribe to for the agent. Can be references to mailboxes."
43
45
  })
44
46
  }),
45
- output: Agent_exports.Agent,
47
+ output: Type.getSchema(Agent_exports.Agent),
46
48
  services: [
47
- Blueprint.RegistryService,
49
+ Registry.Service,
48
50
  Database.Service,
49
- QueueService,
50
51
  Feed.FeedService
51
52
  ]
52
53
  });
53
54
  var SyncTriggers = Operation.make({
54
55
  meta: {
55
- key: "org.dxos.function.agent.sync-triggers",
56
+ key: DXN.make("org.dxos.function.agent.syncTriggers"),
56
57
  name: "Sync triggers",
57
- description: "Synchronizes triggers with the agent: subscriptions, cron, filter-events, and enabled (copied to every trigger). Call after editing those fields."
58
+ description: "Synchronizes triggers with the agent: subscriptions, cron, filter-events, and enabled (copied to every trigger). Call after editing those fields.",
59
+ icon: "ph--arrows-clockwise--regular"
58
60
  },
59
61
  input: Schema.Struct({
60
62
  agent: Ref.Ref(Agent_exports.Agent).annotations({
@@ -72,4 +74,4 @@ export {
72
74
  CreateAgent,
73
75
  SyncTriggers
74
76
  };
75
- //# sourceMappingURL=chunk-XUF53B6B.mjs.map
77
+ //# sourceMappingURL=chunk-DBUT6FKM.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/blueprints/project-wizard/functions/definitions.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Operation } from '@dxos/compute';\nimport { Database, Feed, Obj, Ref, Registry, Type } from '@dxos/echo';\nimport { DXN } from '@dxos/keys';\n\nimport { Agent } from '../../../types';\n\nexport const AgentRules = Operation.make({\n meta: {\n key: DXN.make('org.dxos.function.agentWizard.agentRules'),\n name: 'Agent rules',\n description: 'Gets the rules for creating an agent.',\n icon: 'ph--book-open--regular',\n },\n input: Schema.Struct({}),\n output: Schema.String,\n});\n\nexport const CreateAgent = Operation.make({\n meta: {\n key: DXN.make('org.dxos.function.agentWizard.createAgent'),\n name: 'Create agent',\n description: 'Creates a new agent.',\n icon: 'ph--brain--regular',\n },\n input: Schema.Struct({\n name: Schema.String.annotations({\n description: 'The name of the agent to create.',\n }),\n instructions: Schema.String.annotations({\n description:\n 'The goal of the agent. Be specific but not too verbose. The agent will use this as a core objective and set of rules to follow.',\n }),\n blueprints: Schema.Array(Schema.String).annotations({\n description: 'The blueprint keys to use for the agent.',\n examples: [['org.dxos.blueprint.markdown', 'org.dxos.blueprint.database']],\n }),\n subscriptions: Schema.Array(Ref.Ref(Obj.Unknown)).annotations({\n description: 'The objects to subscribe to for the agent. Can be references to mailboxes.',\n }),\n }),\n output: Type.getSchema(Agent.Agent),\n services: [Registry.Service, Database.Service, Feed.FeedService],\n});\n\nexport const SyncTriggers = Operation.make({\n meta: {\n key: DXN.make('org.dxos.function.agent.syncTriggers'),\n name: 'Sync triggers',\n description:\n 'Synchronizes triggers with the agent: subscriptions, cron, filter-events, and enabled (copied to every trigger). Call after editing those fields.',\n icon: 'ph--arrows-clockwise--regular',\n },\n input: Schema.Struct({\n agent: Ref.Ref(Agent.Agent).annotations({\n description: 'The agent whose triggers should be synced.',\n }),\n }),\n output: Schema.Void,\n services: [Database.Service],\n});\n"],
5
+ "mappings": ";;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiB;AAC1B,SAASC,UAAUC,MAAMC,KAAKC,KAAKC,UAAUC,YAAY;AACzD,SAASC,WAAW;AAIb,IAAMC,aAAaC,UAAUC,KAAK;EACvCC,MAAM;IACJC,KAAKC,IAAIH,KAAK,0CAAA;IACdI,MAAM;IACNC,aAAa;IACbC,MAAM;EACR;EACAC,OAAcC,cAAO,CAAC,CAAA;EACtBC,QAAeC;AACjB,CAAA;AAEO,IAAMC,cAAcZ,UAAUC,KAAK;EACxCC,MAAM;IACJC,KAAKC,IAAIH,KAAK,2CAAA;IACdI,MAAM;IACNC,aAAa;IACbC,MAAM;EACR;EACAC,OAAcC,cAAO;IACnBJ,MAAaM,cAAOE,YAAY;MAC9BP,aAAa;IACf,CAAA;IACAQ,cAAqBH,cAAOE,YAAY;MACtCP,aACE;IACJ,CAAA;IACAS,YAAmBC,aAAaL,aAAM,EAAEE,YAAY;MAClDP,aAAa;MACbW,UAAU;QAAC;UAAC;UAA+B;;;IAC7C,CAAA;IACAC,eAAsBF,aAAMG,IAAIA,IAAIC,IAAIC,OAAO,CAAA,EAAGR,YAAY;MAC5DP,aAAa;IACf,CAAA;EACF,CAAA;EACAI,QAAQY,KAAKC,UAAUC,cAAMA,KAAK;EAClCC,UAAU;IAACC,SAASC;IAASC,SAASD;IAASE,KAAKC;;AACtD,CAAA;AAEO,IAAMC,eAAe/B,UAAUC,KAAK;EACzCC,MAAM;IACJC,KAAKC,IAAIH,KAAK,sCAAA;IACdI,MAAM;IACNC,aACE;IACFC,MAAM;EACR;EACAC,OAAcC,cAAO;IACnBuB,OAAOb,IAAIA,IAAIK,cAAMA,KAAK,EAAEX,YAAY;MACtCP,aAAa;IACf,CAAA;EACF,CAAA;EACAI,QAAeuB;EACfR,UAAU;IAACG,SAASD;;AACtB,CAAA;",
6
+ "names": ["Schema", "Operation", "Database", "Feed", "Obj", "Ref", "Registry", "Type", "DXN", "AgentRules", "Operation", "make", "meta", "key", "DXN", "name", "description", "icon", "input", "Struct", "output", "String", "CreateAgent", "annotations", "instructions", "blueprints", "Array", "examples", "subscriptions", "Ref", "Obj", "Unknown", "Type", "getSchema", "Agent", "services", "Registry", "Service", "Database", "Feed", "FeedService", "SyncTriggers", "agent", "Void"]
7
+ }
@@ -11,35 +11,30 @@ __export(Chat_exports, {
11
11
  make: () => make
12
12
  });
13
13
  import * as Schema from "effect/Schema";
14
- import { Annotation, Feed, Obj, Ref, Type } from "@dxos/echo";
14
+ import { DXN, Annotation, Feed, Obj, Ref, Type } from "@dxos/echo";
15
15
  import { FormInputAnnotation, LabelAnnotation } from "@dxos/echo/internal";
16
16
  var Chat = Schema.Struct({
17
17
  name: Schema.String.pipe(Schema.optional),
18
18
  feed: Ref.Ref(Feed.Feed).pipe(FormInputAnnotation.set(false)),
19
19
  view: Schema.String.pipe(Schema.optional)
20
- }).pipe(Type.object({
21
- typename: "org.dxos.type.assistant.chat",
22
- version: "0.1.0"
23
- }), LabelAnnotation.set([
20
+ }).pipe(LabelAnnotation.set([
24
21
  "name"
25
22
  ]), Annotation.IconAnnotation.set({
26
23
  icon: "ph--sparkle--regular",
27
24
  hue: "sky"
28
- }));
25
+ }), Type.makeObject(DXN.make("org.dxos.type.assistant.chat", "0.1.0")));
29
26
  var make = (props) => Obj.make(Chat, props);
30
27
  var LegacyCompanionTo = Schema.Struct({
31
28
  id: Obj.ID
32
- }).pipe(Type.relation({
33
- typename: "org.dxos.relation.assistant.companion-to",
34
- version: "0.1.0",
29
+ }).pipe(Type.makeRelation({
30
+ dxn: DXN.make("org.dxos.relation.assistant.companionTo", "0.1.0"),
35
31
  source: Chat,
36
32
  target: Obj.Unknown
37
33
  }));
38
34
  var CompanionTo = Schema.Struct({
39
35
  id: Obj.ID
40
- }).pipe(Type.relation({
41
- typename: "org.dxos.relation.assistant.companionTo",
42
- version: "0.1.0",
36
+ }).pipe(Type.makeRelation({
37
+ dxn: DXN.make("org.dxos.relation.assistant.companionTo", "0.1.0"),
43
38
  source: Chat,
44
39
  target: Obj.Unknown
45
40
  }));
@@ -50,4 +45,4 @@ export {
50
45
  CompanionTo,
51
46
  Chat_exports
52
47
  };
53
- //# sourceMappingURL=chunk-NR3GTWRC.mjs.map
48
+ //# sourceMappingURL=chunk-GQRUBCMT.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types/Chat.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Schema from 'effect/Schema';\n\nimport { DXN, Annotation, Feed, Obj, Ref, Type } from '@dxos/echo';\nimport { FormInputAnnotation, LabelAnnotation } from '@dxos/echo/internal';\n\n/**\n * AI chat.\n */\nexport const Chat = Schema.Struct({\n name: Schema.String.pipe(Schema.optional),\n feed: Ref.Ref(Feed.Feed).pipe(FormInputAnnotation.set(false)),\n view: Schema.String.pipe(Schema.optional),\n}).pipe(\n LabelAnnotation.set(['name']),\n Annotation.IconAnnotation.set({ icon: 'ph--sparkle--regular', hue: 'sky' }),\n Type.makeObject(DXN.make('org.dxos.type.assistant.chat', '0.1.0')),\n);\n\nexport type Chat = Type.InstanceType<typeof Chat>;\nexport const make = (props: Obj.MakeProps<typeof Chat>) => Obj.make(Chat, props);\n\n/** @deprecated Use CompanionTo instead. */\nexport const LegacyCompanionTo = Schema.Struct({\n id: Obj.ID,\n}).pipe(\n Type.makeRelation({\n dxn: DXN.make('org.dxos.relation.assistant.companionTo', '0.1.0'),\n source: Chat,\n target: Obj.Unknown,\n }),\n);\n\nexport type LegacyCompanionTo = Type.InstanceType<typeof LegacyCompanionTo>;\n/**\n * Relation between a Chat and companion objects (e.g., artifacts).\n */\nexport const CompanionTo = Schema.Struct({\n id: Obj.ID,\n}).pipe(\n Type.makeRelation({\n dxn: DXN.make('org.dxos.relation.assistant.companionTo', '0.1.0'),\n source: Chat,\n target: Obj.Unknown,\n }),\n);\n\nexport type CompanionTo = Type.InstanceType<typeof CompanionTo>;\n"],
5
+ "mappings": ";;;;;AAAA;;;;;;;AAMA,YAAYA,YAAY;AAExB,SAASC,KAAKC,YAAYC,MAAMC,KAAKC,KAAKC,YAAY;AACtD,SAASC,qBAAqBC,uBAAuB;AAK9C,IAAMC,OAAcC,cAAO;EAChCC,MAAaC,cAAOC,KAAYC,eAAQ;EACxCC,MAAMV,IAAIA,IAAIF,KAAKA,IAAI,EAAEU,KAAKN,oBAAoBS,IAAI,KAAA,CAAA;EACtDC,MAAaL,cAAOC,KAAYC,eAAQ;AAC1C,CAAA,EAAGD,KACDL,gBAAgBQ,IAAI;EAAC;CAAO,GAC5Bd,WAAWgB,eAAeF,IAAI;EAAEG,MAAM;EAAwBC,KAAK;AAAM,CAAA,GACzEd,KAAKe,WAAWpB,IAAIqB,KAAK,gCAAgC,OAAA,CAAA,CAAA;AAIpD,IAAMA,OAAO,CAACC,UAAsCnB,IAAIkB,KAAKb,MAAMc,KAAAA;AAGnE,IAAMC,oBAA2Bd,cAAO;EAC7Ce,IAAIrB,IAAIsB;AACV,CAAA,EAAGb,KACDP,KAAKqB,aAAa;EAChBC,KAAK3B,IAAIqB,KAAK,2CAA2C,OAAA;EACzDO,QAAQpB;EACRqB,QAAQ1B,IAAI2B;AACd,CAAA,CAAA;AAOK,IAAMC,cAAqBtB,cAAO;EACvCe,IAAIrB,IAAIsB;AACV,CAAA,EAAGb,KACDP,KAAKqB,aAAa;EAChBC,KAAK3B,IAAIqB,KAAK,2CAA2C,OAAA;EACzDO,QAAQpB;EACRqB,QAAQ1B,IAAI2B;AACd,CAAA,CAAA;",
6
+ "names": ["Schema", "DXN", "Annotation", "Feed", "Obj", "Ref", "Type", "FormInputAnnotation", "LabelAnnotation", "Chat", "Struct", "name", "String", "pipe", "optional", "feed", "set", "view", "IconAnnotation", "icon", "hue", "makeObject", "make", "props", "LegacyCompanionTo", "id", "ID", "makeRelation", "dxn", "source", "target", "Unknown", "CompanionTo"]
7
+ }
@@ -0,0 +1,67 @@
1
+ import {
2
+ Agent_exports,
3
+ Plan_exports
4
+ } from "./chunk-ALDU6VDG.mjs";
5
+
6
+ // src/blueprints/planning/functions/update-tasks.ts
7
+ import * as Effect from "effect/Effect";
8
+ import * as Schema from "effect/Schema";
9
+ import { AiContext } from "@dxos/assistant";
10
+ import { Operation } from "@dxos/compute";
11
+ import { Database, Obj } from "@dxos/echo";
12
+ import { DXN } from "@dxos/keys";
13
+ import { trim } from "@dxos/util";
14
+
15
+ // raw-loader:/__w/dxos/dxos/packages/core/compute/assistant-toolkit/src/blueprints/planning/functions/update-tasks.md?raw
16
+ var update_tasks_default = '## PLANNING TOOL\n\nThis tool maintains an organized task list.\nUse this to track progress, break down objectives, and ensure thoroughness.\nIf you are asked to create a plan use this tool instead of creating a new document.\nAfter creating initial tasks, update them silently without announcing changes to the user.\nImportant: Do not show or summarize the contents of the task list unless the user asks for this.\n\n### CORE USAGE PRINCIPLES\n\nCreate and manage tasks for: multi-step objectives requiring 3+ distinct actions, complex projects needing careful sequencing,\nuser requests for task organization, multiple deliverables provided together, new instructions (capture as tasks immediately with new IDs),\ncompleted work (mark `done` and add follow-ups), and active work (mark as `in-progress`, limit one at a time).\n\nSkip task management for: single straightforward actions, simple requests achievable in 1-2 steps,\ninformational queries, quick lookups or clarifications, and avoid creating verification tasks unless requested.\n\n### TOOL SPECIFICATION\n\n`update-tasks` requires an array of task objects. Each task object contains:\n\n- id (string, required): unique identifier like "task_1" or "research_sources"\n- title (string, optional): update to clarify or refine task description\n- status (string, optional): `todo` | `in-progress` | `done`\n\nTask status meanings: \'todo\' means not yet started, `in-progress` means currently being worked on, `done` means completed successfully.\n\n### OPERATIONAL GUIDELINES\n\nUpdate tasks in realtime as work progresses. Mark tasks `done` immediately upon completion.\nMaintain only ONE task with `in-progress` status at a time. Complete current tasks before starting new ones.\nUse specific, actionable task titles. Break complex work into manageable logical pieces.\nBatch task updates with other actions when possible for efficiency.\n\n### USAGE EXAMPLES\n\n<example type="research_project">\n<user_message>I need to research sustainable packaging options and write a report comparing costs and environmental impact.</user_message>\n<assistant_action>\nCreates tasks:\n1. {id: "research_materials", title: "Research sustainable packaging materials", status: "in-progress"}\n2. {id: "compare_costs", title: "Compile cost comparison data", status: "todo"}\n3. {id: "assess_impact", title: "Evaluate environmental impact metrics", status: "todo"}\n4. {id: "draft_report", title: "Write comparative analysis report", status: "todo"}\n\nBegins research work immediately in same response.\n</assistant_action>\n<reasoning>Multi-phase project requiring systematic tracking across research, analysis, and writing stages.</reasoning>\n</example>\n\n<example type="event_planning">\n<user_message>Help me plan a team retreat - venue, agenda, catering, and send invitations.</user_message>\n<assistant_action>\nCreates tasks:\n1. {id: "venue_options", title: "Research and recommend venues", status: "in-progress"}\n2. {id: "draft_agenda", title: "Create retreat agenda", status: "todo"}\n3. {id: "arrange_catering", title: "Coordinate catering options", status: "todo"}\n4. {id: "send_invites", title: "Draft and send invitations", status: "todo"}\n</assistant_action>\n<reasoning>Multiple distinct deliverables with dependencies requiring organized tracking.</reasoning>\n</example>\n\n<example type="document_analysis">\n<user_message>Review this 30-page contract for key terms, risks, and negotiation points.</user_message>\n<assistant_action>\nCreates tasks:\n1. {id: "extract_key_terms", title: "Identify key contractual terms", status: "in-progress"}\n2. {id: "flag_risks", title: "Flag potential risks and liabilities", status: "todo"}\n3. {id: "negotiation_points", title: "Compile negotiation recommendations", status: "todo"}\n4. {id: "summary_doc", title: "Prepare executive summary", status: "todo"}\n</assistant_action>\n<reasoning>Substantial analysis work requiring methodical breakdown and systematic review.</reasoning>\n</example>\n\n<example type="multiple_deliverables">\n<user_message>I need: 1) competitor analysis for three companies, 2) SWOT analysis, 3) market positioning recommendations.</user_message>\n<assistant_action>\nCreates tasks:\n1. {id: "competitor_research", title: "Research three competitor companies", status: "in-progress"}\n2. {id: "swot_analysis", title: "Develop SWOT analysis", status: "todo"}\n3. {id: "positioning_recs", title: "Create market positioning recommendations", status: "todo"}\n</assistant_action>\n<reasoning>User provided numbered list of distinct deliverables requiring separate effort.</reasoning>\n</example>\n\n<example type="skip_simple_question">\n<user_message>What\'s the difference between renewable and sustainable energy?</user_message>\n<assistant_action>Provides explanation directly without creating tasks.</assistant_action>\n<reasoning>Informational request with no actionable work to complete or track.</reasoning>\n</example>\n\n<example type="skip_quick_lookup">\n<user_message>Find the population of Tokyo.</user_message>\n<assistant_action>Searches and provides answer without task tracking.</assistant_action>\n<reasoning>Single straightforward lookup completable immediately.</reasoning>\n</example>\n\n<example type="skip_trivial_task">\n<user_message>Summarize this 2-paragraph email.</user_message>\n<assistant_action>Provides summary directly without creating tasks.</assistant_action>\n<reasoning>Single simple action requiring no breakdown or progress tracking.</reasoning>\n</example>\n\n<example type="skip_single_action">\n<user_message>Check if my flight is on time.</user_message>\n<assistant_action>Performs lookup and reports status without task management.</assistant_action>\n<reasoning>One-step action with immediate completion, no organizational benefit from tasks.</reasoning>\n</example>\n\n### BEST PRACTICES\n\nFor task creation: use descriptive unique IDs reflecting the work, start first task as `in-progress`, batch initial creation with beginning work.\nFor progress tracking: update status immediately upon completion, keep only one `in-progress` task unless parallel work is natural, add follow-up tasks as they emerge. For task breakdown: aim for reasonably-scoped tasks, group related small actions into logical units, split tasks requiring different approaches.\n\nWhen uncertain whether to use task management, err on the side of creating tasks.\nProactive organization demonstrates thoroughness and ensures comprehensive work completion.\n';
17
+
18
+ // src/blueprints/planning/functions/update-tasks.ts
19
+ var SimpleTask = Plan_exports.Task.omit("chat");
20
+ var UpdateTasks = Operation.make({
21
+ meta: {
22
+ key: DXN.make("org.dxos.function.planning.updateTasks"),
23
+ name: "Update tasks",
24
+ description: update_tasks_default,
25
+ icon: "ph--check-square-offset--regular"
26
+ },
27
+ input: Schema.Struct({
28
+ tasks: Schema.Array(SimpleTask)
29
+ }),
30
+ output: Schema.Any,
31
+ services: [
32
+ AiContext.Service,
33
+ Database.Service
34
+ ]
35
+ });
36
+ var update_tasks_default2 = UpdateTasks.pipe(Operation.withHandler(Effect.fn(function* ({ tasks: newTasks }) {
37
+ const agent = yield* Agent_exports.getFromChatContext;
38
+ const plan = yield* Database.load(agent.plan);
39
+ Obj.update(plan, (plan2) => {
40
+ for (const task of newTasks) {
41
+ const existingTask = plan2.tasks.find((t) => t.id === task.id);
42
+ if (existingTask) {
43
+ existingTask.title = task.title;
44
+ existingTask.status = task.status;
45
+ } else {
46
+ plan2.tasks.push({
47
+ id: task.id,
48
+ title: task.title,
49
+ status: task.status
50
+ });
51
+ }
52
+ }
53
+ });
54
+ return trim`
55
+ You must update the task status to 'in-progress' when you start and 'done' when complete.
56
+ Current plan updated:
57
+ <plan>
58
+ ${Plan_exports.formatPlan(plan)}
59
+ </plan>
60
+ `;
61
+ })));
62
+
63
+ export {
64
+ UpdateTasks,
65
+ update_tasks_default2 as update_tasks_default
66
+ };
67
+ //# sourceMappingURL=chunk-JRYAD4TG.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/blueprints/planning/functions/update-tasks.ts", "raw-loader:/__w/dxos/dxos/packages/core/compute/assistant-toolkit/src/blueprints/planning/functions/update-tasks.md?raw"],
4
+ "sourcesContent": ["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Schema from 'effect/Schema';\n\nimport { AiContext } from '@dxos/assistant';\nimport { Operation } from '@dxos/compute';\nimport { Database, Obj } from '@dxos/echo';\nimport { DXN } from '@dxos/keys';\nimport { trim } from '@dxos/util';\n\nimport { Plan, Agent } from '../../../types';\nimport INSTRUCTIONS from './update-tasks.md?raw';\n\nconst SimpleTask = Plan.Task.omit('chat');\n\nexport const UpdateTasks = Operation.make({\n meta: {\n key: DXN.make('org.dxos.function.planning.updateTasks'),\n name: 'Update tasks',\n description: INSTRUCTIONS,\n icon: 'ph--check-square-offset--regular',\n },\n input: Schema.Struct({\n tasks: Schema.Array(SimpleTask),\n }),\n output: Schema.Any,\n services: [AiContext.Service, Database.Service],\n});\n\n/**\n * Updates the planning document (Agent.plan) with the given tasks.\n */\nexport default UpdateTasks.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ tasks: newTasks }) {\n const agent = yield* Agent.getFromChatContext;\n // TODO(burdon): How to specify requirements/preconditions before calling?\n // TODO(burdon): How to report non-technical error?\n const plan = yield* Database.load(agent.plan);\n\n Obj.update(plan, (plan) => {\n for (const task of newTasks) {\n const existingTask = plan.tasks.find((t) => t.id === task.id);\n if (existingTask) {\n existingTask.title = task.title;\n existingTask.status = task.status;\n } else {\n plan.tasks.push({\n id: task.id,\n title: task.title,\n status: task.status,\n });\n }\n }\n });\n\n return trim`\n You must update the task status to 'in-progress' when you start and 'done' when complete.\n Current plan updated:\n <plan>\n ${Plan.formatPlan(plan)}\n </plan>\n `;\n }) as any,\n ),\n);\n", "## PLANNING TOOL\n\nThis tool maintains an organized task list.\nUse this to track progress, break down objectives, and ensure thoroughness.\nIf you are asked to create a plan use this tool instead of creating a new document.\nAfter creating initial tasks, update them silently without announcing changes to the user.\nImportant: Do not show or summarize the contents of the task list unless the user asks for this.\n\n### CORE USAGE PRINCIPLES\n\nCreate and manage tasks for: multi-step objectives requiring 3+ distinct actions, complex projects needing careful sequencing,\nuser requests for task organization, multiple deliverables provided together, new instructions (capture as tasks immediately with new IDs),\ncompleted work (mark `done` and add follow-ups), and active work (mark as `in-progress`, limit one at a time).\n\nSkip task management for: single straightforward actions, simple requests achievable in 1-2 steps,\ninformational queries, quick lookups or clarifications, and avoid creating verification tasks unless requested.\n\n### TOOL SPECIFICATION\n\n`update-tasks` requires an array of task objects. Each task object contains:\n\n- id (string, required): unique identifier like \"task_1\" or \"research_sources\"\n- title (string, optional): update to clarify or refine task description\n- status (string, optional): `todo` | `in-progress` | `done`\n\nTask status meanings: 'todo' means not yet started, `in-progress` means currently being worked on, `done` means completed successfully.\n\n### OPERATIONAL GUIDELINES\n\nUpdate tasks in realtime as work progresses. Mark tasks `done` immediately upon completion.\nMaintain only ONE task with `in-progress` status at a time. Complete current tasks before starting new ones.\nUse specific, actionable task titles. Break complex work into manageable logical pieces.\nBatch task updates with other actions when possible for efficiency.\n\n### USAGE EXAMPLES\n\n<example type=\"research_project\">\n<user_message>I need to research sustainable packaging options and write a report comparing costs and environmental impact.</user_message>\n<assistant_action>\nCreates tasks:\n1. {id: \"research_materials\", title: \"Research sustainable packaging materials\", status: \"in-progress\"}\n2. {id: \"compare_costs\", title: \"Compile cost comparison data\", status: \"todo\"}\n3. {id: \"assess_impact\", title: \"Evaluate environmental impact metrics\", status: \"todo\"}\n4. {id: \"draft_report\", title: \"Write comparative analysis report\", status: \"todo\"}\n\nBegins research work immediately in same response.\n</assistant_action>\n<reasoning>Multi-phase project requiring systematic tracking across research, analysis, and writing stages.</reasoning>\n</example>\n\n<example type=\"event_planning\">\n<user_message>Help me plan a team retreat - venue, agenda, catering, and send invitations.</user_message>\n<assistant_action>\nCreates tasks:\n1. {id: \"venue_options\", title: \"Research and recommend venues\", status: \"in-progress\"}\n2. {id: \"draft_agenda\", title: \"Create retreat agenda\", status: \"todo\"}\n3. {id: \"arrange_catering\", title: \"Coordinate catering options\", status: \"todo\"}\n4. {id: \"send_invites\", title: \"Draft and send invitations\", status: \"todo\"}\n</assistant_action>\n<reasoning>Multiple distinct deliverables with dependencies requiring organized tracking.</reasoning>\n</example>\n\n<example type=\"document_analysis\">\n<user_message>Review this 30-page contract for key terms, risks, and negotiation points.</user_message>\n<assistant_action>\nCreates tasks:\n1. {id: \"extract_key_terms\", title: \"Identify key contractual terms\", status: \"in-progress\"}\n2. {id: \"flag_risks\", title: \"Flag potential risks and liabilities\", status: \"todo\"}\n3. {id: \"negotiation_points\", title: \"Compile negotiation recommendations\", status: \"todo\"}\n4. {id: \"summary_doc\", title: \"Prepare executive summary\", status: \"todo\"}\n</assistant_action>\n<reasoning>Substantial analysis work requiring methodical breakdown and systematic review.</reasoning>\n</example>\n\n<example type=\"multiple_deliverables\">\n<user_message>I need: 1) competitor analysis for three companies, 2) SWOT analysis, 3) market positioning recommendations.</user_message>\n<assistant_action>\nCreates tasks:\n1. {id: \"competitor_research\", title: \"Research three competitor companies\", status: \"in-progress\"}\n2. {id: \"swot_analysis\", title: \"Develop SWOT analysis\", status: \"todo\"}\n3. {id: \"positioning_recs\", title: \"Create market positioning recommendations\", status: \"todo\"}\n</assistant_action>\n<reasoning>User provided numbered list of distinct deliverables requiring separate effort.</reasoning>\n</example>\n\n<example type=\"skip_simple_question\">\n<user_message>What's the difference between renewable and sustainable energy?</user_message>\n<assistant_action>Provides explanation directly without creating tasks.</assistant_action>\n<reasoning>Informational request with no actionable work to complete or track.</reasoning>\n</example>\n\n<example type=\"skip_quick_lookup\">\n<user_message>Find the population of Tokyo.</user_message>\n<assistant_action>Searches and provides answer without task tracking.</assistant_action>\n<reasoning>Single straightforward lookup completable immediately.</reasoning>\n</example>\n\n<example type=\"skip_trivial_task\">\n<user_message>Summarize this 2-paragraph email.</user_message>\n<assistant_action>Provides summary directly without creating tasks.</assistant_action>\n<reasoning>Single simple action requiring no breakdown or progress tracking.</reasoning>\n</example>\n\n<example type=\"skip_single_action\">\n<user_message>Check if my flight is on time.</user_message>\n<assistant_action>Performs lookup and reports status without task management.</assistant_action>\n<reasoning>One-step action with immediate completion, no organizational benefit from tasks.</reasoning>\n</example>\n\n### BEST PRACTICES\n\nFor task creation: use descriptive unique IDs reflecting the work, start first task as `in-progress`, batch initial creation with beginning work.\nFor progress tracking: update status immediately upon completion, keep only one `in-progress` task unless parallel work is natural, add follow-up tasks as they emerge. For task breakdown: aim for reasonably-scoped tasks, group related small actions into logical units, split tasks requiring different approaches.\n\nWhen uncertain whether to use task management, err on the side of creating tasks.\nProactive organization demonstrates thoroughness and ensures comprehensive work completion.\n"],
5
+ "mappings": ";;;;;;AAIA,YAAYA,YAAY;AACxB,YAAYC,YAAY;AAExB,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB;AAC1B,SAASC,UAAUC,WAAW;AAC9B,SAASC,WAAW;AACpB,SAASC,YAAY;;;ACXrB;;;ADgBA,IAAMC,aAAaC,aAAKC,KAAKC,KAAK,MAAA;AAE3B,IAAMC,cAAcC,UAAUC,KAAK;EACxCC,MAAM;IACJC,KAAKC,IAAIH,KAAK,wCAAA;IACdI,MAAM;IACNC,aAAaC;IACbC,MAAM;EACR;EACAC,OAAcC,cAAO;IACnBC,OAAcC,aAAMjB,UAAAA;EACtB,CAAA;EACAkB,QAAeC;EACfC,UAAU;IAACC,UAAUC;IAASC,SAASD;;AACzC,CAAA;AAKA,IAAAE,wBAAepB,YAAYqB,KACzBpB,UAAUqB,YACDC,UAAG,WAAW,EAAEX,OAAOY,SAAQ,GAAE;AACtC,QAAMC,QAAQ,OAAOC,cAAMC;AAG3B,QAAMC,OAAO,OAAOT,SAASU,KAAKJ,MAAMG,IAAI;AAE5CE,MAAIC,OAAOH,MAAM,CAACA,UAAAA;AAChB,eAAWI,QAAQR,UAAU;AAC3B,YAAMS,eAAeL,MAAKhB,MAAMsB,KAAK,CAACC,MAAMA,EAAEC,OAAOJ,KAAKI,EAAE;AAC5D,UAAIH,cAAc;AAChBA,qBAAaI,QAAQL,KAAKK;AAC1BJ,qBAAaK,SAASN,KAAKM;MAC7B,OAAO;AACLV,QAAAA,MAAKhB,MAAM2B,KAAK;UACdH,IAAIJ,KAAKI;UACTC,OAAOL,KAAKK;UACZC,QAAQN,KAAKM;QACf,CAAA;MACF;IACF;EACF,CAAA;AAEA,SAAOE;;;;YAID3C,aAAK4C,WAAWb,IAAAA,CAAAA;;;AAGxB,CAAA,CAAA,CAAA;",
6
+ "names": ["Effect", "Schema", "AiContext", "Operation", "Database", "Obj", "DXN", "trim", "SimpleTask", "Plan", "Task", "omit", "UpdateTasks", "Operation", "make", "meta", "key", "DXN", "name", "description", "INSTRUCTIONS", "icon", "input", "Struct", "tasks", "Array", "output", "Any", "services", "AiContext", "Service", "Database", "update_tasks_default", "pipe", "withHandler", "fn", "newTasks", "agent", "Agent", "getFromChatContext", "plan", "load", "Obj", "update", "task", "existingTask", "find", "t", "id", "title", "status", "push", "trim", "formatPlan"]
7
+ }
@@ -1,6 +1,7 @@
1
1
  // src/blueprints/discord/functions/definitions.ts
2
2
  import * as Schema from "effect/Schema";
3
3
  import { Credential, Trace, Operation } from "@dxos/compute";
4
+ import { DXN } from "@dxos/keys";
4
5
  var TimeRangeSchema = Schema.String.pipe(Schema.pattern(/\d+(s|m|h|d)/)).annotations({
5
6
  description: "Time range. 1d - 1 day, 2h - 2 hours, 30m - 30 minutes, 15s - 15 seconds.",
6
7
  examples: [
@@ -33,8 +34,9 @@ var TimeRange = Object.assign(TimeRangeSchema, {
33
34
  });
34
35
  var FetchMessages = Operation.make({
35
36
  meta: {
36
- key: "org.dxos.function.fetch-discord-messages",
37
- name: "Sync Discord messages"
37
+ key: DXN.make("org.dxos.function.discord.fetchDiscordMessages"),
38
+ name: "Sync Discord messages",
39
+ icon: "ph--hash--regular"
38
40
  },
39
41
  input: Schema.Struct({
40
42
  serverId: Schema.String.annotations({
@@ -70,4 +72,4 @@ export {
70
72
  TimeRange,
71
73
  FetchMessages
72
74
  };
73
- //# sourceMappingURL=chunk-ZFXLTBZG.mjs.map
75
+ //# sourceMappingURL=chunk-PHZNOLXL.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/blueprints/discord/functions/definitions.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Credential, Trace, Operation } from '@dxos/compute';\nimport { DXN } from '@dxos/keys';\n\n// TODO(dmaretskyi): Extract.\nconst TimeRangeSchema = Schema.String.pipe(Schema.pattern(/\\d+(s|m|h|d)/)).annotations({\n description: 'Time range. 1d - 1 day, 2h - 2 hours, 30m - 30 minutes, 15s - 15 seconds.',\n examples: ['1d', '2h', '30m', '15s'],\n});\n\nexport const TimeRange = Object.assign(TimeRangeSchema, {\n toSeconds(timeRange: string) {\n const match = timeRange.match(/(\\d+)(s|m|h|d)/);\n if (!match) {\n throw new Error(`Invalid time range: ${timeRange}`);\n }\n const [_, amount, unit] = match;\n switch (unit) {\n case 's':\n return Number(amount);\n case 'm':\n return Number(amount) * 60;\n case 'h':\n return Number(amount) * 60 * 60;\n case 'd':\n return Number(amount) * 24 * 60 * 60;\n default:\n throw new Error(`Invalid time range unit: ${unit}`);\n }\n },\n});\n\nexport const FetchMessages = Operation.make({\n meta: {\n key: DXN.make('org.dxos.function.discord.fetchDiscordMessages'),\n name: 'Sync Discord messages',\n icon: 'ph--hash--regular',\n },\n input: Schema.Struct({\n serverId: Schema.String.annotations({\n description: 'The ID of the server to fetch messages from.',\n }),\n channelId: Schema.optional(Schema.String).annotations({\n description:\n 'The ID of the channel to fetch messages from. Will crawl all channels from the server if not specified.',\n }),\n after: Schema.optional(Schema.Number).annotations({\n description:\n 'Fetch messages that were sent after a given date. Unix timestamp in seconds. Exclusive with `last`.',\n }),\n last: TimeRange.annotations({\n description:\n 'Time range to fetch most recent messages. Specifies the range in the past, from now. \"1d\" would fetch messages from the last 24 hours.',\n }),\n limit: Schema.optional(Schema.Number).annotations({\n description: 'The maximum number of messages to fetch.',\n }),\n pageSize: Schema.optional(Schema.Number).annotations({\n description: 'The number of messages to fetch per page.',\n }),\n ignoreUsernames: Schema.optional(Schema.Array(Schema.String)).annotations({\n description: 'Exclude messages from these usernames.',\n }),\n }),\n output: Schema.Any,\n services: [Credential.CredentialsService, Trace.TraceService],\n});\n"],
5
+ "mappings": ";AAIA,YAAYA,YAAY;AAExB,SAASC,YAAYC,OAAOC,iBAAiB;AAC7C,SAASC,WAAW;AAGpB,IAAMC,kBAAyBC,cAAOC,KAAYC,eAAQ,cAAA,CAAA,EAAiBC,YAAY;EACrFC,aAAa;EACbC,UAAU;IAAC;IAAM;IAAM;IAAO;;AAChC,CAAA;AAEO,IAAMC,YAAYC,OAAOC,OAAOT,iBAAiB;EACtDU,UAAUC,WAAiB;AACzB,UAAMC,QAAQD,UAAUC,MAAM,gBAAA;AAC9B,QAAI,CAACA,OAAO;AACV,YAAM,IAAIC,MAAM,uBAAuBF,SAAAA,EAAW;IACpD;AACA,UAAM,CAACG,GAAGC,QAAQC,IAAAA,IAAQJ;AAC1B,YAAQI,MAAAA;MACN,KAAK;AACH,eAAOC,OAAOF,MAAAA;MAChB,KAAK;AACH,eAAOE,OAAOF,MAAAA,IAAU;MAC1B,KAAK;AACH,eAAOE,OAAOF,MAAAA,IAAU,KAAK;MAC/B,KAAK;AACH,eAAOE,OAAOF,MAAAA,IAAU,KAAK,KAAK;MACpC;AACE,cAAM,IAAIF,MAAM,4BAA4BG,IAAAA,EAAM;IACtD;EACF;AACF,CAAA;AAEO,IAAME,gBAAgBpB,UAAUqB,KAAK;EAC1CC,MAAM;IACJC,KAAKtB,IAAIoB,KAAK,gDAAA;IACdG,MAAM;IACNC,MAAM;EACR;EACAC,OAAcC,cAAO;IACnBC,UAAiBzB,cAAOG,YAAY;MAClCC,aAAa;IACf,CAAA;IACAsB,WAAkBC,gBAAgB3B,aAAM,EAAEG,YAAY;MACpDC,aACE;IACJ,CAAA;IACAwB,OAAcD,gBAAgBX,aAAM,EAAEb,YAAY;MAChDC,aACE;IACJ,CAAA;IACAyB,MAAMvB,UAAUH,YAAY;MAC1BC,aACE;IACJ,CAAA;IACA0B,OAAcH,gBAAgBX,aAAM,EAAEb,YAAY;MAChDC,aAAa;IACf,CAAA;IACA2B,UAAiBJ,gBAAgBX,aAAM,EAAEb,YAAY;MACnDC,aAAa;IACf,CAAA;IACA4B,iBAAwBL,gBAAgBM,aAAajC,aAAM,CAAA,EAAGG,YAAY;MACxEC,aAAa;IACf,CAAA;EACF,CAAA;EACA8B,QAAeC;EACfC,UAAU;IAACzC,WAAW0C;IAAoBzC,MAAM0C;;AAClD,CAAA;",
6
+ "names": ["Schema", "Credential", "Trace", "Operation", "DXN", "TimeRangeSchema", "String", "pipe", "pattern", "annotations", "description", "examples", "TimeRange", "Object", "assign", "toSeconds", "timeRange", "match", "Error", "_", "amount", "unit", "Number", "FetchMessages", "make", "meta", "key", "name", "icon", "input", "Struct", "serverId", "channelId", "optional", "after", "last", "limit", "pageSize", "ignoreUsernames", "Array", "output", "Any", "services", "CredentialsService", "TraceService"]
7
+ }
@@ -8,22 +8,19 @@ __export(Memory_exports, {
8
8
  Memory: () => Memory
9
9
  });
10
10
  import * as Schema from "effect/Schema";
11
- import { Annotation, Type } from "@dxos/echo";
11
+ import { DXN, Annotation, Type } from "@dxos/echo";
12
12
  var Memory = Schema.Struct({
13
13
  title: Schema.String,
14
14
  content: Schema.String
15
- }).pipe(Type.object({
16
- typename: "org.dxos.type.memory",
17
- version: "0.1.0"
18
- }), Annotation.LabelAnnotation.set([
15
+ }).pipe(Annotation.LabelAnnotation.set([
19
16
  "title"
20
17
  ]), Annotation.IconAnnotation.set({
21
18
  icon: "ph--brain--regular",
22
19
  hue: "pink"
23
- }));
20
+ }), Type.makeObject(DXN.make("org.dxos.type.memory", "0.1.0")));
24
21
 
25
22
  export {
26
23
  Memory,
27
24
  Memory_exports
28
25
  };
29
- //# sourceMappingURL=chunk-KGU725LW.mjs.map
26
+ //# sourceMappingURL=chunk-SOLG2NPH.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types/Memory.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { DXN, Annotation, Type } from '@dxos/echo';\n\n/**\n * Unit of knowledge generated by an agent.\n */\nexport const Memory = Schema.Struct({\n title: Schema.String,\n content: Schema.String,\n}).pipe(\n Annotation.LabelAnnotation.set(['title']),\n Annotation.IconAnnotation.set({ icon: 'ph--brain--regular', hue: 'pink' }),\n Type.makeObject(DXN.make('org.dxos.type.memory', '0.1.0')),\n);\n\nexport type Memory = Type.InstanceType<typeof Memory>;\n"],
5
+ "mappings": ";;;;;AAAA;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,KAAKC,YAAYC,YAAY;AAK/B,IAAMC,SAAgBC,cAAO;EAClCC,OAAcC;EACdC,SAAgBD;AAClB,CAAA,EAAGE,KACDP,WAAWQ,gBAAgBC,IAAI;EAAC;CAAQ,GACxCT,WAAWU,eAAeD,IAAI;EAAEE,MAAM;EAAsBC,KAAK;AAAO,CAAA,GACxEX,KAAKY,WAAWd,IAAIe,KAAK,wBAAwB,OAAA,CAAA,CAAA;",
6
+ "names": ["Schema", "DXN", "Annotation", "Type", "Memory", "Struct", "title", "String", "content", "pipe", "LabelAnnotation", "set", "IconAnnotation", "icon", "hue", "makeObject", "make"]
7
+ }