@dxos/assistant-toolkit 0.8.4-main.c85a9c8dae → 0.8.4-main.d05539e30a

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 (509) hide show
  1. package/LICENSE +102 -5
  2. package/dist/lib/neutral/add-artifact-4IVGW6CI.mjs +30 -0
  3. package/dist/lib/neutral/add-artifact-4IVGW6CI.mjs.map +7 -0
  4. package/dist/lib/neutral/agent-F4L7UXME.mjs +65 -0
  5. package/dist/lib/neutral/agent-F4L7UXME.mjs.map +7 -0
  6. package/dist/lib/neutral/chunk-5GPL2WXU.mjs +292 -0
  7. package/dist/lib/neutral/chunk-5GPL2WXU.mjs.map +7 -0
  8. package/dist/lib/neutral/chunk-7UCYAP3T.mjs +332 -0
  9. package/dist/lib/neutral/chunk-7UCYAP3T.mjs.map +7 -0
  10. package/dist/lib/neutral/chunk-ANSF2BHN.mjs +67 -0
  11. package/dist/lib/neutral/chunk-ANSF2BHN.mjs.map +7 -0
  12. package/dist/lib/neutral/chunk-BCT55UTL.mjs +75 -0
  13. package/dist/lib/neutral/chunk-BCT55UTL.mjs.map +7 -0
  14. package/dist/lib/neutral/chunk-COL54UJ3.mjs +60 -0
  15. package/dist/lib/neutral/chunk-COL54UJ3.mjs.map +7 -0
  16. package/dist/lib/neutral/chunk-EJAQUAKM.mjs +73 -0
  17. package/dist/lib/neutral/chunk-EJAQUAKM.mjs.map +7 -0
  18. package/dist/lib/neutral/chunk-KGU725LW.mjs +29 -0
  19. package/dist/lib/neutral/chunk-KGU725LW.mjs.map +7 -0
  20. package/dist/lib/neutral/chunk-KS3IA6FQ.mjs +101 -0
  21. package/dist/lib/neutral/chunk-KS3IA6FQ.mjs.map +7 -0
  22. package/dist/lib/neutral/chunk-MMQ7HFL4.mjs +107 -0
  23. package/dist/lib/neutral/chunk-MMQ7HFL4.mjs.map +7 -0
  24. package/dist/lib/neutral/chunk-NR3GTWRC.mjs +53 -0
  25. package/dist/lib/neutral/chunk-NR3GTWRC.mjs.map +7 -0
  26. package/dist/lib/neutral/chunk-PLGEBNTO.mjs +65 -0
  27. package/dist/lib/neutral/chunk-PLGEBNTO.mjs.map +7 -0
  28. package/dist/lib/neutral/chunk-W2722TC5.mjs +70 -0
  29. package/dist/lib/neutral/chunk-W2722TC5.mjs.map +7 -0
  30. package/dist/lib/neutral/chunk-WLR3BGO4.mjs +25 -0
  31. package/dist/lib/neutral/chunk-WLR3BGO4.mjs.map +7 -0
  32. package/dist/lib/neutral/chunk-ZFXLTBZG.mjs +73 -0
  33. package/dist/lib/neutral/chunk-ZFXLTBZG.mjs.map +7 -0
  34. package/dist/lib/neutral/context-add-S5MBW2NA.mjs +22 -0
  35. package/dist/lib/neutral/context-add-S5MBW2NA.mjs.map +7 -0
  36. package/dist/lib/neutral/context-remove-35O5T5N5.mjs +22 -0
  37. package/dist/lib/neutral/context-remove-35O5T5N5.mjs.map +7 -0
  38. package/dist/lib/neutral/create-project-3AGXJ4TD.mjs +35 -0
  39. package/dist/lib/neutral/create-project-3AGXJ4TD.mjs.map +7 -0
  40. package/dist/lib/neutral/delete-J3PMWP7Z.mjs +19 -0
  41. package/dist/lib/neutral/delete-J3PMWP7Z.mjs.map +7 -0
  42. package/dist/lib/neutral/enable-blueprints-IVKST3WH.mjs +47 -0
  43. package/dist/lib/neutral/enable-blueprints-IVKST3WH.mjs.map +7 -0
  44. package/dist/lib/neutral/fetch-KHMHV7JR.mjs +16 -0
  45. package/dist/lib/neutral/fetch-KHMHV7JR.mjs.map +7 -0
  46. package/dist/lib/neutral/fetch-messages-QOBBCTGC.mjs +139 -0
  47. package/dist/lib/neutral/fetch-messages-QOBBCTGC.mjs.map +7 -0
  48. package/dist/lib/neutral/get-context-FBYWIP72.mjs +35 -0
  49. package/dist/lib/neutral/get-context-FBYWIP72.mjs.map +7 -0
  50. package/dist/lib/neutral/index.mjs +598 -3312
  51. package/dist/lib/neutral/index.mjs.map +4 -4
  52. package/dist/lib/neutral/load-GAT3T2AD.mjs +17 -0
  53. package/dist/lib/neutral/load-GAT3T2AD.mjs.map +7 -0
  54. package/dist/lib/neutral/meta.json +1 -1
  55. package/dist/lib/neutral/object-create-PL3WRP74.mjs +35 -0
  56. package/dist/lib/neutral/object-create-PL3WRP74.mjs.map +7 -0
  57. package/dist/lib/neutral/object-delete-PZJQN5KW.mjs +18 -0
  58. package/dist/lib/neutral/object-delete-PZJQN5KW.mjs.map +7 -0
  59. package/dist/lib/neutral/object-update-R43N3VJX.mjs +28 -0
  60. package/dist/lib/neutral/object-update-R43N3VJX.mjs.map +7 -0
  61. package/dist/lib/neutral/project-VVXXUMAI.mjs +23 -0
  62. package/dist/lib/neutral/project-VVXXUMAI.mjs.map +7 -0
  63. package/dist/lib/neutral/project-rules-KSVSOZJV.mjs +78 -0
  64. package/dist/lib/neutral/project-rules-KSVSOZJV.mjs.map +7 -0
  65. package/dist/lib/neutral/prompt-INL55Q2B.mjs +170 -0
  66. package/dist/lib/neutral/prompt-INL55Q2B.mjs.map +7 -0
  67. package/dist/lib/neutral/qualifier-DAF4H7V3.mjs +88 -0
  68. package/dist/lib/neutral/qualifier-DAF4H7V3.mjs.map +7 -0
  69. package/dist/lib/neutral/query-MP5NSQKO.mjs +69 -0
  70. package/dist/lib/neutral/query-MP5NSQKO.mjs.map +7 -0
  71. package/dist/lib/neutral/query-U56GNEV6.mjs +32 -0
  72. package/dist/lib/neutral/query-U56GNEV6.mjs.map +7 -0
  73. package/dist/lib/neutral/query-blueprints-PLWYVOI3.mjs +16 -0
  74. package/dist/lib/neutral/query-blueprints-PLWYVOI3.mjs.map +7 -0
  75. package/dist/lib/neutral/relation-create-YAAAFTR2.mjs +34 -0
  76. package/dist/lib/neutral/relation-create-YAAAFTR2.mjs.map +7 -0
  77. package/dist/lib/neutral/relation-delete-IEPKERFR.mjs +18 -0
  78. package/dist/lib/neutral/relation-delete-IEPKERFR.mjs.map +7 -0
  79. package/dist/lib/neutral/save-GWAPLT3Z.mjs +23 -0
  80. package/dist/lib/neutral/save-GWAPLT3Z.mjs.map +7 -0
  81. package/dist/lib/neutral/schema-add-5BNIINRS.mjs +24 -0
  82. package/dist/lib/neutral/schema-add-5BNIINRS.mjs.map +7 -0
  83. package/dist/lib/neutral/schema-list-54UK7S4R.mjs +38 -0
  84. package/dist/lib/neutral/schema-list-54UK7S4R.mjs.map +7 -0
  85. package/dist/lib/neutral/sync-issues-DWY76B3M.mjs +166 -0
  86. package/dist/lib/neutral/sync-issues-DWY76B3M.mjs.map +7 -0
  87. package/dist/lib/neutral/sync-triggers-NOIQLELD.mjs +135 -0
  88. package/dist/lib/neutral/sync-triggers-NOIQLELD.mjs.map +7 -0
  89. package/dist/lib/neutral/tag-add-NLVRGTC6.mjs +19 -0
  90. package/dist/lib/neutral/tag-add-NLVRGTC6.mjs.map +7 -0
  91. package/dist/lib/neutral/tag-remove-N4HFBIA2.mjs +19 -0
  92. package/dist/lib/neutral/tag-remove-N4HFBIA2.mjs.map +7 -0
  93. package/dist/lib/neutral/testing/index.mjs +12 -17
  94. package/dist/lib/neutral/testing/index.mjs.map +3 -3
  95. package/dist/lib/neutral/update-blueprints-2SNK6HLG.mjs +16 -0
  96. package/dist/lib/neutral/update-blueprints-2SNK6HLG.mjs.map +7 -0
  97. package/dist/lib/neutral/update-tasks-QQUR53RN.mjs +13 -0
  98. package/dist/lib/neutral/update-tasks-QQUR53RN.mjs.map +7 -0
  99. package/dist/types/src/blueprints/automation/blueprint.d.ts +4 -0
  100. package/dist/types/src/blueprints/automation/blueprint.d.ts.map +1 -0
  101. package/dist/types/src/blueprints/automation/index.d.ts +2 -0
  102. package/dist/types/src/blueprints/automation/index.d.ts.map +1 -0
  103. package/dist/types/src/blueprints/blueprint-manager/blueprint.d.ts +4 -0
  104. package/dist/types/src/blueprints/blueprint-manager/blueprint.d.ts.map +1 -0
  105. package/dist/types/src/blueprints/blueprint-manager/blueprint.test.d.ts.map +1 -0
  106. package/dist/types/src/blueprints/blueprint-manager/functions/definitions.d.ts +61 -0
  107. package/dist/types/src/blueprints/blueprint-manager/functions/definitions.d.ts.map +1 -0
  108. package/dist/types/src/blueprints/blueprint-manager/functions/enable-blueprints.d.ts +36 -0
  109. package/dist/types/src/blueprints/blueprint-manager/functions/enable-blueprints.d.ts.map +1 -0
  110. package/dist/types/src/blueprints/blueprint-manager/functions/index.d.ts +4 -0
  111. package/dist/types/src/blueprints/blueprint-manager/functions/index.d.ts.map +1 -0
  112. package/dist/types/src/blueprints/blueprint-manager/functions/query-blueprints.d.ts +27 -0
  113. package/dist/types/src/blueprints/blueprint-manager/functions/query-blueprints.d.ts.map +1 -0
  114. package/dist/types/src/blueprints/blueprint-manager/functions/update-blueprints.d.ts +4 -0
  115. package/dist/types/src/blueprints/blueprint-manager/functions/update-blueprints.d.ts.map +1 -0
  116. package/dist/types/src/blueprints/blueprint-manager/index.d.ts +3 -0
  117. package/dist/types/src/blueprints/blueprint-manager/index.d.ts.map +1 -0
  118. package/dist/types/src/blueprints/browser/blueprint.d.ts +2 -2
  119. package/dist/types/src/blueprints/browser/blueprint.d.ts.map +1 -1
  120. package/dist/types/src/blueprints/database/blueprint.d.ts +2 -2
  121. package/dist/types/src/blueprints/database/blueprint.d.ts.map +1 -1
  122. package/dist/types/src/blueprints/database/functions/context-add.d.ts +5 -4
  123. package/dist/types/src/blueprints/database/functions/context-add.d.ts.map +1 -1
  124. package/dist/types/src/blueprints/database/functions/context-remove.d.ts +5 -4
  125. package/dist/types/src/blueprints/database/functions/context-remove.d.ts.map +1 -1
  126. package/dist/types/src/blueprints/database/functions/definitions.d.ts +59 -0
  127. package/dist/types/src/blueprints/database/functions/definitions.d.ts.map +1 -0
  128. package/dist/types/src/blueprints/database/functions/index.d.ts +3 -56
  129. package/dist/types/src/blueprints/database/functions/index.d.ts.map +1 -1
  130. package/dist/types/src/blueprints/database/functions/load.d.ts +5 -4
  131. package/dist/types/src/blueprints/database/functions/load.d.ts.map +1 -1
  132. package/dist/types/src/blueprints/database/functions/object-create.d.ts +5 -3
  133. package/dist/types/src/blueprints/database/functions/object-create.d.ts.map +1 -1
  134. package/dist/types/src/blueprints/database/functions/object-delete.d.ts +5 -4
  135. package/dist/types/src/blueprints/database/functions/object-delete.d.ts.map +1 -1
  136. package/dist/types/src/blueprints/database/functions/object-update.d.ts +5 -4
  137. package/dist/types/src/blueprints/database/functions/object-update.d.ts.map +1 -1
  138. package/dist/types/src/blueprints/database/functions/query.d.ts +6 -3
  139. package/dist/types/src/blueprints/database/functions/query.d.ts.map +1 -1
  140. package/dist/types/src/blueprints/database/functions/relation-create.d.ts +6 -5
  141. package/dist/types/src/blueprints/database/functions/relation-create.d.ts.map +1 -1
  142. package/dist/types/src/blueprints/database/functions/relation-delete.d.ts +5 -4
  143. package/dist/types/src/blueprints/database/functions/relation-delete.d.ts.map +1 -1
  144. package/dist/types/src/blueprints/database/functions/schema-add.d.ts +4 -2
  145. package/dist/types/src/blueprints/database/functions/schema-add.d.ts.map +1 -1
  146. package/dist/types/src/blueprints/database/functions/schema-list.d.ts +4 -2
  147. package/dist/types/src/blueprints/database/functions/schema-list.d.ts.map +1 -1
  148. package/dist/types/src/blueprints/database/functions/tag-add.d.ts +4 -3
  149. package/dist/types/src/blueprints/database/functions/tag-add.d.ts.map +1 -1
  150. package/dist/types/src/blueprints/database/functions/tag-remove.d.ts +4 -3
  151. package/dist/types/src/blueprints/database/functions/tag-remove.d.ts.map +1 -1
  152. package/dist/types/src/blueprints/database/index.d.ts +1 -1
  153. package/dist/types/src/blueprints/database/index.d.ts.map +1 -1
  154. package/dist/types/src/blueprints/discord/blueprint.d.ts +2 -2
  155. package/dist/types/src/blueprints/discord/blueprint.d.ts.map +1 -1
  156. package/dist/types/src/blueprints/discord/functions/definitions.d.ts +15 -0
  157. package/dist/types/src/blueprints/discord/functions/definitions.d.ts.map +1 -0
  158. package/dist/types/src/blueprints/discord/functions/fetch-messages.d.ts +3 -2
  159. package/dist/types/src/blueprints/discord/functions/fetch-messages.d.ts.map +1 -1
  160. package/dist/types/src/blueprints/discord/functions/index.d.ts +3 -11
  161. package/dist/types/src/blueprints/discord/functions/index.d.ts.map +1 -1
  162. package/dist/types/src/blueprints/discord/index.d.ts +1 -0
  163. package/dist/types/src/blueprints/discord/index.d.ts.map +1 -1
  164. package/dist/types/src/blueprints/github/functions/definitions.d.ts +7 -0
  165. package/dist/types/src/blueprints/github/functions/definitions.d.ts.map +1 -0
  166. package/dist/types/src/blueprints/github/functions/fetch-prs.d.ts +4 -2
  167. package/dist/types/src/blueprints/github/functions/fetch-prs.d.ts.map +1 -1
  168. package/dist/types/src/blueprints/github/functions/index.d.ts +3 -6
  169. package/dist/types/src/blueprints/github/functions/index.d.ts.map +1 -1
  170. package/dist/types/src/blueprints/github/index.d.ts +1 -0
  171. package/dist/types/src/blueprints/github/index.d.ts.map +1 -1
  172. package/dist/types/src/blueprints/index.d.ts +4 -3
  173. package/dist/types/src/blueprints/index.d.ts.map +1 -1
  174. package/dist/types/src/blueprints/linear/blueprint.d.ts +2 -2
  175. package/dist/types/src/blueprints/linear/blueprint.d.ts.map +1 -1
  176. package/dist/types/src/blueprints/linear/functions/definitions.d.ts +6 -0
  177. package/dist/types/src/blueprints/linear/functions/definitions.d.ts.map +1 -0
  178. package/dist/types/src/blueprints/linear/functions/index.d.ts +3 -8
  179. package/dist/types/src/blueprints/linear/functions/index.d.ts.map +1 -1
  180. package/dist/types/src/blueprints/linear/functions/sync-issues.d.ts +4 -6
  181. package/dist/types/src/blueprints/linear/functions/sync-issues.d.ts.map +1 -1
  182. package/dist/types/src/blueprints/linear/index.d.ts +1 -0
  183. package/dist/types/src/blueprints/linear/index.d.ts.map +1 -1
  184. package/dist/types/src/blueprints/memory/blueprint.d.ts +4 -0
  185. package/dist/types/src/blueprints/memory/blueprint.d.ts.map +1 -0
  186. package/dist/types/src/blueprints/memory/blueprint.test.d.ts.map +1 -0
  187. package/dist/types/src/blueprints/memory/functions/definitions.d.ts +17 -0
  188. package/dist/types/src/blueprints/memory/functions/definitions.d.ts.map +1 -0
  189. package/dist/types/src/blueprints/memory/functions/delete.d.ts +10 -0
  190. package/dist/types/src/blueprints/memory/functions/delete.d.ts.map +1 -0
  191. package/dist/types/src/blueprints/memory/functions/index.d.ts +4 -0
  192. package/dist/types/src/blueprints/memory/functions/index.d.ts.map +1 -0
  193. package/dist/types/src/blueprints/memory/functions/query.d.ts +8 -0
  194. package/dist/types/src/blueprints/memory/functions/query.d.ts.map +1 -0
  195. package/dist/types/src/blueprints/memory/functions/save.d.ts +8 -0
  196. package/dist/types/src/blueprints/memory/functions/save.d.ts.map +1 -0
  197. package/dist/types/src/blueprints/memory/index.d.ts +3 -0
  198. package/dist/types/src/blueprints/memory/index.d.ts.map +1 -0
  199. package/dist/types/src/blueprints/planning/blueprint.d.ts +2 -2
  200. package/dist/types/src/blueprints/planning/blueprint.d.ts.map +1 -1
  201. package/dist/types/src/blueprints/planning/functions/index.d.ts +3 -9
  202. package/dist/types/src/blueprints/planning/functions/index.d.ts.map +1 -1
  203. package/dist/types/src/blueprints/planning/functions/update-tasks.d.ts +18 -3
  204. package/dist/types/src/blueprints/planning/functions/update-tasks.d.ts.map +1 -1
  205. package/dist/types/src/blueprints/planning/functions/update-tasks.test.d.ts +2 -0
  206. package/dist/types/src/blueprints/planning/functions/update-tasks.test.d.ts.map +1 -0
  207. package/dist/types/src/blueprints/planning/index.d.ts +1 -0
  208. package/dist/types/src/blueprints/planning/index.d.ts.map +1 -1
  209. package/dist/types/src/blueprints/project/blueprint.d.ts +2 -2
  210. package/dist/types/src/blueprints/project/blueprint.d.ts.map +1 -1
  211. package/dist/types/src/blueprints/project/functions/add-artifact.d.ts +2 -5
  212. package/dist/types/src/blueprints/project/functions/add-artifact.d.ts.map +1 -1
  213. package/dist/types/src/blueprints/project/functions/agent.d.ts +2 -60
  214. package/dist/types/src/blueprints/project/functions/agent.d.ts.map +1 -1
  215. package/dist/types/src/blueprints/project/functions/definitions.d.ts +166 -0
  216. package/dist/types/src/blueprints/project/functions/definitions.d.ts.map +1 -0
  217. package/dist/types/src/blueprints/project/functions/get-context.d.ts +2 -11
  218. package/dist/types/src/blueprints/project/functions/get-context.d.ts.map +1 -1
  219. package/dist/types/src/blueprints/project/functions/index.d.ts +3 -132
  220. package/dist/types/src/blueprints/project/functions/index.d.ts.map +1 -1
  221. package/dist/types/src/blueprints/project/functions/qualifier.d.ts +34 -17
  222. package/dist/types/src/blueprints/project/functions/qualifier.d.ts.map +1 -1
  223. package/dist/types/src/blueprints/project/index.d.ts +2 -2
  224. package/dist/types/src/blueprints/project/index.d.ts.map +1 -1
  225. package/dist/types/src/blueprints/project-wizard/blueprint.d.ts +4 -0
  226. package/dist/types/src/blueprints/project-wizard/blueprint.d.ts.map +1 -0
  227. package/dist/types/src/blueprints/project-wizard/functions/create-project.d.ts +55 -0
  228. package/dist/types/src/blueprints/project-wizard/functions/create-project.d.ts.map +1 -0
  229. package/dist/types/src/blueprints/project-wizard/functions/definitions.d.ts +104 -0
  230. package/dist/types/src/blueprints/project-wizard/functions/definitions.d.ts.map +1 -0
  231. package/dist/types/src/blueprints/project-wizard/functions/index.d.ts +4 -0
  232. package/dist/types/src/blueprints/project-wizard/functions/index.d.ts.map +1 -0
  233. package/dist/types/src/blueprints/project-wizard/functions/project-rules.d.ts +4 -0
  234. package/dist/types/src/blueprints/project-wizard/functions/project-rules.d.ts.map +1 -0
  235. package/dist/types/src/blueprints/project-wizard/functions/sync-triggers.d.ts +52 -0
  236. package/dist/types/src/blueprints/project-wizard/functions/sync-triggers.d.ts.map +1 -0
  237. package/dist/types/src/blueprints/project-wizard/index.d.ts +3 -0
  238. package/dist/types/src/blueprints/project-wizard/index.d.ts.map +1 -0
  239. package/dist/types/src/blueprints/testing.d.ts +5 -15
  240. package/dist/types/src/blueprints/testing.d.ts.map +1 -1
  241. package/dist/types/src/blueprints/websearch/blueprint.d.ts +2 -2
  242. package/dist/types/src/blueprints/websearch/blueprint.d.ts.map +1 -1
  243. package/dist/types/src/blueprints/websearch/blueprint.test.d.ts.map +1 -0
  244. package/dist/types/src/blueprints/websearch/functions/definitions.d.ts +5 -0
  245. package/dist/types/src/blueprints/websearch/functions/definitions.d.ts.map +1 -0
  246. package/dist/types/src/blueprints/websearch/functions/fetch.d.ts +6 -0
  247. package/dist/types/src/blueprints/websearch/functions/fetch.d.ts.map +1 -0
  248. package/dist/types/src/blueprints/websearch/functions/index.d.ts +4 -0
  249. package/dist/types/src/blueprints/websearch/functions/index.d.ts.map +1 -0
  250. package/dist/types/src/blueprints/websearch/index.d.ts +2 -1
  251. package/dist/types/src/blueprints/websearch/index.d.ts.map +1 -1
  252. package/dist/types/src/blueprints/websearch/toolkit.d.ts +2 -0
  253. package/dist/types/src/blueprints/websearch/toolkit.d.ts.map +1 -1
  254. package/dist/types/src/crud/graph.d.ts +5 -7
  255. package/dist/types/src/crud/graph.d.ts.map +1 -1
  256. package/dist/types/src/errors.d.ts +41 -0
  257. package/dist/types/src/errors.d.ts.map +1 -0
  258. package/dist/types/src/functions/agent/definitions.d.ts +61 -0
  259. package/dist/types/src/functions/agent/definitions.d.ts.map +1 -0
  260. package/dist/types/src/functions/agent/index.d.ts +3 -84
  261. package/dist/types/src/functions/agent/index.d.ts.map +1 -1
  262. package/dist/types/src/functions/agent/prompt.d.ts +2 -82
  263. package/dist/types/src/functions/agent/prompt.d.ts.map +1 -1
  264. package/dist/types/src/functions/agent/prompt.test.d.ts +2 -0
  265. package/dist/types/src/functions/agent/prompt.test.d.ts.map +1 -0
  266. package/dist/types/src/functions/index.d.ts +0 -2
  267. package/dist/types/src/functions/index.d.ts.map +1 -1
  268. package/dist/types/src/sync/sync.d.ts +1 -2
  269. package/dist/types/src/sync/sync.d.ts.map +1 -1
  270. package/dist/types/src/testing/plugins.d.ts.map +1 -1
  271. package/dist/types/src/toolkits/WebToolkit.d.ts.map +1 -1
  272. package/dist/types/src/types/Agent.d.ts +79 -0
  273. package/dist/types/src/types/Agent.d.ts.map +1 -0
  274. package/dist/types/src/types/Chat.d.ts +32 -7
  275. package/dist/types/src/types/Chat.d.ts.map +1 -1
  276. package/dist/types/src/types/McpServer.d.ts +21 -0
  277. package/dist/types/src/types/McpServer.d.ts.map +1 -0
  278. package/dist/types/src/types/Memory.d.ts +12 -0
  279. package/dist/types/src/types/Memory.d.ts.map +1 -0
  280. package/dist/types/src/types/Plan.d.ts +23 -11
  281. package/dist/types/src/types/Plan.d.ts.map +1 -1
  282. package/dist/types/src/types/index.d.ts +3 -1
  283. package/dist/types/src/types/index.d.ts.map +1 -1
  284. package/dist/types/src/util/graphql.d.ts.map +1 -1
  285. package/dist/types/tsconfig.tsbuildinfo +1 -1
  286. package/package.json +28 -32
  287. package/src/blueprints/automation/blueprint.ts +105 -0
  288. package/src/blueprints/automation/index.ts +5 -0
  289. package/src/blueprints/blueprint-manager/blueprint.conversations.json +1 -0
  290. package/src/blueprints/blueprint-manager/blueprint.test.ts +202 -0
  291. package/src/blueprints/blueprint-manager/blueprint.ts +49 -0
  292. package/src/blueprints/blueprint-manager/functions/definitions.ts +57 -0
  293. package/src/blueprints/blueprint-manager/functions/enable-blueprints.ts +43 -0
  294. package/src/blueprints/blueprint-manager/functions/index.ts +13 -0
  295. package/src/blueprints/blueprint-manager/functions/query-blueprints.ts +18 -0
  296. package/src/blueprints/blueprint-manager/functions/update-blueprints.ts +18 -0
  297. package/src/blueprints/blueprint-manager/index.ts +6 -0
  298. package/src/blueprints/browser/blueprint.test.ts +23 -32
  299. package/src/blueprints/browser/blueprint.ts +5 -6
  300. package/src/blueprints/database/blueprint.conversations.json +1 -1
  301. package/src/blueprints/database/blueprint.test.ts +312 -102
  302. package/src/blueprints/database/blueprint.ts +37 -10
  303. package/src/blueprints/database/functions/context-add.ts +16 -27
  304. package/src/blueprints/database/functions/context-remove.ts +17 -28
  305. package/src/blueprints/database/functions/definitions.ts +318 -0
  306. package/src/blueprints/database/functions/index.ts +18 -28
  307. package/src/blueprints/database/functions/load.ts +11 -23
  308. package/src/blueprints/database/functions/object-create.ts +28 -25
  309. package/src/blueprints/database/functions/object-delete.ts +13 -20
  310. package/src/blueprints/database/functions/object-update.ts +23 -25
  311. package/src/blueprints/database/functions/query.ts +48 -111
  312. package/src/blueprints/database/functions/relation-create.ts +25 -38
  313. package/src/blueprints/database/functions/relation-delete.ts +14 -21
  314. package/src/blueprints/database/functions/schema-add.ts +19 -31
  315. package/src/blueprints/database/functions/schema-list.ts +26 -27
  316. package/src/blueprints/database/functions/tag-add.ts +14 -24
  317. package/src/blueprints/database/functions/tag-remove.ts +14 -23
  318. package/src/blueprints/database/index.ts +16 -1
  319. package/src/blueprints/discord/blueprint.ts +6 -11
  320. package/src/blueprints/discord/functions/definitions.ts +70 -0
  321. package/src/blueprints/discord/functions/fetch-messages.test.ts +21 -26
  322. package/src/blueprints/discord/functions/fetch-messages.ts +98 -152
  323. package/src/blueprints/discord/functions/index.ts +4 -4
  324. package/src/blueprints/discord/index.ts +1 -0
  325. package/src/blueprints/github/functions/definitions.ts +26 -0
  326. package/src/blueprints/github/functions/fetch-prs.ts +15 -22
  327. package/src/blueprints/github/functions/index.ts +4 -4
  328. package/src/blueprints/github/index.ts +2 -0
  329. package/src/blueprints/index.ts +4 -3
  330. package/src/blueprints/linear/blueprint.ts +6 -11
  331. package/src/blueprints/linear/functions/definitions.ts +23 -0
  332. package/src/blueprints/linear/functions/index.ts +4 -4
  333. package/src/blueprints/linear/functions/linear.test.ts +8 -9
  334. package/src/blueprints/linear/functions/sync-issues.ts +32 -41
  335. package/src/blueprints/linear/index.ts +1 -0
  336. package/src/blueprints/memory/blueprint.conversations.json +1 -0
  337. package/src/blueprints/memory/blueprint.test.ts +139 -0
  338. package/src/blueprints/memory/blueprint.ts +41 -0
  339. package/src/blueprints/memory/functions/definitions.ts +68 -0
  340. package/src/blueprints/memory/functions/delete.ts +20 -0
  341. package/src/blueprints/memory/functions/index.ts +13 -0
  342. package/src/blueprints/memory/functions/query.ts +32 -0
  343. package/src/blueprints/memory/functions/save.ts +20 -0
  344. package/src/blueprints/memory/index.ts +6 -0
  345. package/src/blueprints/planning/blueprint.ts +6 -10
  346. package/src/blueprints/planning/functions/index.ts +4 -4
  347. package/src/blueprints/planning/functions/update-tasks.md +116 -0
  348. package/src/blueprints/planning/functions/update-tasks.test.ts +55 -0
  349. package/src/blueprints/planning/functions/update-tasks.ts +52 -153
  350. package/src/blueprints/planning/index.ts +1 -0
  351. package/src/blueprints/project/blueprint.conversations.json +1 -0
  352. package/src/blueprints/project/blueprint.test.ts +248 -115
  353. package/src/blueprints/project/blueprint.ts +21 -25
  354. package/src/blueprints/project/functions/add-artifact.ts +20 -30
  355. package/src/blueprints/project/functions/agent.ts +43 -46
  356. package/src/blueprints/project/functions/definitions.ts +92 -0
  357. package/src/blueprints/project/functions/get-context.ts +37 -53
  358. package/src/blueprints/project/functions/index.ts +9 -10
  359. package/src/blueprints/project/functions/qualifier.ts +67 -73
  360. package/src/blueprints/project/index.ts +2 -2
  361. package/src/blueprints/project-wizard/blueprint.ts +52 -0
  362. package/src/blueprints/project-wizard/functions/create-project.ts +32 -0
  363. package/src/blueprints/project-wizard/functions/definitions.ts +63 -0
  364. package/src/blueprints/project-wizard/functions/index.ts +13 -0
  365. package/src/blueprints/project-wizard/functions/project-rules.ts +77 -0
  366. package/src/blueprints/project-wizard/functions/sync-triggers.ts +153 -0
  367. package/src/blueprints/project-wizard/index.ts +6 -0
  368. package/src/blueprints/testing.ts +14 -24
  369. package/src/blueprints/websearch/blueprint.conversations.json +1 -0
  370. package/src/blueprints/websearch/blueprint.test.ts +39 -0
  371. package/src/blueprints/websearch/blueprint.ts +6 -8
  372. package/src/blueprints/websearch/functions/definitions.ts +25 -0
  373. package/src/blueprints/websearch/functions/fetch.ts +18 -0
  374. package/src/blueprints/websearch/functions/index.ts +9 -0
  375. package/src/blueprints/websearch/index.ts +2 -1
  376. package/src/blueprints/websearch/toolkit.ts +6 -1
  377. package/src/crud/graph.test.ts +10 -12
  378. package/src/crud/graph.ts +126 -128
  379. package/src/errors.ts +25 -0
  380. package/src/functions/agent/definitions.ts +56 -0
  381. package/src/functions/agent/index.ts +4 -4
  382. package/src/functions/agent/prompt.conversations.json +1 -0
  383. package/src/functions/agent/prompt.test.ts +78 -0
  384. package/src/functions/agent/prompt.ts +212 -96
  385. package/src/functions/index.ts +0 -2
  386. package/src/sync/sync.ts +24 -14
  387. package/src/testing/plugins.tsx +11 -4
  388. package/src/toolkits/WebToolkit.ts +1 -1
  389. package/src/types/Agent.ts +238 -0
  390. package/src/types/Chat.ts +24 -10
  391. package/src/types/McpServer.ts +37 -0
  392. package/src/types/Memory.ts +24 -0
  393. package/src/types/Plan.ts +8 -4
  394. package/src/types/index.ts +3 -1
  395. package/dist/types/src/blueprints/design/blueprint.d.ts +0 -4
  396. package/dist/types/src/blueprints/design/blueprint.d.ts.map +0 -1
  397. package/dist/types/src/blueprints/design/blueprint.test.d.ts.map +0 -1
  398. package/dist/types/src/blueprints/design/index.d.ts +0 -2
  399. package/dist/types/src/blueprints/design/index.d.ts.map +0 -1
  400. package/dist/types/src/blueprints/markdown/blueprint.d.ts +0 -4
  401. package/dist/types/src/blueprints/markdown/blueprint.d.ts.map +0 -1
  402. package/dist/types/src/blueprints/markdown/functions/create.d.ts +0 -6
  403. package/dist/types/src/blueprints/markdown/functions/create.d.ts.map +0 -1
  404. package/dist/types/src/blueprints/markdown/functions/index.d.ts +0 -30
  405. package/dist/types/src/blueprints/markdown/functions/index.d.ts.map +0 -1
  406. package/dist/types/src/blueprints/markdown/functions/read.d.ts +0 -14
  407. package/dist/types/src/blueprints/markdown/functions/read.d.ts.map +0 -1
  408. package/dist/types/src/blueprints/markdown/functions/update.d.ts +0 -13
  409. package/dist/types/src/blueprints/markdown/functions/update.d.ts.map +0 -1
  410. package/dist/types/src/blueprints/markdown/index.d.ts +0 -3
  411. package/dist/types/src/blueprints/markdown/index.d.ts.map +0 -1
  412. package/dist/types/src/blueprints/planning-old/blueprint.d.ts +0 -4
  413. package/dist/types/src/blueprints/planning-old/blueprint.d.ts.map +0 -1
  414. package/dist/types/src/blueprints/planning-old/blueprint.test.d.ts.map +0 -1
  415. package/dist/types/src/blueprints/planning-old/functions/index.d.ts +0 -29
  416. package/dist/types/src/blueprints/planning-old/functions/index.d.ts.map +0 -1
  417. package/dist/types/src/blueprints/planning-old/functions/read.d.ts +0 -14
  418. package/dist/types/src/blueprints/planning-old/functions/read.d.ts.map +0 -1
  419. package/dist/types/src/blueprints/planning-old/functions/task-list.d.ts +0 -74
  420. package/dist/types/src/blueprints/planning-old/functions/task-list.d.ts.map +0 -1
  421. package/dist/types/src/blueprints/planning-old/functions/task-list.test.d.ts +0 -2
  422. package/dist/types/src/blueprints/planning-old/functions/task-list.test.d.ts.map +0 -1
  423. package/dist/types/src/blueprints/planning-old/functions/update.d.ts +0 -16
  424. package/dist/types/src/blueprints/planning-old/functions/update.d.ts.map +0 -1
  425. package/dist/types/src/blueprints/planning-old/index.d.ts +0 -2
  426. package/dist/types/src/blueprints/planning-old/index.d.ts.map +0 -1
  427. package/dist/types/src/blueprints/research/blueprint.d.ts +0 -4
  428. package/dist/types/src/blueprints/research/blueprint.d.ts.map +0 -1
  429. package/dist/types/src/blueprints/research/blueprint.test.d.ts.map +0 -1
  430. package/dist/types/src/blueprints/research/functions/document-create.d.ts +0 -10
  431. package/dist/types/src/blueprints/research/functions/document-create.d.ts.map +0 -1
  432. package/dist/types/src/blueprints/research/functions/index.d.ts +0 -19
  433. package/dist/types/src/blueprints/research/functions/index.d.ts.map +0 -1
  434. package/dist/types/src/blueprints/research/functions/research.d.ts +0 -14
  435. package/dist/types/src/blueprints/research/functions/research.d.ts.map +0 -1
  436. package/dist/types/src/blueprints/research/functions/research.test.d.ts +0 -2
  437. package/dist/types/src/blueprints/research/functions/research.test.d.ts.map +0 -1
  438. package/dist/types/src/blueprints/research/index.d.ts +0 -3
  439. package/dist/types/src/blueprints/research/index.d.ts.map +0 -1
  440. package/dist/types/src/blueprints/research/types/ResearchGraph.d.ts +0 -18
  441. package/dist/types/src/blueprints/research/types/ResearchGraph.d.ts.map +0 -1
  442. package/dist/types/src/blueprints/research/types/index.d.ts +0 -7
  443. package/dist/types/src/blueprints/research/types/index.d.ts.map +0 -1
  444. package/dist/types/src/functions/entity-extraction/entity-extraction.d.ts +0 -179
  445. package/dist/types/src/functions/entity-extraction/entity-extraction.d.ts.map +0 -1
  446. package/dist/types/src/functions/entity-extraction/entity-extraction.test.d.ts +0 -2
  447. package/dist/types/src/functions/entity-extraction/entity-extraction.test.d.ts.map +0 -1
  448. package/dist/types/src/functions/entity-extraction/index.d.ts +0 -179
  449. package/dist/types/src/functions/entity-extraction/index.d.ts.map +0 -1
  450. package/dist/types/src/functions/exa/data/exa-search-1748337321991.d.ts +0 -38
  451. package/dist/types/src/functions/exa/data/exa-search-1748337321991.d.ts.map +0 -1
  452. package/dist/types/src/functions/exa/data/exa-search-1748337331526.d.ts +0 -37
  453. package/dist/types/src/functions/exa/data/exa-search-1748337331526.d.ts.map +0 -1
  454. package/dist/types/src/functions/exa/data/exa-search-1748337344119.d.ts +0 -58
  455. package/dist/types/src/functions/exa/data/exa-search-1748337344119.d.ts.map +0 -1
  456. package/dist/types/src/functions/exa/data/index.d.ts +0 -3
  457. package/dist/types/src/functions/exa/data/index.d.ts.map +0 -1
  458. package/dist/types/src/functions/exa/exa.d.ts +0 -5
  459. package/dist/types/src/functions/exa/exa.d.ts.map +0 -1
  460. package/dist/types/src/functions/exa/index.d.ts +0 -9
  461. package/dist/types/src/functions/exa/index.d.ts.map +0 -1
  462. package/dist/types/src/functions/exa/mock.d.ts +0 -5
  463. package/dist/types/src/functions/exa/mock.d.ts.map +0 -1
  464. package/dist/types/src/types/Project.d.ts +0 -67
  465. package/dist/types/src/types/Project.d.ts.map +0 -1
  466. package/src/blueprints/browser/blueprint.conversations.json +0 -1
  467. package/src/blueprints/design/blueprint.test.ts +0 -96
  468. package/src/blueprints/design/blueprint.ts +0 -46
  469. package/src/blueprints/design/index.ts +0 -5
  470. package/src/blueprints/markdown/blueprint.ts +0 -38
  471. package/src/blueprints/markdown/functions/create.ts +0 -29
  472. package/src/blueprints/markdown/functions/index.ts +0 -13
  473. package/src/blueprints/markdown/functions/read.ts +0 -32
  474. package/src/blueprints/markdown/functions/update.ts +0 -32
  475. package/src/blueprints/markdown/index.ts +0 -6
  476. package/src/blueprints/planning-old/blueprint.test.ts +0 -122
  477. package/src/blueprints/planning-old/blueprint.ts +0 -110
  478. package/src/blueprints/planning-old/functions/index.ts +0 -11
  479. package/src/blueprints/planning-old/functions/read.ts +0 -34
  480. package/src/blueprints/planning-old/functions/task-list.test.ts +0 -99
  481. package/src/blueprints/planning-old/functions/task-list.ts +0 -165
  482. package/src/blueprints/planning-old/functions/update.ts +0 -52
  483. package/src/blueprints/planning-old/index.ts +0 -5
  484. package/src/blueprints/research/blueprint.test.ts +0 -7
  485. package/src/blueprints/research/blueprint.ts +0 -65
  486. package/src/blueprints/research/functions/document-create.ts +0 -73
  487. package/src/blueprints/research/functions/index.ts +0 -11
  488. package/src/blueprints/research/functions/research-instructions.tpl +0 -106
  489. package/src/blueprints/research/functions/research.conversations.json +0 -1
  490. package/src/blueprints/research/functions/research.test.ts +0 -149
  491. package/src/blueprints/research/functions/research.ts +0 -175
  492. package/src/blueprints/research/index.ts +0 -6
  493. package/src/blueprints/research/types/ResearchGraph.ts +0 -49
  494. package/src/blueprints/research/types/index.ts +0 -32
  495. package/src/functions/entity-extraction/entity-extraction.conversations.json +0 -1
  496. package/src/functions/entity-extraction/entity-extraction.test.ts +0 -74
  497. package/src/functions/entity-extraction/entity-extraction.ts +0 -181
  498. package/src/functions/entity-extraction/index.ts +0 -9
  499. package/src/functions/exa/data/exa-search-1748337321991.ts +0 -131
  500. package/src/functions/exa/data/exa-search-1748337331526.ts +0 -144
  501. package/src/functions/exa/data/exa-search-1748337344119.ts +0 -133
  502. package/src/functions/exa/data/index.ts +0 -11
  503. package/src/functions/exa/exa.ts +0 -37
  504. package/src/functions/exa/index.ts +0 -11
  505. package/src/functions/exa/mock.ts +0 -71
  506. package/src/types/Project.ts +0 -196
  507. /package/dist/types/src/blueprints/{design → blueprint-manager}/blueprint.test.d.ts +0 -0
  508. /package/dist/types/src/blueprints/{planning-old → memory}/blueprint.test.d.ts +0 -0
  509. /package/dist/types/src/blueprints/{research → websearch}/blueprint.test.d.ts +0 -0
package/src/crud/graph.ts CHANGED
@@ -11,8 +11,8 @@ import * as Option from 'effect/Option';
11
11
  import * as Schema from 'effect/Schema';
12
12
  import * as SchemaAST from 'effect/SchemaAST';
13
13
 
14
- import { Entity, Filter, Obj, Query, Type } from '@dxos/echo';
15
- import { Database } from '@dxos/echo';
14
+ import { Database, Entity, Feed, Filter, Obj, Query, Type } from '@dxos/echo';
15
+ import { isEncodedReference } from '@dxos/echo-protocol';
16
16
  import {
17
17
  ReferenceAnnotationId,
18
18
  RelationSourceDXNId,
@@ -23,10 +23,7 @@ import {
23
23
  getTypeAnnotation,
24
24
  getTypeIdentifierAnnotation,
25
25
  } from '@dxos/echo/internal';
26
- import { type Queue } from '@dxos/echo-db';
27
- import { isEncodedReference } from '@dxos/echo-protocol';
28
26
  import { mapAst } from '@dxos/effect';
29
- import { ContextQueueService } from '@dxos/functions';
30
27
  import { DXN, ObjectId } from '@dxos/keys';
31
28
  import { log } from '@dxos/log';
32
29
  import { deepMapValues, isNonNullable, trim } from '@dxos/util';
@@ -63,8 +60,8 @@ export const findRelatedSchema = async (db: Database.Database, anchor: Type.AnyE
63
60
  }
64
61
 
65
62
  return (
66
- isSchemaAddressableByDxn(anchor, DXN.parse(getTypeAnnotation(schema)!.sourceSchema!)) ||
67
- isSchemaAddressableByDxn(anchor, DXN.parse(getTypeAnnotation(schema)!.targetSchema!))
63
+ isSchemaAddressableByDXN(anchor, DXN.parse(getTypeAnnotation(schema)!.sourceSchema!)) ||
64
+ isSchemaAddressableByDXN(anchor, DXN.parse(getTypeAnnotation(schema)!.targetSchema!))
68
65
  );
69
66
  })
70
67
  .map(
@@ -79,7 +76,7 @@ export const findRelatedSchema = async (db: Database.Database, anchor: Type.AnyE
79
76
  * Non-strict DXN comparison.
80
77
  * Returns true if the DXN could be resolved to the schema.
81
78
  */
82
- const isSchemaAddressableByDxn = (schema: Type.AnyEntity, dxn: DXN): boolean => {
79
+ const isSchemaAddressableByDXN = (schema: Type.AnyEntity, dxn: DXN): boolean => {
83
80
  if (getTypeIdentifierAnnotation(schema) === dxn.toString()) {
84
81
  return true;
85
82
  }
@@ -106,7 +103,7 @@ export const LocalSearchToolkit = Toolkit.make(
106
103
  },
107
104
  success: Schema.Unknown,
108
105
  failure: Schema.Never,
109
- dependencies: [Database.Service],
106
+ dependencies: [Database.Service, Feed.FeedService],
110
107
  }),
111
108
  );
112
109
 
@@ -115,11 +112,11 @@ export const LocalSearchHandler = LocalSearchToolkit.toLayer({
115
112
  const objects = yield* Database.runQuery(Query.select(Filter.text(query, { type: 'vector' })));
116
113
  const results = [...objects];
117
114
 
118
- const option = yield* Effect.serviceOption(ContextQueueService);
119
- if (Option.isSome(option)) {
120
- const queueObjects = yield* Effect.promise(() => option.value.queue.queryObjects());
121
- // TODO(dmaretskyi): Text search on the queue.
122
- results.push(...queueObjects);
115
+ const feedOption = yield* Effect.serviceOption(Feed.ContextFeedService);
116
+ if (Option.isSome(feedOption)) {
117
+ const feedObjects = yield* Feed.runQuery(feedOption.value.feed, Filter.everything());
118
+ // TODO(dmaretskyi): Text search on the feed.
119
+ results.push(...feedObjects);
123
120
  }
124
121
 
125
122
  return trim`
@@ -150,7 +147,7 @@ export const makeGraphWriterToolkit = ({ schema }: { schema: Type.AnyEntity[] })
150
147
  parameters: createExtractionSchema(schema).fields,
151
148
  success: Schema.Unknown,
152
149
  failure: Schema.Never,
153
- dependencies: [Database.Service, ContextQueueService],
150
+ dependencies: [Database.Service, Feed.ContextFeedService, Feed.FeedService],
154
151
  }).annotateContext(Context.make(GraphWriterSchema, { schema })),
155
152
  );
156
153
  };
@@ -171,9 +168,9 @@ export const makeGraphWriterHandler = (
171
168
  return toolkit.toLayer({
172
169
  graph_writer: Effect.fn(function* (input) {
173
170
  const { db } = yield* Database.Service;
174
- const { queue } = yield* ContextQueueService;
175
- const data = yield* Effect.promise(() => sanitizeObjects(schema, input as any, db, queue));
176
- yield* Effect.promise(() => queue.append(data as Obj.Unknown[]));
171
+ const { feed } = yield* Feed.ContextFeedService;
172
+ const data = yield* sanitizeObjects(schema, input as any, db, feed);
173
+ yield* Feed.append(feed, data as Obj.Unknown[]);
177
174
 
178
175
  const dxns = data.map((obj) => Obj.getDXN(obj));
179
176
  onAppend?.(dxns);
@@ -204,133 +201,134 @@ export const getSanitizedSchemaName = (schema: Type.AnyEntity) => {
204
201
  .type.replaceAll(/[^a-zA-Z0-9]+/g, '_');
205
202
  };
206
203
 
207
- export const sanitizeObjects = async (
204
+ export const sanitizeObjects = (
208
205
  types: Type.AnyEntity[],
209
206
  data: Record<string, readonly unknown[]>,
210
207
  db: Database.Database,
211
- queue?: Queue,
212
- ): Promise<Obj.Unknown[]> => {
213
- const entries = types
214
- .map(
215
- (type) =>
216
- data[`objects_${getSanitizedSchemaName(type)}`]?.map((object: any) => ({
217
- data: object,
218
- schema: type,
219
- })) ?? [],
220
- )
221
- .flat();
222
-
223
- const idMap = new Map<string, string>();
224
- const existingIds = new Set<ObjectId>();
225
- const enitties = new Map<ObjectId, Entity.Unknown>();
226
-
227
- const resolveId = (id: string): DXN | undefined => {
228
- if (ObjectId.isValid(id)) {
229
- existingIds.add(id);
230
- return DXN.fromLocalObjectId(id);
231
- }
208
+ feed?: Feed.Feed,
209
+ ): Effect.Effect<Obj.Unknown[], never, Feed.FeedService> =>
210
+ Effect.gen(function* () {
211
+ const entries = types
212
+ .map(
213
+ (type) =>
214
+ data[`objects_${getSanitizedSchemaName(type)}`]?.map((object: any) => ({
215
+ data: object,
216
+ schema: type,
217
+ })) ?? [],
218
+ )
219
+ .flat();
220
+
221
+ const idMap = new Map<string, string>();
222
+ const existingIds = new Set<ObjectId>();
223
+ const enitties = new Map<ObjectId, Entity.Unknown>();
224
+
225
+ const resolveId = (id: string): DXN | undefined => {
226
+ if (ObjectId.isValid(id)) {
227
+ existingIds.add(id);
228
+ return DXN.fromLocalObjectId(id);
229
+ }
232
230
 
233
- const mappedId = idMap.get(id);
234
- if (mappedId) {
235
- return DXN.fromLocalObjectId(mappedId);
236
- }
231
+ const mappedId = idMap.get(id);
232
+ if (mappedId) {
233
+ return DXN.fromLocalObjectId(mappedId);
234
+ }
237
235
 
238
- return undefined;
239
- };
236
+ return undefined;
237
+ };
238
+
239
+ const res = entries
240
+ .map((entry) => {
241
+ // This entry mutates existing object.
242
+ if (ObjectId.isValid(entry.data.id)) {
243
+ return entry;
244
+ }
240
245
 
241
- const res = entries
242
- .map((entry) => {
243
- // This entry mutates existing object.
244
- if (ObjectId.isValid(entry.data.id)) {
246
+ idMap.set(entry.data.id, ObjectId.random());
247
+ entry.data.id = idMap.get(entry.data.id);
245
248
  return entry;
246
- }
249
+ })
250
+ .map((entry) => {
251
+ const data = deepMapValues(entry.data, (value, recurse) => {
252
+ if (isEncodedReference(value)) {
253
+ const ref = value['/'];
254
+ const id = resolveId(ref);
255
+
256
+ if (id) {
257
+ // Link to an existing object.
258
+ return { '/': id.toString() };
259
+ } else {
260
+ // Search URIs?
261
+ return { '/': `search:?q=${encodeURIComponent(ref)}` };
262
+ }
263
+ }
247
264
 
248
- idMap.set(entry.data.id, ObjectId.random());
249
- entry.data.id = idMap.get(entry.data.id);
250
- return entry;
251
- })
252
- .map((entry) => {
253
- const data = deepMapValues(entry.data, (value, recurse) => {
254
- if (isEncodedReference(value)) {
255
- const ref = value['/'];
256
- const id = resolveId(ref);
257
-
258
- if (id) {
259
- // Link to an existing object.
260
- return { '/': id.toString() };
261
- } else {
262
- // Search URIs?
263
- return { '/': `search:?q=${encodeURIComponent(ref)}` };
265
+ return recurse(value);
266
+ });
267
+
268
+ if (Entity.getKind(entry.schema) === 'relation') {
269
+ const sourceDXN = resolveId(data.source);
270
+ if (!sourceDXN) {
271
+ log.warn('source not found', { source: data.source });
272
+ }
273
+ const targetDXN = resolveId(data.target);
274
+ if (!targetDXN) {
275
+ log.warn('target not found', { target: data.target });
264
276
  }
277
+ delete data.source;
278
+ delete data.target;
279
+ data[RelationSourceDXNId] = sourceDXN;
280
+ data[RelationTargetDXNId] = targetDXN;
265
281
  }
266
282
 
267
- return recurse(value);
268
- });
283
+ return {
284
+ data,
285
+ schema: entry.schema,
286
+ };
287
+ })
288
+ .filter((object) => !existingIds.has(object.data.id)); // TODO(dmaretskyi): This dissallows updating existing objects.
289
+
290
+ // TODO(dmaretskyi): Use ref resolver.
291
+ const dbObjects = yield* Effect.promise(() => db.query(Query.select(Filter.id(...existingIds))).run());
292
+ const feedObjects = feed && existingIds.size > 0 ? yield* Feed.runQuery(feed, Filter.id(...existingIds)) : [];
293
+ const objects = [...dbObjects, ...feedObjects].filter(isNonNullable);
294
+
295
+ // TODO(dmaretskyi): Returns everything if IDs are empty!
296
+ log.info('objects', { dbObjects, feedObjects, existingIds });
297
+ const missing = Array.from(existingIds).filter((id) => !objects.some((object) => object.id === id));
298
+ if (missing.length > 0) {
299
+ throw new Error(`Object IDs do not point to existing objects: ${missing.join(', ')}`);
300
+ }
269
301
 
270
- if (Entity.getKind(entry.schema) === 'relation') {
271
- const sourceDxn = resolveId(data.source);
272
- if (!sourceDxn) {
273
- log.warn('source not found', { source: data.source });
274
- }
275
- const targetDxn = resolveId(data.target);
276
- if (!targetDxn) {
277
- log.warn('target not found', { target: data.target });
302
+ return res.flatMap(({ data, schema }) => {
303
+ let skip = false;
304
+ if (RelationSourceDXNId in data) {
305
+ const id = (data[RelationSourceDXNId] as DXN).asEchoDXN()?.echoId;
306
+ const obj = objects.find((object) => object.id === id) ?? enitties.get(id!);
307
+ if (obj) {
308
+ delete data[RelationSourceDXNId];
309
+ data[RelationSourceId] = obj;
310
+ } else {
311
+ skip = true;
278
312
  }
279
- delete data.source;
280
- delete data.target;
281
- data[RelationSourceDXNId] = sourceDxn;
282
- data[RelationTargetDXNId] = targetDxn;
283
313
  }
284
-
285
- return {
286
- data,
287
- schema: entry.schema,
288
- };
289
- })
290
- .filter((object) => !existingIds.has(object.data.id)); // TODO(dmaretskyi): This dissallows updating existing objects.
291
-
292
- // TODO(dmaretskyi): Use ref resolver.
293
- const dbObjects = await db.query(Query.select(Filter.id(...existingIds))).run();
294
- const queueObjects = (await queue?.getObjectsById([...existingIds])) ?? [];
295
- const objects = [...dbObjects, ...queueObjects].filter(isNonNullable);
296
-
297
- // TODO(dmaretskyi): Returns everything if IDs are empty!
298
- log.info('objects', { dbObjects, queueObjects, existingIds });
299
- const missing = Array.from(existingIds).filter((id) => !objects.some((object) => object.id === id));
300
- if (missing.length > 0) {
301
- throw new Error(`Object IDs do not point to existing objects: ${missing.join(', ')}`);
302
- }
303
-
304
- return res.flatMap(({ data, schema }) => {
305
- let skip = false;
306
- if (RelationSourceDXNId in data) {
307
- const id = (data[RelationSourceDXNId] as DXN).asEchoDXN()?.echoId;
308
- const obj = objects.find((object) => object.id === id) ?? enitties.get(id!);
309
- if (obj) {
310
- delete data[RelationSourceDXNId];
311
- data[RelationSourceId] = obj;
312
- } else {
313
- skip = true;
314
+ if (RelationTargetDXNId in data) {
315
+ const id = (data[RelationTargetDXNId] as DXN).asEchoDXN()?.echoId;
316
+ const obj = objects.find((object) => object.id === id) ?? enitties.get(id!);
317
+ if (obj) {
318
+ delete data[RelationTargetDXNId];
319
+ data[RelationTargetId] = obj;
320
+ } else {
321
+ skip = true;
322
+ }
314
323
  }
315
- }
316
- if (RelationTargetDXNId in data) {
317
- const id = (data[RelationTargetDXNId] as DXN).asEchoDXN()?.echoId;
318
- const obj = objects.find((object) => object.id === id) ?? enitties.get(id!);
319
- if (obj) {
320
- delete data[RelationTargetDXNId];
321
- data[RelationTargetId] = obj;
322
- } else {
323
- skip = true;
324
+ if (!skip) {
325
+ const obj = createObject(schema, data);
326
+ enitties.set(obj.id, obj);
327
+ return [obj];
324
328
  }
325
- }
326
- if (!skip) {
327
- const obj = createObject(schema, data);
328
- enitties.set(obj.id, obj);
329
- return [obj];
330
- }
331
- return [];
329
+ return [];
330
+ });
332
331
  });
333
- };
334
332
 
335
333
  const SoftRef = Schema.Struct({
336
334
  '/': Schema.String,
package/src/errors.ts ADDED
@@ -0,0 +1,25 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import { BaseError } from '@dxos/errors';
6
+ import { DXN } from '@dxos/keys';
7
+
8
+ /**
9
+ * Agent could not execute prompt.
10
+ */
11
+ export class PromptError extends BaseError.extend('PromptError') {
12
+ constructor(
13
+ message: string,
14
+ context: {
15
+ description?: string;
16
+ prompt?: DXN.String;
17
+ chat?: DXN.String;
18
+ },
19
+ ) {
20
+ super({
21
+ message,
22
+ context,
23
+ });
24
+ }
25
+ }
@@ -0,0 +1,56 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Schema from 'effect/Schema';
6
+
7
+ import { AiService, OpaqueToolkit, ModelName } from '@dxos/ai';
8
+ import { Routine, Trace, Operation, OperationRegistry } from '@dxos/compute';
9
+ import { Database, Feed, Ref } from '@dxos/echo';
10
+ import { Text } from '@dxos/schema';
11
+
12
+ import * as Chat from '../../types/Chat';
13
+
14
+ // TODO(dmaretskyi): Rename to RunRoutine.
15
+ export const AgentPrompt = Operation.make({
16
+ meta: {
17
+ key: 'org.dxos.function.prompt',
18
+ name: 'Run Routine',
19
+ description: 'Agentic worker that executes a provided prompt using blueprints and tools.',
20
+ },
21
+ input: Schema.Struct({
22
+ prompt: Ref.Ref(Routine.Routine),
23
+
24
+ /**
25
+ * When set, runs in this chat (history, queue, and bound context). Routine blueprints and context objects are merged into the conversation for this request.
26
+ */
27
+ chat: Schema.optional(Ref.Ref(Chat.Chat)),
28
+
29
+ /**
30
+ * @default @anthropic/claude-opus-4-6
31
+ */
32
+ model: Schema.optional(ModelName),
33
+
34
+ /**
35
+ * Input object or data.
36
+ * References get auto-resolved.
37
+ */
38
+ input: Schema.Any.pipe(Schema.annotations({ title: 'Input' })),
39
+
40
+ systemInstructions: Schema.optional(Schema.String).annotations({
41
+ description: 'Additional system instructions to add to the system prompt.',
42
+ }),
43
+ }),
44
+ output: Schema.Any,
45
+ // ECHO types that the handler loads via Database.load(). Declaring them here ensures the
46
+ // runtime registers their schema before remote invocation (e.g. via the EDGE function service).
47
+ types: [Routine.Routine, Text.Text, Feed.Feed, Chat.Chat],
48
+ services: [
49
+ AiService.AiService,
50
+ Database.Service,
51
+ Feed.FeedService,
52
+ OpaqueToolkit.OpaqueToolkitProvider,
53
+ OperationRegistry.Service,
54
+ Trace.TraceService,
55
+ ],
56
+ }).pipe(Operation.intrinsic);
@@ -2,8 +2,8 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import Prompt from './prompt';
5
+ import { OperationHandlerSet } from '@dxos/compute';
6
6
 
7
- export const AgentFunctions = {
8
- Prompt,
9
- };
7
+ export * from './definitions';
8
+
9
+ export const AgentHandlers = OperationHandlerSet.lazy(() => import('./prompt'));
@@ -0,0 +1 @@
1
+ {"conversations":[{"parameters":{"model":"@anthropic/claude-opus-4-6","stream":true,"tools":[{"name":"completeJob","inputSchema":{"type":"object","required":[],"properties":{"success":{"$id":"/schemas/any","title":"any"},"failure":{"type":"object","required":["message"],"properties":{"message":{"type":"string","description":"Short message describing the error."},"description":{"type":"string","description":"Optional longer message describing in detail what went wrong"}},"additionalProperties":false}},"additionalProperties":false}}]},"prompt":{"content":[{"role":"system","content":"You are an agent running in the non-interactive mode.\nThe user is unable to see what you are doing, and cannot answer any questions.\nDo not ask questions.\nComplete the task before you, and at the end call [completeJob] with the output.\nIf you are unable to complete the task, call [completeJob] with the failure reason.\nIf no output is required, call [completeJob] with an empty object: {}\nDo not stop until you call [completeJob].","options":{}},{"role":"user","content":"Reply with a single word: ack.\n<input>{}</input>","options":{"anthropic":{"cacheControl":{"ttl":"5m","type":"ephemeral"}}}}]},"response":[{"type":"response-metadata","id":"msg_014de59sT4sHe36njza5yiBZ","modelId":"claude-opus-4-6","timestamp":"1970-01-01T00:00:00.000Z","metadata":{}},{"type":"reasoning-start","id":"0","metadata":{}},{"type":"reasoning-delta","id":"0","delta":"The","metadata":{}},{"type":"reasoning-delta","id":"0","delta":" user wants me to reply with a single word \"ack\" and complete the job.","metadata":{}},{"type":"reasoning-delta","id":"0","delta":"","metadata":{"anthropic":{"type":"thinking","signature":"EoQCClkIDRgCKkDmvWuElJmvgQqKv/OM8h45Qm9vFiau8OtHTiKeFGzABfFt5k5Oc9XiWXg1jeCrSXFmAcI3XEaKXp6jF8PCj/O0Mg9jbGF1ZGUtb3B1cy00LTY4ABIM63lszYQjMtcgEi3WGgzpeUSSrp9JhxxUoGsiMFJjapYnuh9y/rE9xW660c0B5Av77wj/bAOfx2vMXoXlHzL0C9O7TlzfgR+zqrw6cipZeF169zGXzr1tdCpD4N9lF1/HvBBieF/jOP7lhN5GXbuxFHatNfix4ocm9beWxWqOQ+WcOXQWJB8lQu+B/mW1y1MXgwTiQi1rf9OhDxtxXoBiIKCSp0aZPBMYAQ=="}}},{"type":"reasoning-end","id":"0","metadata":{}},{"type":"tool-params-start","id":"toolu_01Bn2cwnUQYvUCJ4RsL2SSuY","name":"completeJob","providerExecuted":false,"metadata":{}},{"type":"tool-params-delta","id":"toolu_01Bn2cwnUQYvUCJ4RsL2SSuY","delta":"","metadata":{}},{"type":"tool-params-delta","id":"toolu_01Bn2cwnUQYvUCJ4RsL2SSuY","delta":"{\"success\": ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01Bn2cwnUQYvUCJ4RsL2SSuY","delta":"\"a","metadata":{}},{"type":"tool-params-delta","id":"toolu_01Bn2cwnUQYvUCJ4RsL2SSuY","delta":"ck\"}","metadata":{}},{"type":"tool-params-end","id":"toolu_01Bn2cwnUQYvUCJ4RsL2SSuY","metadata":{}},{"type":"finish","reason":"tool-calls","usage":{"inputTokens":757,"outputTokens":89,"totalTokens":846},"metadata":{"anthropic":{"usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"input_tokens":757,"output_tokens":9,"server_tool_use":null,"service_tier":"standard"}}}}]},{"parameters":{"model":"@anthropic/claude-opus-4-6","stream":true,"tools":[{"name":"completeJob","inputSchema":{"type":"object","required":[],"properties":{"success":{"$id":"/schemas/any","title":"any"},"failure":{"type":"object","required":["message"],"properties":{"message":{"type":"string","description":"Short message describing the error."},"description":{"type":"string","description":"Optional longer message describing in detail what went wrong"}},"additionalProperties":false}},"additionalProperties":false}}]},"prompt":{"content":[{"role":"system","content":"You are an agent running in the non-interactive mode.\nThe user is unable to see what you are doing, and cannot answer any questions.\nDo not ask questions.\nComplete the task before you, and at the end call [completeJob] with the output.\nIf you are unable to complete the task, call [completeJob] with the failure reason.\nIf no output is required, call [completeJob] with an empty object: {}\nDo not stop until you call [completeJob].","options":{}},{"role":"user","content":"Reply with a single word: ack.\n<input>{}</input>","options":{}},{"role":"assistant","content":[{"type":"reasoning","text":"The user wants me to reply with a single word \"ack\" and complete the job.","options":{}},{"type":"tool-call","id":"toolu_01Bn2cwnUQYvUCJ4RsL2SSuY","name":"completeJob","params":{"success":"ack"},"providerExecuted":false,"options":{}}],"options":{}},{"role":"tool","content":[{"type":"tool-result","id":"toolu_01Bn2cwnUQYvUCJ4RsL2SSuY","name":"completeJob","isFailure":false,"result":{},"providerExecuted":false,"options":{}}],"options":{"anthropic":{"cacheControl":{"ttl":"5m","type":"ephemeral"}}}}]},"response":[{"type":"response-metadata","id":"msg_01R5VQTdGZLcaSFeVhzNYn6K","modelId":"claude-opus-4-6","timestamp":"1970-01-01T00:00:00.000Z","metadata":{}},{"type":"finish","reason":"stop","usage":{"inputTokens":824,"outputTokens":2,"totalTokens":826},"metadata":{"anthropic":{"usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"input_tokens":824,"output_tokens":2,"server_tool_use":null,"service_tier":"standard"}}}}]}]}
@@ -0,0 +1,78 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import { describe, expect, it } from '@effect/vitest';
6
+ import * as Effect from 'effect/Effect';
7
+
8
+ import { AiContext } from '@dxos/assistant';
9
+ import { Routine, Operation, OperationHandlerSet } from '@dxos/compute';
10
+ import { Database, Feed, Filter, Obj, Ref } from '@dxos/echo';
11
+ import { TestHelpers } from '@dxos/effect/testing';
12
+ import { AssistantTestLayer } from '@dxos/functions-runtime/testing';
13
+ import { ObjectId } from '@dxos/keys';
14
+ import { Text } from '@dxos/schema';
15
+ import { Message } from '@dxos/types';
16
+
17
+ import * as Chat from '../../types/Chat';
18
+ import { AgentPrompt } from './definitions';
19
+ import defaultAgentPrompt from './prompt';
20
+
21
+ ObjectId.dangerouslyDisableRandomness();
22
+
23
+ const operationHandlerSet = OperationHandlerSet.make(defaultAgentPrompt);
24
+
25
+ const TestLayer = AssistantTestLayer({
26
+ operationHandlers: operationHandlerSet,
27
+ types: [Chat.Chat, Message.Message, AiContext.Binding, Text.Text],
28
+ aiServicePreset: 'edge-remote',
29
+ });
30
+
31
+ const countFeedMessages = (feed: Feed.Feed) =>
32
+ Effect.gen(function* () {
33
+ const items = yield* Feed.runQuery(feed, Filter.everything());
34
+ return items.filter(Obj.instanceOf(Message.Message)).length;
35
+ });
36
+
37
+ describe('Agent prompt', () => {
38
+ it.effect(
39
+ 'chat mode appends assistant messages to the chat queue',
40
+ Effect.fnUntraced(
41
+ function* (_) {
42
+ const feed = yield* Database.add(Feed.make());
43
+ const messageCountBefore = yield* countFeedMessages(feed);
44
+
45
+ const chat = yield* Database.add(
46
+ Chat.make({
47
+ feed: Ref.make(feed),
48
+ }),
49
+ );
50
+
51
+ const prompt = yield* Database.add(
52
+ Routine.make({
53
+ name: 'chat-mode-test',
54
+ instructions: 'Reply with a single word: ack.',
55
+ blueprints: [],
56
+ context: [],
57
+ }),
58
+ );
59
+
60
+ yield* Database.flush();
61
+
62
+ const result = yield* Operation.invoke(AgentPrompt, {
63
+ prompt: Ref.make(prompt),
64
+ input: {},
65
+ chat: Ref.make(chat),
66
+ });
67
+
68
+ const messageCountAfter = yield* countFeedMessages(feed);
69
+
70
+ expect(messageCountAfter).toBeGreaterThan(messageCountBefore);
71
+ expect(result).toBe('ack');
72
+ },
73
+ Effect.provide(TestLayer),
74
+ TestHelpers.provideTestContext,
75
+ ),
76
+ { timeout: 60_000 },
77
+ );
78
+ });