@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
@@ -0,0 +1,39 @@
1
+ import { j as EnableSkills } from "./chunk-operations.mjs";
2
+ import { Operation, Skill } from "@dxos/compute";
3
+ import { Harness } from "@dxos/assistant";
4
+ import { Ref } from "@dxos/echo";
5
+ import * as Effect from "effect/Effect";
6
+ import * as Either from "effect/Either";
7
+ //#region src/skills/skill-manager/operations/enable-skills.ts
8
+ var enable_skills_default = EnableSkills.pipe(Operation.withHandler(Effect.fnUntraced(function* ({ keys }) {
9
+ const enabled = [];
10
+ const rejected = [];
11
+ for (const key of keys) {
12
+ const result = yield* Skill.resolve(key).pipe(Effect.mapError(() => ({
13
+ key,
14
+ reason: "Skill not found in registry."
15
+ })), Effect.either);
16
+ if (Either.isLeft(result)) {
17
+ rejected.push(result.left);
18
+ continue;
19
+ }
20
+ if (!result.right.agentCanEnable) {
21
+ rejected.push({
22
+ key,
23
+ reason: "Skill does not allow agent auto-enable (agentCanEnable is not set)."
24
+ });
25
+ continue;
26
+ }
27
+ const dbSkill = yield* Skill.upsert(key).pipe(Effect.orDie);
28
+ enabled.push(dbSkill);
29
+ }
30
+ if (enabled.length > 0) yield* Harness.bindContext({ skills: enabled.map(Ref.make) });
31
+ return {
32
+ enabled,
33
+ rejected
34
+ };
35
+ })));
36
+ //#endregion
37
+ export { enable_skills_default as default };
38
+
39
+ //# sourceMappingURL=chunk-enable-skills.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk-enable-skills.mjs","names":[],"sources":["../../src/skills/skill-manager/operations/enable-skills.ts"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Either from 'effect/Either';\n\nimport { Harness } from '@dxos/assistant';\nimport { Operation, Skill } from '@dxos/compute';\nimport { Ref } from '@dxos/echo';\n\nimport { EnableSkills } from './definitions';\n\nexport default EnableSkills.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* ({ keys }) {\n const enabled: Skill.Skill[] = [];\n const rejected: { key: string; reason: string }[] = [];\n\n for (const key of keys) {\n const result = yield* Skill.resolve(key).pipe(\n Effect.mapError(() => ({ key, reason: 'Skill not found in registry.' })),\n Effect.either,\n );\n if (Either.isLeft(result)) {\n rejected.push(result.left);\n continue;\n }\n if (!result.right.agentCanEnable) {\n rejected.push({ key, reason: 'Skill does not allow agent auto-enable (agentCanEnable is not set).' });\n continue;\n }\n const dbSkill = yield* Skill.upsert(key).pipe(Effect.orDie);\n enabled.push(dbSkill);\n }\n\n if (enabled.length > 0) {\n yield* Harness.bindContext({\n skills: enabled.map(Ref.make),\n });\n }\n\n return { enabled, rejected };\n }),\n ),\n);\n"],"mappings":";;;;;;;AAaA,IAAA,wBAAe,aAAa,KAC1B,UAAU,YACR,OAAO,WAAW,WAAW,EAAE,QAAQ;CACrC,MAAM,UAAyB,CAAC;CAChC,MAAM,WAA8C,CAAC;CAErD,KAAK,MAAM,OAAO,MAAM;EACtB,MAAM,SAAS,OAAO,MAAM,QAAQ,GAAG,CAAC,CAAC,KACvC,OAAO,gBAAgB;GAAE;GAAK,QAAQ;EAA+B,EAAE,GACvE,OAAO,MACT;EACA,IAAI,OAAO,OAAO,MAAM,GAAG;GACzB,SAAS,KAAK,OAAO,IAAI;GACzB;EACF;EACA,IAAI,CAAC,OAAO,MAAM,gBAAgB;GAChC,SAAS,KAAK;IAAE;IAAK,QAAQ;GAAsE,CAAC;GACpG;EACF;EACA,MAAM,UAAU,OAAO,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,OAAO,KAAK;EAC1D,QAAQ,KAAK,OAAO;CACtB;CAEA,IAAI,QAAQ,SAAS,GACnB,OAAO,QAAQ,YAAY,EACzB,QAAQ,QAAQ,IAAI,IAAI,IAAI,EAC9B,CAAC;CAGH,OAAO;EAAE;EAAS;CAAS;AAC7B,CAAC,CACH,CACF"}
@@ -0,0 +1,113 @@
1
+ import { n as TimeRange, t as FetchMessages } from "./chunk-definitions.mjs";
2
+ import { Credential, Operation, Trace } from "@dxos/compute";
3
+ import { Obj } from "@dxos/echo";
4
+ import * as Effect from "effect/Effect";
5
+ import { Message } from "@dxos/types";
6
+ import * as Layer from "effect/Layer";
7
+ import { log } from "@dxos/log";
8
+ import * as Array from "effect/Array";
9
+ import * as Function from "effect/Function";
10
+ import * as Option from "effect/Option";
11
+ import * as FetchHttpClient from "@effect/platform/FetchHttpClient";
12
+ import { DiscordConfig, DiscordREST, DiscordRESTMemoryLive } from "dfx";
13
+ //#region src/skills/discord/operations/fetch-messages.ts
14
+ var __dxlog_file = "/__w/dxos/dxos/packages/core/compute/assistant-toolkit/src/skills/discord/operations/fetch-messages.ts";
15
+ var DiscordConfigFromCredential = Layer.unwrapEffect(Effect.gen(function* () {
16
+ return DiscordConfig.layer({
17
+ token: yield* Credential.CredentialsService.getApiKey({ service: "discord.com" }),
18
+ rest: { baseUrl: "https://api-proxy.dxos.workers.dev/discord.com/api/v10" }
19
+ });
20
+ }));
21
+ var DEFAULT_AFTER = 1704067200;
22
+ var DEFAULT_LIMIT = 500;
23
+ var DEFAULT_IGNORE_USERNAMES = ["GitHub", "Needle"];
24
+ var fetch_messages_default = FetchMessages.pipe(Operation.withHandler(Effect.fnUntraced(function* ({ serverId, channelId, after, last, pageSize = 100, limit = DEFAULT_LIMIT, ignoreUsernames = DEFAULT_IGNORE_USERNAMES }) {
25
+ if (!after && !last) throw new Error("cannot specify both `after` and `last`");
26
+ const afterTs = last ? Date.now() / 1e3 - TimeRange.toSeconds(last) : after ?? DEFAULT_AFTER;
27
+ const rest = yield* DiscordREST;
28
+ let channels = [];
29
+ channels.push(...yield* rest.listGuildChannels(serverId));
30
+ const { threads: guildThreads } = yield* rest.getActiveGuildThreads(serverId);
31
+ channels.push(...guildThreads);
32
+ if (channelId) channels = channels.filter((channel) => channel.id === channelId);
33
+ if (channels.length === 0) throw new Error("no channels found");
34
+ for (const channel of channels) log.info("channel", {
35
+ id: channel.id,
36
+ name: "name" in channel ? channel.name : void 0
37
+ }, {
38
+ "~LogMeta": "~LogMeta",
39
+ F: __dxlog_file,
40
+ L: 81,
41
+ S: this
42
+ });
43
+ yield* Trace.emitStatus(`Will fetch from channels: ${channels.length}`);
44
+ return (yield* Effect.forEach(channels, Effect.fnUntraced(function* (channel) {
45
+ const allMessages = [];
46
+ let lastMessage = Option.none();
47
+ while (true) {
48
+ const { id: lastId = void 0 } = Function.pipe(lastMessage, Option.map(Obj.getKeys("discord.com")), Option.flatMap(Option.fromIterable), Option.getOrElse(() => ({ id: void 0 })));
49
+ const options = {
50
+ after: !lastId ? `${generateSnowflake(afterTs)}` : lastId,
51
+ limit: pageSize
52
+ };
53
+ log.info("fetching messages", {
54
+ lastId,
55
+ afterTs,
56
+ afterSnowflake: options.after,
57
+ after: parseSnowflake(options.after),
58
+ limit: options.limit
59
+ }, {
60
+ "~LogMeta": "~LogMeta",
61
+ F: __dxlog_file,
62
+ L: 104,
63
+ S: this
64
+ });
65
+ const messages = yield* rest.listMessages(channel.id, options).pipe(Effect.map(Array.map(makeMessage)), Effect.map(Array.reverse), Effect.catchTag("ErrorResponse", (err) => err.cause.code === 50001 ? Effect.succeed([]) : Effect.fail(err)));
66
+ if (messages.length > 0) {
67
+ lastMessage = Option.fromNullable(messages.at(-1));
68
+ allMessages.push(...messages);
69
+ } else break;
70
+ yield* Trace.emitStatus(`Fetched messages: ${allMessages.length}`);
71
+ if (allMessages.length >= limit) break;
72
+ }
73
+ return {
74
+ discordChannelId: channel.id,
75
+ name: "name" in channel ? channel.name ?? void 0 : void 0,
76
+ messages: allMessages.filter((message) => !message.sender.name || !ignoreUsernames.includes(message.sender.name)).filter((message) => message.blocks.some((block) => block._tag === "text" && block.text.trim().length > 0))
77
+ };
78
+ }), { concurrency: 10 })).filter((thread) => thread.messages.length > 0).map(serializeThread).join("\n");
79
+ }, Effect.provide(DiscordRESTMemoryLive.pipe(Layer.provideMerge(DiscordConfigFromCredential)).pipe(Layer.provide(FetchHttpClient.layer))), Effect.orDie)));
80
+ /**
81
+ * @param unixTimestamp in seconds
82
+ */
83
+ var generateSnowflake = (unixTimestamp) => {
84
+ return BigInt(unixTimestamp * 1e3) - 1420070400000n << 22n;
85
+ };
86
+ var parseSnowflake = (snowflake) => {
87
+ return new Date(Number((BigInt(snowflake) >> 22n) + 1420070400000n));
88
+ };
89
+ var makeMessage = (message) => Obj.make(Message.Message, {
90
+ [Obj.Meta]: { keys: [{
91
+ id: message.id,
92
+ source: "discord.com"
93
+ }, {
94
+ id: message.channel_id,
95
+ source: "discord.com/thread"
96
+ }] },
97
+ sender: { name: message.author.username },
98
+ created: message.timestamp,
99
+ blocks: [{
100
+ _tag: "text",
101
+ text: message.content
102
+ }]
103
+ });
104
+ /**
105
+ * Standard JSON serialization is to verbose for large amounts of data.
106
+ */
107
+ var serializeThread = (thread) => {
108
+ return `<thread id=${thread.discordChannelId} name=${thread.name ?? ""}>\n${thread.messages.map((message) => ` ${message.sender.name}: ${message.blocks.filter((block) => block._tag === "text").map((block) => block.text).join(" ")}`).join("\n")}\n</thread>`;
109
+ };
110
+ //#endregion
111
+ export { fetch_messages_default as default };
112
+
113
+ //# sourceMappingURL=chunk-fetch-messages.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk-fetch-messages.mjs","names":[],"sources":["../../src/skills/discord/operations/fetch-messages.ts"],"sourcesContent":["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as FetchHttpClient from '@effect/platform/FetchHttpClient';\nimport { DiscordConfig, DiscordREST, DiscordRESTMemoryLive } from 'dfx';\nimport type {\n GuildChannelResponse,\n MessageResponse,\n PrivateChannelResponse,\n PrivateGroupChannelResponse,\n ThreadResponse,\n} from 'dfx/types';\nimport * as Array from 'effect/Array';\nimport * as Effect from 'effect/Effect';\nimport * as Function from 'effect/Function';\nimport * as Layer from 'effect/Layer';\nimport * as Option from 'effect/Option';\n\nimport { Credential, Operation, Trace } from '@dxos/compute';\nimport { Obj } from '@dxos/echo';\nimport { log } from '@dxos/log';\nimport { Message } from '@dxos/types';\n\nimport { FetchMessages, TimeRange } from './definitions';\n\nconst DiscordConfigFromCredential = Layer.unwrapEffect(\n Effect.gen(function* () {\n return DiscordConfig.layer({\n token: yield* Credential.CredentialsService.getApiKey({ service: 'discord.com' }),\n rest: {\n baseUrl: 'https://api-proxy.dxos.workers.dev/discord.com/api/v10',\n },\n });\n }),\n);\n\ntype DiscordChannel = GuildChannelResponse | PrivateChannelResponse | PrivateGroupChannelResponse | ThreadResponse;\n\nconst DEFAULT_AFTER = 1704067200; // 2024-01-01\nconst DEFAULT_LIMIT = 500;\nconst DEFAULT_IGNORE_USERNAMES = ['GitHub', 'Needle'];\n\n// TODO(dmaretskyi): Align with standard thread type.\ntype Thread = {\n discordChannelId: string;\n name?: string;\n messages: Message.Message[];\n};\n\nexport default FetchMessages.pipe(\n Operation.withHandler(\n Effect.fnUntraced(\n function* ({\n serverId,\n channelId,\n after,\n last,\n pageSize = 100,\n limit = DEFAULT_LIMIT,\n ignoreUsernames = DEFAULT_IGNORE_USERNAMES,\n }) {\n if (!after && !last) {\n throw new Error('cannot specify both `after` and `last`');\n }\n const afterTs = last ? Date.now() / 1000 - TimeRange.toSeconds(last) : (after ?? DEFAULT_AFTER);\n\n const rest = yield* DiscordREST;\n\n let channels: DiscordChannel[] = [];\n channels.push(...(yield* rest.listGuildChannels(serverId)));\n const { threads: guildThreads } = yield* rest.getActiveGuildThreads(serverId);\n channels.push(...guildThreads);\n if (channelId) {\n channels = channels.filter((channel) => channel.id === channelId);\n }\n if (channels.length === 0) {\n throw new Error('no channels found');\n }\n for (const channel of channels) {\n log.info('channel', { id: channel.id, name: 'name' in channel ? channel.name : undefined });\n }\n\n yield* Trace.emitStatus(`Will fetch from channels: ${channels.length}`);\n\n const threads = yield* Effect.forEach(\n channels,\n Effect.fnUntraced(function* (channel) {\n const allMessages: Message.Message[] = [];\n\n let lastMessage: Option.Option<Message.Message> = Option.none();\n while (true) {\n const { id: lastId = undefined } = Function.pipe(\n lastMessage,\n Option.map(Obj.getKeys('discord.com')),\n Option.flatMap(Option.fromIterable),\n Option.getOrElse(() => ({ id: undefined })),\n );\n\n const options = {\n after: !lastId ? `${generateSnowflake(afterTs)}` : lastId,\n limit: pageSize,\n };\n log.info('fetching messages', {\n lastId,\n afterTs,\n afterSnowflake: options.after,\n after: parseSnowflake(options.after),\n limit: options.limit,\n });\n const messages = yield* rest.listMessages(channel.id, options).pipe(\n Effect.map(Array.map(makeMessage)),\n Effect.map(Array.reverse),\n Effect.catchTag('ErrorResponse', (err) =>\n err.cause.code === 50001 ? Effect.succeed([]) : Effect.fail(err),\n ),\n );\n if (messages.length > 0) {\n lastMessage = Option.fromNullable(messages.at(-1));\n allMessages.push(...messages);\n } else {\n break;\n }\n yield* Trace.emitStatus(`Fetched messages: ${allMessages.length}`);\n if (allMessages.length >= limit) {\n break;\n }\n }\n\n return {\n discordChannelId: channel.id,\n name: 'name' in channel ? (channel.name ?? undefined) : undefined,\n messages: allMessages\n .filter((message) => !message.sender.name || !ignoreUsernames.includes(message.sender.name))\n .filter((message) =>\n message.blocks.some((block: any) => block._tag === 'text' && block.text.trim().length > 0),\n ),\n } satisfies Thread;\n }),\n { concurrency: 10 },\n );\n\n return threads\n .filter((thread) => thread.messages.length > 0)\n .map(serializeThread)\n .join('\\n');\n },\n Effect.provide(\n DiscordRESTMemoryLive.pipe(Layer.provideMerge(DiscordConfigFromCredential)).pipe(\n Layer.provide(FetchHttpClient.layer),\n ),\n ),\n Effect.orDie,\n ),\n ),\n);\n\n/**\n * @param unixTimestamp in seconds\n */\nconst generateSnowflake = (unixTimestamp: number): bigint => {\n const discordEpoch = 1420070400000n; // Discord Epoch (ms)\n return (BigInt(unixTimestamp * 1000) - discordEpoch) << 22n;\n};\n\nconst parseSnowflake = (snowflake: string): Date => {\n const discordEpoch = 1420070400000n; // Discord Epoch (ms)\n return new Date(Number((BigInt(snowflake) >> 22n) + discordEpoch));\n};\n\n// TODO(burdon): Move to @dxos/types.\nconst makeMessage = (message: MessageResponse): Message.Message =>\n Obj.make(Message.Message, {\n [Obj.Meta]: {\n keys: [\n { id: message.id, source: 'discord.com' },\n { id: message.channel_id, source: 'discord.com/thread' },\n ],\n },\n sender: { name: message.author.username },\n created: message.timestamp,\n blocks: [{ _tag: 'text', text: message.content }],\n });\n\n/**\n * Standard JSON serialization is to verbose for large amounts of data.\n */\nconst serializeThread = (thread: Thread): string => {\n return `<thread id=${thread.discordChannelId} name=${thread.name ?? ''}>\\n${thread.messages\n .map(\n (message) =>\n ` ${message.sender.name}: ${message.blocks\n .filter((block: any) => block._tag === 'text')\n .map((block: any) => block.text)\n .join(' ')}`,\n )\n .join('\\n')}\\n</thread>`;\n};\n"],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { t as Fetch } from "./chunk-definitions3.mjs";
2
+ import { Operation } from "@dxos/compute";
3
+ import * as Effect from "effect/Effect";
4
+ import { proxyFetchLegacy } from "@dxos/edge-client/cors-proxy";
5
+ //#region src/skills/websearch/operations/fetch.ts
6
+ var fetch_default = Fetch.pipe(Operation.withHandler(Effect.fn(function* ({ url }) {
7
+ const response = yield* Effect.tryPromise({
8
+ try: () => proxyFetchLegacy(new URL(url)),
9
+ catch: (cause) => /* @__PURE__ */ new Error(`Fetch failed: ${String(cause)}`)
10
+ });
11
+ if (!response.ok) {
12
+ const body = yield* Effect.promise(() => response.text());
13
+ return yield* Effect.fail(/* @__PURE__ */ new Error(`Fetch failed with status ${response.status}: ${body.slice(0, 256)}`));
14
+ }
15
+ return yield* Effect.promise(() => response.text());
16
+ })));
17
+ //#endregion
18
+ export { fetch_default as default };
19
+
20
+ //# sourceMappingURL=chunk-fetch.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk-fetch.mjs","names":[],"sources":["../../src/skills/websearch/operations/fetch.ts"],"sourcesContent":["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/compute';\nimport { proxyFetchLegacy } from '@dxos/edge-client/cors-proxy';\n\nimport { Fetch } from './definitions';\n\nexport default Fetch.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ url }) {\n const response = yield* Effect.tryPromise({\n try: () => proxyFetchLegacy(new URL(url)),\n catch: (cause) => new Error(`Fetch failed: ${String(cause)}`),\n });\n // TODO(dmaretskyi): Use browser rendering API.\n if (!response.ok) {\n const body = yield* Effect.promise(() => response.text());\n return yield* Effect.fail(new Error(`Fetch failed with status ${response.status}: ${body.slice(0, 256)}`));\n }\n return yield* Effect.promise(() => response.text());\n }),\n ),\n);\n"],"mappings":";;;;;AAWA,IAAA,gBAAe,MAAM,KACnB,UAAU,YACR,OAAO,GAAG,WAAW,EAAE,OAAO;CAC5B,MAAM,WAAW,OAAO,OAAO,WAAW;EACxC,WAAW,iBAAiB,IAAI,IAAI,GAAG,CAAC;EACxC,QAAQ,0BAAU,IAAI,MAAM,iBAAiB,OAAO,KAAK,GAAG;CAC9D,CAAC;CAED,IAAI,CAAC,SAAS,IAAI;EAChB,MAAM,OAAO,OAAO,OAAO,cAAc,SAAS,KAAK,CAAC;EACxD,OAAO,OAAO,OAAO,qBAAK,IAAI,MAAM,4BAA4B,SAAS,OAAO,IAAI,KAAK,MAAM,GAAG,GAAG,GAAG,CAAC;CAC3G;CACA,OAAO,OAAO,OAAO,cAAc,SAAS,KAAK,CAAC;AACpD,CAAC,CACH,CACF"}
@@ -0,0 +1,55 @@
1
+ import { a as formatChecklist, l as HarnessContextError, t as Chat } from "./chunk-Chat.mjs";
2
+ import { i as loadChat, n as Agent, o as loadInstructions } from "./chunk-types.mjs";
3
+ import { W as GetContext } from "./chunk-operations.mjs";
4
+ import { Operation } from "@dxos/compute";
5
+ import { Harness } from "@dxos/assistant";
6
+ import { Filter } from "@dxos/echo";
7
+ import * as Effect from "effect/Effect";
8
+ import { invariant } from "@dxos/invariant";
9
+ //#region src/skills/agent/operations/get-context.ts
10
+ var __dxlog_file = "/__w/dxos/dxos/packages/core/compute/assistant-toolkit/src/skills/agent/operations/get-context.ts";
11
+ var get_context_default = GetContext.pipe(Operation.withHandler(Effect.fnUntraced(function* () {
12
+ const agents = yield* Harness.queryContext(Filter.type(Agent));
13
+ const chats = yield* Harness.queryContext(Filter.type(Chat));
14
+ if (agents.length === 0 && chats.length === 0) return {
15
+ id: "",
16
+ name: "",
17
+ instructions: "No agent context.",
18
+ checklist: "No checklist found."
19
+ };
20
+ if (agents.length > 1) return yield* Effect.fail(new HarnessContextError({
21
+ type: "agent",
22
+ count: agents.length
23
+ }));
24
+ if (chats.length > 1) return yield* Effect.fail(new HarnessContextError({
25
+ type: "chat",
26
+ count: chats.length
27
+ }));
28
+ const chat = (chats.length === 1 ? chats[0] : void 0) ?? (agents.length > 0 ? yield* loadChat(agents[0]) : void 0);
29
+ if (agents.length === 0) {
30
+ invariant(chat, "Expected a bound chat when no agent is in context.", {
31
+ "~LogMeta": "~LogMeta",
32
+ F: __dxlog_file,
33
+ L: 37,
34
+ S: this,
35
+ A: ["chat", "'Expected a bound chat when no agent is in context.'"]
36
+ });
37
+ return {
38
+ id: chat.id,
39
+ name: chat.name ?? "",
40
+ instructions: "No agent context.",
41
+ checklist: yield* formatChecklist(chat)
42
+ };
43
+ }
44
+ const agent = agents[0];
45
+ return {
46
+ id: agent.id,
47
+ name: agent.name,
48
+ instructions: yield* loadInstructions(agent).pipe(Effect.map((_) => _.text), Effect.catchTag("EntityNotFoundError", () => Effect.succeed("No instructions found."))),
49
+ checklist: yield* chat ? formatChecklist(chat) : Effect.succeed("No checklist found.")
50
+ };
51
+ })), Operation.opaqueHandler);
52
+ //#endregion
53
+ export { get_context_default as default };
54
+
55
+ //# sourceMappingURL=chunk-get-context.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk-get-context.mjs","names":[],"sources":["../../src/skills/agent/operations/get-context.ts"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Harness } from '@dxos/assistant';\nimport { Operation } from '@dxos/compute';\nimport { Filter } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\n\nimport { HarnessContextError } from '../../../errors';\nimport { Agent, Chat } from '../../../types';\nimport { GetContext } from './definitions';\n\nexport default GetContext.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* () {\n const agents = yield* Harness.queryContext(Filter.type(Agent.Agent));\n const chats = yield* Harness.queryContext(Filter.type(Chat.Chat));\n\n if (agents.length === 0 && chats.length === 0) {\n return { id: '', name: '', instructions: 'No agent context.', checklist: 'No checklist found.' };\n }\n if (agents.length > 1) {\n return yield* Effect.fail(new HarnessContextError({ type: 'agent', count: agents.length }));\n }\n if (chats.length > 1) {\n return yield* Effect.fail(new HarnessContextError({ type: 'chat', count: chats.length }));\n }\n\n // Prefer the directly bound chat; fall back to the agent's companion chat when no chat is bound.\n const directChat = chats.length === 1 ? chats[0] : undefined;\n const chat = directChat ?? (agents.length > 0 ? yield* Agent.loadChat(agents[0]) : undefined);\n\n if (agents.length === 0) {\n invariant(chat, 'Expected a bound chat when no agent is in context.');\n return {\n id: chat.id,\n name: chat.name ?? '',\n instructions: 'No agent context.',\n checklist: yield* Chat.formatChecklist(chat),\n };\n }\n\n const agent = agents[0];\n\n return {\n id: agent.id,\n name: agent.name,\n instructions: yield* Agent.loadInstructions(agent).pipe(\n Effect.map((_) => _.text),\n Effect.catchTag('EntityNotFoundError', () => Effect.succeed('No instructions found.')),\n ),\n checklist: yield* chat ? Chat.formatChecklist(chat) : Effect.succeed('No checklist found.'),\n };\n }) as any,\n ),\n Operation.opaqueHandler,\n);\n"],"mappings":";;;;;;;;;;AAeA,IAAA,sBAAe,WAAW,KACxB,UAAU,YACR,OAAO,WAAW,aAAa;CAC7B,MAAM,SAAS,OAAO,QAAQ,aAAa,OAAO,KAAK,KAAW,CAAC;CACnE,MAAM,QAAQ,OAAO,QAAQ,aAAa,OAAO,KAAK,IAAS,CAAC;CAEhE,IAAI,OAAO,WAAW,KAAK,MAAM,WAAW,GAC1C,OAAO;EAAE,IAAI;EAAI,MAAM;EAAI,cAAc;EAAqB,WAAW;CAAsB;CAEjG,IAAI,OAAO,SAAS,GAClB,OAAO,OAAO,OAAO,KAAK,IAAI,oBAAoB;EAAE,MAAM;EAAS,OAAO,OAAO;CAAO,CAAC,CAAC;CAE5F,IAAI,MAAM,SAAS,GACjB,OAAO,OAAO,OAAO,KAAK,IAAI,oBAAoB;EAAE,MAAM;EAAQ,OAAO,MAAM;CAAO,CAAC,CAAC;CAK1F,MAAM,QADa,MAAM,WAAW,IAAI,MAAM,KAAK,KAAA,OACvB,OAAO,SAAS,IAAI,OAAO,SAAe,OAAO,EAAE,IAAI,KAAA;CAEnF,IAAI,OAAO,WAAW,GAAG;EACvB,UAAU,MAAM,sDAAmD;GAAA,YAAA;GAAA,GAAA;GAAA,GAAA;GAAA,GAAA;GAAA,GAAA,CAAA,QAAA,sDAAA;EAAA,CAAC;EACpE,OAAO;GACL,IAAI,KAAK;GACT,MAAM,KAAK,QAAQ;GACnB,cAAc;GACd,WAAW,OAAO,gBAAqB,IAAI;EAC7C;CACF;CAEA,MAAM,QAAQ,OAAO;CAErB,OAAO;EACL,IAAI,MAAM;EACV,MAAM,MAAM;EACZ,cAAc,OAAO,iBAAuB,KAAK,CAAC,CAAC,KACjD,OAAO,KAAK,MAAM,EAAE,IAAI,GACxB,OAAO,SAAS,6BAA6B,OAAO,QAAQ,wBAAwB,CAAC,CACvF;EACA,WAAW,OAAO,OAAO,gBAAqB,IAAI,IAAI,OAAO,QAAQ,qBAAqB;CAC5F;AACF,CAAC,CACH,GACA,UAAU,aACZ"}
@@ -0,0 +1,17 @@
1
+ import { F as GetCurrentDate } from "./chunk-operations.mjs";
2
+ import { Operation } from "@dxos/compute";
3
+ import * as Effect from "effect/Effect";
4
+ import * as Clock from "effect/Clock";
5
+ //#region src/skills/alarm/operations/get-current-date.ts
6
+ /**
7
+ * Reports the current time from the ambient Effect clock as an ISO-8601 string, so it stays
8
+ * consistent with alarm scheduling (and honors a TestClock under tests).
9
+ */
10
+ var get_current_date_default = GetCurrentDate.pipe(Operation.withHandler(Effect.fn(function* () {
11
+ const now = yield* Clock.currentTimeMillis;
12
+ return new Date(now).toISOString();
13
+ })));
14
+ //#endregion
15
+ export { get_current_date_default as default };
16
+
17
+ //# sourceMappingURL=chunk-get-current-date.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk-get-current-date.mjs","names":[],"sources":["../../src/skills/alarm/operations/get-current-date.ts"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Clock from 'effect/Clock';\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/compute';\n\nimport { GetCurrentDate } from './definitions';\n\n/**\n * Reports the current time from the ambient Effect clock as an ISO-8601 string, so it stays\n * consistent with alarm scheduling (and honors a TestClock under tests).\n */\nexport default GetCurrentDate.pipe(\n Operation.withHandler(\n Effect.fn(function* () {\n const now = yield* Clock.currentTimeMillis;\n return new Date(now).toISOString();\n }),\n ),\n);\n"],"mappings":";;;;;;;;;AAeA,IAAA,2BAAe,eAAe,KAC5B,UAAU,YACR,OAAO,GAAG,aAAa;CACrB,MAAM,MAAM,OAAO,MAAM;CACzB,OAAO,IAAI,KAAK,GAAG,CAAC,CAAC,YAAY;AACnC,CAAC,CACH,CACF"}
@@ -0,0 +1,13 @@
1
+ import { v as Load } from "./chunk-operations.mjs";
2
+ import { Operation } from "@dxos/compute";
3
+ import { Database, Entity } from "@dxos/echo";
4
+ import * as Effect from "effect/Effect";
5
+ import * as Array from "effect/Array";
6
+ //#region src/skills/database/operations/load.ts
7
+ var load_default = Load.pipe(Operation.withHandler(Effect.fn(function* ({ refs }) {
8
+ return yield* Effect.forEach(refs, Database.load).pipe(Effect.map(Array.map(Entity.toJSON)));
9
+ })));
10
+ //#endregion
11
+ export { load_default as default };
12
+
13
+ //# sourceMappingURL=chunk-load.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk-load.mjs","names":[],"sources":["../../src/skills/database/operations/load.ts"],"sourcesContent":["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Array from 'effect/Array';\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/compute';\nimport { Database, Entity } from '@dxos/echo';\n\nimport { Load } from './definitions';\n\nexport default Load.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ refs }) {\n return yield* Effect.forEach(refs, Database.load).pipe(Effect.map(Array.map(Entity.toJSON)));\n }),\n ),\n);\n"],"mappings":";;;;;;AAYA,IAAA,eAAe,KAAK,KAClB,UAAU,YACR,OAAO,GAAG,WAAW,EAAE,QAAQ;CAC7B,OAAO,OAAO,OAAO,QAAQ,MAAM,SAAS,IAAI,CAAC,CAAC,KAAK,OAAO,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,CAAC;AAC7F,CAAC,CACH,CACF"}
@@ -0,0 +1,42 @@
1
+ import { y as ObjectCreate } from "./chunk-operations.mjs";
2
+ import { Operation } from "@dxos/compute";
3
+ import { deepMapValues } from "@dxos/util";
4
+ import { Database, Entity, Filter, Obj, Query, Scope, Type } from "@dxos/echo";
5
+ import * as Effect from "effect/Effect";
6
+ import { invariant } from "@dxos/invariant";
7
+ import { CollectionModel } from "@dxos/app-toolkit/types";
8
+ import { EncodedReference } from "@dxos/echo-protocol";
9
+ //#region src/skills/database/operations/object-create.ts
10
+ var __dxlog_file = "/__w/dxos/dxos/packages/core/compute/assistant-toolkit/src/skills/database/operations/object-create.ts";
11
+ var object_create_default = ObjectCreate.pipe(Operation.withHandler(Effect.fn(function* ({ typename, properties, attach }) {
12
+ const { db } = yield* Database.Service;
13
+ const foundSchema = (yield* Database.query(Query.select(Filter.type(Type.Type)).from(Scope.space(), Scope.registry())).run).find((t) => Type.getTypename(t) === typename);
14
+ invariant(foundSchema, `Schema not found: ${typename}`, {
15
+ "~LogMeta": "~LogMeta",
16
+ F: __dxlog_file,
17
+ L: 25,
18
+ S: this,
19
+ A: ["foundSchema", "`Schema not found: ${typename}`"]
20
+ });
21
+ invariant(Type.isObject(foundSchema), "Schema is not an object schema", {
22
+ "~LogMeta": "~LogMeta",
23
+ F: __dxlog_file,
24
+ L: 26,
25
+ S: this,
26
+ A: ["Type.isObject(foundSchema)", "'Schema is not an object schema'"]
27
+ });
28
+ const schema = foundSchema;
29
+ const object = db.add(Obj.make(schema, deepMapValues(properties, (value, recurse) => {
30
+ if (EncodedReference.isEncodedReference(value)) return db.makeRef(EncodedReference.toURI(value));
31
+ return recurse(value);
32
+ })));
33
+ if (attach) {
34
+ yield* CollectionModel.add({ object }).pipe(Effect.catchTag("EntityNotFoundError", () => Effect.void));
35
+ yield* Database.flush();
36
+ }
37
+ return Entity.toJSON(object);
38
+ })));
39
+ //#endregion
40
+ export { object_create_default as default };
41
+
42
+ //# sourceMappingURL=chunk-object-create.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk-object-create.mjs","names":[],"sources":["../../src/skills/database/operations/object-create.ts"],"sourcesContent":["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\n// Narrow subpath: the app-toolkit barrel drags `@dxos/client` (→ protobufjs), which the workerd\n// bundle guard (env-tests) forbids for assistant-toolkit.\nimport { CollectionModel } from '@dxos/app-toolkit/types';\nimport { Operation } from '@dxos/compute';\nimport { Database, Entity, Filter, Obj, Query, Scope, Type } from '@dxos/echo';\nimport { EncodedReference } from '@dxos/echo-protocol';\nimport { invariant } from '@dxos/invariant';\nimport { deepMapValues } from '@dxos/util';\n\nimport { ObjectCreate } from './definitions';\n\nexport default ObjectCreate.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ typename, properties, attach }) {\n const { db } = yield* Database.Service;\n const types = yield* Database.query(Query.select(Filter.type(Type.Type)).from(Scope.space(), Scope.registry()))\n .run;\n const foundSchema = types.find((t) => Type.getTypename(t) === typename);\n invariant(foundSchema, `Schema not found: ${typename}`);\n invariant(Type.isObject(foundSchema), 'Schema is not an object schema');\n const schema = foundSchema;\n\n const object = db.add(\n Obj.make(\n schema,\n deepMapValues(properties, (value, recurse) => {\n if (EncodedReference.isEncodedReference(value)) {\n return db.makeRef(EncodedReference.toURI(value));\n }\n return recurse(value);\n }),\n ),\n );\n\n if (attach) {\n // Same best-effort attach as `markdown.create`: the object is already persisted, so swallow\n // only the transient race where concurrent agents materialize the root collection.\n yield* CollectionModel.add({ object }).pipe(Effect.catchTag('EntityNotFoundError', () => Effect.void));\n yield* Database.flush();\n }\n\n return Entity.toJSON(object);\n }),\n ),\n);\n"],"mappings":";;;;;;;;;;AAiBA,IAAA,wBAAe,aAAa,KAC1B,UAAU,YACR,OAAO,GAAG,WAAW,EAAE,UAAU,YAAY,UAAU;CACrD,MAAM,EAAE,OAAO,OAAO,SAAS;CAG/B,MAAM,eAAc,OAFC,SAAS,MAAM,MAAM,OAAO,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,CAAC,CAAA,CAC3G,IAAA,CACuB,MAAM,MAAM,KAAK,YAAY,CAAC,MAAM,QAAQ;CACtE,UAAU,aAAa,qBAAqB,YAAS;EAAA,YAAA;EAAA,GAAA;EAAA,GAAA;EAAA,GAAA;EAAA,GAAA,CAAA,eAAA,iCAAA;CAAA,CAAC;CACtD,UAAU,KAAK,SAAS,WAAW,GAAG,kCAA+B;EAAA,YAAA;EAAA,GAAA;EAAA,GAAA;EAAA,GAAA;EAAA,GAAA,CAAA,8BAAA,kCAAA;CAAA,CAAC;CACtE,MAAM,SAAS;CAEf,MAAM,SAAS,GAAG,IAChB,IAAI,KACF,QACA,cAAc,aAAa,OAAO,YAAY;EAC5C,IAAI,iBAAiB,mBAAmB,KAAK,GAC3C,OAAO,GAAG,QAAQ,iBAAiB,MAAM,KAAK,CAAC;EAEjD,OAAO,QAAQ,KAAK;CACtB,CAAC,CACH,CACF;CAEA,IAAI,QAAQ;EAGV,OAAO,gBAAgB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,SAAS,6BAA6B,OAAO,IAAI,CAAC;EACrG,OAAO,SAAS,MAAM;CACxB;CAEA,OAAO,OAAO,OAAO,MAAM;AAC7B,CAAC,CACH,CACF"}
@@ -0,0 +1,14 @@
1
+ import { b as ObjectDelete } from "./chunk-operations.mjs";
2
+ import { Operation } from "@dxos/compute";
3
+ import { Database } from "@dxos/echo";
4
+ import * as Effect from "effect/Effect";
5
+ //#region src/skills/database/operations/object-delete.ts
6
+ var object_delete_default = ObjectDelete.pipe(Operation.withHandler(Effect.fn(function* ({ obj }) {
7
+ const { db } = yield* Database.Service;
8
+ const object = yield* Database.load(obj);
9
+ db.remove(object);
10
+ })));
11
+ //#endregion
12
+ export { object_delete_default as default };
13
+
14
+ //# sourceMappingURL=chunk-object-delete.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk-object-delete.mjs","names":[],"sources":["../../src/skills/database/operations/object-delete.ts"],"sourcesContent":["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/compute';\nimport { Database } from '@dxos/echo';\n\nimport { ObjectDelete } from './definitions';\n\nexport default ObjectDelete.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ obj }) {\n const { db } = yield* Database.Service;\n const object = yield* Database.load(obj);\n db.remove(object);\n }),\n ),\n);\n"],"mappings":";;;;;AAWA,IAAA,wBAAe,aAAa,KAC1B,UAAU,YACR,OAAO,GAAG,WAAW,EAAE,OAAO;CAC5B,MAAM,EAAE,OAAO,OAAO,SAAS;CAC/B,MAAM,SAAS,OAAO,SAAS,KAAK,GAAG;CACvC,GAAG,OAAO,MAAM;AAClB,CAAC,CACH,CACF"}
@@ -0,0 +1,19 @@
1
+ import { x as ObjectUpdate } from "./chunk-operations.mjs";
2
+ import { Operation } from "@dxos/compute";
3
+ import { Database, Entity } from "@dxos/echo";
4
+ import * as Effect from "effect/Effect";
5
+ import { EncodedReference } from "@dxos/echo-protocol";
6
+ //#region src/skills/database/operations/object-update.ts
7
+ var object_update_default = ObjectUpdate.pipe(Operation.withHandler(Effect.fn(function* ({ obj, properties }) {
8
+ const { db } = yield* Database.Service;
9
+ const object = yield* Database.load(obj);
10
+ Entity.update(object, (obj) => {
11
+ for (const [key, value] of Object.entries(properties)) if (EncodedReference.isEncodedReference(value)) obj[key] = db.makeRef(EncodedReference.toURI(value));
12
+ else obj[key] = value;
13
+ });
14
+ return Entity.toJSON(object);
15
+ })));
16
+ //#endregion
17
+ export { object_update_default as default };
18
+
19
+ //# sourceMappingURL=chunk-object-update.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk-object-update.mjs","names":[],"sources":["../../src/skills/database/operations/object-update.ts"],"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';\nimport { EncodedReference } from '@dxos/echo-protocol';\n\nimport { ObjectUpdate } from './definitions';\n\nexport default ObjectUpdate.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ obj, properties }) {\n const { db } = yield* Database.Service;\n const object = yield* Database.load(obj);\n Entity.update(object as Entity.Any, (obj) => {\n for (const [key, value] of Object.entries(properties)) {\n if (EncodedReference.isEncodedReference(value)) {\n obj[key] = db.makeRef(EncodedReference.toURI(value));\n } else {\n obj[key] = value;\n }\n }\n });\n return Entity.toJSON(object);\n }),\n ),\n);\n"],"mappings":";;;;;;AAYA,IAAA,wBAAe,aAAa,KAC1B,UAAU,YACR,OAAO,GAAG,WAAW,EAAE,KAAK,cAAc;CACxC,MAAM,EAAE,OAAO,OAAO,SAAS;CAC/B,MAAM,SAAS,OAAO,SAAS,KAAK,GAAG;CACvC,OAAO,OAAO,SAAuB,QAAQ;EAC3C,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,UAAU,GAClD,IAAI,iBAAiB,mBAAmB,KAAK,GAC3C,IAAI,OAAO,GAAG,QAAQ,iBAAiB,MAAM,KAAK,CAAC;OAEnD,IAAI,OAAO;CAGjB,CAAC;CACD,OAAO,OAAO,OAAO,MAAM;AAC7B,CAAC,CACH,CACF"}