@dxos/assistant-toolkit 0.10.0 → 0.11.1

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 (397) hide show
  1. package/dist/lib/chunk-Chat.mjs +144 -0
  2. package/dist/lib/chunk-Chat.mjs.map +1 -0
  3. package/dist/lib/chunk-Memory.mjs +19 -0
  4. package/dist/lib/chunk-Memory.mjs.map +1 -0
  5. package/dist/lib/{neutral/agent-rules-KWCBKJ5W.mjs → chunk-agent-rules.mjs} +8 -15
  6. package/dist/lib/chunk-agent-rules.mjs.map +1 -0
  7. package/dist/lib/chunk-agent.mjs +45 -0
  8. package/dist/lib/chunk-agent.mjs.map +1 -0
  9. package/dist/lib/chunk-artifact-add.mjs +31 -0
  10. package/dist/lib/chunk-artifact-add.mjs.map +1 -0
  11. package/dist/lib/chunk-artifact-list.mjs +23 -0
  12. package/dist/lib/chunk-artifact-list.mjs.map +1 -0
  13. package/dist/lib/chunk-context-add.mjs +16 -0
  14. package/dist/lib/chunk-context-add.mjs.map +1 -0
  15. package/dist/lib/chunk-context-remove.mjs +16 -0
  16. package/dist/lib/chunk-context-remove.mjs.map +1 -0
  17. package/dist/lib/chunk-create-agent.mjs +23 -0
  18. package/dist/lib/chunk-create-agent.mjs.map +1 -0
  19. package/dist/lib/chunk-definitions.mjs +52 -0
  20. package/dist/lib/chunk-definitions.mjs.map +1 -0
  21. package/dist/lib/chunk-definitions2.mjs +56 -0
  22. package/dist/lib/chunk-definitions2.mjs.map +1 -0
  23. package/dist/lib/chunk-definitions3.mjs +24 -0
  24. package/dist/lib/chunk-definitions3.mjs.map +1 -0
  25. package/dist/lib/chunk-delete.mjs +14 -0
  26. package/dist/lib/chunk-delete.mjs.map +1 -0
  27. package/dist/lib/chunk-enable-skills.mjs +39 -0
  28. package/dist/lib/chunk-enable-skills.mjs.map +1 -0
  29. package/dist/lib/chunk-fetch-messages.mjs +113 -0
  30. package/dist/lib/chunk-fetch-messages.mjs.map +1 -0
  31. package/dist/lib/chunk-fetch.mjs +20 -0
  32. package/dist/lib/chunk-fetch.mjs.map +1 -0
  33. package/dist/lib/chunk-get-context.mjs +55 -0
  34. package/dist/lib/chunk-get-context.mjs.map +1 -0
  35. package/dist/lib/chunk-get-current-date.mjs +17 -0
  36. package/dist/lib/chunk-get-current-date.mjs.map +1 -0
  37. package/dist/lib/chunk-load.mjs +13 -0
  38. package/dist/lib/chunk-load.mjs.map +1 -0
  39. package/dist/lib/chunk-object-create.mjs +42 -0
  40. package/dist/lib/chunk-object-create.mjs.map +1 -0
  41. package/dist/lib/chunk-object-delete.mjs +14 -0
  42. package/dist/lib/chunk-object-delete.mjs.map +1 -0
  43. package/dist/lib/chunk-object-update.mjs +19 -0
  44. package/dist/lib/chunk-object-update.mjs.map +1 -0
  45. package/dist/lib/chunk-operations.mjs +714 -0
  46. package/dist/lib/chunk-operations.mjs.map +1 -0
  47. package/dist/lib/chunk-plan-reminder.mjs +80 -0
  48. package/dist/lib/chunk-plan-reminder.mjs.map +1 -0
  49. package/dist/lib/chunk-query-skills.mjs +12 -0
  50. package/dist/lib/chunk-query-skills.mjs.map +1 -0
  51. package/dist/lib/chunk-query.mjs +36 -0
  52. package/dist/lib/chunk-query.mjs.map +1 -0
  53. package/dist/lib/chunk-query2.mjs +18 -0
  54. package/dist/lib/chunk-query2.mjs.map +1 -0
  55. package/dist/lib/chunk-relation-create.mjs +41 -0
  56. package/dist/lib/chunk-relation-create.mjs.map +1 -0
  57. package/dist/lib/chunk-relation-delete.mjs +14 -0
  58. package/dist/lib/chunk-relation-delete.mjs.map +1 -0
  59. package/dist/lib/chunk-relay.mjs +76 -0
  60. package/dist/lib/chunk-relay.mjs.map +1 -0
  61. package/dist/lib/chunk-rolldown-runtime.mjs +13 -0
  62. package/dist/lib/chunk-run-instructions.mjs +145 -0
  63. package/dist/lib/chunk-run-instructions.mjs.map +1 -0
  64. package/dist/lib/chunk-save.mjs +17 -0
  65. package/dist/lib/chunk-save.mjs.map +1 -0
  66. package/dist/lib/chunk-schema-add.mjs +19 -0
  67. package/dist/lib/chunk-schema-add.mjs.map +1 -0
  68. package/dist/lib/chunk-schema-list.mjs +29 -0
  69. package/dist/lib/chunk-schema-list.mjs.map +1 -0
  70. package/dist/lib/chunk-set-alarm.mjs +55 -0
  71. package/dist/lib/chunk-set-alarm.mjs.map +1 -0
  72. package/dist/lib/chunk-sync-automation.mjs +130 -0
  73. package/dist/lib/chunk-sync-automation.mjs.map +1 -0
  74. package/dist/lib/chunk-sync-issues.mjs +127 -0
  75. package/dist/lib/chunk-sync-issues.mjs.map +1 -0
  76. package/dist/lib/chunk-sync.mjs +91 -0
  77. package/dist/lib/chunk-sync.mjs.map +1 -0
  78. package/dist/lib/chunk-tag-add.mjs +14 -0
  79. package/dist/lib/chunk-tag-add.mjs.map +1 -0
  80. package/dist/lib/chunk-tag-remove.mjs +14 -0
  81. package/dist/lib/chunk-tag-remove.mjs.map +1 -0
  82. package/dist/lib/chunk-types.mjs +198 -0
  83. package/dist/lib/chunk-types.mjs.map +1 -0
  84. package/dist/lib/chunk-update-tasks.mjs +34 -0
  85. package/dist/lib/chunk-update-tasks.mjs.map +1 -0
  86. package/dist/lib/index.mjs +614 -0
  87. package/dist/lib/index.mjs.map +1 -0
  88. package/dist/lib/testing.mjs +102 -0
  89. package/dist/lib/testing.mjs.map +1 -0
  90. package/dist/types/src/skills/agent/operations/definitions.d.ts +16 -46
  91. package/dist/types/src/skills/agent/operations/definitions.d.ts.map +1 -1
  92. package/dist/types/src/skills/agent/operations/get-context.test.d.ts +2 -0
  93. package/dist/types/src/skills/agent/operations/get-context.test.d.ts.map +1 -0
  94. package/dist/types/src/skills/agent/operations/index.d.ts.map +1 -1
  95. package/dist/types/src/skills/agent/operations/relay.d.ts +11 -0
  96. package/dist/types/src/skills/agent/operations/relay.d.ts.map +1 -0
  97. package/dist/types/src/skills/agent/operations/relay.test.d.ts +2 -0
  98. package/dist/types/src/skills/agent/operations/relay.test.d.ts.map +1 -0
  99. package/dist/types/src/skills/agent/skill.d.ts.map +1 -1
  100. package/dist/types/src/skills/agent-wizard/operations/definitions.d.ts +4 -1
  101. package/dist/types/src/skills/agent-wizard/operations/definitions.d.ts.map +1 -1
  102. package/dist/types/src/skills/agent-wizard/operations/sync-automation.d.ts +26 -0
  103. package/dist/types/src/skills/agent-wizard/operations/sync-automation.d.ts.map +1 -0
  104. package/dist/types/src/skills/agent-wizard/operations/sync-automation.test.d.ts +2 -0
  105. package/dist/types/src/skills/agent-wizard/operations/sync-automation.test.d.ts.map +1 -0
  106. package/dist/types/src/skills/agent-wizard/skill.d.ts.map +1 -1
  107. package/dist/types/src/skills/database/operations/context-add.test.d.ts +2 -0
  108. package/dist/types/src/skills/database/operations/context-add.test.d.ts.map +1 -0
  109. package/dist/types/src/skills/database/operations/context-remove.test.d.ts +2 -0
  110. package/dist/types/src/skills/database/operations/context-remove.test.d.ts.map +1 -0
  111. package/dist/types/src/skills/database/operations/definitions.d.ts +7 -2
  112. package/dist/types/src/skills/database/operations/definitions.d.ts.map +1 -1
  113. package/dist/types/src/skills/database/operations/load.test.d.ts +2 -0
  114. package/dist/types/src/skills/database/operations/load.test.d.ts.map +1 -0
  115. package/dist/types/src/skills/database/operations/object-create.d.ts +4 -1
  116. package/dist/types/src/skills/database/operations/object-create.d.ts.map +1 -1
  117. package/dist/types/src/skills/database/operations/object-create.test.d.ts +2 -0
  118. package/dist/types/src/skills/database/operations/object-create.test.d.ts.map +1 -0
  119. package/dist/types/src/skills/database/operations/object-delete.test.d.ts +2 -0
  120. package/dist/types/src/skills/database/operations/object-delete.test.d.ts.map +1 -0
  121. package/dist/types/src/skills/database/operations/object-update.test.d.ts +2 -0
  122. package/dist/types/src/skills/database/operations/object-update.test.d.ts.map +1 -0
  123. package/dist/types/src/skills/database/operations/query.test.d.ts +2 -0
  124. package/dist/types/src/skills/database/operations/query.test.d.ts.map +1 -0
  125. package/dist/types/src/skills/database/operations/relation-create.test.d.ts +2 -0
  126. package/dist/types/src/skills/database/operations/relation-create.test.d.ts.map +1 -0
  127. package/dist/types/src/skills/database/operations/schema-add.d.ts +3 -1
  128. package/dist/types/src/skills/database/operations/schema-add.test.d.ts +2 -0
  129. package/dist/types/src/skills/database/operations/schema-add.test.d.ts.map +1 -0
  130. package/dist/types/src/skills/database/operations/schema-list.test.d.ts +2 -0
  131. package/dist/types/src/skills/database/operations/schema-list.test.d.ts.map +1 -0
  132. package/dist/types/src/skills/database/operations/tag-add.test.d.ts +2 -0
  133. package/dist/types/src/skills/database/operations/tag-add.test.d.ts.map +1 -0
  134. package/dist/types/src/skills/database/operations/tag-remove.test.d.ts +2 -0
  135. package/dist/types/src/skills/database/operations/tag-remove.test.d.ts.map +1 -0
  136. package/dist/types/src/skills/delegation/operations/delegate-task.d.ts +6 -5
  137. package/dist/types/src/skills/delegation/operations/delegate-task.d.ts.map +1 -1
  138. package/dist/types/src/skills/index.d.ts +1 -0
  139. package/dist/types/src/skills/index.d.ts.map +1 -1
  140. package/dist/types/src/skills/linear/operations/sync-issues.d.ts.map +1 -1
  141. package/dist/types/src/skills/memory/operations/delete.test.d.ts +2 -0
  142. package/dist/types/src/skills/memory/operations/delete.test.d.ts.map +1 -0
  143. package/dist/types/src/skills/memory/operations/query.test.d.ts +2 -0
  144. package/dist/types/src/skills/memory/operations/query.test.d.ts.map +1 -0
  145. package/dist/types/src/skills/memory/operations/save.test.d.ts +2 -0
  146. package/dist/types/src/skills/memory/operations/save.test.d.ts.map +1 -0
  147. package/dist/types/src/skills/planning/operations/definitions.d.ts +1 -3
  148. package/dist/types/src/skills/planning/operations/definitions.d.ts.map +1 -1
  149. package/dist/types/src/skills/planning/operations/plan-reminder.d.ts +7 -6
  150. package/dist/types/src/skills/planning/operations/plan-reminder.d.ts.map +1 -1
  151. package/dist/types/src/skills/planning/operations/plan-reminder.test.d.ts +2 -0
  152. package/dist/types/src/skills/planning/operations/plan-reminder.test.d.ts.map +1 -0
  153. package/dist/types/src/skills/planning/operations/update-tasks.d.ts +3 -1
  154. package/dist/types/src/skills/planning/operations/update-tasks.d.ts.map +1 -1
  155. package/dist/types/src/skills/project/index.d.ts +3 -0
  156. package/dist/types/src/skills/project/index.d.ts.map +1 -0
  157. package/dist/types/src/skills/project/operations/artifact-add.d.ts +5 -0
  158. package/dist/types/src/skills/project/operations/artifact-add.d.ts.map +1 -0
  159. package/dist/types/src/skills/project/operations/artifact-list.d.ts +5 -0
  160. package/dist/types/src/skills/project/operations/artifact-list.d.ts.map +1 -0
  161. package/dist/types/src/skills/project/operations/definitions.d.ts +23 -0
  162. package/dist/types/src/skills/project/operations/definitions.d.ts.map +1 -0
  163. package/dist/types/src/skills/project/operations/index.d.ts +4 -0
  164. package/dist/types/src/skills/project/operations/index.d.ts.map +1 -0
  165. package/dist/types/src/skills/project/skill.d.ts +4 -0
  166. package/dist/types/src/skills/project/skill.d.ts.map +1 -0
  167. package/dist/types/src/skills/project/skill.test.d.ts.map +1 -0
  168. package/dist/types/src/skills/skill-manager/skill.d.ts.map +1 -1
  169. package/dist/types/src/supervisor/delegation-strategy.d.ts +5 -5
  170. package/dist/types/src/supervisor/delegation-strategy.d.ts.map +1 -1
  171. package/dist/types/src/supervisor/delegation-strategy.test.d.ts +2 -0
  172. package/dist/types/src/supervisor/delegation-strategy.test.d.ts.map +1 -0
  173. package/dist/types/src/sync/sync.test.d.ts +2 -0
  174. package/dist/types/src/sync/sync.test.d.ts.map +1 -0
  175. package/dist/types/src/testing/index.d.ts +1 -0
  176. package/dist/types/src/testing/index.d.ts.map +1 -1
  177. package/dist/types/src/testing/operations.d.ts +7 -0
  178. package/dist/types/src/testing/operations.d.ts.map +1 -0
  179. package/dist/types/src/types/Agent.d.ts +28 -31
  180. package/dist/types/src/types/Agent.d.ts.map +1 -1
  181. package/dist/types/src/types/Chat.d.ts +28 -14
  182. package/dist/types/src/types/Chat.d.ts.map +1 -1
  183. package/dist/types/src/types/Chat.test.d.ts +2 -0
  184. package/dist/types/src/types/Chat.test.d.ts.map +1 -0
  185. package/dist/types/src/types/index.d.ts +1 -2
  186. package/dist/types/src/types/index.d.ts.map +1 -1
  187. package/dist/types/tsconfig.tsbuildinfo +1 -1
  188. package/package.json +30 -29
  189. package/src/operations/run-instructions.test.ts +26 -34
  190. package/src/operations/skill-resolution.test.ts +6 -1
  191. package/src/skills/agent/operations/definitions.ts +18 -62
  192. package/src/skills/agent/operations/get-context.test.ts +81 -0
  193. package/src/skills/agent/operations/get-context.ts +9 -36
  194. package/src/skills/agent/operations/index.ts +1 -3
  195. package/src/skills/agent/operations/relay.test.ts +63 -0
  196. package/src/skills/agent/operations/relay.ts +124 -0
  197. package/src/skills/agent/skill.ts +3 -15
  198. package/src/skills/agent-wizard/operations/create-agent.ts +3 -3
  199. package/src/skills/agent-wizard/operations/definitions.ts +19 -4
  200. package/src/skills/agent-wizard/operations/index.ts +1 -1
  201. package/src/skills/agent-wizard/operations/sync-automation.test.ts +103 -0
  202. package/src/skills/agent-wizard/operations/sync-automation.ts +205 -0
  203. package/src/skills/agent-wizard/skill.ts +9 -10
  204. package/src/skills/alarm/skill.test.ts +2 -2
  205. package/src/skills/browser/skill.test.ts +4 -4
  206. package/src/skills/database/operations/context-add.test.ts +46 -0
  207. package/src/skills/database/operations/context-remove.test.ts +46 -0
  208. package/src/skills/database/operations/definitions.ts +23 -7
  209. package/src/skills/database/operations/load.test.ts +38 -0
  210. package/src/skills/database/operations/object-create.test.ts +116 -0
  211. package/src/skills/database/operations/object-create.ts +13 -2
  212. package/src/skills/database/operations/object-delete.test.ts +37 -0
  213. package/src/skills/database/operations/object-update.test.ts +39 -0
  214. package/src/skills/database/operations/query.test.ts +128 -0
  215. package/src/skills/database/operations/relation-create.test.ts +46 -0
  216. package/src/skills/database/operations/schema-add.test.ts +79 -0
  217. package/src/skills/database/operations/schema-list.test.ts +42 -0
  218. package/src/skills/database/operations/tag-add.test.ts +41 -0
  219. package/src/skills/database/operations/tag-remove.test.ts +43 -0
  220. package/src/skills/delegation/operations/delegate-task.test.ts +51 -36
  221. package/src/skills/delegation/operations/delegate-task.ts +31 -48
  222. package/src/skills/discord/operations/fetch-messages.test.ts +2 -2
  223. package/src/skills/github/operations/fetch-prs.ts +1 -1
  224. package/src/skills/index.ts +1 -0
  225. package/src/skills/linear/operations/linear.test.ts +1 -1
  226. package/src/skills/linear/operations/sync-issues.ts +6 -23
  227. package/src/skills/memory/operations/delete.test.ts +37 -0
  228. package/src/skills/memory/operations/query.test.ts +76 -0
  229. package/src/skills/memory/operations/save.test.ts +43 -0
  230. package/src/skills/planning/operations/definitions.ts +9 -6
  231. package/src/skills/planning/operations/plan-reminder.test.ts +123 -0
  232. package/src/skills/planning/operations/plan-reminder.ts +49 -31
  233. package/src/skills/planning/operations/update-tasks.md +23 -22
  234. package/src/skills/planning/operations/update-tasks.test.ts +31 -17
  235. package/src/skills/planning/operations/update-tasks.ts +17 -25
  236. package/src/skills/project/index.ts +6 -0
  237. package/src/skills/project/operations/artifact-add.ts +47 -0
  238. package/src/skills/project/operations/artifact-list.ts +41 -0
  239. package/src/skills/project/operations/definitions.ts +63 -0
  240. package/src/skills/project/operations/index.ts +12 -0
  241. package/src/skills/project/skill.test.ts +78 -0
  242. package/src/skills/project/skill.ts +42 -0
  243. package/src/skills/skill-manager/operations/definitions.ts +1 -1
  244. package/src/skills/skill-manager/skill.test.ts +1 -1
  245. package/src/skills/skill-manager/skill.ts +7 -5
  246. package/src/skills/websearch/skill.test.ts +2 -2
  247. package/src/supervisor/delegation-strategy.test.ts +129 -0
  248. package/src/supervisor/delegation-strategy.ts +92 -56
  249. package/src/sync/sync.test.ts +95 -0
  250. package/src/sync/sync.ts +5 -3
  251. package/src/testing/index.ts +1 -0
  252. package/src/testing/operations.ts +65 -0
  253. package/src/types/Agent.test.ts +36 -66
  254. package/src/types/Agent.ts +108 -137
  255. package/src/types/Chat.test.ts +234 -0
  256. package/src/types/Chat.ts +80 -26
  257. package/src/types/index.ts +1 -2
  258. package/dist/lib/neutral/add-artifact-5JNUYLCA.mjs +0 -24
  259. package/dist/lib/neutral/add-artifact-5JNUYLCA.mjs.map +0 -7
  260. package/dist/lib/neutral/agent-BFAYIBJI.mjs +0 -65
  261. package/dist/lib/neutral/agent-BFAYIBJI.mjs.map +0 -7
  262. package/dist/lib/neutral/agent-rules-KWCBKJ5W.mjs.map +0 -7
  263. package/dist/lib/neutral/chunk-3KA66YBF.mjs +0 -62
  264. package/dist/lib/neutral/chunk-3KA66YBF.mjs.map +0 -7
  265. package/dist/lib/neutral/chunk-6SGNFL6I.mjs +0 -85
  266. package/dist/lib/neutral/chunk-6SGNFL6I.mjs.map +0 -7
  267. package/dist/lib/neutral/chunk-BDTGFPM7.mjs +0 -113
  268. package/dist/lib/neutral/chunk-BDTGFPM7.mjs.map +0 -7
  269. package/dist/lib/neutral/chunk-EPQCDGIV.mjs +0 -27
  270. package/dist/lib/neutral/chunk-EPQCDGIV.mjs.map +0 -7
  271. package/dist/lib/neutral/chunk-H4W22FFJ.mjs +0 -232
  272. package/dist/lib/neutral/chunk-H4W22FFJ.mjs.map +0 -7
  273. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +0 -10
  274. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +0 -7
  275. package/dist/lib/neutral/chunk-JBTXZQ5G.mjs +0 -60
  276. package/dist/lib/neutral/chunk-JBTXZQ5G.mjs.map +0 -7
  277. package/dist/lib/neutral/chunk-JKOOA5OS.mjs +0 -97
  278. package/dist/lib/neutral/chunk-JKOOA5OS.mjs.map +0 -7
  279. package/dist/lib/neutral/chunk-JTEBE7KA.mjs +0 -66
  280. package/dist/lib/neutral/chunk-JTEBE7KA.mjs.map +0 -7
  281. package/dist/lib/neutral/chunk-KLFXJ2Z3.mjs +0 -36
  282. package/dist/lib/neutral/chunk-KLFXJ2Z3.mjs.map +0 -7
  283. package/dist/lib/neutral/chunk-LBA5UOLF.mjs +0 -87
  284. package/dist/lib/neutral/chunk-LBA5UOLF.mjs.map +0 -7
  285. package/dist/lib/neutral/chunk-LL3MOQUZ.mjs +0 -120
  286. package/dist/lib/neutral/chunk-LL3MOQUZ.mjs.map +0 -7
  287. package/dist/lib/neutral/chunk-MFVIGJBW.mjs +0 -68
  288. package/dist/lib/neutral/chunk-MFVIGJBW.mjs.map +0 -7
  289. package/dist/lib/neutral/chunk-PBARVBNJ.mjs +0 -86
  290. package/dist/lib/neutral/chunk-PBARVBNJ.mjs.map +0 -7
  291. package/dist/lib/neutral/chunk-VJ5QBYM5.mjs +0 -61
  292. package/dist/lib/neutral/chunk-VJ5QBYM5.mjs.map +0 -7
  293. package/dist/lib/neutral/chunk-YQSQRSXG.mjs +0 -367
  294. package/dist/lib/neutral/chunk-YQSQRSXG.mjs.map +0 -7
  295. package/dist/lib/neutral/chunk-Z2HFOZXK.mjs +0 -191
  296. package/dist/lib/neutral/chunk-Z2HFOZXK.mjs.map +0 -7
  297. package/dist/lib/neutral/context-add-DZTPB3FK.mjs +0 -22
  298. package/dist/lib/neutral/context-add-DZTPB3FK.mjs.map +0 -7
  299. package/dist/lib/neutral/context-remove-XSBOM4VJ.mjs +0 -22
  300. package/dist/lib/neutral/context-remove-XSBOM4VJ.mjs.map +0 -7
  301. package/dist/lib/neutral/create-agent-5WTOFIEK.mjs +0 -35
  302. package/dist/lib/neutral/create-agent-5WTOFIEK.mjs.map +0 -7
  303. package/dist/lib/neutral/definitions-VRR5OGXI.mjs +0 -17
  304. package/dist/lib/neutral/definitions-VRR5OGXI.mjs.map +0 -7
  305. package/dist/lib/neutral/delegate-task-UX64NK4M.mjs +0 -13
  306. package/dist/lib/neutral/delegate-task-UX64NK4M.mjs.map +0 -7
  307. package/dist/lib/neutral/delete-IU7HPU3K.mjs +0 -19
  308. package/dist/lib/neutral/delete-IU7HPU3K.mjs.map +0 -7
  309. package/dist/lib/neutral/enable-skills-FHEJXQVB.mjs +0 -47
  310. package/dist/lib/neutral/enable-skills-FHEJXQVB.mjs.map +0 -7
  311. package/dist/lib/neutral/fetch-5LY25EBR.mjs +0 -24
  312. package/dist/lib/neutral/fetch-5LY25EBR.mjs.map +0 -7
  313. package/dist/lib/neutral/fetch-messages-CQMDI36G.mjs +0 -139
  314. package/dist/lib/neutral/fetch-messages-CQMDI36G.mjs.map +0 -7
  315. package/dist/lib/neutral/get-context-Q4YY6DRV.mjs +0 -77
  316. package/dist/lib/neutral/get-context-Q4YY6DRV.mjs.map +0 -7
  317. package/dist/lib/neutral/get-current-date-JR5F7ZS3.mjs +0 -17
  318. package/dist/lib/neutral/get-current-date-JR5F7ZS3.mjs.map +0 -7
  319. package/dist/lib/neutral/index.mjs +0 -875
  320. package/dist/lib/neutral/index.mjs.map +0 -7
  321. package/dist/lib/neutral/load-S6HC5TGX.mjs +0 -17
  322. package/dist/lib/neutral/load-S6HC5TGX.mjs.map +0 -7
  323. package/dist/lib/neutral/meta.json +0 -1
  324. package/dist/lib/neutral/object-create-PVDQ62CG.mjs +0 -32
  325. package/dist/lib/neutral/object-create-PVDQ62CG.mjs.map +0 -7
  326. package/dist/lib/neutral/object-delete-3CSL6XI6.mjs +0 -18
  327. package/dist/lib/neutral/object-delete-3CSL6XI6.mjs.map +0 -7
  328. package/dist/lib/neutral/object-update-NIGMZINM.mjs +0 -28
  329. package/dist/lib/neutral/object-update-NIGMZINM.mjs.map +0 -7
  330. package/dist/lib/neutral/plan-reminder-N4X6JPBI.mjs +0 -88
  331. package/dist/lib/neutral/plan-reminder-N4X6JPBI.mjs.map +0 -7
  332. package/dist/lib/neutral/qualifier-5CIRZYX5.mjs +0 -91
  333. package/dist/lib/neutral/qualifier-5CIRZYX5.mjs.map +0 -7
  334. package/dist/lib/neutral/query-K4R7UHLU.mjs +0 -32
  335. package/dist/lib/neutral/query-K4R7UHLU.mjs.map +0 -7
  336. package/dist/lib/neutral/query-NCTCRYTD.mjs +0 -59
  337. package/dist/lib/neutral/query-NCTCRYTD.mjs.map +0 -7
  338. package/dist/lib/neutral/query-skills-7GQFSU4V.mjs +0 -17
  339. package/dist/lib/neutral/query-skills-7GQFSU4V.mjs.map +0 -7
  340. package/dist/lib/neutral/relation-create-QKXHTL7G.mjs +0 -34
  341. package/dist/lib/neutral/relation-create-QKXHTL7G.mjs.map +0 -7
  342. package/dist/lib/neutral/relation-delete-PDIWT2JX.mjs +0 -18
  343. package/dist/lib/neutral/relation-delete-PDIWT2JX.mjs.map +0 -7
  344. package/dist/lib/neutral/run-instructions-72ASH5EZ.mjs +0 -165
  345. package/dist/lib/neutral/run-instructions-72ASH5EZ.mjs.map +0 -7
  346. package/dist/lib/neutral/save-UYVRA4RS.mjs +0 -23
  347. package/dist/lib/neutral/save-UYVRA4RS.mjs.map +0 -7
  348. package/dist/lib/neutral/schema-add-5NOK2RWE.mjs +0 -25
  349. package/dist/lib/neutral/schema-add-5NOK2RWE.mjs.map +0 -7
  350. package/dist/lib/neutral/schema-list-BZUR5KMX.mjs +0 -37
  351. package/dist/lib/neutral/schema-list-BZUR5KMX.mjs.map +0 -7
  352. package/dist/lib/neutral/set-alarm-BD3NEYSU.mjs +0 -65
  353. package/dist/lib/neutral/set-alarm-BD3NEYSU.mjs.map +0 -7
  354. package/dist/lib/neutral/sync-issues-O76MCMD3.mjs +0 -166
  355. package/dist/lib/neutral/sync-issues-O76MCMD3.mjs.map +0 -7
  356. package/dist/lib/neutral/sync-triggers-YBTLPCUB.mjs +0 -138
  357. package/dist/lib/neutral/sync-triggers-YBTLPCUB.mjs.map +0 -7
  358. package/dist/lib/neutral/tag-add-L5WNOBYY.mjs +0 -18
  359. package/dist/lib/neutral/tag-add-L5WNOBYY.mjs.map +0 -7
  360. package/dist/lib/neutral/tag-remove-WV5RPE5W.mjs +0 -18
  361. package/dist/lib/neutral/tag-remove-WV5RPE5W.mjs.map +0 -7
  362. package/dist/lib/neutral/testing/index.mjs +0 -65
  363. package/dist/lib/neutral/testing/index.mjs.map +0 -7
  364. package/dist/lib/neutral/update-tasks-HX4ILWOU.mjs +0 -46
  365. package/dist/lib/neutral/update-tasks-HX4ILWOU.mjs.map +0 -7
  366. package/dist/types/src/skills/agent/operations/add-artifact.d.ts +0 -4
  367. package/dist/types/src/skills/agent/operations/add-artifact.d.ts.map +0 -1
  368. package/dist/types/src/skills/agent/operations/agent.d.ts +0 -4
  369. package/dist/types/src/skills/agent/operations/agent.d.ts.map +0 -1
  370. package/dist/types/src/skills/agent/operations/qualifier.d.ts +0 -5
  371. package/dist/types/src/skills/agent/operations/qualifier.d.ts.map +0 -1
  372. package/dist/types/src/skills/agent/skill.test.d.ts.map +0 -1
  373. package/dist/types/src/skills/agent-wizard/operations/sync-triggers.d.ts +0 -8
  374. package/dist/types/src/skills/agent-wizard/operations/sync-triggers.d.ts.map +0 -1
  375. package/dist/types/src/skills/database/skill.test.d.ts +0 -2
  376. package/dist/types/src/skills/database/skill.test.d.ts.map +0 -1
  377. package/dist/types/src/skills/memory/skill.test.d.ts +0 -2
  378. package/dist/types/src/skills/memory/skill.test.d.ts.map +0 -1
  379. package/dist/types/src/skills/planning/skill.test.d.ts +0 -2
  380. package/dist/types/src/skills/planning/skill.test.d.ts.map +0 -1
  381. package/dist/types/src/types/Plan.d.ts +0 -80
  382. package/dist/types/src/types/Plan.d.ts.map +0 -1
  383. package/src/operations/run-instructions.conversations.json +0 -1
  384. package/src/skills/agent/operations/add-artifact.ts +0 -20
  385. package/src/skills/agent/operations/agent.ts +0 -69
  386. package/src/skills/agent/operations/qualifier.ts +0 -97
  387. package/src/skills/agent/skill.conversations.json +0 -1
  388. package/src/skills/agent/skill.test.ts +0 -728
  389. package/src/skills/agent-wizard/operations/sync-triggers.ts +0 -169
  390. package/src/skills/database/skill.conversations.json +0 -1
  391. package/src/skills/database/skill.test.ts +0 -531
  392. package/src/skills/memory/skill.conversations.json +0 -1
  393. package/src/skills/memory/skill.test.ts +0 -138
  394. package/src/skills/planning/skill.conversations.json +0 -1
  395. package/src/skills/planning/skill.test.ts +0 -123
  396. package/src/types/Plan.ts +0 -123
  397. /package/dist/types/src/skills/{agent → project}/skill.test.d.ts +0 -0
@@ -1,18 +0,0 @@
1
- import {
2
- TagRemove
3
- } from "./chunk-YQSQRSXG.mjs";
4
- import "./chunk-J5LGTIGS.mjs";
5
-
6
- // src/skills/database/operations/tag-remove.ts
7
- import * as Effect from "effect/Effect";
8
- import { Operation } from "@dxos/compute";
9
- import { Database, Entity } from "@dxos/echo";
10
- var tag_remove_default = TagRemove.pipe(Operation.withHandler(Effect.fn(function* ({ tag, obj }) {
11
- const object = yield* Database.load(obj);
12
- Entity.update(object, (object2) => Entity.removeTag(object2, tag));
13
- return Entity.toJSON(object);
14
- })));
15
- export {
16
- tag_remove_default as default
17
- };
18
- //# sourceMappingURL=tag-remove-WV5RPE5W.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/skills/database/operations/tag-remove.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/compute';\nimport { Database, Entity } from '@dxos/echo';\n\nimport { TagRemove } from './definitions';\n\nexport default TagRemove.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ tag, obj }) {\n const object = yield* Database.load(obj);\n Entity.update(object, (object) => Entity.removeTag(object, tag));\n return Entity.toJSON(object);\n }),\n ),\n);\n"],
5
- "mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiB;AAC1B,SAASC,UAAUC,cAAc;AAIjC,IAAA,qBAAeC,UAAUC,KACvBC,UAAUC,YACDC,UAAG,WAAW,EAAEC,KAAKC,IAAG,GAAE;AAC/B,QAAMC,SAAS,OAAOC,SAASC,KAAKH,GAAAA;AACpCI,SAAOC,OAAOJ,QAAQ,CAACA,YAAWG,OAAOE,UAAUL,SAAQF,GAAAA,CAAAA;AAC3D,SAAOK,OAAOG,OAAON,MAAAA;AACvB,CAAA,CAAA,CAAA;",
6
- "names": ["Effect", "Operation", "Database", "Entity", "TagRemove", "pipe", "Operation", "withHandler", "fn", "tag", "obj", "object", "Database", "load", "Entity", "update", "removeTag", "toJSON"]
7
- }
@@ -1,65 +0,0 @@
1
- import "../chunk-J5LGTIGS.mjs";
2
-
3
- // src/skills/testing.ts
4
- import * as Arr from "effect/Array";
5
- import * as Effect from "effect/Effect";
6
- import { pipe } from "effect/Function";
7
- import { ConsolePrinter } from "@dxos/ai";
8
- import { GenerationObserver, Harness } from "@dxos/assistant";
9
- import { Database, Ref } from "@dxos/echo";
10
- import { log } from "@dxos/log";
11
- var __dxlog_file = "/__w/dxos/dxos/packages/core/compute/assistant-toolkit/src/skills/testing.ts";
12
- var runSteps = Effect.fn(function* (session, steps) {
13
- for (const { test, ...props } of steps) {
14
- yield* session.createRequest({
15
- ...props,
16
- observer: GenerationObserver.fromPrinter(new ConsolePrinter({
17
- mode: "json"
18
- }))
19
- });
20
- const messages = yield* Effect.promise(() => session.getHistory());
21
- log.info("conversation", {
22
- messages
23
- }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 22, S: this });
24
- if (test) {
25
- yield* Effect.promise(() => test());
26
- }
27
- }
28
- });
29
- var addSkills = Effect.fnUntraced(function* (skills) {
30
- const skillRefs = yield* pipe(skills, Arr.map((skill) => skill.make()), Effect.forEach(Database.add), Effect.map(Arr.map(Ref.make)));
31
- yield* Harness.bindContext({
32
- skills: skillRefs
33
- });
34
- });
35
-
36
- // src/testing/plugins.tsx
37
- import * as Schema from "effect/Schema";
38
- import React from "react";
39
- import { Capabilities, Capability } from "@dxos/app-framework";
40
- import { Surface } from "@dxos/app-framework/ui";
41
- import { AppSurface } from "@dxos/app-toolkit/ui";
42
- import { DXN, Format, Type } from "@dxos/echo";
43
- import { Card } from "@dxos/react-ui";
44
- import { Syntax } from "@dxos/react-ui-syntax-highlighter";
45
- import { Position } from "@dxos/util";
46
- var MapSchema = Schema.Struct({
47
- coordinates: Format.GeoPoint
48
- }).pipe(Type.makeObject(DXN.make("com.example.type.map", "0.1.0")));
49
- var capabilities = [
50
- Capability.contributes(Capabilities.ReactSurface, Surface.create({
51
- id: "pluginDefault",
52
- filter: Surface.makeFilter(AppSurface.CardContent),
53
- position: Position.last,
54
- component: ({ data }) => /* @__PURE__ */ React.createElement(Card.Body, null, /* @__PURE__ */ React.createElement(Syntax.Root, {
55
- data
56
- }, /* @__PURE__ */ React.createElement(Syntax.Content, null, /* @__PURE__ */ React.createElement(Syntax.Filter, null), /* @__PURE__ */ React.createElement(Syntax.Viewport, null, /* @__PURE__ */ React.createElement(Syntax.Code, null)))))
57
- }))
58
- ];
59
- export {
60
- MapSchema,
61
- addSkills,
62
- capabilities,
63
- runSteps
64
- };
65
- //# sourceMappingURL=index.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/skills/testing.ts", "../../../../src/testing/plugins.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Arr from 'effect/Array';\nimport * as Effect from 'effect/Effect';\nimport { pipe } from 'effect/Function';\n\nimport { ConsolePrinter } from '@dxos/ai';\nimport { AiRequest, AiSession, GenerationObserver, Harness } from '@dxos/assistant';\nimport type { Skill } from '@dxos/compute';\nimport { Database, Ref } from '@dxos/echo';\nimport { log } from '@dxos/log';\n\nexport type TestStep = Pick<AiSession.RunProps, 'prompt' | 'system'> & {\n test?: () => Promise<void>;\n};\n\n/**\n * Runs the prompt steps, calling the test function after each step.\n */\nexport const runSteps: (\n session: AiSession.Session,\n steps: TestStep[],\n) => Effect.Effect<void, AiRequest.RunError, AiRequest.RunRequirements> = Effect.fn(function* (\n session: AiSession.Session,\n steps: TestStep[],\n) {\n for (const { test, ...props } of steps) {\n yield* session.createRequest({\n ...props,\n observer: GenerationObserver.fromPrinter(new ConsolePrinter({ mode: 'json' })),\n });\n const messages = yield* Effect.promise(() => session.getHistory());\n log.info('conversation', { messages });\n if (test) {\n yield* Effect.promise(() => test());\n }\n }\n});\n\n/**\n * Binds skills from the skill definitions.\n */\n// TODO(dmaretskyi): Potentially the agent will auto-bind the skills.\nexport const addSkills = Effect.fnUntraced(function* (skills: Skill.Definition[]) {\n const skillRefs = yield* pipe(\n skills,\n Arr.map((skill) => skill.make()),\n Effect.forEach(Database.add),\n Effect.map(Arr.map(Ref.make)),\n );\n yield* Harness.bindContext({ skills: skillRefs });\n});\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\nimport React from 'react';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { Surface } from '@dxos/app-framework/ui';\nimport { AppSurface } from '@dxos/app-toolkit/ui';\nimport { DXN, Format, type Obj, Type } from '@dxos/echo';\nimport { Card } from '@dxos/react-ui';\nimport { Syntax } from '@dxos/react-ui-syntax-highlighter';\nimport { Position } from '@dxos/util';\n\nexport const MapSchema = Schema.Struct({\n coordinates: Format.GeoPoint,\n}).pipe(Type.makeObject(DXN.make('com.example.type.map', '0.1.0')));\n\nexport type MapSchema = Type.InstanceType<typeof MapSchema>;\n\n// TODO(burdon): Move to ECHO def.\nexport type ArtifactsContext = {\n items: Obj.Unknown[];\n getArtifacts: () => Obj.Unknown[];\n addArtifact: (artifact: Obj.Unknown) => void;\n};\n\ndeclare global {\n interface ToolContextExtensions {\n artifacts?: ArtifactsContext;\n }\n}\n\nexport const capabilities: Capability.Any[] = [\n Capability.contributes(\n Capabilities.ReactSurface,\n Surface.create({\n id: 'pluginDefault',\n filter: Surface.makeFilter(AppSurface.CardContent),\n position: Position.last,\n component: ({ data }) => (\n <Card.Body>\n <Syntax.Root data={data}>\n <Syntax.Content>\n <Syntax.Filter />\n <Syntax.Viewport>\n <Syntax.Code />\n </Syntax.Viewport>\n </Syntax.Content>\n </Syntax.Root>\n </Card.Body>\n ),\n }),\n ),\n];\n"],
5
- "mappings": ";;;AAIA,YAAYA,SAAS;AACrB,YAAYC,YAAY;AACxB,SAASC,YAAY;AAErB,SAASC,sBAAsB;AAC/B,SAA+BC,oBAAoBC,eAAe;AAElE,SAASC,UAAUC,WAAW;AAC9B,SAASC,WAAW;AAMpB,IAAA,eAAA;AAWI,IAAOC,WAAQC,UAAc,WAAA,SAAA,OAAA;aACxBC,EAAAA,MAAK,GAAA,MAAA,KAAA,OAAA;WACRC,QAAUR,cAAAA;;MAAiE,UAAA,mBAAA,YAAA,IAAA,eAAA;QAC7E,MAAA;MACA,CAAA,CAAMS;IACNL,CAAAA;UAA2BK,WAAAA,OAAAA,eAAAA,MAAAA,QAAAA,WAAAA,CAAAA;AAAS,QAAA,KAAA,gBAAA;MAChCC;qBACKb,YAAc,GAAC,cAAMa,GAAAA,IAAAA,GAAAA,KAAAA,CAAAA;AAC9B,QAAA,MAAA;AACF,aAAA,eAAA,MAAA,KAAA,CAAA;IACC;EAEH;;AAWE,IAAOT,YAAoB,kBAAA,WAAA,QAAA;QAAEU,YAAQC,OAAAA,KAAAA,QAAAA,QAAAA,CAAAA,UAAAA,MAAAA,KAAAA,CAAAA,GAAAA,eAAAA,SAAAA,GAAAA,GAAAA,WAAAA,QAAAA,IAAAA,IAAAA,CAAAA,CAAAA;AAAU,SAAA,QAAA,YAAA;IAC9C,QAAA;;;;;ACjDH,YAAYC,YAAY;AACxB,OAAOC,WAAW;AAElB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,eAAe;AACxB,SAASC,kBAAkB;AAC3B,SAASC,KAAKC,QAAkBC,YAAY;AAC5C,SAASC,YAAY;AACrB,SAASC,cAAc;AACvB,SAASC,gBAAgB;AAElB,IAAMC,YAAmBC,cAAO;EACrCC,aAAaP,OAAOQ;AACtB,CAAA,EAAGC,KAAKR,KAAKS,WAAWX,IAAIY,KAAK,wBAAwB,OAAA,CAAA,CAAA;AAiBlD,IAAMC,eAAiC;EAC5ChB,WAAWiB,YACTlB,aAAamB,cACbjB,QAAQkB,OAAO;IACbC,IAAI;IACJC,QAAQpB,QAAQqB,WAAWpB,WAAWqB,WAAW;IACjDC,UAAUhB,SAASiB;IACnBC,WAAW,CAAC,EAAEC,KAAI,MAChB,sBAAA,cAACrB,KAAKsB,MAAI,MACR,sBAAA,cAACrB,OAAOsB,MAAI;MAACF;OACX,sBAAA,cAACpB,OAAOuB,SAAO,MACb,sBAAA,cAACvB,OAAOwB,QAAM,IAAA,GACd,sBAAA,cAACxB,OAAOyB,UAAQ,MACd,sBAAA,cAACzB,OAAO0B,MAAI,IAAA,CAAA,CAAA,CAAA,CAAA;EAMxB,CAAA,CAAA;;",
6
- "names": ["Arr", "Effect", "pipe", "ConsolePrinter", "GenerationObserver", "Harness", "Database", "Ref", "log", "session", "createRequest", "props", "observer", "messages", "test", "skills", "skillRefs", "Schema", "React", "Capabilities", "Capability", "Surface", "AppSurface", "DXN", "Format", "Type", "Card", "Syntax", "Position", "MapSchema", "Struct", "coordinates", "GeoPoint", "pipe", "makeObject", "make", "capabilities", "contributes", "ReactSurface", "create", "id", "filter", "makeFilter", "CardContent", "position", "last", "component", "data", "Body", "Root", "Content", "Filter", "Viewport", "Code"]
7
- }
@@ -1,46 +0,0 @@
1
- import {
2
- UpdateTasks
3
- } from "./chunk-3KA66YBF.mjs";
4
- import "./chunk-H4W22FFJ.mjs";
5
- import {
6
- Chat_exports,
7
- Plan_exports
8
- } from "./chunk-Z2HFOZXK.mjs";
9
- import "./chunk-EPQCDGIV.mjs";
10
- import "./chunk-J5LGTIGS.mjs";
11
-
12
- // src/skills/planning/operations/update-tasks.ts
13
- import * as Effect from "effect/Effect";
14
- import { Operation } from "@dxos/compute";
15
- import { Obj } from "@dxos/echo";
16
- import { trim } from "@dxos/util";
17
- var update_tasks_default = UpdateTasks.pipe(Operation.withHandler(Effect.fnUntraced(function* ({ tasks: newTasks }) {
18
- const chat = yield* Chat_exports.getFromContext;
19
- const plan = yield* Chat_exports.ensurePlan(chat);
20
- Obj.update(plan, (plan2) => {
21
- for (const task of newTasks) {
22
- const existingTask = plan2.tasks.find((t) => t.id === task.id);
23
- if (existingTask) {
24
- existingTask.title = task.title;
25
- existingTask.status = task.status;
26
- } else {
27
- plan2.tasks.push({
28
- id: task.id,
29
- title: task.title,
30
- status: task.status
31
- });
32
- }
33
- }
34
- });
35
- return trim`
36
- You must update the task status to 'in-progress' when you start and 'done' when complete.
37
- Current plan updated:
38
- <plan>
39
- ${Plan_exports.formatPlan(plan)}
40
- </plan>
41
- `;
42
- })), Operation.opaqueHandler);
43
- export {
44
- update_tasks_default as default
45
- };
46
- //# sourceMappingURL=update-tasks-HX4ILWOU.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/skills/planning/operations/update-tasks.ts"],
4
- "sourcesContent": ["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/compute';\nimport { Obj } from '@dxos/echo';\nimport { trim } from '@dxos/util';\n\nimport { Chat, Plan } from '../../../types';\nimport { UpdateTasks } from './definitions';\n\n/**\n * Updates the planning document (Chat.plan) with the given tasks.\n */\nexport default UpdateTasks.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* ({ tasks: newTasks }) {\n const chat = yield* Chat.getFromContext;\n // TODO(burdon): How to specify requirements/preconditions before calling?\n // TODO(burdon): How to report non-technical error?\n const plan = yield* Chat.ensurePlan(chat);\n\n Obj.update(plan, (plan) => {\n for (const task of newTasks) {\n const existingTask = plan.tasks.find((t) => t.id === task.id);\n if (existingTask) {\n existingTask.title = task.title;\n existingTask.status = task.status;\n } else {\n plan.tasks.push({\n id: task.id,\n title: task.title,\n status: task.status,\n });\n }\n }\n });\n\n return trim`\n You must update the task status to 'in-progress' when you start and 'done' when complete.\n Current plan updated:\n <plan>\n ${Plan.formatPlan(plan)}\n </plan>\n `;\n }),\n ),\n Operation.opaqueHandler,\n);\n"],
5
- "mappings": ";;;;;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiB;AAC1B,SAASC,WAAW;AACpB,SAASC,YAAY;AAQrB,IAAA,uBAAeC,YAAYC,KACzBC,UAAUC,YACDC,kBAAW,WAAW,EAAEC,OAAOC,SAAQ,GAAE;AAC9C,QAAMC,OAAO,OAAOC,aAAKC;AAGzB,QAAMC,OAAO,OAAOF,aAAKG,WAAWJ,IAAAA;AAEpCK,MAAIC,OAAOH,MAAM,CAACA,UAAAA;AAChB,eAAWI,QAAQR,UAAU;AAC3B,YAAMS,eAAeL,MAAKL,MAAMW,KAAK,CAACC,MAAMA,EAAEC,OAAOJ,KAAKI,EAAE;AAC5D,UAAIH,cAAc;AAChBA,qBAAaI,QAAQL,KAAKK;AAC1BJ,qBAAaK,SAASN,KAAKM;MAC7B,OAAO;AACLV,QAAAA,MAAKL,MAAMgB,KAAK;UACdH,IAAIJ,KAAKI;UACTC,OAAOL,KAAKK;UACZC,QAAQN,KAAKM;QACf,CAAA;MACF;IACF;EACF,CAAA;AAEA,SAAOE;;;;YAIDC,aAAKC,WAAWd,IAAAA,CAAAA;;;AAGxB,CAAA,CAAA,GAEFR,UAAUuB,aAAa;",
6
- "names": ["Effect", "Operation", "Obj", "trim", "UpdateTasks", "pipe", "Operation", "withHandler", "fnUntraced", "tasks", "newTasks", "chat", "Chat", "getFromContext", "plan", "ensurePlan", "Obj", "update", "task", "existingTask", "find", "t", "id", "title", "status", "push", "trim", "Plan", "formatPlan", "opaqueHandler"]
7
- }
@@ -1,4 +0,0 @@
1
- import { Operation } from '@dxos/compute';
2
- declare const _default: Operation.WithHandler<Operation.Definition.Any>;
3
- export default _default;
4
- //# sourceMappingURL=add-artifact.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-artifact.d.ts","sourceRoot":"","sources":["../../../../../../src/skills/agent/operations/add-artifact.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC"}
@@ -1,4 +0,0 @@
1
- import { Operation } from '@dxos/compute';
2
- declare const _default: Operation.WithHandler<Operation.Definition.Any>;
3
- export default _default;
4
- //# sourceMappingURL=agent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../../../../src/skills/agent/operations/agent.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC"}
@@ -1,5 +0,0 @@
1
- import { Operation } from '@dxos/compute';
2
- import { Qualifier } from './definitions';
3
- declare const handler: Operation.WithHandler<typeof Qualifier>;
4
- export default handler;
5
- //# sourceMappingURL=qualifier.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"qualifier.d.ts","sourceRoot":"","sources":["../../../../../../src/skills/agent/operations/qualifier.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAM1C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,QAAA,MAAM,OAAO,EAAE,SAAS,CAAC,WAAW,CAAC,OAAO,SAAS,CA6EpD,CAAC;eACa,OAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"skill.test.d.ts","sourceRoot":"","sources":["../../../../../src/skills/agent/skill.test.ts"],"names":[],"mappings":""}
@@ -1,8 +0,0 @@
1
- import { Operation } from '@dxos/compute';
2
- import { Database, Obj } from '@dxos/echo';
3
- import { Agent } from '../../../types';
4
- declare const _default: Operation.WithHandler<Operation.Definition<{
5
- readonly agent: import("@dxos/echo/internal").Ref<Agent.Agent & import("@dxos/echo/Entity").OfKind<import("@dxos/echo/internal").EntityKind.Object> & Obj.Unknown>;
6
- }, void, Database.Service>>;
7
- export default _default;
8
- //# sourceMappingURL=sync-triggers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync-triggers.d.ts","sourceRoot":"","sources":["../../../../../../src/skills/agent-wizard/operations/sync-triggers.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAW,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAgB,GAAG,EAAa,MAAM,YAAY,CAAC;AAGpE,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=skill.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skill.test.d.ts","sourceRoot":"","sources":["../../../../../src/skills/database/skill.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=skill.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skill.test.d.ts","sourceRoot":"","sources":["../../../../../src/skills/memory/skill.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=skill.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skill.test.d.ts","sourceRoot":"","sources":["../../../../../src/skills/planning/skill.test.ts"],"names":[],"mappings":""}
@@ -1,80 +0,0 @@
1
- import * as Schema from 'effect/Schema';
2
- import { Process } from '@dxos/compute';
3
- import { Obj, Type } from '@dxos/echo';
4
- export declare const TaskId: Schema.brand<typeof Schema.String, "@dxos/assistant-toolkit/TaskId">;
5
- export type TaskId = Schema.Schema.Type<typeof TaskId>;
6
- export declare const Task: Schema.Struct<{
7
- /**
8
- * Short task ID unique within the plan.
9
- */
10
- id: Schema.brand<typeof Schema.String, "@dxos/assistant-toolkit/TaskId">;
11
- title: Schema.SchemaClass<string, string, never>;
12
- status: Schema.Literal<["todo", "in-progress", "done", "failed"]>;
13
- /**
14
- * Whether this task was handed to a sub-agent via the delegation tool. Only delegated tasks are
15
- * picked up by the supervisor's reconcile loop, so a task created via ordinary planning
16
- * (`update-tasks`) is not double-spawned as a sub-agent.
17
- */
18
- delegated: Schema.optional<typeof Schema.Boolean>;
19
- /**
20
- * Sub-agent process id; set when the supervisor spawns a delegated task.
21
- */
22
- agentPid: Schema.optional<Schema.brand<typeof Schema.String, "ProcessId">>;
23
- /**
24
- * Parent task ID.
25
- */
26
- parent: Schema.optional<Schema.brand<typeof Schema.String, "@dxos/assistant-toolkit/TaskId">>;
27
- }>;
28
- export type Task = Schema.Schema.Type<typeof Task>;
29
- /** Lifecycle status of a {@link Task}. */
30
- export type TaskStatus = Task['status'];
31
- /**
32
- * Short tag label for a delegated sub-agent process id (e.g. `agent-a1b2`).
33
- */
34
- export declare const formatAgentPidTag: (pid: Process.ID) => string;
35
- declare const Plan_base: Type.ObjClass<Plan, {
36
- readonly tasks: readonly {
37
- readonly id: string & import("effect/Brand").Brand<"@dxos/assistant-toolkit/TaskId">;
38
- readonly title: string;
39
- readonly status: "done" | "failed" | "in-progress" | "todo";
40
- readonly delegated?: boolean | undefined;
41
- readonly agentPid?: (string & import("effect/Brand").Brand<"ProcessId">) | undefined;
42
- readonly parent?: (string & import("effect/Brand").Brand<"@dxos/assistant-toolkit/TaskId">) | undefined;
43
- }[];
44
- }, {}>;
45
- /**
46
- * Hierarchical collection of tasks for humans and agents to track progress.
47
- */
48
- export declare class Plan extends Plan_base {
49
- }
50
- export declare const generateTaskId: (plan: Plan) => TaskId;
51
- /**
52
- * Add new tasks to a plan, generating IDs for new tasks.
53
- * Use inside an `Obj.update` callback.
54
- */
55
- export declare const addTasks: (plan: Obj.Mutable<Plan>, tasks: (Pick<Task, 'title'> & Partial<Pick<Task, 'status' | 'parent' | 'delegated'>>)[]) => {
56
- "~@dxos/echo/Kind": import("@dxos/echo/internal").EntityKind.Object;
57
- id: import("@dxos/keys").EntityId;
58
- tasks: {
59
- id: string & import("effect/Brand").Brand<"@dxos/assistant-toolkit/TaskId">;
60
- title: string;
61
- status: "done" | "failed" | "in-progress" | "todo";
62
- delegated?: boolean | undefined;
63
- agentPid?: (string & import("effect/Brand").Brand<"ProcessId">) | undefined;
64
- parent?: (string & import("effect/Brand").Brand<"@dxos/assistant-toolkit/TaskId">) | undefined;
65
- }[];
66
- };
67
- interface MakePlanProps {
68
- tasks: (Pick<Task, 'title'> & Partial<Pick<Task, 'status'>>)[];
69
- }
70
- export declare const makePlan: (props: MakePlanProps) => Plan;
71
- /**
72
- * Formats plan to markdown format.
73
- */
74
- export declare const formatPlan: (plan: Plan) => string;
75
- /**
76
- * True when the plan has any task that is not yet `done`.
77
- */
78
- export declare const hasIncompleteTasks: (plan: Plan) => boolean;
79
- export {};
80
- //# sourceMappingURL=Plan.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Plan.d.ts","sourceRoot":"","sources":["../../../../src/types/Plan.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAmB,GAAG,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAExD,eAAO,MAAM,MAAM,sEAAqE,CAAC;AACzF,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,CAAC;AAEvD,eAAO,MAAM,IAAI;IACf;;OAEG;;;;IASH;;;;OAIG;;IAGH;;OAEG;;IAKH;;OAEG;;EAIH,CAAC;AAEH,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnD,0CAA0C;AAC1C,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,iBAAiB,QAAS,OAAO,CAAC,EAAE,KAAG,MAAgE,CAAC;;;;;;;;;;;AAErH;;GAEG;AACH,qBAAa,IAAK,SAAQ,SAIzB;CAAG;AACJ,eAAO,MAAM,cAAc,SAAU,IAAI,KAAG,MAe3C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ,SACb,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAChB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;CAOxF,CAAC;AAEF,UAAU,aAAa;IACrB,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;CAChE;AAED,eAAO,MAAM,QAAQ,UAAW,aAAa,KAAG,IAM/C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,SAAU,IAAI,KAAG,MAIvC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,SAAU,IAAI,KAAG,OAA4D,CAAC"}
@@ -1 +0,0 @@
1
- {"conversations":[{"parameters":{"model":"dxn:com.anthropic.model.claudeOpus48","stream":true,"tools":[{"name":"completeJob","inputSchema":{"type":"object","required":[],"properties":{"success":{"type":"string"},"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_0153cr8reaEp7UUPQ6mDsw33","modelId":"claude-opus-4-8","timestamp":"1970-01-01T00:00:00.000Z","metadata":{}},{"type":"text-start","id":"0","metadata":{}},{"type":"text-delta","id":"0","delta":"ack","metadata":{}},{"type":"text-end","id":"0","metadata":{}},{"type":"tool-params-start","id":"toolu_01G8D91FCK1Ufxt927zs8Pke","name":"completeJob","providerExecuted":false,"metadata":{}},{"type":"tool-params-delta","id":"toolu_01G8D91FCK1Ufxt927zs8Pke","delta":"","metadata":{}},{"type":"tool-params-delta","id":"toolu_01G8D91FCK1Ufxt927zs8Pke","delta":"{\"success\"","metadata":{}},{"type":"tool-params-delta","id":"toolu_01G8D91FCK1Ufxt927zs8Pke","delta":": \"","metadata":{}},{"type":"tool-params-delta","id":"toolu_01G8D91FCK1Ufxt927zs8Pke","delta":"ack\"}","metadata":{}},{"type":"tool-params-end","id":"toolu_01G8D91FCK1Ufxt927zs8Pke","metadata":{}},{"type":"finish","reason":"tool-calls","usage":{"inputTokens":612,"outputTokens":52,"totalTokens":664},"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":612,"output_tokens":4,"server_tool_use":null,"service_tier":"standard"}}}}]},{"parameters":{"model":"dxn:com.anthropic.model.claudeOpus48","stream":true,"tools":[{"name":"completeJob","inputSchema":{"type":"object","required":[],"properties":{"success":{"type":"string"},"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":"text","text":"ack","options":{}},{"type":"tool-call","id":"toolu_01G8D91FCK1Ufxt927zs8Pke","name":"completeJob","params":{"success":"ack"},"providerExecuted":false,"options":{}}],"options":{}},{"role":"tool","content":[{"type":"tool-result","id":"toolu_01G8D91FCK1Ufxt927zs8Pke","name":"completeJob","isFailure":false,"result":{},"providerExecuted":false,"options":{}}],"options":{"anthropic":{"cacheControl":{"ttl":"5m","type":"ephemeral"}}}}]},"response":[{"type":"response-metadata","id":"msg_01JwZWDHP9f91j9mtuBcweEi","modelId":"claude-opus-4-8","timestamp":"1970-01-01T00:00:00.000Z","metadata":{}},{"type":"text-start","id":"0","metadata":{}},{"type":"text-delta","id":"0","delta":"ack","metadata":{}},{"type":"text-end","id":"0","metadata":{}},{"type":"finish","reason":"stop","usage":{"inputTokens":671,"outputTokens":4,"totalTokens":675},"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":671,"output_tokens":4,"server_tool_use":null,"service_tier":"standard"}}}}]},{"parameters":{"model":"dxn:com.anthropic.model.claudeOpus48","stream":true,"tools":[{"name":"completeJob","inputSchema":{"type":"object","required":[],"properties":{"success":{"type":"object","required":["name","age"],"properties":{"name":{"type":"string"},"age":{"type":"number"}},"additionalProperties":false},"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":"Invent a fictional person and call completeJob with the success object describing them (name and age).\n<input>{}</input>","options":{"anthropic":{"cacheControl":{"ttl":"5m","type":"ephemeral"}}}}]},"response":[{"type":"response-metadata","id":"msg_019BDNVW5UBKUGq1fPmQQg5x","modelId":"claude-opus-4-8","timestamp":"1970-01-01T00:00:00.000Z","metadata":{}},{"type":"reasoning-start","id":"0","metadata":{}},{"type":"reasoning-delta","id":"0","delta":"","metadata":{"anthropic":{"type":"thinking","signature":"EtEBCmMIDxgCKkBVw1KTUvy7ptjvU5KhOrJzn6FiU+sGl7uyv3E5tQNCLoTMrYyNrZ9cIwIzQisu+ee9oMZ6wWLLF2btcTWRVWCAMg9jbGF1ZGUtb3B1cy00LTg4AEIIdGhpbmtpbmcSDPHq6lstKXSz5+gs3BoMLWs6Npza0CHs3w3+IjAYs9sYyXBEVkXu1uxuY34gp1OEbqzEhTc++dBNqDAa8BiDdAudN6Hh+bsTaFaobq8qHGgvSqiOqVGXMGe0HdDr8nRlh4FgmWYHsvGNLX0YAQ=="}}},{"type":"reasoning-end","id":"0","metadata":{}},{"type":"tool-params-start","id":"toolu_01CfLMgATBzNGar8mig31jpu","name":"completeJob","providerExecuted":false,"metadata":{}},{"type":"tool-params-delta","id":"toolu_01CfLMgATBzNGar8mig31jpu","delta":"","metadata":{}},{"type":"tool-params-delta","id":"toolu_01CfLMgATBzNGar8mig31jpu","delta":"{\"succes","metadata":{}},{"type":"tool-params-delta","id":"toolu_01CfLMgATBzNGar8mig31jpu","delta":"s\": {\"name\"","metadata":{}},{"type":"tool-params-delta","id":"toolu_01CfLMgATBzNGar8mig31jpu","delta":":\"Elean","metadata":{}},{"type":"tool-params-delta","id":"toolu_01CfLMgATBzNGar8mig31jpu","delta":"or","metadata":{}},{"type":"tool-params-delta","id":"toolu_01CfLMgATBzNGar8mig31jpu","delta":" Vance","metadata":{}},{"type":"tool-params-delta","id":"toolu_01CfLMgATBzNGar8mig31jpu","delta":"\",\"age","metadata":{}},{"type":"tool-params-delta","id":"toolu_01CfLMgATBzNGar8mig31jpu","delta":"\":3","metadata":{}},{"type":"tool-params-delta","id":"toolu_01CfLMgATBzNGar8mig31jpu","delta":"4}}","metadata":{}},{"type":"tool-params-end","id":"toolu_01CfLMgATBzNGar8mig31jpu","metadata":{}},{"type":"finish","reason":"tool-calls","usage":{"inputTokens":678,"outputTokens":75,"totalTokens":753},"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":678,"output_tokens":57,"server_tool_use":null,"service_tier":"standard"}}}}]},{"parameters":{"model":"dxn:com.anthropic.model.claudeOpus48","stream":true,"tools":[{"name":"completeJob","inputSchema":{"type":"object","required":[],"properties":{"success":{"type":"object","required":["name","age"],"properties":{"name":{"type":"string"},"age":{"type":"number"}},"additionalProperties":false},"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":"Invent a fictional person and call completeJob with the success object describing them (name and age).\n<input>{}</input>","options":{}},{"role":"assistant","content":[{"type":"reasoning","text":"","options":{}},{"type":"tool-call","id":"toolu_01CfLMgATBzNGar8mig31jpu","name":"completeJob","params":{"success":{"name":"Eleanor Vance","age":34}},"providerExecuted":false,"options":{}}],"options":{}},{"role":"tool","content":[{"type":"tool-result","id":"toolu_01CfLMgATBzNGar8mig31jpu","name":"completeJob","isFailure":false,"result":{},"providerExecuted":false,"options":{}}],"options":{"anthropic":{"cacheControl":{"ttl":"5m","type":"ephemeral"}}}}]},"response":[{"type":"response-metadata","id":"msg_01NU5aMLn4XFj5QY5mrVHJuZ","modelId":"claude-opus-4-8","timestamp":"1970-01-01T00:00:00.000Z","metadata":{}},{"type":"text-start","id":"0","metadata":{}},{"type":"text-delta","id":"0","delta":"I","metadata":{}},{"type":"text-delta","id":"0","delta":"'ve created a fictional person named Eleanor Vance, age 34, and submitted them via completeJob.","metadata":{}},{"type":"text-end","id":"0","metadata":{}},{"type":"finish","reason":"stop","usage":{"inputTokens":752,"outputTokens":35,"totalTokens":787},"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":752,"output_tokens":1,"server_tool_use":null,"service_tier":"standard"}}}}]},{"parameters":{"model":"dxn:com.anthropic.model.claudeOpus48","stream":true,"tools":[{"name":"completeJob","inputSchema":{"type":"object","required":[],"properties":{"success":{"type":"string"},"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].\n\n## Context Objects\n\n<object>\n <dxn>echo://BDJXMULPW5FB55UZ7KP5HLDHVTXUTHE2U/01JGFJJZ00G0WKQSJGMAKCNT8A</dxn>\n <typename>org.dxos.type.assistant.chat</typename>\n</object>","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_01CVS6itosiKTLqoqYECoGWg","modelId":"claude-opus-4-8","timestamp":"1970-01-01T00:00:00.000Z","metadata":{}},{"type":"text-start","id":"0","metadata":{}},{"type":"text-delta","id":"0","delta":"ack","metadata":{}},{"type":"text-end","id":"0","metadata":{}},{"type":"tool-params-start","id":"toolu_01XzJ1hGLDmTa8BaqDexfDbZ","name":"completeJob","providerExecuted":false,"metadata":{}},{"type":"tool-params-delta","id":"toolu_01XzJ1hGLDmTa8BaqDexfDbZ","delta":"","metadata":{}},{"type":"tool-params-delta","id":"toolu_01XzJ1hGLDmTa8BaqDexfDbZ","delta":"{\"s","metadata":{}},{"type":"tool-params-delta","id":"toolu_01XzJ1hGLDmTa8BaqDexfDbZ","delta":"ucce","metadata":{}},{"type":"tool-params-delta","id":"toolu_01XzJ1hGLDmTa8BaqDexfDbZ","delta":"ss\": \"","metadata":{}},{"type":"tool-params-delta","id":"toolu_01XzJ1hGLDmTa8BaqDexfDbZ","delta":"ack\"}","metadata":{}},{"type":"tool-params-end","id":"toolu_01XzJ1hGLDmTa8BaqDexfDbZ","metadata":{}},{"type":"finish","reason":"tool-calls","usage":{"inputTokens":724,"outputTokens":52,"totalTokens":776},"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":724,"output_tokens":4,"server_tool_use":null,"service_tier":"standard"}}}}]},{"parameters":{"model":"dxn:com.anthropic.model.claudeOpus48","stream":true,"tools":[{"name":"completeJob","inputSchema":{"type":"object","required":[],"properties":{"success":{"type":"string"},"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].\n\n## Context Objects\n\n<object>\n <dxn>echo://BDJXMULPW5FB55UZ7KP5HLDHVTXUTHE2U/01JGFJJZ00G0WKQSJGMAKCNT8A</dxn>\n <typename>org.dxos.type.assistant.chat</typename>\n</object>","options":{}},{"role":"user","content":"Reply with a single word: ack.\n<input>{}</input>","options":{}},{"role":"assistant","content":[{"type":"text","text":"ack","options":{}},{"type":"tool-call","id":"toolu_01XzJ1hGLDmTa8BaqDexfDbZ","name":"completeJob","params":{"success":"ack"},"providerExecuted":false,"options":{}}],"options":{}},{"role":"tool","content":[{"type":"tool-result","id":"toolu_01XzJ1hGLDmTa8BaqDexfDbZ","name":"completeJob","isFailure":false,"result":{},"providerExecuted":false,"options":{}}],"options":{"anthropic":{"cacheControl":{"ttl":"5m","type":"ephemeral"}}}}]},"response":[{"type":"response-metadata","id":"msg_01V4JNNLgtHrbJxKxQDVyXzb","modelId":"claude-opus-4-8","timestamp":"1970-01-01T00:00:00.000Z","metadata":{}},{"type":"text-start","id":"0","metadata":{}},{"type":"text-delta","id":"0","delta":"ack","metadata":{}},{"type":"text-end","id":"0","metadata":{}},{"type":"finish","reason":"stop","usage":{"inputTokens":783,"outputTokens":4,"totalTokens":787},"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":783,"output_tokens":4,"server_tool_use":null,"service_tier":"standard"}}}}]},{"parameters":{"model":"dxn:com.anthropic.model.claude-opus-4-8.default","stream":true,"tools":[{"name":"completeJob","inputSchema":{"type":"object","required":[],"properties":{"success":{"type":"string"},"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].\n\n## Context Objects\n\n<object>\n <dxn>echo://BDJXMULPW5FB55UZ7KP5HLDHVTXUTHE2U/01JGFJJZ00G0WKQSJGMAKCNT8A</dxn>\n <typename>org.dxos.type.assistant.chat</typename>\n</object>","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_018VHmVQ6iNHU4FHiXgJMUwY","modelId":"claude-opus-4-8","timestamp":"1970-01-01T00:00:00.000Z","metadata":{}},{"type":"text-start","id":"0","metadata":{}},{"type":"text-delta","id":"0","delta":"ack","metadata":{}},{"type":"text-end","id":"0","metadata":{}},{"type":"tool-params-start","id":"toolu_01SRavvLjWk6zhv1TyrFsdp5","name":"completeJob","providerExecuted":false,"metadata":{}},{"type":"tool-params-delta","id":"toolu_01SRavvLjWk6zhv1TyrFsdp5","delta":"","metadata":{}},{"type":"tool-params-delta","id":"toolu_01SRavvLjWk6zhv1TyrFsdp5","delta":"{\"s","metadata":{}},{"type":"tool-params-delta","id":"toolu_01SRavvLjWk6zhv1TyrFsdp5","delta":"ucce","metadata":{}},{"type":"tool-params-delta","id":"toolu_01SRavvLjWk6zhv1TyrFsdp5","delta":"ss\": \"ack\"}","metadata":{}},{"type":"tool-params-end","id":"toolu_01SRavvLjWk6zhv1TyrFsdp5","metadata":{}},{"type":"finish","reason":"tool-calls","usage":{"inputTokens":724,"outputTokens":52,"totalTokens":776},"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":724,"output_tokens":4,"server_tool_use":null,"service_tier":"standard"}}}}]},{"parameters":{"model":"dxn:com.anthropic.model.claude-opus-4-8.default","stream":true,"tools":[{"name":"completeJob","inputSchema":{"type":"object","required":[],"properties":{"success":{"type":"string"},"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].\n\n## Context Objects\n\n<object>\n <dxn>echo://BDJXMULPW5FB55UZ7KP5HLDHVTXUTHE2U/01JGFJJZ00G0WKQSJGMAKCNT8A</dxn>\n <typename>org.dxos.type.assistant.chat</typename>\n</object>","options":{}},{"role":"user","content":"Reply with a single word: ack.\n<input>{}</input>","options":{}},{"role":"assistant","content":[{"type":"text","text":"ack","options":{}},{"type":"tool-call","id":"toolu_01SRavvLjWk6zhv1TyrFsdp5","name":"completeJob","params":{"success":"ack"},"providerExecuted":false,"options":{}}],"options":{}},{"role":"tool","content":[{"type":"tool-result","id":"toolu_01SRavvLjWk6zhv1TyrFsdp5","name":"completeJob","isFailure":false,"result":{},"providerExecuted":false,"options":{}}],"options":{"anthropic":{"cacheControl":{"ttl":"5m","type":"ephemeral"}}}}]},"response":[{"type":"response-metadata","id":"msg_01QSoFHABffojvPky1tdoXxM","modelId":"claude-opus-4-8","timestamp":"1970-01-01T00:00:00.000Z","metadata":{}},{"type":"text-start","id":"0","metadata":{}},{"type":"text-delta","id":"0","delta":"ack","metadata":{}},{"type":"text-end","id":"0","metadata":{}},{"type":"finish","reason":"stop","usage":{"inputTokens":783,"outputTokens":4,"totalTokens":787},"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":783,"output_tokens":4,"server_tool_use":null,"service_tier":"standard"}}}}]},{"parameters":{"model":"dxn:com.anthropic.model.claude-opus-4-8.default","stream":true,"tools":[{"name":"completeJob","inputSchema":{"type":"object","required":[],"properties":{"success":{"type":"object","required":["name","age"],"properties":{"name":{"type":"string"},"age":{"type":"number"}},"additionalProperties":false},"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":"Invent a fictional person and call completeJob with the success object describing them (name and age).\n<input>{}</input>","options":{"anthropic":{"cacheControl":{"ttl":"5m","type":"ephemeral"}}}}]},"response":[{"type":"response-metadata","id":"msg_01KLYHj1mTcocgfP8YsUF5KB","modelId":"claude-opus-4-8","timestamp":"1970-01-01T00:00:00.000Z","metadata":{}},{"type":"reasoning-start","id":"0","metadata":{}},{"type":"reasoning-delta","id":"0","delta":"","metadata":{"anthropic":{"type":"thinking","signature":"EogCCmMIDxgCKkByv/2cBEVkb9zPO7UA+QRheh+uTjBIakYniEgOcHYZcu9kDrZBMw6El578ODBYiqybw/5r8oBoOTtmz1W9xkKYMg9jbGF1ZGUtb3B1cy00LTg4AEIIdGhpbmtpbmcSDJVApLPVOiKe74P3ARoM4SiyyjXCAFNVbbmlIjCtRTgJtgB8dANbeZZ72gxXuFudL3oSAoYqzh+AmJC3lbExS9Tv3rVQfG/azsYA/2IqUyreggU847XEMSBvY367PwMJcuv5uPMxW5H9UVHAMKa8MjQKN/+BIAXn1NmcUXuOxJebuwrXI8FqH2ItXT5JHIVz9NxDJnbPDoA3DMHgwYFlW3hnGAE="}}},{"type":"reasoning-end","id":"0","metadata":{}},{"type":"tool-params-start","id":"toolu_01JaaTR43JU1qqDCcx3iSL12","name":"completeJob","providerExecuted":false,"metadata":{}},{"type":"tool-params-delta","id":"toolu_01JaaTR43JU1qqDCcx3iSL12","delta":"","metadata":{}},{"type":"tool-params-delta","id":"toolu_01JaaTR43JU1qqDCcx3iSL12","delta":"{\"success\": ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01JaaTR43JU1qqDCcx3iSL12","delta":"{\"name\":\"","metadata":{}},{"type":"tool-params-delta","id":"toolu_01JaaTR43JU1qqDCcx3iSL12","delta":"Eleanor Vanc","metadata":{}},{"type":"tool-params-delta","id":"toolu_01JaaTR43JU1qqDCcx3iSL12","delta":"e\",\"ag","metadata":{}},{"type":"tool-params-delta","id":"toolu_01JaaTR43JU1qqDCcx3iSL12","delta":"e\":34","metadata":{}},{"type":"tool-params-delta","id":"toolu_01JaaTR43JU1qqDCcx3iSL12","delta":"}}","metadata":{}},{"type":"tool-params-end","id":"toolu_01JaaTR43JU1qqDCcx3iSL12","metadata":{}},{"type":"finish","reason":"tool-calls","usage":{"inputTokens":678,"outputTokens":88,"totalTokens":766},"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":678,"output_tokens":6,"server_tool_use":null,"service_tier":"standard"}}}}]},{"parameters":{"model":"dxn:com.anthropic.model.claude-opus-4-8.default","stream":true,"tools":[{"name":"completeJob","inputSchema":{"type":"object","required":[],"properties":{"success":{"type":"object","required":["name","age"],"properties":{"name":{"type":"string"},"age":{"type":"number"}},"additionalProperties":false},"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":"Invent a fictional person and call completeJob with the success object describing them (name and age).\n<input>{}</input>","options":{}},{"role":"assistant","content":[{"type":"reasoning","text":"","options":{}},{"type":"tool-call","id":"toolu_01JaaTR43JU1qqDCcx3iSL12","name":"completeJob","params":{"success":{"name":"Eleanor Vance","age":34}},"providerExecuted":false,"options":{}}],"options":{}},{"role":"tool","content":[{"type":"tool-result","id":"toolu_01JaaTR43JU1qqDCcx3iSL12","name":"completeJob","isFailure":false,"result":{},"providerExecuted":false,"options":{}}],"options":{"anthropic":{"cacheControl":{"ttl":"5m","type":"ephemeral"}}}}]},"response":[{"type":"response-metadata","id":"msg_0163UXRftCZBAUuB7RiRMm6e","modelId":"claude-opus-4-8","timestamp":"1970-01-01T00:00:00.000Z","metadata":{}},{"type":"text-start","id":"0","metadata":{}},{"type":"text-delta","id":"0","delta":"I","metadata":{}},{"type":"text-delta","id":"0","delta":"'ve invented a fictional person named Eleanor Vance, age 34, and submitted the success object via completeJob.","metadata":{}},{"type":"text-end","id":"0","metadata":{}},{"type":"finish","reason":"stop","usage":{"inputTokens":752,"outputTokens":38,"totalTokens":790},"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":752,"output_tokens":1,"server_tool_use":null,"service_tier":"standard"}}}}]}]}
@@ -1,20 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import * as Effect from 'effect/Effect';
6
-
7
- import { Operation } from '@dxos/compute';
8
-
9
- import { Agent } from '../../../types';
10
- import { AddArtifact } from './definitions';
11
-
12
- export default AddArtifact.pipe(
13
- Operation.withHandler(
14
- Effect.fnUntraced(function* ({ name, artifact }) {
15
- const agent = yield* Agent.getFromChatContext;
16
- yield* Agent.addArtifact(agent, { name, id: artifact });
17
- }),
18
- ),
19
- Operation.opaqueHandler,
20
- );
@@ -1,69 +0,0 @@
1
- //
2
- // Copyright 2026 DXOS.org
3
- //
4
-
5
- import * as Effect from 'effect/Effect';
6
- import * as Layer from 'effect/Layer';
7
-
8
- import { AiService } from '@dxos/ai';
9
- import { AiSession, ToolExecutionServices } from '@dxos/assistant';
10
- import { Operation } from '@dxos/compute';
11
- import { Database, Obj } from '@dxos/echo';
12
- import { EffectEx } from '@dxos/effect';
13
- import { invariant } from '@dxos/invariant';
14
- import { ContentBlock } from '@dxos/types';
15
-
16
- import { Agent } from '../../../types';
17
- import { AgentWorker } from './definitions';
18
-
19
- export default AgentWorker.pipe(
20
- Operation.withHandler(
21
- Effect.fnUntraced(function* ({ agent: agentRef, prompt, event }) {
22
- const agent = yield* Database.load(agentRef).pipe(
23
- Effect.catchTag('EntityNotFoundError', () => Effect.die(new Error('Unable to load agent object.'))),
24
- );
25
- invariant(Obj.instanceOf(Agent.Agent, agent));
26
- invariant(agent.chat, 'Agent has no chat.');
27
-
28
- const chatFeed = yield* agent.chat.pipe(
29
- Database.load,
30
- Effect.flatMap((chat) => Database.load(chat.feed)),
31
- Effect.catchTag('EntityNotFoundError', () => Effect.die(new Error('Unable to load agent chat feed object.'))),
32
- );
33
- invariant(chatFeed, 'Agent chat feed not found.');
34
- const runtime = yield* Effect.runtime<Database.Service>();
35
- const session = yield* EffectEx.acquireReleaseResource(() => new AiSession.Session({ feed: chatFeed, runtime }));
36
-
37
- const agentsInContext = session.context.getObjects().filter(Obj.instanceOf(Agent.Agent));
38
- if (agentsInContext.length !== 1) {
39
- throw new Error('There should be exactly one agent in context. Got: ' + agentsInContext.length);
40
- }
41
-
42
- if (!prompt && !event) {
43
- throw new Error('Either prompt or event must be provided.');
44
- }
45
-
46
- let input: ContentBlock.Any[] = [];
47
- if (prompt) {
48
- input.push({ _tag: 'text', text: prompt, disposition: 'synthetic' });
49
- }
50
- if (event) {
51
- input.push({ _tag: 'text', text: JSON.stringify(event), disposition: 'synthetic' });
52
- }
53
-
54
- yield* session
55
- .createRequest({
56
- prompt: input,
57
- })
58
- .pipe(
59
- Effect.provide(
60
- Layer.mergeAll(AiService.model('com.anthropic.model.claude-opus-4-8.default'), ToolExecutionServices).pipe(
61
- Layer.provideMerge(Operation.withInvocationOptions({ conversation: Obj.getURI(chatFeed) })),
62
- ),
63
- ),
64
- Effect.retry({ times: 2 }),
65
- );
66
- }, Effect.scoped),
67
- ),
68
- Operation.opaqueHandler,
69
- );
@@ -1,97 +0,0 @@
1
- //
2
- // Copyright 2026 DXOS.org
3
- //
4
-
5
- import * as LanguageModel from '@effect/ai/LanguageModel';
6
- import * as Prompt from '@effect/ai/Prompt';
7
- import * as Effect from 'effect/Effect';
8
- import * as Schema from 'effect/Schema';
9
-
10
- import { AiService } from '@dxos/ai';
11
- import { Operation } from '@dxos/compute';
12
- import { Database, Feed, Obj, Ref } from '@dxos/echo';
13
- import { invariant } from '@dxos/invariant';
14
- import { trim } from '@dxos/util';
15
-
16
- import { Agent, Plan } from '../../../types';
17
- import { Qualifier } from './definitions';
18
-
19
- const handler: Operation.WithHandler<typeof Qualifier> = Qualifier.pipe(
20
- Operation.withHandler(
21
- Effect.fnUntraced(
22
- function* ({ agent: agentRef, event }) {
23
- const agent = yield* Database.load(agentRef);
24
- invariant(Obj.instanceOf(Agent.Agent, agent));
25
- invariant(agent.chat, 'Agent has no chat.');
26
-
27
- const { id, name, feed: queue } = agent;
28
- if (!queue) {
29
- throw new Error('Agent has no queue.');
30
- }
31
-
32
- const chat = yield* Database.load(agent.chat);
33
- const planText = chat.plan
34
- ? yield* Database.load(chat.plan).pipe(
35
- Effect.map(Plan.formatPlan),
36
- Effect.catchTag('EntityNotFoundError', () => Effect.succeed('No plan found.')),
37
- )
38
- : 'No plan found.';
39
- const instructions = yield* Database.load(agent.instructions);
40
-
41
- const { value } = yield* Effect.scoped(
42
- LanguageModel.generateObject({
43
- schema: Schema.Struct({
44
- isRelevant: Schema.Boolean,
45
- }),
46
- prompt: Prompt.fromMessages([
47
- Prompt.systemMessage({
48
- content: trim`
49
- You are a qualifying agent that determines if the event is relevant to the agent.
50
- Respond with true if the event is relevant to the agent, false otherwise.
51
- If you are not sure, return true.
52
- The qualified events will be forwarded to the larger agent that will process them.
53
- <agent id="${id}" name="${name}">
54
- <instructions>
55
- ${instructions.content}
56
- </instructions>
57
- <plan>
58
- ${planText}
59
- </plan>
60
- </agent>
61
- `,
62
- }),
63
- Prompt.userMessage({
64
- content: [
65
- Prompt.makePart('text', {
66
- text: trim`
67
- <event>
68
- ${JSON.stringify(event, null, 2)}
69
- </event>
70
- `,
71
- }),
72
- ],
73
- }),
74
- ]),
75
- }),
76
- );
77
-
78
- const { isRelevant } = value as { isRelevant: boolean };
79
-
80
- if (isRelevant) {
81
- const feedTarget = yield* Database.load(queue);
82
- if ('feed' in event && event.item) {
83
- const obj = event.item;
84
- yield* Feed.append(feedTarget, [obj]);
85
- } else if ('subject' in event && Ref.isRef(event.subject)) {
86
- const obj = yield* Database.load(event.subject);
87
- yield* Feed.append(feedTarget, [obj]);
88
- } else {
89
- throw new Error('Invalid event.');
90
- }
91
- }
92
- },
93
- Effect.provide(AiService.model('com.anthropic.model.claude-sonnet-4-6.default')),
94
- ),
95
- ),
96
- );
97
- export default handler;