@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.
- package/dist/lib/chunk-Chat.mjs +144 -0
- package/dist/lib/chunk-Chat.mjs.map +1 -0
- package/dist/lib/chunk-Memory.mjs +19 -0
- package/dist/lib/chunk-Memory.mjs.map +1 -0
- package/dist/lib/{neutral/agent-rules-KWCBKJ5W.mjs → chunk-agent-rules.mjs} +8 -15
- package/dist/lib/chunk-agent-rules.mjs.map +1 -0
- package/dist/lib/chunk-agent.mjs +45 -0
- package/dist/lib/chunk-agent.mjs.map +1 -0
- package/dist/lib/chunk-artifact-add.mjs +31 -0
- package/dist/lib/chunk-artifact-add.mjs.map +1 -0
- package/dist/lib/chunk-artifact-list.mjs +23 -0
- package/dist/lib/chunk-artifact-list.mjs.map +1 -0
- package/dist/lib/chunk-context-add.mjs +16 -0
- package/dist/lib/chunk-context-add.mjs.map +1 -0
- package/dist/lib/chunk-context-remove.mjs +16 -0
- package/dist/lib/chunk-context-remove.mjs.map +1 -0
- package/dist/lib/chunk-create-agent.mjs +23 -0
- package/dist/lib/chunk-create-agent.mjs.map +1 -0
- package/dist/lib/chunk-definitions.mjs +52 -0
- package/dist/lib/chunk-definitions.mjs.map +1 -0
- package/dist/lib/chunk-definitions2.mjs +56 -0
- package/dist/lib/chunk-definitions2.mjs.map +1 -0
- package/dist/lib/chunk-definitions3.mjs +24 -0
- package/dist/lib/chunk-definitions3.mjs.map +1 -0
- package/dist/lib/chunk-delete.mjs +14 -0
- package/dist/lib/chunk-delete.mjs.map +1 -0
- package/dist/lib/chunk-enable-skills.mjs +39 -0
- package/dist/lib/chunk-enable-skills.mjs.map +1 -0
- package/dist/lib/chunk-fetch-messages.mjs +113 -0
- package/dist/lib/chunk-fetch-messages.mjs.map +1 -0
- package/dist/lib/chunk-fetch.mjs +20 -0
- package/dist/lib/chunk-fetch.mjs.map +1 -0
- package/dist/lib/chunk-get-context.mjs +55 -0
- package/dist/lib/chunk-get-context.mjs.map +1 -0
- package/dist/lib/chunk-get-current-date.mjs +17 -0
- package/dist/lib/chunk-get-current-date.mjs.map +1 -0
- package/dist/lib/chunk-load.mjs +13 -0
- package/dist/lib/chunk-load.mjs.map +1 -0
- package/dist/lib/chunk-object-create.mjs +42 -0
- package/dist/lib/chunk-object-create.mjs.map +1 -0
- package/dist/lib/chunk-object-delete.mjs +14 -0
- package/dist/lib/chunk-object-delete.mjs.map +1 -0
- package/dist/lib/chunk-object-update.mjs +19 -0
- package/dist/lib/chunk-object-update.mjs.map +1 -0
- package/dist/lib/chunk-operations.mjs +714 -0
- package/dist/lib/chunk-operations.mjs.map +1 -0
- package/dist/lib/chunk-plan-reminder.mjs +80 -0
- package/dist/lib/chunk-plan-reminder.mjs.map +1 -0
- package/dist/lib/chunk-query-skills.mjs +12 -0
- package/dist/lib/chunk-query-skills.mjs.map +1 -0
- package/dist/lib/chunk-query.mjs +36 -0
- package/dist/lib/chunk-query.mjs.map +1 -0
- package/dist/lib/chunk-query2.mjs +18 -0
- package/dist/lib/chunk-query2.mjs.map +1 -0
- package/dist/lib/chunk-relation-create.mjs +41 -0
- package/dist/lib/chunk-relation-create.mjs.map +1 -0
- package/dist/lib/chunk-relation-delete.mjs +14 -0
- package/dist/lib/chunk-relation-delete.mjs.map +1 -0
- package/dist/lib/chunk-relay.mjs +76 -0
- package/dist/lib/chunk-relay.mjs.map +1 -0
- package/dist/lib/chunk-rolldown-runtime.mjs +13 -0
- package/dist/lib/chunk-run-instructions.mjs +145 -0
- package/dist/lib/chunk-run-instructions.mjs.map +1 -0
- package/dist/lib/chunk-save.mjs +17 -0
- package/dist/lib/chunk-save.mjs.map +1 -0
- package/dist/lib/chunk-schema-add.mjs +19 -0
- package/dist/lib/chunk-schema-add.mjs.map +1 -0
- package/dist/lib/chunk-schema-list.mjs +29 -0
- package/dist/lib/chunk-schema-list.mjs.map +1 -0
- package/dist/lib/chunk-set-alarm.mjs +55 -0
- package/dist/lib/chunk-set-alarm.mjs.map +1 -0
- package/dist/lib/chunk-sync-automation.mjs +130 -0
- package/dist/lib/chunk-sync-automation.mjs.map +1 -0
- package/dist/lib/chunk-sync-issues.mjs +127 -0
- package/dist/lib/chunk-sync-issues.mjs.map +1 -0
- package/dist/lib/chunk-sync.mjs +91 -0
- package/dist/lib/chunk-sync.mjs.map +1 -0
- package/dist/lib/chunk-tag-add.mjs +14 -0
- package/dist/lib/chunk-tag-add.mjs.map +1 -0
- package/dist/lib/chunk-tag-remove.mjs +14 -0
- package/dist/lib/chunk-tag-remove.mjs.map +1 -0
- package/dist/lib/chunk-types.mjs +198 -0
- package/dist/lib/chunk-types.mjs.map +1 -0
- package/dist/lib/chunk-update-tasks.mjs +34 -0
- package/dist/lib/chunk-update-tasks.mjs.map +1 -0
- package/dist/lib/index.mjs +614 -0
- package/dist/lib/index.mjs.map +1 -0
- package/dist/lib/testing.mjs +102 -0
- package/dist/lib/testing.mjs.map +1 -0
- package/dist/types/src/skills/agent/operations/definitions.d.ts +16 -46
- package/dist/types/src/skills/agent/operations/definitions.d.ts.map +1 -1
- package/dist/types/src/skills/agent/operations/get-context.test.d.ts +2 -0
- package/dist/types/src/skills/agent/operations/get-context.test.d.ts.map +1 -0
- package/dist/types/src/skills/agent/operations/index.d.ts.map +1 -1
- package/dist/types/src/skills/agent/operations/relay.d.ts +11 -0
- package/dist/types/src/skills/agent/operations/relay.d.ts.map +1 -0
- package/dist/types/src/skills/agent/operations/relay.test.d.ts +2 -0
- package/dist/types/src/skills/agent/operations/relay.test.d.ts.map +1 -0
- package/dist/types/src/skills/agent/skill.d.ts.map +1 -1
- package/dist/types/src/skills/agent-wizard/operations/definitions.d.ts +4 -1
- package/dist/types/src/skills/agent-wizard/operations/definitions.d.ts.map +1 -1
- package/dist/types/src/skills/agent-wizard/operations/sync-automation.d.ts +26 -0
- package/dist/types/src/skills/agent-wizard/operations/sync-automation.d.ts.map +1 -0
- package/dist/types/src/skills/agent-wizard/operations/sync-automation.test.d.ts +2 -0
- package/dist/types/src/skills/agent-wizard/operations/sync-automation.test.d.ts.map +1 -0
- package/dist/types/src/skills/agent-wizard/skill.d.ts.map +1 -1
- package/dist/types/src/skills/database/operations/context-add.test.d.ts +2 -0
- package/dist/types/src/skills/database/operations/context-add.test.d.ts.map +1 -0
- package/dist/types/src/skills/database/operations/context-remove.test.d.ts +2 -0
- package/dist/types/src/skills/database/operations/context-remove.test.d.ts.map +1 -0
- package/dist/types/src/skills/database/operations/definitions.d.ts +7 -2
- package/dist/types/src/skills/database/operations/definitions.d.ts.map +1 -1
- package/dist/types/src/skills/database/operations/load.test.d.ts +2 -0
- package/dist/types/src/skills/database/operations/load.test.d.ts.map +1 -0
- package/dist/types/src/skills/database/operations/object-create.d.ts +4 -1
- package/dist/types/src/skills/database/operations/object-create.d.ts.map +1 -1
- package/dist/types/src/skills/database/operations/object-create.test.d.ts +2 -0
- package/dist/types/src/skills/database/operations/object-create.test.d.ts.map +1 -0
- package/dist/types/src/skills/database/operations/object-delete.test.d.ts +2 -0
- package/dist/types/src/skills/database/operations/object-delete.test.d.ts.map +1 -0
- package/dist/types/src/skills/database/operations/object-update.test.d.ts +2 -0
- package/dist/types/src/skills/database/operations/object-update.test.d.ts.map +1 -0
- package/dist/types/src/skills/database/operations/query.test.d.ts +2 -0
- package/dist/types/src/skills/database/operations/query.test.d.ts.map +1 -0
- package/dist/types/src/skills/database/operations/relation-create.test.d.ts +2 -0
- package/dist/types/src/skills/database/operations/relation-create.test.d.ts.map +1 -0
- package/dist/types/src/skills/database/operations/schema-add.d.ts +3 -1
- package/dist/types/src/skills/database/operations/schema-add.test.d.ts +2 -0
- package/dist/types/src/skills/database/operations/schema-add.test.d.ts.map +1 -0
- package/dist/types/src/skills/database/operations/schema-list.test.d.ts +2 -0
- package/dist/types/src/skills/database/operations/schema-list.test.d.ts.map +1 -0
- package/dist/types/src/skills/database/operations/tag-add.test.d.ts +2 -0
- package/dist/types/src/skills/database/operations/tag-add.test.d.ts.map +1 -0
- package/dist/types/src/skills/database/operations/tag-remove.test.d.ts +2 -0
- package/dist/types/src/skills/database/operations/tag-remove.test.d.ts.map +1 -0
- package/dist/types/src/skills/delegation/operations/delegate-task.d.ts +6 -5
- package/dist/types/src/skills/delegation/operations/delegate-task.d.ts.map +1 -1
- package/dist/types/src/skills/index.d.ts +1 -0
- package/dist/types/src/skills/index.d.ts.map +1 -1
- package/dist/types/src/skills/linear/operations/sync-issues.d.ts.map +1 -1
- package/dist/types/src/skills/memory/operations/delete.test.d.ts +2 -0
- package/dist/types/src/skills/memory/operations/delete.test.d.ts.map +1 -0
- package/dist/types/src/skills/memory/operations/query.test.d.ts +2 -0
- package/dist/types/src/skills/memory/operations/query.test.d.ts.map +1 -0
- package/dist/types/src/skills/memory/operations/save.test.d.ts +2 -0
- package/dist/types/src/skills/memory/operations/save.test.d.ts.map +1 -0
- package/dist/types/src/skills/planning/operations/definitions.d.ts +1 -3
- package/dist/types/src/skills/planning/operations/definitions.d.ts.map +1 -1
- package/dist/types/src/skills/planning/operations/plan-reminder.d.ts +7 -6
- package/dist/types/src/skills/planning/operations/plan-reminder.d.ts.map +1 -1
- package/dist/types/src/skills/planning/operations/plan-reminder.test.d.ts +2 -0
- package/dist/types/src/skills/planning/operations/plan-reminder.test.d.ts.map +1 -0
- package/dist/types/src/skills/planning/operations/update-tasks.d.ts +3 -1
- package/dist/types/src/skills/planning/operations/update-tasks.d.ts.map +1 -1
- package/dist/types/src/skills/project/index.d.ts +3 -0
- package/dist/types/src/skills/project/index.d.ts.map +1 -0
- package/dist/types/src/skills/project/operations/artifact-add.d.ts +5 -0
- package/dist/types/src/skills/project/operations/artifact-add.d.ts.map +1 -0
- package/dist/types/src/skills/project/operations/artifact-list.d.ts +5 -0
- package/dist/types/src/skills/project/operations/artifact-list.d.ts.map +1 -0
- package/dist/types/src/skills/project/operations/definitions.d.ts +23 -0
- package/dist/types/src/skills/project/operations/definitions.d.ts.map +1 -0
- package/dist/types/src/skills/project/operations/index.d.ts +4 -0
- package/dist/types/src/skills/project/operations/index.d.ts.map +1 -0
- package/dist/types/src/skills/project/skill.d.ts +4 -0
- package/dist/types/src/skills/project/skill.d.ts.map +1 -0
- package/dist/types/src/skills/project/skill.test.d.ts.map +1 -0
- package/dist/types/src/skills/skill-manager/skill.d.ts.map +1 -1
- package/dist/types/src/supervisor/delegation-strategy.d.ts +5 -5
- package/dist/types/src/supervisor/delegation-strategy.d.ts.map +1 -1
- package/dist/types/src/supervisor/delegation-strategy.test.d.ts +2 -0
- package/dist/types/src/supervisor/delegation-strategy.test.d.ts.map +1 -0
- package/dist/types/src/sync/sync.test.d.ts +2 -0
- package/dist/types/src/sync/sync.test.d.ts.map +1 -0
- package/dist/types/src/testing/index.d.ts +1 -0
- package/dist/types/src/testing/index.d.ts.map +1 -1
- package/dist/types/src/testing/operations.d.ts +7 -0
- package/dist/types/src/testing/operations.d.ts.map +1 -0
- package/dist/types/src/types/Agent.d.ts +28 -31
- package/dist/types/src/types/Agent.d.ts.map +1 -1
- package/dist/types/src/types/Chat.d.ts +28 -14
- package/dist/types/src/types/Chat.d.ts.map +1 -1
- package/dist/types/src/types/Chat.test.d.ts +2 -0
- package/dist/types/src/types/Chat.test.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +1 -2
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +30 -29
- package/src/operations/run-instructions.test.ts +26 -34
- package/src/operations/skill-resolution.test.ts +6 -1
- package/src/skills/agent/operations/definitions.ts +18 -62
- package/src/skills/agent/operations/get-context.test.ts +81 -0
- package/src/skills/agent/operations/get-context.ts +9 -36
- package/src/skills/agent/operations/index.ts +1 -3
- package/src/skills/agent/operations/relay.test.ts +63 -0
- package/src/skills/agent/operations/relay.ts +124 -0
- package/src/skills/agent/skill.ts +3 -15
- package/src/skills/agent-wizard/operations/create-agent.ts +3 -3
- package/src/skills/agent-wizard/operations/definitions.ts +19 -4
- package/src/skills/agent-wizard/operations/index.ts +1 -1
- package/src/skills/agent-wizard/operations/sync-automation.test.ts +103 -0
- package/src/skills/agent-wizard/operations/sync-automation.ts +205 -0
- package/src/skills/agent-wizard/skill.ts +9 -10
- package/src/skills/alarm/skill.test.ts +2 -2
- package/src/skills/browser/skill.test.ts +4 -4
- package/src/skills/database/operations/context-add.test.ts +46 -0
- package/src/skills/database/operations/context-remove.test.ts +46 -0
- package/src/skills/database/operations/definitions.ts +23 -7
- package/src/skills/database/operations/load.test.ts +38 -0
- package/src/skills/database/operations/object-create.test.ts +116 -0
- package/src/skills/database/operations/object-create.ts +13 -2
- package/src/skills/database/operations/object-delete.test.ts +37 -0
- package/src/skills/database/operations/object-update.test.ts +39 -0
- package/src/skills/database/operations/query.test.ts +128 -0
- package/src/skills/database/operations/relation-create.test.ts +46 -0
- package/src/skills/database/operations/schema-add.test.ts +79 -0
- package/src/skills/database/operations/schema-list.test.ts +42 -0
- package/src/skills/database/operations/tag-add.test.ts +41 -0
- package/src/skills/database/operations/tag-remove.test.ts +43 -0
- package/src/skills/delegation/operations/delegate-task.test.ts +51 -36
- package/src/skills/delegation/operations/delegate-task.ts +31 -48
- package/src/skills/discord/operations/fetch-messages.test.ts +2 -2
- package/src/skills/github/operations/fetch-prs.ts +1 -1
- package/src/skills/index.ts +1 -0
- package/src/skills/linear/operations/linear.test.ts +1 -1
- package/src/skills/linear/operations/sync-issues.ts +6 -23
- package/src/skills/memory/operations/delete.test.ts +37 -0
- package/src/skills/memory/operations/query.test.ts +76 -0
- package/src/skills/memory/operations/save.test.ts +43 -0
- package/src/skills/planning/operations/definitions.ts +9 -6
- package/src/skills/planning/operations/plan-reminder.test.ts +123 -0
- package/src/skills/planning/operations/plan-reminder.ts +49 -31
- package/src/skills/planning/operations/update-tasks.md +23 -22
- package/src/skills/planning/operations/update-tasks.test.ts +31 -17
- package/src/skills/planning/operations/update-tasks.ts +17 -25
- package/src/skills/project/index.ts +6 -0
- package/src/skills/project/operations/artifact-add.ts +47 -0
- package/src/skills/project/operations/artifact-list.ts +41 -0
- package/src/skills/project/operations/definitions.ts +63 -0
- package/src/skills/project/operations/index.ts +12 -0
- package/src/skills/project/skill.test.ts +78 -0
- package/src/skills/project/skill.ts +42 -0
- package/src/skills/skill-manager/operations/definitions.ts +1 -1
- package/src/skills/skill-manager/skill.test.ts +1 -1
- package/src/skills/skill-manager/skill.ts +7 -5
- package/src/skills/websearch/skill.test.ts +2 -2
- package/src/supervisor/delegation-strategy.test.ts +129 -0
- package/src/supervisor/delegation-strategy.ts +92 -56
- package/src/sync/sync.test.ts +95 -0
- package/src/sync/sync.ts +5 -3
- package/src/testing/index.ts +1 -0
- package/src/testing/operations.ts +65 -0
- package/src/types/Agent.test.ts +36 -66
- package/src/types/Agent.ts +108 -137
- package/src/types/Chat.test.ts +234 -0
- package/src/types/Chat.ts +80 -26
- package/src/types/index.ts +1 -2
- package/dist/lib/neutral/add-artifact-5JNUYLCA.mjs +0 -24
- package/dist/lib/neutral/add-artifact-5JNUYLCA.mjs.map +0 -7
- package/dist/lib/neutral/agent-BFAYIBJI.mjs +0 -65
- package/dist/lib/neutral/agent-BFAYIBJI.mjs.map +0 -7
- package/dist/lib/neutral/agent-rules-KWCBKJ5W.mjs.map +0 -7
- package/dist/lib/neutral/chunk-3KA66YBF.mjs +0 -62
- package/dist/lib/neutral/chunk-3KA66YBF.mjs.map +0 -7
- package/dist/lib/neutral/chunk-6SGNFL6I.mjs +0 -85
- package/dist/lib/neutral/chunk-6SGNFL6I.mjs.map +0 -7
- package/dist/lib/neutral/chunk-BDTGFPM7.mjs +0 -113
- package/dist/lib/neutral/chunk-BDTGFPM7.mjs.map +0 -7
- package/dist/lib/neutral/chunk-EPQCDGIV.mjs +0 -27
- package/dist/lib/neutral/chunk-EPQCDGIV.mjs.map +0 -7
- package/dist/lib/neutral/chunk-H4W22FFJ.mjs +0 -232
- package/dist/lib/neutral/chunk-H4W22FFJ.mjs.map +0 -7
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs +0 -10
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +0 -7
- package/dist/lib/neutral/chunk-JBTXZQ5G.mjs +0 -60
- package/dist/lib/neutral/chunk-JBTXZQ5G.mjs.map +0 -7
- package/dist/lib/neutral/chunk-JKOOA5OS.mjs +0 -97
- package/dist/lib/neutral/chunk-JKOOA5OS.mjs.map +0 -7
- package/dist/lib/neutral/chunk-JTEBE7KA.mjs +0 -66
- package/dist/lib/neutral/chunk-JTEBE7KA.mjs.map +0 -7
- package/dist/lib/neutral/chunk-KLFXJ2Z3.mjs +0 -36
- package/dist/lib/neutral/chunk-KLFXJ2Z3.mjs.map +0 -7
- package/dist/lib/neutral/chunk-LBA5UOLF.mjs +0 -87
- package/dist/lib/neutral/chunk-LBA5UOLF.mjs.map +0 -7
- package/dist/lib/neutral/chunk-LL3MOQUZ.mjs +0 -120
- package/dist/lib/neutral/chunk-LL3MOQUZ.mjs.map +0 -7
- package/dist/lib/neutral/chunk-MFVIGJBW.mjs +0 -68
- package/dist/lib/neutral/chunk-MFVIGJBW.mjs.map +0 -7
- package/dist/lib/neutral/chunk-PBARVBNJ.mjs +0 -86
- package/dist/lib/neutral/chunk-PBARVBNJ.mjs.map +0 -7
- package/dist/lib/neutral/chunk-VJ5QBYM5.mjs +0 -61
- package/dist/lib/neutral/chunk-VJ5QBYM5.mjs.map +0 -7
- package/dist/lib/neutral/chunk-YQSQRSXG.mjs +0 -367
- package/dist/lib/neutral/chunk-YQSQRSXG.mjs.map +0 -7
- package/dist/lib/neutral/chunk-Z2HFOZXK.mjs +0 -191
- package/dist/lib/neutral/chunk-Z2HFOZXK.mjs.map +0 -7
- package/dist/lib/neutral/context-add-DZTPB3FK.mjs +0 -22
- package/dist/lib/neutral/context-add-DZTPB3FK.mjs.map +0 -7
- package/dist/lib/neutral/context-remove-XSBOM4VJ.mjs +0 -22
- package/dist/lib/neutral/context-remove-XSBOM4VJ.mjs.map +0 -7
- package/dist/lib/neutral/create-agent-5WTOFIEK.mjs +0 -35
- package/dist/lib/neutral/create-agent-5WTOFIEK.mjs.map +0 -7
- package/dist/lib/neutral/definitions-VRR5OGXI.mjs +0 -17
- package/dist/lib/neutral/definitions-VRR5OGXI.mjs.map +0 -7
- package/dist/lib/neutral/delegate-task-UX64NK4M.mjs +0 -13
- package/dist/lib/neutral/delegate-task-UX64NK4M.mjs.map +0 -7
- package/dist/lib/neutral/delete-IU7HPU3K.mjs +0 -19
- package/dist/lib/neutral/delete-IU7HPU3K.mjs.map +0 -7
- package/dist/lib/neutral/enable-skills-FHEJXQVB.mjs +0 -47
- package/dist/lib/neutral/enable-skills-FHEJXQVB.mjs.map +0 -7
- package/dist/lib/neutral/fetch-5LY25EBR.mjs +0 -24
- package/dist/lib/neutral/fetch-5LY25EBR.mjs.map +0 -7
- package/dist/lib/neutral/fetch-messages-CQMDI36G.mjs +0 -139
- package/dist/lib/neutral/fetch-messages-CQMDI36G.mjs.map +0 -7
- package/dist/lib/neutral/get-context-Q4YY6DRV.mjs +0 -77
- package/dist/lib/neutral/get-context-Q4YY6DRV.mjs.map +0 -7
- package/dist/lib/neutral/get-current-date-JR5F7ZS3.mjs +0 -17
- package/dist/lib/neutral/get-current-date-JR5F7ZS3.mjs.map +0 -7
- package/dist/lib/neutral/index.mjs +0 -875
- package/dist/lib/neutral/index.mjs.map +0 -7
- package/dist/lib/neutral/load-S6HC5TGX.mjs +0 -17
- package/dist/lib/neutral/load-S6HC5TGX.mjs.map +0 -7
- package/dist/lib/neutral/meta.json +0 -1
- package/dist/lib/neutral/object-create-PVDQ62CG.mjs +0 -32
- package/dist/lib/neutral/object-create-PVDQ62CG.mjs.map +0 -7
- package/dist/lib/neutral/object-delete-3CSL6XI6.mjs +0 -18
- package/dist/lib/neutral/object-delete-3CSL6XI6.mjs.map +0 -7
- package/dist/lib/neutral/object-update-NIGMZINM.mjs +0 -28
- package/dist/lib/neutral/object-update-NIGMZINM.mjs.map +0 -7
- package/dist/lib/neutral/plan-reminder-N4X6JPBI.mjs +0 -88
- package/dist/lib/neutral/plan-reminder-N4X6JPBI.mjs.map +0 -7
- package/dist/lib/neutral/qualifier-5CIRZYX5.mjs +0 -91
- package/dist/lib/neutral/qualifier-5CIRZYX5.mjs.map +0 -7
- package/dist/lib/neutral/query-K4R7UHLU.mjs +0 -32
- package/dist/lib/neutral/query-K4R7UHLU.mjs.map +0 -7
- package/dist/lib/neutral/query-NCTCRYTD.mjs +0 -59
- package/dist/lib/neutral/query-NCTCRYTD.mjs.map +0 -7
- package/dist/lib/neutral/query-skills-7GQFSU4V.mjs +0 -17
- package/dist/lib/neutral/query-skills-7GQFSU4V.mjs.map +0 -7
- package/dist/lib/neutral/relation-create-QKXHTL7G.mjs +0 -34
- package/dist/lib/neutral/relation-create-QKXHTL7G.mjs.map +0 -7
- package/dist/lib/neutral/relation-delete-PDIWT2JX.mjs +0 -18
- package/dist/lib/neutral/relation-delete-PDIWT2JX.mjs.map +0 -7
- package/dist/lib/neutral/run-instructions-72ASH5EZ.mjs +0 -165
- package/dist/lib/neutral/run-instructions-72ASH5EZ.mjs.map +0 -7
- package/dist/lib/neutral/save-UYVRA4RS.mjs +0 -23
- package/dist/lib/neutral/save-UYVRA4RS.mjs.map +0 -7
- package/dist/lib/neutral/schema-add-5NOK2RWE.mjs +0 -25
- package/dist/lib/neutral/schema-add-5NOK2RWE.mjs.map +0 -7
- package/dist/lib/neutral/schema-list-BZUR5KMX.mjs +0 -37
- package/dist/lib/neutral/schema-list-BZUR5KMX.mjs.map +0 -7
- package/dist/lib/neutral/set-alarm-BD3NEYSU.mjs +0 -65
- package/dist/lib/neutral/set-alarm-BD3NEYSU.mjs.map +0 -7
- package/dist/lib/neutral/sync-issues-O76MCMD3.mjs +0 -166
- package/dist/lib/neutral/sync-issues-O76MCMD3.mjs.map +0 -7
- package/dist/lib/neutral/sync-triggers-YBTLPCUB.mjs +0 -138
- package/dist/lib/neutral/sync-triggers-YBTLPCUB.mjs.map +0 -7
- package/dist/lib/neutral/tag-add-L5WNOBYY.mjs +0 -18
- package/dist/lib/neutral/tag-add-L5WNOBYY.mjs.map +0 -7
- package/dist/lib/neutral/tag-remove-WV5RPE5W.mjs +0 -18
- package/dist/lib/neutral/tag-remove-WV5RPE5W.mjs.map +0 -7
- package/dist/lib/neutral/testing/index.mjs +0 -65
- package/dist/lib/neutral/testing/index.mjs.map +0 -7
- package/dist/lib/neutral/update-tasks-HX4ILWOU.mjs +0 -46
- package/dist/lib/neutral/update-tasks-HX4ILWOU.mjs.map +0 -7
- package/dist/types/src/skills/agent/operations/add-artifact.d.ts +0 -4
- package/dist/types/src/skills/agent/operations/add-artifact.d.ts.map +0 -1
- package/dist/types/src/skills/agent/operations/agent.d.ts +0 -4
- package/dist/types/src/skills/agent/operations/agent.d.ts.map +0 -1
- package/dist/types/src/skills/agent/operations/qualifier.d.ts +0 -5
- package/dist/types/src/skills/agent/operations/qualifier.d.ts.map +0 -1
- package/dist/types/src/skills/agent/skill.test.d.ts.map +0 -1
- package/dist/types/src/skills/agent-wizard/operations/sync-triggers.d.ts +0 -8
- package/dist/types/src/skills/agent-wizard/operations/sync-triggers.d.ts.map +0 -1
- package/dist/types/src/skills/database/skill.test.d.ts +0 -2
- package/dist/types/src/skills/database/skill.test.d.ts.map +0 -1
- package/dist/types/src/skills/memory/skill.test.d.ts +0 -2
- package/dist/types/src/skills/memory/skill.test.d.ts.map +0 -1
- package/dist/types/src/skills/planning/skill.test.d.ts +0 -2
- package/dist/types/src/skills/planning/skill.test.d.ts.map +0 -1
- package/dist/types/src/types/Plan.d.ts +0 -80
- package/dist/types/src/types/Plan.d.ts.map +0 -1
- package/src/operations/run-instructions.conversations.json +0 -1
- package/src/skills/agent/operations/add-artifact.ts +0 -20
- package/src/skills/agent/operations/agent.ts +0 -69
- package/src/skills/agent/operations/qualifier.ts +0 -97
- package/src/skills/agent/skill.conversations.json +0 -1
- package/src/skills/agent/skill.test.ts +0 -728
- package/src/skills/agent-wizard/operations/sync-triggers.ts +0 -169
- package/src/skills/database/skill.conversations.json +0 -1
- package/src/skills/database/skill.test.ts +0 -531
- package/src/skills/memory/skill.conversations.json +0 -1
- package/src/skills/memory/skill.test.ts +0 -138
- package/src/skills/planning/skill.conversations.json +0 -1
- package/src/skills/planning/skill.test.ts +0 -123
- package/src/types/Plan.ts +0 -123
- /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"}
|