@dxos/assistant-toolkit 0.8.4-main.e8ec1fe → 0.8.4-main.fcc0d83b33

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 (570) hide show
  1. package/dist/lib/neutral/add-artifact-XDFUXRY5.mjs +30 -0
  2. package/dist/lib/neutral/add-artifact-XDFUXRY5.mjs.map +7 -0
  3. package/dist/lib/neutral/agent-6OHUAIA2.mjs +65 -0
  4. package/dist/lib/neutral/agent-6OHUAIA2.mjs.map +7 -0
  5. package/dist/lib/neutral/chunk-4T3LJGXI.mjs +76 -0
  6. package/dist/lib/neutral/chunk-4T3LJGXI.mjs.map +7 -0
  7. package/dist/lib/neutral/chunk-CVUA23QI.mjs +332 -0
  8. package/dist/lib/neutral/chunk-CVUA23QI.mjs.map +7 -0
  9. package/dist/lib/neutral/chunk-EJAQUAKM.mjs +73 -0
  10. package/dist/lib/neutral/chunk-EJAQUAKM.mjs.map +7 -0
  11. package/dist/lib/neutral/chunk-GSG4JGIY.mjs +100 -0
  12. package/dist/lib/neutral/chunk-GSG4JGIY.mjs.map +7 -0
  13. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  14. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
  15. package/dist/lib/neutral/chunk-JN4GARRQ.mjs +53 -0
  16. package/dist/lib/neutral/chunk-JN4GARRQ.mjs.map +7 -0
  17. package/dist/lib/neutral/chunk-KGU725LW.mjs +29 -0
  18. package/dist/lib/neutral/chunk-KGU725LW.mjs.map +7 -0
  19. package/dist/lib/neutral/chunk-NR3GTWRC.mjs +53 -0
  20. package/dist/lib/neutral/chunk-NR3GTWRC.mjs.map +7 -0
  21. package/dist/lib/neutral/chunk-P5LAPHCG.mjs +140 -0
  22. package/dist/lib/neutral/chunk-P5LAPHCG.mjs.map +7 -0
  23. package/dist/lib/neutral/chunk-SVI25Z2Y.mjs +293 -0
  24. package/dist/lib/neutral/chunk-SVI25Z2Y.mjs.map +7 -0
  25. package/dist/lib/neutral/chunk-VSDP6SRY.mjs +74 -0
  26. package/dist/lib/neutral/chunk-VSDP6SRY.mjs.map +7 -0
  27. package/dist/lib/neutral/chunk-WIV7ZVRS.mjs +109 -0
  28. package/dist/lib/neutral/chunk-WIV7ZVRS.mjs.map +7 -0
  29. package/dist/lib/neutral/chunk-WLR3BGO4.mjs +25 -0
  30. package/dist/lib/neutral/chunk-WLR3BGO4.mjs.map +7 -0
  31. package/dist/lib/neutral/chunk-YSYNXOZA.mjs +68 -0
  32. package/dist/lib/neutral/chunk-YSYNXOZA.mjs.map +7 -0
  33. package/dist/lib/neutral/chunk-YXOVSRFU.mjs +70 -0
  34. package/dist/lib/neutral/chunk-YXOVSRFU.mjs.map +7 -0
  35. package/dist/lib/neutral/context-add-IIDPRRVB.mjs +22 -0
  36. package/dist/lib/neutral/context-add-IIDPRRVB.mjs.map +7 -0
  37. package/dist/lib/neutral/context-remove-RDYV4PD4.mjs +22 -0
  38. package/dist/lib/neutral/context-remove-RDYV4PD4.mjs.map +7 -0
  39. package/dist/lib/neutral/create-project-MPAMKQ3T.mjs +36 -0
  40. package/dist/lib/neutral/create-project-MPAMKQ3T.mjs.map +7 -0
  41. package/dist/lib/neutral/delete-J3PMWP7Z.mjs +19 -0
  42. package/dist/lib/neutral/delete-J3PMWP7Z.mjs.map +7 -0
  43. package/dist/lib/neutral/enable-blueprints-LELPQHY5.mjs +48 -0
  44. package/dist/lib/neutral/enable-blueprints-LELPQHY5.mjs.map +7 -0
  45. package/dist/lib/neutral/fetch-KHMHV7JR.mjs +16 -0
  46. package/dist/lib/neutral/fetch-KHMHV7JR.mjs.map +7 -0
  47. package/dist/lib/neutral/fetch-messages-OS74FP76.mjs +140 -0
  48. package/dist/lib/neutral/fetch-messages-OS74FP76.mjs.map +7 -0
  49. package/dist/lib/neutral/get-context-JRTOOA5O.mjs +35 -0
  50. package/dist/lib/neutral/get-context-JRTOOA5O.mjs.map +7 -0
  51. package/dist/lib/neutral/index.mjs +906 -0
  52. package/dist/lib/neutral/index.mjs.map +7 -0
  53. package/dist/lib/neutral/load-LI7HHVD6.mjs +17 -0
  54. package/dist/lib/neutral/load-LI7HHVD6.mjs.map +7 -0
  55. package/dist/lib/neutral/meta.json +1 -0
  56. package/dist/lib/neutral/object-create-52Z7YKIA.mjs +35 -0
  57. package/dist/lib/neutral/object-create-52Z7YKIA.mjs.map +7 -0
  58. package/dist/lib/neutral/object-delete-I266YAXI.mjs +18 -0
  59. package/dist/lib/neutral/object-delete-I266YAXI.mjs.map +7 -0
  60. package/dist/lib/neutral/object-update-HY4GI7LA.mjs +28 -0
  61. package/dist/lib/neutral/object-update-HY4GI7LA.mjs.map +7 -0
  62. package/dist/lib/neutral/project-JAU3A7AX.mjs +23 -0
  63. package/dist/lib/neutral/project-JAU3A7AX.mjs.map +7 -0
  64. package/dist/lib/neutral/project-rules-FLUQQRPB.mjs +78 -0
  65. package/dist/lib/neutral/project-rules-FLUQQRPB.mjs.map +7 -0
  66. package/dist/lib/neutral/prompt-4UMXX6QU.mjs +169 -0
  67. package/dist/lib/neutral/prompt-4UMXX6QU.mjs.map +7 -0
  68. package/dist/lib/neutral/qualifier-7BUCOEKK.mjs +88 -0
  69. package/dist/lib/neutral/qualifier-7BUCOEKK.mjs.map +7 -0
  70. package/dist/lib/neutral/query-B3NOYFCK.mjs +70 -0
  71. package/dist/lib/neutral/query-B3NOYFCK.mjs.map +7 -0
  72. package/dist/lib/neutral/query-U56GNEV6.mjs +32 -0
  73. package/dist/lib/neutral/query-U56GNEV6.mjs.map +7 -0
  74. package/dist/lib/neutral/query-blueprints-Z576ABT5.mjs +17 -0
  75. package/dist/lib/neutral/query-blueprints-Z576ABT5.mjs.map +7 -0
  76. package/dist/lib/neutral/relation-create-Z3NGW4VU.mjs +34 -0
  77. package/dist/lib/neutral/relation-create-Z3NGW4VU.mjs.map +7 -0
  78. package/dist/lib/neutral/relation-delete-LXY7W2YO.mjs +18 -0
  79. package/dist/lib/neutral/relation-delete-LXY7W2YO.mjs.map +7 -0
  80. package/dist/lib/neutral/save-GWAPLT3Z.mjs +23 -0
  81. package/dist/lib/neutral/save-GWAPLT3Z.mjs.map +7 -0
  82. package/dist/lib/neutral/schema-add-4TXJO2V7.mjs +24 -0
  83. package/dist/lib/neutral/schema-add-4TXJO2V7.mjs.map +7 -0
  84. package/dist/lib/neutral/schema-list-Q7HRRKGR.mjs +39 -0
  85. package/dist/lib/neutral/schema-list-Q7HRRKGR.mjs.map +7 -0
  86. package/dist/lib/neutral/sync-issues-A2RJNPEF.mjs +167 -0
  87. package/dist/lib/neutral/sync-issues-A2RJNPEF.mjs.map +7 -0
  88. package/dist/lib/neutral/sync-triggers-NV4JCRN5.mjs +137 -0
  89. package/dist/lib/neutral/sync-triggers-NV4JCRN5.mjs.map +7 -0
  90. package/dist/lib/neutral/tag-add-5NOHUTIE.mjs +19 -0
  91. package/dist/lib/neutral/tag-add-5NOHUTIE.mjs.map +7 -0
  92. package/dist/lib/neutral/tag-remove-QTKYDJAW.mjs +19 -0
  93. package/dist/lib/neutral/tag-remove-QTKYDJAW.mjs.map +7 -0
  94. package/dist/lib/neutral/testing/index.mjs +76 -0
  95. package/dist/lib/neutral/testing/index.mjs.map +7 -0
  96. package/dist/lib/neutral/update-blueprints-K7A5SHBZ.mjs +17 -0
  97. package/dist/lib/neutral/update-blueprints-K7A5SHBZ.mjs.map +7 -0
  98. package/dist/lib/neutral/update-tasks-UGGHWXT5.mjs +46 -0
  99. package/dist/lib/neutral/update-tasks-UGGHWXT5.mjs.map +7 -0
  100. package/dist/types/src/blueprints/automation/blueprint.d.ts +4 -0
  101. package/dist/types/src/blueprints/automation/blueprint.d.ts.map +1 -0
  102. package/dist/types/src/blueprints/automation/index.d.ts +2 -0
  103. package/dist/types/src/blueprints/automation/index.d.ts.map +1 -0
  104. package/dist/types/src/blueprints/blueprint-manager/blueprint.d.ts +4 -0
  105. package/dist/types/src/blueprints/blueprint-manager/blueprint.d.ts.map +1 -0
  106. package/dist/types/src/blueprints/blueprint-manager/blueprint.test.d.ts +2 -0
  107. package/dist/types/src/blueprints/blueprint-manager/blueprint.test.d.ts.map +1 -0
  108. package/dist/types/src/blueprints/blueprint-manager/functions/definitions.d.ts +60 -0
  109. package/dist/types/src/blueprints/blueprint-manager/functions/definitions.d.ts.map +1 -0
  110. package/dist/types/src/blueprints/blueprint-manager/functions/enable-blueprints.d.ts +36 -0
  111. package/dist/types/src/blueprints/blueprint-manager/functions/enable-blueprints.d.ts.map +1 -0
  112. package/dist/types/src/blueprints/blueprint-manager/functions/index.d.ts +4 -0
  113. package/dist/types/src/blueprints/blueprint-manager/functions/index.d.ts.map +1 -0
  114. package/dist/types/src/blueprints/blueprint-manager/functions/query-blueprints.d.ts +27 -0
  115. package/dist/types/src/blueprints/blueprint-manager/functions/query-blueprints.d.ts.map +1 -0
  116. package/dist/types/src/blueprints/blueprint-manager/functions/update-blueprints.d.ts +5 -0
  117. package/dist/types/src/blueprints/blueprint-manager/functions/update-blueprints.d.ts.map +1 -0
  118. package/dist/types/src/blueprints/blueprint-manager/index.d.ts +3 -0
  119. package/dist/types/src/blueprints/blueprint-manager/index.d.ts.map +1 -0
  120. package/dist/types/src/blueprints/browser/blueprint.d.ts +4 -0
  121. package/dist/types/src/blueprints/browser/blueprint.d.ts.map +1 -0
  122. package/dist/types/src/blueprints/browser/blueprint.test.d.ts +2 -0
  123. package/dist/types/src/blueprints/browser/blueprint.test.d.ts.map +1 -0
  124. package/dist/types/src/blueprints/browser/index.d.ts +2 -0
  125. package/dist/types/src/blueprints/browser/index.d.ts.map +1 -0
  126. package/dist/types/src/blueprints/database/blueprint.d.ts +4 -0
  127. package/dist/types/src/blueprints/database/blueprint.d.ts.map +1 -0
  128. package/dist/types/src/blueprints/database/blueprint.test.d.ts +2 -0
  129. package/dist/types/src/blueprints/database/blueprint.test.d.ts.map +1 -0
  130. package/dist/types/src/blueprints/database/functions/context-add.d.ts +7 -0
  131. package/dist/types/src/blueprints/database/functions/context-add.d.ts.map +1 -0
  132. package/dist/types/src/blueprints/database/functions/context-remove.d.ts +7 -0
  133. package/dist/types/src/blueprints/database/functions/context-remove.d.ts.map +1 -0
  134. package/dist/types/src/blueprints/database/functions/definitions.d.ts +59 -0
  135. package/dist/types/src/blueprints/database/functions/definitions.d.ts.map +1 -0
  136. package/dist/types/src/blueprints/database/functions/index.d.ts +4 -0
  137. package/dist/types/src/blueprints/database/functions/index.d.ts.map +1 -0
  138. package/dist/types/src/blueprints/database/functions/load.d.ts +7 -0
  139. package/dist/types/src/blueprints/database/functions/load.d.ts.map +1 -0
  140. package/dist/types/src/blueprints/database/functions/object-create.d.ts +8 -0
  141. package/dist/types/src/blueprints/database/functions/object-create.d.ts.map +1 -0
  142. package/dist/types/src/blueprints/database/functions/object-delete.d.ts +7 -0
  143. package/dist/types/src/blueprints/database/functions/object-delete.d.ts.map +1 -0
  144. package/dist/types/src/blueprints/database/functions/object-update.d.ts +10 -0
  145. package/dist/types/src/blueprints/database/functions/object-update.d.ts.map +1 -0
  146. package/dist/types/src/blueprints/database/functions/query.d.ts +13 -0
  147. package/dist/types/src/blueprints/database/functions/query.d.ts.map +1 -0
  148. package/dist/types/src/blueprints/database/functions/relation-create.d.ts +10 -0
  149. package/dist/types/src/blueprints/database/functions/relation-create.d.ts.map +1 -0
  150. package/dist/types/src/blueprints/database/functions/relation-delete.d.ts +7 -0
  151. package/dist/types/src/blueprints/database/functions/relation-delete.d.ts.map +1 -0
  152. package/dist/types/src/blueprints/database/functions/schema-add.d.ts +9 -0
  153. package/dist/types/src/blueprints/database/functions/schema-add.d.ts.map +1 -0
  154. package/dist/types/src/blueprints/database/functions/schema-list.d.ts +7 -0
  155. package/dist/types/src/blueprints/database/functions/schema-list.d.ts.map +1 -0
  156. package/dist/types/src/blueprints/database/functions/tag-add.d.ts +8 -0
  157. package/dist/types/src/blueprints/database/functions/tag-add.d.ts.map +1 -0
  158. package/dist/types/src/blueprints/database/functions/tag-remove.d.ts +8 -0
  159. package/dist/types/src/blueprints/database/functions/tag-remove.d.ts.map +1 -0
  160. package/dist/types/src/blueprints/database/index.d.ts +3 -0
  161. package/dist/types/src/blueprints/database/index.d.ts.map +1 -0
  162. package/dist/types/src/blueprints/discord/blueprint.d.ts +4 -0
  163. package/dist/types/src/blueprints/discord/blueprint.d.ts.map +1 -0
  164. package/dist/types/src/blueprints/discord/functions/definitions.d.ts +16 -0
  165. package/dist/types/src/blueprints/discord/functions/definitions.d.ts.map +1 -0
  166. package/dist/types/src/{functions/discord → blueprints/discord/functions}/fetch-messages.d.ts +4 -2
  167. package/dist/types/src/blueprints/discord/functions/fetch-messages.d.ts.map +1 -0
  168. package/dist/types/src/blueprints/discord/functions/fetch-messages.test.d.ts.map +1 -0
  169. package/dist/types/src/blueprints/discord/functions/index.d.ts +4 -0
  170. package/dist/types/src/blueprints/discord/functions/index.d.ts.map +1 -0
  171. package/dist/types/src/blueprints/discord/index.d.ts +2 -2
  172. package/dist/types/src/blueprints/discord/index.d.ts.map +1 -1
  173. package/dist/types/src/blueprints/github/functions/definitions.d.ts +8 -0
  174. package/dist/types/src/blueprints/github/functions/definitions.d.ts.map +1 -0
  175. package/dist/types/src/blueprints/github/functions/fetch-prs.d.ts +9 -0
  176. package/dist/types/src/blueprints/github/functions/fetch-prs.d.ts.map +1 -0
  177. package/dist/types/src/blueprints/github/functions/index.d.ts +4 -0
  178. package/dist/types/src/blueprints/github/functions/index.d.ts.map +1 -0
  179. package/dist/types/src/blueprints/github/index.d.ts +2 -0
  180. package/dist/types/src/blueprints/github/index.d.ts.map +1 -0
  181. package/dist/types/src/blueprints/index.d.ts +11 -6
  182. package/dist/types/src/blueprints/index.d.ts.map +1 -1
  183. package/dist/types/src/blueprints/linear/blueprint.d.ts +4 -0
  184. package/dist/types/src/blueprints/linear/blueprint.d.ts.map +1 -0
  185. package/dist/types/src/blueprints/linear/functions/definitions.d.ts +7 -0
  186. package/dist/types/src/blueprints/linear/functions/definitions.d.ts.map +1 -0
  187. package/dist/types/src/blueprints/linear/functions/index.d.ts +4 -0
  188. package/dist/types/src/blueprints/linear/functions/index.d.ts.map +1 -0
  189. package/dist/types/src/blueprints/linear/functions/linear.test.d.ts.map +1 -0
  190. package/dist/types/src/blueprints/linear/functions/sync-issues.d.ts +11 -0
  191. package/dist/types/src/blueprints/linear/functions/sync-issues.d.ts.map +1 -0
  192. package/dist/types/src/blueprints/linear/index.d.ts +2 -2
  193. package/dist/types/src/blueprints/linear/index.d.ts.map +1 -1
  194. package/dist/types/src/blueprints/memory/blueprint.d.ts +4 -0
  195. package/dist/types/src/blueprints/memory/blueprint.d.ts.map +1 -0
  196. package/dist/types/src/blueprints/memory/blueprint.test.d.ts +2 -0
  197. package/dist/types/src/blueprints/memory/blueprint.test.d.ts.map +1 -0
  198. package/dist/types/src/blueprints/memory/functions/definitions.d.ts +17 -0
  199. package/dist/types/src/blueprints/memory/functions/definitions.d.ts.map +1 -0
  200. package/dist/types/src/blueprints/memory/functions/delete.d.ts +10 -0
  201. package/dist/types/src/blueprints/memory/functions/delete.d.ts.map +1 -0
  202. package/dist/types/src/blueprints/memory/functions/index.d.ts +4 -0
  203. package/dist/types/src/blueprints/memory/functions/index.d.ts.map +1 -0
  204. package/dist/types/src/blueprints/memory/functions/query.d.ts +8 -0
  205. package/dist/types/src/blueprints/memory/functions/query.d.ts.map +1 -0
  206. package/dist/types/src/blueprints/memory/functions/save.d.ts +8 -0
  207. package/dist/types/src/blueprints/memory/functions/save.d.ts.map +1 -0
  208. package/dist/types/src/blueprints/memory/index.d.ts +3 -0
  209. package/dist/types/src/blueprints/memory/index.d.ts.map +1 -0
  210. package/dist/types/src/blueprints/planning/blueprint.d.ts +4 -0
  211. package/dist/types/src/blueprints/planning/blueprint.d.ts.map +1 -0
  212. package/dist/types/src/blueprints/planning/functions/definitions.d.ts +11 -0
  213. package/dist/types/src/blueprints/planning/functions/definitions.d.ts.map +1 -0
  214. package/dist/types/src/blueprints/planning/functions/index.d.ts +4 -0
  215. package/dist/types/src/blueprints/planning/functions/index.d.ts.map +1 -0
  216. package/dist/types/src/blueprints/planning/functions/update-tasks.d.ts +11 -0
  217. package/dist/types/src/blueprints/planning/functions/update-tasks.d.ts.map +1 -0
  218. package/dist/types/src/blueprints/planning/index.d.ts +2 -2
  219. package/dist/types/src/blueprints/planning/index.d.ts.map +1 -1
  220. package/dist/types/src/blueprints/project/blueprint.d.ts +4 -0
  221. package/dist/types/src/blueprints/project/blueprint.d.ts.map +1 -0
  222. package/dist/types/src/blueprints/project/blueprint.test.d.ts +2 -0
  223. package/dist/types/src/blueprints/project/blueprint.test.d.ts.map +1 -0
  224. package/dist/types/src/blueprints/project/functions/add-artifact.d.ts +8 -0
  225. package/dist/types/src/blueprints/project/functions/add-artifact.d.ts.map +1 -0
  226. package/dist/types/src/blueprints/project/functions/agent.d.ts +4 -0
  227. package/dist/types/src/blueprints/project/functions/agent.d.ts.map +1 -0
  228. package/dist/types/src/blueprints/project/functions/definitions.d.ts +158 -0
  229. package/dist/types/src/blueprints/project/functions/definitions.d.ts.map +1 -0
  230. package/dist/types/src/blueprints/project/functions/get-context.d.ts +15 -0
  231. package/dist/types/src/blueprints/project/functions/get-context.d.ts.map +1 -0
  232. package/dist/types/src/blueprints/project/functions/index.d.ts +4 -0
  233. package/dist/types/src/blueprints/project/functions/index.d.ts.map +1 -0
  234. package/dist/types/src/blueprints/project/functions/qualifier.d.ts +73 -0
  235. package/dist/types/src/blueprints/project/functions/qualifier.d.ts.map +1 -0
  236. package/dist/types/src/blueprints/project/index.d.ts +3 -0
  237. package/dist/types/src/blueprints/project/index.d.ts.map +1 -0
  238. package/dist/types/src/blueprints/project-wizard/blueprint.d.ts +4 -0
  239. package/dist/types/src/blueprints/project-wizard/blueprint.d.ts.map +1 -0
  240. package/dist/types/src/blueprints/project-wizard/functions/create-project.d.ts +52 -0
  241. package/dist/types/src/blueprints/project-wizard/functions/create-project.d.ts.map +1 -0
  242. package/dist/types/src/blueprints/project-wizard/functions/definitions.d.ts +97 -0
  243. package/dist/types/src/blueprints/project-wizard/functions/definitions.d.ts.map +1 -0
  244. package/dist/types/src/blueprints/project-wizard/functions/index.d.ts +4 -0
  245. package/dist/types/src/blueprints/project-wizard/functions/index.d.ts.map +1 -0
  246. package/dist/types/src/blueprints/project-wizard/functions/project-rules.d.ts +4 -0
  247. package/dist/types/src/blueprints/project-wizard/functions/project-rules.d.ts.map +1 -0
  248. package/dist/types/src/blueprints/project-wizard/functions/sync-triggers.d.ts +48 -0
  249. package/dist/types/src/blueprints/project-wizard/functions/sync-triggers.d.ts.map +1 -0
  250. package/dist/types/src/blueprints/project-wizard/index.d.ts +3 -0
  251. package/dist/types/src/blueprints/project-wizard/index.d.ts.map +1 -0
  252. package/dist/types/src/blueprints/testing.d.ts +9 -5
  253. package/dist/types/src/blueprints/testing.d.ts.map +1 -1
  254. package/dist/types/src/blueprints/websearch/blueprint.d.ts +4 -0
  255. package/dist/types/src/blueprints/websearch/blueprint.d.ts.map +1 -0
  256. package/dist/types/src/blueprints/websearch/blueprint.test.d.ts +2 -0
  257. package/dist/types/src/blueprints/websearch/blueprint.test.d.ts.map +1 -0
  258. package/dist/types/src/blueprints/websearch/functions/definitions.d.ts +5 -0
  259. package/dist/types/src/blueprints/websearch/functions/definitions.d.ts.map +1 -0
  260. package/dist/types/src/blueprints/websearch/functions/fetch.d.ts +6 -0
  261. package/dist/types/src/blueprints/websearch/functions/fetch.d.ts.map +1 -0
  262. package/dist/types/src/blueprints/websearch/functions/index.d.ts +4 -0
  263. package/dist/types/src/blueprints/websearch/functions/index.d.ts.map +1 -0
  264. package/dist/types/src/blueprints/websearch/index.d.ts +3 -3
  265. package/dist/types/src/blueprints/websearch/index.d.ts.map +1 -1
  266. package/dist/types/src/blueprints/websearch/{websearch-toolkit.d.ts → toolkit.d.ts} +3 -1
  267. package/dist/types/src/blueprints/websearch/toolkit.d.ts.map +1 -0
  268. package/dist/types/src/crud/graph.d.ts +14 -11
  269. package/dist/types/src/crud/graph.d.ts.map +1 -1
  270. package/dist/types/src/errors.d.ts +41 -0
  271. package/dist/types/src/errors.d.ts.map +1 -0
  272. package/dist/types/src/functions/agent/definitions.d.ts +61 -0
  273. package/dist/types/src/functions/agent/definitions.d.ts.map +1 -0
  274. package/dist/types/src/functions/agent/index.d.ts +3 -4
  275. package/dist/types/src/functions/agent/index.d.ts.map +1 -1
  276. package/dist/types/src/functions/agent/prompt.d.ts +2 -7
  277. package/dist/types/src/functions/agent/prompt.d.ts.map +1 -1
  278. package/dist/types/src/functions/agent/prompt.test.d.ts +2 -0
  279. package/dist/types/src/functions/agent/prompt.test.d.ts.map +1 -0
  280. package/dist/types/src/functions/index.d.ts +0 -6
  281. package/dist/types/src/functions/index.d.ts.map +1 -1
  282. package/dist/types/src/index.d.ts +2 -2
  283. package/dist/types/src/index.d.ts.map +1 -1
  284. package/dist/types/src/sync/sync.d.ts +3 -3
  285. package/dist/types/src/sync/sync.d.ts.map +1 -1
  286. package/dist/types/src/testing/index.d.ts +2 -1
  287. package/dist/types/src/testing/index.d.ts.map +1 -1
  288. package/dist/types/src/testing/plugins.d.ts +19 -0
  289. package/dist/types/src/testing/plugins.d.ts.map +1 -0
  290. package/dist/types/src/toolkits/WebToolkit.d.ts +38 -0
  291. package/dist/types/src/toolkits/WebToolkit.d.ts.map +1 -0
  292. package/dist/types/src/toolkits/index.d.ts +1 -2
  293. package/dist/types/src/toolkits/index.d.ts.map +1 -1
  294. package/dist/types/src/types/Agent.d.ts +77 -0
  295. package/dist/types/src/types/Agent.d.ts.map +1 -0
  296. package/dist/types/src/types/Chat.d.ts +56 -0
  297. package/dist/types/src/types/Chat.d.ts.map +1 -0
  298. package/dist/types/src/types/McpServer.d.ts +18 -0
  299. package/dist/types/src/types/McpServer.d.ts.map +1 -0
  300. package/dist/types/src/types/Memory.d.ts +12 -0
  301. package/dist/types/src/types/Memory.d.ts.map +1 -0
  302. package/dist/types/src/types/Plan.d.ts +89 -0
  303. package/dist/types/src/types/Plan.d.ts.map +1 -0
  304. package/dist/types/src/types/index.d.ts +6 -0
  305. package/dist/types/src/types/index.d.ts.map +1 -0
  306. package/dist/types/src/util/graphql.d.ts.map +1 -1
  307. package/dist/types/tsconfig.tsbuildinfo +1 -1
  308. package/package.json +44 -40
  309. package/src/blueprints/automation/blueprint.ts +107 -0
  310. package/src/blueprints/automation/index.ts +5 -0
  311. package/src/blueprints/blueprint-manager/blueprint.conversations.json +1 -0
  312. package/src/blueprints/blueprint-manager/blueprint.test.ts +199 -0
  313. package/src/blueprints/blueprint-manager/blueprint.ts +49 -0
  314. package/src/blueprints/blueprint-manager/functions/definitions.ts +58 -0
  315. package/src/blueprints/blueprint-manager/functions/enable-blueprints.ts +44 -0
  316. package/src/blueprints/blueprint-manager/functions/index.ts +13 -0
  317. package/src/blueprints/blueprint-manager/functions/query-blueprints.ts +19 -0
  318. package/src/blueprints/blueprint-manager/functions/update-blueprints.ts +19 -0
  319. package/src/blueprints/blueprint-manager/index.ts +6 -0
  320. package/src/blueprints/browser/blueprint.test.ts +62 -0
  321. package/src/blueprints/browser/blueprint.ts +40 -0
  322. package/src/blueprints/browser/index.ts +5 -0
  323. package/src/blueprints/database/blueprint.conversations.json +1 -0
  324. package/src/blueprints/database/blueprint.test.ts +532 -0
  325. package/src/blueprints/database/blueprint.ts +66 -0
  326. package/src/blueprints/database/functions/context-add.ts +24 -0
  327. package/src/blueprints/database/functions/context-remove.ts +24 -0
  328. package/src/blueprints/database/functions/definitions.ts +318 -0
  329. package/src/blueprints/database/functions/index.ts +23 -0
  330. package/src/blueprints/database/functions/load.ts +19 -0
  331. package/src/blueprints/database/functions/object-create.ts +38 -0
  332. package/src/blueprints/database/functions/object-delete.ts +20 -0
  333. package/src/blueprints/database/functions/object-update.ts +30 -0
  334. package/src/blueprints/database/functions/query.ts +64 -0
  335. package/src/blueprints/database/functions/relation-create.ts +34 -0
  336. package/src/blueprints/database/functions/relation-delete.ts +21 -0
  337. package/src/blueprints/database/functions/schema-add.ts +28 -0
  338. package/src/blueprints/database/functions/schema-list.ts +34 -0
  339. package/src/blueprints/database/functions/tag-add.ts +21 -0
  340. package/src/blueprints/database/functions/tag-remove.ts +21 -0
  341. package/src/blueprints/database/index.ts +21 -0
  342. package/src/blueprints/discord/blueprint.ts +41 -0
  343. package/src/blueprints/discord/functions/definitions.ts +71 -0
  344. package/src/blueprints/discord/functions/fetch-messages.test.ts +45 -0
  345. package/src/blueprints/discord/functions/fetch-messages.ts +199 -0
  346. package/src/blueprints/discord/functions/index.ts +9 -0
  347. package/src/blueprints/discord/index.ts +2 -3
  348. package/src/blueprints/github/functions/definitions.ts +27 -0
  349. package/src/blueprints/github/functions/fetch-prs.ts +24 -0
  350. package/src/blueprints/github/functions/index.ts +9 -0
  351. package/src/blueprints/github/index.ts +5 -0
  352. package/src/blueprints/index.ts +11 -6
  353. package/src/blueprints/linear/blueprint.ts +42 -0
  354. package/src/blueprints/linear/functions/definitions.ts +24 -0
  355. package/src/blueprints/linear/functions/index.ts +9 -0
  356. package/src/blueprints/linear/functions/linear.test.ts +59 -0
  357. package/src/{functions/linear → blueprints/linear/functions}/sync-issues.ts +40 -46
  358. package/src/blueprints/linear/index.ts +2 -3
  359. package/src/blueprints/memory/blueprint.conversations.json +1 -0
  360. package/src/blueprints/memory/blueprint.test.ts +139 -0
  361. package/src/blueprints/memory/blueprint.ts +41 -0
  362. package/src/blueprints/memory/functions/definitions.ts +68 -0
  363. package/src/blueprints/memory/functions/delete.ts +20 -0
  364. package/src/blueprints/memory/functions/index.ts +13 -0
  365. package/src/blueprints/memory/functions/query.ts +32 -0
  366. package/src/blueprints/memory/functions/save.ts +20 -0
  367. package/src/blueprints/memory/index.ts +6 -0
  368. package/src/blueprints/planning/blueprint.ts +24 -0
  369. package/src/blueprints/planning/functions/definitions.ts +137 -0
  370. package/src/blueprints/planning/functions/index.ts +9 -0
  371. package/src/blueprints/planning/functions/update-tasks.ts +45 -0
  372. package/src/blueprints/planning/index.ts +3 -4
  373. package/src/blueprints/project/blueprint.conversations.json +1 -0
  374. package/src/blueprints/project/blueprint.test.ts +715 -0
  375. package/src/blueprints/project/blueprint.ts +64 -0
  376. package/src/blueprints/project/functions/add-artifact.ts +30 -0
  377. package/src/blueprints/project/functions/agent.ts +69 -0
  378. package/src/blueprints/project/functions/definitions.ts +92 -0
  379. package/src/blueprints/project/functions/get-context.ts +46 -0
  380. package/src/blueprints/project/functions/index.ts +14 -0
  381. package/src/blueprints/project/functions/qualifier.ts +90 -0
  382. package/src/blueprints/project/index.ts +6 -0
  383. package/src/blueprints/project-wizard/blueprint.ts +52 -0
  384. package/src/blueprints/project-wizard/functions/create-project.ts +33 -0
  385. package/src/blueprints/project-wizard/functions/definitions.ts +64 -0
  386. package/src/blueprints/project-wizard/functions/index.ts +13 -0
  387. package/src/blueprints/project-wizard/functions/project-rules.ts +77 -0
  388. package/src/blueprints/project-wizard/functions/sync-triggers.ts +159 -0
  389. package/src/blueprints/project-wizard/index.ts +6 -0
  390. package/src/blueprints/testing.ts +23 -8
  391. package/src/blueprints/websearch/blueprint.conversations.json +1 -0
  392. package/src/blueprints/websearch/blueprint.test.ts +39 -0
  393. package/src/blueprints/websearch/blueprint.ts +30 -0
  394. package/src/blueprints/websearch/functions/definitions.ts +25 -0
  395. package/src/blueprints/websearch/functions/fetch.ts +18 -0
  396. package/src/blueprints/websearch/functions/index.ts +9 -0
  397. package/src/blueprints/websearch/index.ts +3 -4
  398. package/src/blueprints/websearch/{websearch-toolkit.ts → toolkit.ts} +6 -1
  399. package/src/crud/graph.test.ts +13 -38
  400. package/src/crud/graph.ts +33 -41
  401. package/src/errors.ts +25 -0
  402. package/src/functions/READ_THIS.md +5 -0
  403. package/src/functions/agent/definitions.ts +53 -0
  404. package/src/functions/agent/index.ts +3 -5
  405. package/src/functions/agent/prompt.conversations.json +1 -0
  406. package/src/functions/agent/prompt.test.ts +83 -0
  407. package/src/functions/agent/prompt.ts +211 -102
  408. package/src/functions/index.ts +0 -6
  409. package/src/index.ts +2 -2
  410. package/src/sync/sync.ts +52 -33
  411. package/src/testing/index.ts +2 -1
  412. package/src/testing/plugins.tsx +79 -0
  413. package/src/toolkits/WebToolkit.ts +33 -0
  414. package/src/toolkits/index.ts +1 -2
  415. package/src/types/Agent.ts +239 -0
  416. package/src/types/Chat.ts +63 -0
  417. package/src/types/McpServer.ts +37 -0
  418. package/src/types/Memory.ts +24 -0
  419. package/src/types/Plan.ts +110 -0
  420. package/src/types/index.ts +9 -0
  421. package/dist/lib/browser/index.mjs +0 -2777
  422. package/dist/lib/browser/index.mjs.map +0 -7
  423. package/dist/lib/browser/meta.json +0 -1
  424. package/dist/lib/node-esm/index.mjs +0 -2778
  425. package/dist/lib/node-esm/index.mjs.map +0 -7
  426. package/dist/lib/node-esm/meta.json +0 -1
  427. package/dist/types/src/blueprints/design/design-blueprint.d.ts +0 -4
  428. package/dist/types/src/blueprints/design/design-blueprint.d.ts.map +0 -1
  429. package/dist/types/src/blueprints/design/design-blueprint.test.d.ts +0 -2
  430. package/dist/types/src/blueprints/design/design-blueprint.test.d.ts.map +0 -1
  431. package/dist/types/src/blueprints/design/index.d.ts +0 -3
  432. package/dist/types/src/blueprints/design/index.d.ts.map +0 -1
  433. package/dist/types/src/blueprints/discord/discord-blueprint.d.ts +0 -18
  434. package/dist/types/src/blueprints/discord/discord-blueprint.d.ts.map +0 -1
  435. package/dist/types/src/blueprints/linear/linear-blueprint.d.ts +0 -18
  436. package/dist/types/src/blueprints/linear/linear-blueprint.d.ts.map +0 -1
  437. package/dist/types/src/blueprints/planning/planning-blueprint.d.ts +0 -4
  438. package/dist/types/src/blueprints/planning/planning-blueprint.d.ts.map +0 -1
  439. package/dist/types/src/blueprints/planning/planning-blueprint.test.d.ts +0 -2
  440. package/dist/types/src/blueprints/planning/planning-blueprint.test.d.ts.map +0 -1
  441. package/dist/types/src/blueprints/research/index.d.ts +0 -3
  442. package/dist/types/src/blueprints/research/index.d.ts.map +0 -1
  443. package/dist/types/src/blueprints/research/research-blueprint.d.ts +0 -4
  444. package/dist/types/src/blueprints/research/research-blueprint.d.ts.map +0 -1
  445. package/dist/types/src/blueprints/research/research-blueprint.test.d.ts +0 -2
  446. package/dist/types/src/blueprints/research/research-blueprint.test.d.ts.map +0 -1
  447. package/dist/types/src/blueprints/websearch/websearch-blueprint.d.ts +0 -4
  448. package/dist/types/src/blueprints/websearch/websearch-blueprint.d.ts.map +0 -1
  449. package/dist/types/src/blueprints/websearch/websearch-toolkit.d.ts.map +0 -1
  450. package/dist/types/src/experimental/feed.test.d.ts +0 -2
  451. package/dist/types/src/experimental/feed.test.d.ts.map +0 -1
  452. package/dist/types/src/functions/discord/fetch-messages.d.ts.map +0 -1
  453. package/dist/types/src/functions/discord/fetch-messages.test.d.ts.map +0 -1
  454. package/dist/types/src/functions/discord/index.d.ts +0 -12
  455. package/dist/types/src/functions/discord/index.d.ts.map +0 -1
  456. package/dist/types/src/functions/document/index.d.ts +0 -13
  457. package/dist/types/src/functions/document/index.d.ts.map +0 -1
  458. package/dist/types/src/functions/document/read.d.ts +0 -7
  459. package/dist/types/src/functions/document/read.d.ts.map +0 -1
  460. package/dist/types/src/functions/document/update.d.ts +0 -6
  461. package/dist/types/src/functions/document/update.d.ts.map +0 -1
  462. package/dist/types/src/functions/entity-extraction/entity-extraction.d.ts +0 -173
  463. package/dist/types/src/functions/entity-extraction/entity-extraction.d.ts.map +0 -1
  464. package/dist/types/src/functions/entity-extraction/entity-extraction.test.d.ts +0 -2
  465. package/dist/types/src/functions/entity-extraction/entity-extraction.test.d.ts.map +0 -1
  466. package/dist/types/src/functions/entity-extraction/index.d.ts +0 -174
  467. package/dist/types/src/functions/entity-extraction/index.d.ts.map +0 -1
  468. package/dist/types/src/functions/exa/exa.d.ts +0 -5
  469. package/dist/types/src/functions/exa/exa.d.ts.map +0 -1
  470. package/dist/types/src/functions/exa/index.d.ts +0 -3
  471. package/dist/types/src/functions/exa/index.d.ts.map +0 -1
  472. package/dist/types/src/functions/exa/mock.d.ts +0 -5
  473. package/dist/types/src/functions/exa/mock.d.ts.map +0 -1
  474. package/dist/types/src/functions/github/fetch-prs.d.ts +0 -6
  475. package/dist/types/src/functions/github/fetch-prs.d.ts.map +0 -1
  476. package/dist/types/src/functions/linear/index.d.ts +0 -9
  477. package/dist/types/src/functions/linear/index.d.ts.map +0 -1
  478. package/dist/types/src/functions/linear/linear.test.d.ts.map +0 -1
  479. package/dist/types/src/functions/linear/sync-issues.d.ts +0 -12
  480. package/dist/types/src/functions/linear/sync-issues.d.ts.map +0 -1
  481. package/dist/types/src/functions/research/document-create.d.ts +0 -9
  482. package/dist/types/src/functions/research/document-create.d.ts.map +0 -1
  483. package/dist/types/src/functions/research/index.d.ts +0 -21
  484. package/dist/types/src/functions/research/index.d.ts.map +0 -1
  485. package/dist/types/src/functions/research/research-graph.d.ts +0 -18
  486. package/dist/types/src/functions/research/research-graph.d.ts.map +0 -1
  487. package/dist/types/src/functions/research/research.d.ts +0 -14
  488. package/dist/types/src/functions/research/research.d.ts.map +0 -1
  489. package/dist/types/src/functions/research/research.test.d.ts +0 -2
  490. package/dist/types/src/functions/research/research.test.d.ts.map +0 -1
  491. package/dist/types/src/functions/research/types.d.ts +0 -6
  492. package/dist/types/src/functions/research/types.d.ts.map +0 -1
  493. package/dist/types/src/functions/tasks/index.d.ts +0 -15
  494. package/dist/types/src/functions/tasks/index.d.ts.map +0 -1
  495. package/dist/types/src/functions/tasks/read.d.ts +0 -7
  496. package/dist/types/src/functions/tasks/read.d.ts.map +0 -1
  497. package/dist/types/src/functions/tasks/task-list.d.ts +0 -74
  498. package/dist/types/src/functions/tasks/task-list.d.ts.map +0 -1
  499. package/dist/types/src/functions/tasks/task-list.test.d.ts +0 -2
  500. package/dist/types/src/functions/tasks/task-list.test.d.ts.map +0 -1
  501. package/dist/types/src/functions/tasks/update.d.ts +0 -9
  502. package/dist/types/src/functions/tasks/update.d.ts.map +0 -1
  503. package/dist/types/src/plugins.d.ts +0 -19
  504. package/dist/types/src/plugins.d.ts.map +0 -1
  505. package/dist/types/src/testing/data/exa-search-1748337321991.d.ts +0 -38
  506. package/dist/types/src/testing/data/exa-search-1748337321991.d.ts.map +0 -1
  507. package/dist/types/src/testing/data/exa-search-1748337331526.d.ts +0 -37
  508. package/dist/types/src/testing/data/exa-search-1748337331526.d.ts.map +0 -1
  509. package/dist/types/src/testing/data/exa-search-1748337344119.d.ts +0 -58
  510. package/dist/types/src/testing/data/exa-search-1748337344119.d.ts.map +0 -1
  511. package/dist/types/src/testing/data/index.d.ts +0 -3
  512. package/dist/types/src/testing/data/index.d.ts.map +0 -1
  513. package/dist/types/src/toolkits/AssistantToolkit.d.ts +0 -17
  514. package/dist/types/src/toolkits/AssistantToolkit.d.ts.map +0 -1
  515. package/dist/types/src/toolkits/AssistantToolkit.test.d.ts +0 -2
  516. package/dist/types/src/toolkits/AssistantToolkit.test.d.ts.map +0 -1
  517. package/dist/types/src/toolkits/SystemToolkit.d.ts +0 -67
  518. package/dist/types/src/toolkits/SystemToolkit.d.ts.map +0 -1
  519. package/src/blueprints/design/design-blueprint.test.ts +0 -103
  520. package/src/blueprints/design/design-blueprint.ts +0 -33
  521. package/src/blueprints/design/index.ts +0 -7
  522. package/src/blueprints/discord/discord-blueprint.ts +0 -34
  523. package/src/blueprints/linear/linear-blueprint.ts +0 -35
  524. package/src/blueprints/planning/planning-blueprint.test.ts +0 -124
  525. package/src/blueprints/planning/planning-blueprint.ts +0 -98
  526. package/src/blueprints/research/index.ts +0 -7
  527. package/src/blueprints/research/research-blueprint.test.ts +0 -7
  528. package/src/blueprints/research/research-blueprint.ts +0 -53
  529. package/src/blueprints/websearch/websearch-blueprint.ts +0 -20
  530. package/src/experimental/feed.test.ts +0 -111
  531. package/src/functions/discord/fetch-messages.test.ts +0 -58
  532. package/src/functions/discord/fetch-messages.ts +0 -252
  533. package/src/functions/discord/index.ts +0 -9
  534. package/src/functions/document/index.ts +0 -12
  535. package/src/functions/document/read.ts +0 -29
  536. package/src/functions/document/update.ts +0 -30
  537. package/src/functions/entity-extraction/entity-extraction.conversations.json +0 -1
  538. package/src/functions/entity-extraction/entity-extraction.test.ts +0 -92
  539. package/src/functions/entity-extraction/entity-extraction.ts +0 -165
  540. package/src/functions/entity-extraction/index.ts +0 -9
  541. package/src/functions/exa/exa.ts +0 -37
  542. package/src/functions/exa/index.ts +0 -6
  543. package/src/functions/exa/mock.ts +0 -71
  544. package/src/functions/github/fetch-prs.ts +0 -30
  545. package/src/functions/linear/index.ts +0 -9
  546. package/src/functions/linear/linear.test.ts +0 -83
  547. package/src/functions/research/document-create.ts +0 -75
  548. package/src/functions/research/index.ts +0 -14
  549. package/src/functions/research/research-graph.ts +0 -47
  550. package/src/functions/research/research-instructions.tpl +0 -106
  551. package/src/functions/research/research.conversations.json +0 -1
  552. package/src/functions/research/research.test.ts +0 -179
  553. package/src/functions/research/research.ts +0 -190
  554. package/src/functions/research/types.ts +0 -26
  555. package/src/functions/tasks/index.ts +0 -11
  556. package/src/functions/tasks/read.ts +0 -34
  557. package/src/functions/tasks/task-list.test.ts +0 -99
  558. package/src/functions/tasks/task-list.ts +0 -165
  559. package/src/functions/tasks/update.ts +0 -52
  560. package/src/plugins.tsx +0 -68
  561. package/src/testing/data/exa-search-1748337321991.ts +0 -131
  562. package/src/testing/data/exa-search-1748337331526.ts +0 -144
  563. package/src/testing/data/exa-search-1748337344119.ts +0 -133
  564. package/src/testing/data/index.ts +0 -11
  565. package/src/toolkits/AssistantToolkit.conversations.json +0 -1
  566. package/src/toolkits/AssistantToolkit.test.ts +0 -88
  567. package/src/toolkits/AssistantToolkit.ts +0 -47
  568. package/src/toolkits/SystemToolkit.ts +0 -231
  569. /package/dist/types/src/{functions/discord → blueprints/discord/functions}/fetch-messages.test.d.ts +0 -0
  570. /package/dist/types/src/{functions/linear → blueprints/linear/functions}/linear.test.d.ts +0 -0
@@ -0,0 +1,293 @@
1
+ import {
2
+ Chat,
3
+ CompanionTo,
4
+ make
5
+ } from "./chunk-NR3GTWRC.mjs";
6
+ import {
7
+ __export
8
+ } from "./chunk-J5LGTIGS.mjs";
9
+
10
+ // src/types/Plan.ts
11
+ var Plan_exports = {};
12
+ __export(Plan_exports, {
13
+ Plan: () => Plan,
14
+ Task: () => Task,
15
+ TaskId: () => TaskId,
16
+ addTasks: () => addTasks,
17
+ formatPlan: () => formatPlan,
18
+ generateTaskId: () => generateTaskId,
19
+ makePlan: () => makePlan
20
+ });
21
+ import * as Schema from "effect/Schema";
22
+ import { Annotation, Obj, Ref, Type } from "@dxos/echo";
23
+ var TaskId = Schema.String.pipe(Schema.brand("@dxos/assistant-toolkit/TaskId"));
24
+ var Task = Schema.Struct({
25
+ /**
26
+ * Short task ID unique within the plan.
27
+ */
28
+ id: TaskId,
29
+ title: Schema.String.annotations({
30
+ description: "Task title and description."
31
+ }),
32
+ status: Schema.Literal("todo", "in-progress", "done"),
33
+ /**
34
+ * Parent task ID.
35
+ */
36
+ parent: Schema.optional(TaskId).annotations({
37
+ description: "Parent task ID."
38
+ }),
39
+ /**
40
+ * Chat object that this task is associated with.
41
+ */
42
+ chat: Schema.optional(Ref.Ref(Chat))
43
+ });
44
+ var Plan = Schema.Struct({
45
+ tasks: Schema.Array(Task)
46
+ }).pipe(Type.object({
47
+ typename: "org.dxos.type.plan",
48
+ version: "0.1.0"
49
+ }), Annotation.SystemTypeAnnotation.set(true));
50
+ var generateTaskId = (plan) => {
51
+ const existingIds = plan.tasks.map((task) => {
52
+ const [num, letter] = task.id.split("-");
53
+ return parseInt(num);
54
+ }).filter((_) => !isNaN(_));
55
+ let newId;
56
+ if (existingIds.length === 0) {
57
+ newId = 1;
58
+ } else {
59
+ newId = Math.max(...existingIds) + 1;
60
+ }
61
+ return TaskId.make(`${newId}-${crypto.randomUUID().slice(0, 2)}`);
62
+ };
63
+ var addTasks = (plan, tasks) => {
64
+ for (const task of tasks) {
65
+ const taskId = generateTaskId(plan);
66
+ plan.tasks.push({
67
+ id: taskId,
68
+ ...task,
69
+ status: task.status ?? "todo"
70
+ });
71
+ }
72
+ return plan;
73
+ };
74
+ var makePlan = (props) => {
75
+ const plan = Obj.make(Plan, {
76
+ tasks: []
77
+ });
78
+ Obj.update(plan, (plan2) => {
79
+ addTasks(plan2, props.tasks);
80
+ });
81
+ return plan;
82
+ };
83
+ var formatPlan = (plan) => {
84
+ return plan.tasks.map((task) => `- **${task.status?.toLocaleUpperCase()}**: ${task.title ?? "No title"} <!-- id=${task.id} -->`).join("\n");
85
+ };
86
+
87
+ // src/types/Agent.ts
88
+ var Agent_exports = {};
89
+ __export(Agent_exports, {
90
+ Agent: () => Agent,
91
+ getFromChatContext: () => getFromChatContext,
92
+ makeInitialized: () => makeInitialized,
93
+ resetChatHistory: () => resetChatHistory
94
+ });
95
+ import * as Effect from "effect/Effect";
96
+ import * as Function from "effect/Function";
97
+ import * as Schema2 from "effect/Schema";
98
+ import { AiContextBinder, AiContextService } from "@dxos/assistant";
99
+ import { QueueService } from "@dxos/compute";
100
+ import { Annotation as Annotation2, Database, Feed, Format, Obj as Obj2, Ref as Ref2, Relation, Type as Type2 } from "@dxos/echo";
101
+ import { Queue } from "@dxos/echo-db";
102
+ import { FormInputAnnotation, LabelAnnotation } from "@dxos/echo/internal";
103
+ import { acquireReleaseResource } from "@dxos/effect";
104
+ import { invariant } from "@dxos/invariant";
105
+ import { QueueAnnotation, Text } from "@dxos/schema";
106
+ var __dxlog_file = "/__w/dxos/dxos/packages/core/assistant-toolkit/src/types/Agent.ts";
107
+ var Agent = Schema2.Struct({
108
+ name: Schema2.optional(Schema2.String),
109
+ /**
110
+ * When false, agent triggers are disabled after sync-triggers runs.
111
+ */
112
+ enabled: Schema2.optional(Schema2.Boolean).annotations({
113
+ title: "Enabled",
114
+ description: "Master switch for agent automation; propagated to all triggers on sync."
115
+ }),
116
+ /**
117
+ * Instructions for the agent.
118
+ */
119
+ instructions: Ref2.Ref(Text.Text).pipe(Format.FormatAnnotation.set(Format.TypeFormat.Markdown), Schema2.annotations({
120
+ title: "Instructions"
121
+ })),
122
+ /**
123
+ * Primary chat for the agent.
124
+ */
125
+ // TODO(dmaretskyi): Multiple chats; RB: branching hierarchy.
126
+ chat: Schema2.optional(Ref2.Ref(Chat).pipe(FormInputAnnotation.set(false))),
127
+ // TODO(burdon): Is this used? Should it be an artifact?
128
+ // Format.FormatAnnotation.set(Format.TypeFormat.Markdown)
129
+ plan: Ref2.Ref(Plan).pipe(FormInputAnnotation.set(false)),
130
+ // TODO(burdon): Currently Memory.Memory objects are global to the space; make them artifacts?
131
+ artifacts: Schema2.Array(Schema2.Struct({
132
+ // TODO(dmaretskyi): Consider gettings names from the artifact itself using Obj.getLabel.
133
+ name: Schema2.String,
134
+ // TODO(burdon): Rename object.
135
+ data: Ref2.Ref(Obj2.Unknown)
136
+ })).pipe(FormInputAnnotation.set(false)),
137
+ /**
138
+ * Input feed for subscriptions.
139
+ */
140
+ // TODO(burdon): Rename to Feed?
141
+ // NOTE: Named `queue` to conform to subscribable schema (see QueueAnnotation).
142
+ queue: Schema2.optional(Ref2.Ref(Queue).pipe(FormInputAnnotation.set(false))),
143
+ /**
144
+ * References to objects with a canonical queue property.
145
+ * Schema must have the QueueAnnotation.
146
+ */
147
+ // TODO(dmaretskyi): Turn into an array of objects when form-data
148
+ subscriptions: Schema2.Array(Ref2.Ref(Obj2.Unknown)).pipe(FormInputAnnotation.set(false)),
149
+ /**
150
+ * Allow the agent to filter events.
151
+ * Related events will be added to the input queue of the agent.
152
+ * It is recommended to enable this.
153
+ */
154
+ filterEvents: Schema2.optional(Schema2.Boolean).annotations({
155
+ title: "Filter events",
156
+ description: "Allow the agent to filter events."
157
+ }),
158
+ /**
159
+ * Cron expression for a timer trigger that invokes the agent worker on a schedule.
160
+ * The timer trigger bypasses the qualifier and goes straight to the agent worker.
161
+ */
162
+ cron: Schema2.optional(Schema2.String).annotations({
163
+ title: "Cron",
164
+ description: "Cron expression for a timer trigger that invokes the agent on a schedule."
165
+ })
166
+ }).pipe(Type2.object({
167
+ typename: "org.dxos.type.agent",
168
+ version: "0.1.0"
169
+ }), LabelAnnotation.set([
170
+ "name"
171
+ ]), QueueAnnotation.set(true), Annotation2.IconAnnotation.set({
172
+ icon: "ph--drone--regular",
173
+ hue: "sky"
174
+ }));
175
+ var makeInitialized = (props, blueprint) => Effect.gen(function* () {
176
+ const agent = Obj2.make(Agent, {
177
+ ...props,
178
+ instructions: Ref2.make(Text.make(props.instructions)),
179
+ plan: Ref2.make(makePlan({
180
+ tasks: []
181
+ })),
182
+ artifacts: props.artifacts ?? [],
183
+ subscriptions: props.subscriptions ?? [],
184
+ filterEvents: props.filterEvents ?? true,
185
+ enabled: props.enabled ?? true
186
+ });
187
+ yield* Database.add(agent);
188
+ const feed = yield* Database.add(Feed.make());
189
+ const runtime2 = yield* Effect.runtime();
190
+ const contextBinder = new AiContextBinder({
191
+ feed,
192
+ runtime: runtime2
193
+ });
194
+ const agentBlueprint = yield* Database.add(Obj2.clone(blueprint, {
195
+ deep: true
196
+ }));
197
+ yield* Effect.promise(() => contextBinder.bind({
198
+ blueprints: [
199
+ Ref2.make(agentBlueprint),
200
+ ...props.blueprints ?? []
201
+ ],
202
+ objects: [
203
+ Ref2.make(agent),
204
+ ...props.contextObjects ?? []
205
+ ]
206
+ }));
207
+ const chat = yield* Database.add(make({
208
+ [Obj2.Parent]: agent,
209
+ feed: Ref2.make(feed)
210
+ }));
211
+ Obj2.setParent(feed, chat);
212
+ yield* Database.add(Relation.make(CompanionTo, {
213
+ [Relation.Source]: chat,
214
+ [Relation.Target]: agent
215
+ }));
216
+ const inputQueue = yield* QueueService.createQueue();
217
+ Obj2.update(agent, (agent2) => {
218
+ agent2.chat = Ref2.make(chat);
219
+ agent2.queue = Ref2.fromDXN(inputQueue.dxn);
220
+ });
221
+ return agent;
222
+ });
223
+ var resetChatHistory = (agent) => Effect.gen(function* () {
224
+ invariant(agent.chat, "Agent must have an existing chat to reset.", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 143, S: this, A: ["agent.chat", "'Agent must have an existing chat to reset.'"] });
225
+ const existingFeed = yield* agent.chat.pipe(Database.load).pipe(Effect.map((_) => _.feed), Effect.flatMap(Database.load));
226
+ const runtime2 = yield* Effect.runtime();
227
+ const existingContextBinder = yield* acquireReleaseResource(() => new AiContextBinder({
228
+ feed: existingFeed,
229
+ runtime: runtime2
230
+ }));
231
+ const blueprints = existingContextBinder.getBlueprints().map((blueprint) => Ref2.make(blueprint));
232
+ const objects = existingContextBinder.getObjects().map((object) => Ref2.make(object));
233
+ const feed = yield* Database.add(Feed.make());
234
+ const contextBinder = new AiContextBinder({
235
+ feed,
236
+ runtime: runtime2
237
+ });
238
+ yield* Effect.promise(() => contextBinder.bind({
239
+ blueprints,
240
+ objects
241
+ }));
242
+ const chat = yield* Database.add(make({
243
+ feed: Ref2.make(feed)
244
+ }));
245
+ Obj2.setParent(feed, chat);
246
+ Obj2.update(agent, (agent2) => {
247
+ agent2.chat = Ref2.make(chat);
248
+ });
249
+ yield* Database.add(Relation.make(CompanionTo, {
250
+ [Relation.Source]: chat,
251
+ [Relation.Target]: agent
252
+ }));
253
+ }).pipe(Effect.scoped);
254
+ var getFromChatContext = Effect.gen(function* () {
255
+ const agents = yield* Function.pipe(AiContextService.findObjects(Agent));
256
+ if (agents.length !== 1) {
257
+ return yield* Effect.fail(new Error(`There should be exactly one agent in context. Got: ${agents.length}`));
258
+ }
259
+ const agent = agents[0];
260
+ return agent;
261
+ });
262
+
263
+ // src/types/McpServer.ts
264
+ var McpServer_exports = {};
265
+ __export(McpServer_exports, {
266
+ McpServer: () => McpServer
267
+ });
268
+ import * as Schema3 from "effect/Schema";
269
+ import { Annotation as Annotation3, Type as Type3 } from "@dxos/echo";
270
+ import { LabelAnnotation as LabelAnnotation2 } from "@dxos/echo/internal";
271
+ var McpServer = Schema3.Struct({
272
+ name: Schema3.String,
273
+ url: Schema3.String,
274
+ protocol: Schema3.Union(Schema3.Literal("sse"), Schema3.Literal("http")),
275
+ /** Stored in plaintext; replicated to all peers in the space. */
276
+ apiKey: Schema3.optional(Schema3.String),
277
+ enabled: Schema3.optional(Schema3.Boolean)
278
+ }).pipe(Type3.object({
279
+ typename: "org.dxos.type.assistant.mcpServer",
280
+ version: "0.1.0"
281
+ }), LabelAnnotation2.set([
282
+ "name"
283
+ ]), Annotation3.IconAnnotation.set({
284
+ icon: "ph--plugs-connected--regular",
285
+ hue: "sky"
286
+ }));
287
+
288
+ export {
289
+ Plan_exports,
290
+ Agent_exports,
291
+ McpServer_exports
292
+ };
293
+ //# sourceMappingURL=chunk-SVI25Z2Y.mjs.map
@@ -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 { 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});\nexport interface Task extends Schema.Schema.Type<typeof Task> {}\n\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(\n Type.object({\n typename: 'org.dxos.type.plan',\n version: '0.1.0',\n }),\n Annotation.SystemTypeAnnotation.set(true),\n);\nexport interface Plan extends Schema.Schema.Type<typeof Plan> {}\n\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 { AiContextBinder, AiContextService } from '@dxos/assistant';\nimport { type Blueprint } from '@dxos/compute';\nimport { QueueService } from '@dxos/compute';\nimport { Annotation, Database, Feed, Format, Obj, Ref, Relation, Type } from '@dxos/echo';\nimport { Queue } from '@dxos/echo-db';\nimport { type ObjectNotFoundError } from '@dxos/echo/Err';\nimport { FormInputAnnotation, LabelAnnotation } from '@dxos/echo/internal';\nimport { acquireReleaseResource } from '@dxos/effect';\nimport { invariant } from '@dxos/invariant';\nimport { QueueAnnotation, 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 * Input feed for subscriptions.\n */\n // TODO(burdon): Rename to Feed?\n // NOTE: Named `queue` to conform to subscribable schema (see QueueAnnotation).\n queue: Schema.optional(Ref.Ref(Queue).pipe(FormInputAnnotation.set(false))),\n\n /**\n * References to objects with a canonical queue property.\n * Schema must have the QueueAnnotation.\n */\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 * 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 */\n filterEvents: Schema.optional(Schema.Boolean).annotations({\n title: 'Filter events',\n description: 'Allow the agent to filter events.',\n }),\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 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}).pipe(\n Type.object({\n typename: 'org.dxos.type.agent',\n version: '0.1.0',\n }),\n LabelAnnotation.set(['name']),\n QueueAnnotation.set(true),\n Annotation.IconAnnotation.set({\n icon: 'ph--drone--regular',\n hue: 'sky',\n }),\n);\n\nexport interface Agent extends Schema.Schema.Type<typeof Agent> {}\n\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, QueueService | Feed.FeedService | Database.Service> =>\n Effect.gen(function* () {\n const agent = Obj.make(Agent, {\n ...props,\n instructions: Ref.make(Text.make(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 yield* Database.add(agent);\n const feed = yield* Database.add(Feed.make());\n const runtime = yield* Effect.runtime<Feed.FeedService>();\n const contextBinder = new AiContextBinder({ 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 inputQueue = yield* QueueService.createQueue();\n\n Obj.update(agent, (agent) => {\n agent.chat = Ref.make(chat);\n agent.queue = Ref.fromDXN(inputQueue.dxn);\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, ObjectNotFoundError, 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 AiContextBinder({\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 AiContextBinder({ 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, AiContextService> = Effect.gen(function* () {\n const agents = yield* Function.pipe(AiContextService.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 { 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 * 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 name: Schema.String,\n url: Schema.String,\n protocol: Schema.Union(Schema.Literal('sse'), Schema.Literal('http')),\n /** Stored in plaintext; replicated to all peers in the space. */\n apiKey: Schema.optional(Schema.String),\n enabled: Schema.optional(Schema.Boolean),\n}).pipe(\n Type.object({\n typename: 'org.dxos.type.assistant.mcpServer',\n version: '0.1.0',\n }),\n LabelAnnotation.set(['name']),\n Annotation.IconAnnotation.set({\n icon: 'ph--plugs-connected--regular',\n hue: 'sky',\n }),\n);\n\nexport interface McpServer extends Schema.Schema.Type<typeof McpServer> {}\n"],
5
+ "mappings": "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",
6
+ "names": ["Schema", "Annotation", "Obj", "Ref", "Type", "TaskId", "String", "pipe", "brand", "Task", "Struct", "id", "title", "annotations", "description", "status", "Literal", "parent", "optional", "chat", "Ref", "Chat", "Plan", "tasks", "Array", "Type", "object", "typename", "version", "Annotation", "SystemTypeAnnotation", "set", "generateTaskId", "plan", "existingIds", "map", "task", "num", "letter", "split", "parseInt", "filter", "_", "isNaN", "newId", "length", "Math", "max", "make", "crypto", "randomUUID", "slice", "addTasks", "taskId", "push", "makePlan", "props", "Obj", "update", "formatPlan", "toLocaleUpperCase", "join", "Effect", "Function", "Schema", "AiContextBinder", "AiContextService", "QueueService", "Annotation", "Database", "Feed", "Format", "Obj", "Ref", "Relation", "Type", "Queue", "FormInputAnnotation", "LabelAnnotation", "acquireReleaseResource", "invariant", "QueueAnnotation", "Text", "Ref", "artifacts", "Array", "Schema", "String", "data", "Obj", "description", "Type", "typename", "version", "LabelAnnotation", "QueueAnnotation", "set", "icon", "hue", "Annotation", "props", "instructions", "make", "Text", "plan", "subscriptions", "filterEvents", "enabled", "Database", "agent", "runtime", "Effect", "contextBinder", "AiContextBinder", "feed", "agentBlueprint", "objects", "chat", "setParent", "Source", "Relation", "Target", "inputQueue", "queue", "fromDXN", "existingFeed", "pipe", "existingContextBinder", "acquireReleaseResource", "blueprints", "add", "scoped", "agents", "Error", "Schema", "Annotation", "Type", "LabelAnnotation", "McpServer", "Struct", "name", "String", "url", "protocol", "Union", "Literal", "apiKey", "optional", "enabled", "Boolean", "pipe", "object", "typename", "version", "set", "IconAnnotation", "icon", "hue"]
7
+ }
@@ -0,0 +1,74 @@
1
+ // src/blueprints/discord/functions/definitions.ts
2
+ import * as Schema from "effect/Schema";
3
+ import { CredentialsService, Trace } from "@dxos/compute";
4
+ import { Operation } from "@dxos/compute";
5
+ var TimeRangeSchema = Schema.String.pipe(Schema.pattern(/\d+(s|m|h|d)/)).annotations({
6
+ description: "Time range. 1d - 1 day, 2h - 2 hours, 30m - 30 minutes, 15s - 15 seconds.",
7
+ examples: [
8
+ "1d",
9
+ "2h",
10
+ "30m",
11
+ "15s"
12
+ ]
13
+ });
14
+ var TimeRange = Object.assign(TimeRangeSchema, {
15
+ toSeconds(timeRange) {
16
+ const match = timeRange.match(/(\d+)(s|m|h|d)/);
17
+ if (!match) {
18
+ throw new Error(`Invalid time range: ${timeRange}`);
19
+ }
20
+ const [_, amount, unit] = match;
21
+ switch (unit) {
22
+ case "s":
23
+ return Number(amount);
24
+ case "m":
25
+ return Number(amount) * 60;
26
+ case "h":
27
+ return Number(amount) * 60 * 60;
28
+ case "d":
29
+ return Number(amount) * 24 * 60 * 60;
30
+ default:
31
+ throw new Error(`Invalid time range unit: ${unit}`);
32
+ }
33
+ }
34
+ });
35
+ var FetchMessages = Operation.make({
36
+ meta: {
37
+ key: "org.dxos.function.fetch-discord-messages",
38
+ name: "Sync Discord messages"
39
+ },
40
+ input: Schema.Struct({
41
+ serverId: Schema.String.annotations({
42
+ description: "The ID of the server to fetch messages from."
43
+ }),
44
+ channelId: Schema.optional(Schema.String).annotations({
45
+ description: "The ID of the channel to fetch messages from. Will crawl all channels from the server if not specified."
46
+ }),
47
+ after: Schema.optional(Schema.Number).annotations({
48
+ description: "Fetch messages that were sent after a given date. Unix timestamp in seconds. Exclusive with `last`."
49
+ }),
50
+ last: TimeRange.annotations({
51
+ description: 'Time range to fetch most recent messages. Specifies the range in the past, from now. "1d" would fetch messages from the last 24 hours.'
52
+ }),
53
+ limit: Schema.optional(Schema.Number).annotations({
54
+ description: "The maximum number of messages to fetch."
55
+ }),
56
+ pageSize: Schema.optional(Schema.Number).annotations({
57
+ description: "The number of messages to fetch per page."
58
+ }),
59
+ ignoreUsernames: Schema.optional(Schema.Array(Schema.String)).annotations({
60
+ description: "Exclude messages from these usernames."
61
+ })
62
+ }),
63
+ output: Schema.Any,
64
+ services: [
65
+ CredentialsService,
66
+ Trace.TraceService
67
+ ]
68
+ });
69
+
70
+ export {
71
+ TimeRange,
72
+ FetchMessages
73
+ };
74
+ //# sourceMappingURL=chunk-VSDP6SRY.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 { CredentialsService, Trace } from '@dxos/compute';\nimport { Operation } from '@dxos/compute';\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: 'org.dxos.function.fetch-discord-messages',\n name: 'Sync Discord messages',\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: [CredentialsService, Trace.TraceService],\n});\n"],
5
+ "mappings": ";AAIA,YAAYA,YAAY;AAExB,SAASC,oBAAoBC,aAAa;AAC1C,SAASC,iBAAiB;AAG1B,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,gBAAgBnB,UAAUoB,KAAK;EAC1CC,MAAM;IACJC,KAAK;IACLC,MAAM;EACR;EACAC,OAAcC,cAAO;IACnBC,UAAiBxB,cAAOG,YAAY;MAClCC,aAAa;IACf,CAAA;IACAqB,WAAkBC,gBAAgB1B,aAAM,EAAEG,YAAY;MACpDC,aACE;IACJ,CAAA;IACAuB,OAAcD,gBAAgBV,aAAM,EAAEb,YAAY;MAChDC,aACE;IACJ,CAAA;IACAwB,MAAMtB,UAAUH,YAAY;MAC1BC,aACE;IACJ,CAAA;IACAyB,OAAcH,gBAAgBV,aAAM,EAAEb,YAAY;MAChDC,aAAa;IACf,CAAA;IACA0B,UAAiBJ,gBAAgBV,aAAM,EAAEb,YAAY;MACnDC,aAAa;IACf,CAAA;IACA2B,iBAAwBL,gBAAgBM,aAAahC,aAAM,CAAA,EAAGG,YAAY;MACxEC,aAAa;IACf,CAAA;EACF,CAAA;EACA6B,QAAeC;EACfC,UAAU;IAACvC;IAAoBC,MAAMuC;;AACvC,CAAA;",
6
+ "names": ["Schema", "CredentialsService", "Trace", "Operation", "TimeRangeSchema", "String", "pipe", "pattern", "annotations", "description", "examples", "TimeRange", "Object", "assign", "toSeconds", "timeRange", "match", "Error", "_", "amount", "unit", "Number", "FetchMessages", "make", "meta", "key", "name", "input", "Struct", "serverId", "channelId", "optional", "after", "last", "limit", "pageSize", "ignoreUsernames", "Array", "output", "Any", "services", "TraceService"]
7
+ }
@@ -0,0 +1,109 @@
1
+ // src/blueprints/linear/functions/definitions.ts
2
+ import * as Schema from "effect/Schema";
3
+ import { CredentialsService } from "@dxos/compute";
4
+ import { Operation } from "@dxos/compute";
5
+ import { Database } from "@dxos/echo";
6
+ var SyncIssues = Operation.make({
7
+ meta: {
8
+ key: "org.dxos.function.linear.sync-issues",
9
+ name: "Linear",
10
+ description: "Sync issues from Linear."
11
+ },
12
+ input: Schema.Struct({
13
+ team: Schema.String.annotations({
14
+ description: "Linear team id."
15
+ })
16
+ }),
17
+ output: Schema.Any,
18
+ services: [
19
+ CredentialsService,
20
+ Database.Service
21
+ ]
22
+ });
23
+
24
+ // src/sync/sync.ts
25
+ import * as Effect from "effect/Effect";
26
+ import { Filter, Obj, Query, Ref } from "@dxos/echo";
27
+ import { Database as Database2 } from "@dxos/echo";
28
+ import { failedInvariant } from "@dxos/invariant";
29
+ import { log } from "@dxos/log";
30
+ var __dxlog_file = "/__w/dxos/dxos/packages/core/assistant-toolkit/src/sync/sync.ts";
31
+ var syncObjects = Effect.fn("syncObjects")(function* (objs, { foreignKeyId }) {
32
+ return yield* Effect.forEach(objs, Effect.fnUntraced(function* (obj) {
33
+ for (const key of Object.keys(obj)) {
34
+ if (typeof key !== "string" || key === "id") {
35
+ continue;
36
+ }
37
+ if (!Ref.isRef(obj[key])) {
38
+ continue;
39
+ }
40
+ const ref = obj[key];
41
+ if (!ref.target) {
42
+ continue;
43
+ }
44
+ if (Obj.getDXN(ref.target).isLocalObjectId()) {
45
+ const [target] = yield* syncObjects([
46
+ ref.target
47
+ ], {
48
+ foreignKeyId
49
+ });
50
+ obj[key] = Ref.make(target);
51
+ }
52
+ }
53
+ const schema = Obj.getSchema(obj) ?? failedInvariant("No schema.");
54
+ const foreignId = Obj.getKeys(obj, foreignKeyId)[0]?.id ?? failedInvariant("No foreign key.");
55
+ const [existing] = yield* Database2.runQuery(Query.select(Filter.foreignKeys(schema, [
56
+ {
57
+ source: foreignKeyId,
58
+ id: foreignId
59
+ }
60
+ ])));
61
+ log("sync object", {
62
+ type: Obj.getTypename(obj),
63
+ foreignId,
64
+ existing: existing ? Obj.getDXN(existing) : void 0
65
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 48, S: this });
66
+ if (!existing) {
67
+ yield* Database2.add(obj);
68
+ return obj;
69
+ } else {
70
+ copyObjectData(existing, obj);
71
+ return existing;
72
+ }
73
+ }), {
74
+ concurrency: 1
75
+ });
76
+ });
77
+ var copyObjectData = (existing, newObj) => {
78
+ Obj.update(existing, (existing2) => {
79
+ for (const key of Object.keys(newObj)) {
80
+ if (typeof key !== "string" || key === "id") {
81
+ continue;
82
+ }
83
+ if (typeof newObj[key] !== "string" && typeof newObj[key] !== "number" && typeof newObj[key] !== "boolean" && !Ref.isRef(newObj[key])) {
84
+ continue;
85
+ }
86
+ existing2[key] = newObj[key];
87
+ }
88
+ for (const key of Object.keys(existing2)) {
89
+ if (typeof key !== "string" || key === "id") {
90
+ continue;
91
+ }
92
+ if (!(key in newObj)) {
93
+ delete existing2[key];
94
+ }
95
+ }
96
+ for (const foreignKey of Obj.getMeta(newObj).keys) {
97
+ Obj.deleteKeys(existing2, foreignKey.source);
98
+ Obj.getMeta(existing2).keys.push({
99
+ ...foreignKey
100
+ });
101
+ }
102
+ });
103
+ };
104
+
105
+ export {
106
+ SyncIssues,
107
+ syncObjects
108
+ };
109
+ //# sourceMappingURL=chunk-WIV7ZVRS.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 { CredentialsService } from '@dxos/compute';\nimport { Operation } from '@dxos/compute';\nimport { Database } from '@dxos/echo';\n\nexport const SyncIssues = Operation.make({\n meta: {\n key: 'org.dxos.function.linear.sync-issues',\n name: 'Linear',\n description: 'Sync issues from Linear.',\n },\n input: Schema.Struct({\n team: Schema.String.annotations({\n description: 'Linear team id.',\n }),\n }),\n output: Schema.Any,\n services: [CredentialsService, Database.Service],\n});\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Filter, Obj, Query, Ref } from '@dxos/echo';\nimport { Database } from '@dxos/echo';\nimport { failedInvariant } from '@dxos/invariant';\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 if (Obj.getDXN(ref.target).isLocalObjectId()) {\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 schema = Obj.getSchema(obj) ?? failedInvariant('No schema.');\n const foreignId = Obj.getKeys(obj, foreignKeyId)[0]?.id ?? failedInvariant('No foreign key.');\n const [existing] = yield* Database.runQuery(\n Query.select(Filter.foreignKeys(schema, [{ source: foreignKeyId, id: foreignId }])),\n );\n log('sync object', {\n type: Obj.getTypename(obj),\n foreignId,\n existing: existing ? Obj.getDXN(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,0BAA0B;AACnC,SAASC,iBAAiB;AAC1B,SAASC,gBAAgB;AAElB,IAAMC,aAAaF,UAAUG,KAAK;EACvCC,MAAM;IACJC,KAAK;IACLC,MAAM;IACNC,aAAa;EACf;EACAC,OAAcC,cAAO;IACnBC,MAAaC,cAAOC,YAAY;MAC9BL,aAAa;IACf,CAAA;EACF,CAAA;EACAM,QAAeC;EACfC,UAAU;IAAChB;IAAoBE,SAASe;;AAC1C,CAAA;;;ACnBA,YAAYC,YAAY;AAExB,SAASC,QAAQC,KAAKC,OAAOC,WAAW;AACxC,SAASC,YAAAA,iBAAgB;AACzB,SAASC,uBAAuB;AAChC,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;AACIP;;UAEF,IAAA,OAAOQ,IAAO,MAAG,EAAA,gBAAmB,GAAA;cAAc,CAAA,MAAA,IAAA,OAAA,YAAA;UAAEC,IAAAA;QAAa,GAAA;UACpDH;QACf,CAAA;AACF,YAAA,GAAA,IAAA,IAAA,KAAA,MAAA;MAEA;IACA;AACA,UAAM,SAACI,IAAY,UAAOP,GAAAA,KAASQ,gBAC3BC,YAAcC;UAAqB,YAAA,IAAA,QAAA,KAAA,YAAA,EAAA,CAAA,GAAA,MAAA,gBAAA,iBAAA;mBAAEC,IAAQL,OAAAA,UAAAA,SAAAA,MAAAA,OAAAA,OAAAA,YAAAA,QAAAA;;QAA4B,QAAA;QAAE,IAAA;MAE/E;;QAEFM,eAAAA;MACAL,MAAAA,IAAUA,YAAWV,GAAIgB;MAC3B;MACI,UAACN,WAAU,IAAA,OAAA,QAAA,IAAA;qBACNP,YAAac,GAAAA,cAAAA,GAAAA,IAAAA,GAAAA,KAAAA,CAAAA;QACpB,CAAA,UAAOA;AACT,aAAOd,UAAA,IAAA,GAAA;AACLe,aAAAA;WACA;AACF,qBAAA,UAAA,GAAA;AAEF,aAAA;IAAEC;EAAe,CAAA,GAAA;IAElB,aAAA;EAEH,CAAA;;qBAEI,CAAA,UAAA,WAAA;MACA,OAAK,UAAMb,CAAOc,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;AACCV;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;AACAV,UAAIqB,WAAQX,WAAUH,WAAU,MAAA;AAAgB,UAAA,QAAAG,SAAA,EAAA,KAAA,KAAA;QAClD,GAAA;MACF,CAAA;IACF;;;",
6
+ "names": ["Schema", "CredentialsService", "Operation", "Database", "SyncIssues", "make", "meta", "key", "name", "description", "input", "Struct", "team", "String", "annotations", "output", "Any", "services", "Service", "Effect", "Filter", "Obj", "Query", "Ref", "Database", "failedInvariant", "log", "key", "keys", "target", "foreignKeyId", "existing", "runQuery", "select", "foreignKeys", "source", "foreignId", "getDXN", "obj", "copyObjectData", "concurrency", "Object", "getMeta"]
7
+ }
@@ -0,0 +1,25 @@
1
+ // src/blueprints/websearch/functions/definitions.ts
2
+ import * as Schema from "effect/Schema";
3
+ import { Operation } from "@dxos/compute";
4
+ import { trim } from "@dxos/util";
5
+ var Fetch = Operation.make({
6
+ meta: {
7
+ key: "org.dxos.function.web-search.fetch",
8
+ name: "Fetch web page",
9
+ description: trim`
10
+ Fetches the content of a web page and returns the HTML.
11
+ Use this to get the content of a web page.
12
+ `
13
+ },
14
+ input: Schema.Struct({
15
+ url: Schema.String.annotations({
16
+ description: "The URL of the web page to fetch."
17
+ })
18
+ }),
19
+ output: Schema.String
20
+ });
21
+
22
+ export {
23
+ Fetch
24
+ };
25
+ //# sourceMappingURL=chunk-WLR3BGO4.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/blueprints/websearch/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 { trim } from '@dxos/util';\n\nexport const Fetch = Operation.make({\n meta: {\n key: 'org.dxos.function.web-search.fetch',\n name: 'Fetch web page',\n description: trim`\n Fetches the content of a web page and returns the HTML. \n Use this to get the content of a web page.\n `,\n },\n input: Schema.Struct({\n url: Schema.String.annotations({\n description: 'The URL of the web page to fetch.',\n }),\n }),\n output: Schema.String,\n});\n"],
5
+ "mappings": ";AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiB;AAC1B,SAASC,YAAY;AAEd,IAAMC,QAAQF,UAAUG,KAAK;EAClCC,MAAM;IACJC,KAAK;IACLC,MAAM;IACNC,aAAaN;;;;EAIf;EACAO,OAAcC,cAAO;IACnBC,KAAYC,cAAOC,YAAY;MAC7BL,aAAa;IACf,CAAA;EACF,CAAA;EACAM,QAAeF;AACjB,CAAA;",
6
+ "names": ["Schema", "Operation", "trim", "Fetch", "make", "meta", "key", "name", "description", "input", "Struct", "url", "String", "annotations", "output"]
7
+ }