@dxos/assistant-toolkit 0.9.1-staging.ee54ba693a → 0.11.0
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
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
PlanReminder
|
|
3
|
-
} from "./chunk-3KA66YBF.mjs";
|
|
4
|
-
import "./chunk-H4W22FFJ.mjs";
|
|
5
|
-
import {
|
|
6
|
-
Chat_exports,
|
|
7
|
-
Plan_exports
|
|
8
|
-
} from "./chunk-Z2HFOZXK.mjs";
|
|
9
|
-
import "./chunk-EPQCDGIV.mjs";
|
|
10
|
-
import "./chunk-J5LGTIGS.mjs";
|
|
11
|
-
|
|
12
|
-
// src/skills/planning/operations/plan-reminder.ts
|
|
13
|
-
import * as LanguageModel from "@effect/ai/LanguageModel";
|
|
14
|
-
import * as Prompt from "@effect/ai/Prompt";
|
|
15
|
-
import * as Effect from "effect/Effect";
|
|
16
|
-
import { AiPreprocessor, AiService } from "@dxos/ai";
|
|
17
|
-
import { Harness } from "@dxos/assistant";
|
|
18
|
-
import { Operation } from "@dxos/compute";
|
|
19
|
-
import { Database } from "@dxos/echo";
|
|
20
|
-
import { ContentBlock } from "@dxos/types";
|
|
21
|
-
import { trim } from "@dxos/util";
|
|
22
|
-
var plan_reminder_default = PlanReminder.pipe(Operation.withHandler(Effect.fnUntraced(function* () {
|
|
23
|
-
const chat = yield* Chat_exports.getFromContext.pipe(Effect.orElseSucceed(() => void 0));
|
|
24
|
-
if (!chat) {
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
if (!chat?.plan) {
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
const plan = yield* Database.load(chat.plan).pipe(Effect.orElseSucceed(() => void 0));
|
|
31
|
-
if (!plan || !Plan_exports.hasIncompleteTasks(plan)) {
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
const history = yield* Harness.history;
|
|
35
|
-
const prompt = Prompt.merge(yield* AiPreprocessor.preprocessPrompt(history, {
|
|
36
|
-
system: planCompletionCheckSystem
|
|
37
|
-
}), planCompletionCheckPrompt(plan));
|
|
38
|
-
const { text } = yield* Effect.scoped(LanguageModel.generateText({
|
|
39
|
-
prompt
|
|
40
|
-
}));
|
|
41
|
-
if (!parseContinueDecision(text)) {
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
yield* Harness.enqueueMessage({
|
|
45
|
-
content: [
|
|
46
|
-
ContentBlock.Text.make({
|
|
47
|
-
text: planContinueReminderPrompt(plan),
|
|
48
|
-
disposition: "synthetic"
|
|
49
|
-
})
|
|
50
|
-
]
|
|
51
|
-
});
|
|
52
|
-
}, Effect.provide(AiService.model("com.anthropic.model.claude-sonnet-4-6.default")))));
|
|
53
|
-
var planCompletionCheckSystem = trim`
|
|
54
|
-
You decide whether an agent should stop or continue working on its plan, given the conversation
|
|
55
|
-
so far and the agent's remaining plan tasks.
|
|
56
|
-
Reply with exactly one word: "stop" or "continue". Do not use tools. Do not add explanation.
|
|
57
|
-
`;
|
|
58
|
-
var planCompletionCheckPrompt = (plan) => trim`
|
|
59
|
-
The agent is about to finish, but its plan still has incomplete tasks:
|
|
60
|
-
|
|
61
|
-
<plan>
|
|
62
|
-
${Plan_exports.formatPlan(plan)}
|
|
63
|
-
</plan>
|
|
64
|
-
|
|
65
|
-
Should the agent STOP now (no more work needed) or CONTINUE working on the plan?
|
|
66
|
-
Reply with exactly one word: "stop" or "continue".
|
|
67
|
-
`;
|
|
68
|
-
var parseContinueDecision = (reply) => {
|
|
69
|
-
const normalized = reply.toLowerCase();
|
|
70
|
-
if (/\bcontinue\b/.test(normalized)) {
|
|
71
|
-
return true;
|
|
72
|
-
}
|
|
73
|
-
if (/\bstop\b/.test(normalized)) {
|
|
74
|
-
return false;
|
|
75
|
-
}
|
|
76
|
-
return true;
|
|
77
|
-
};
|
|
78
|
-
var planContinueReminderPrompt = (plan) => trim`
|
|
79
|
-
Your plan still has incomplete tasks — continue working before finishing:
|
|
80
|
-
|
|
81
|
-
<plan>
|
|
82
|
-
${Plan_exports.formatPlan(plan)}
|
|
83
|
-
</plan>
|
|
84
|
-
`;
|
|
85
|
-
export {
|
|
86
|
-
plan_reminder_default as default
|
|
87
|
-
};
|
|
88
|
-
//# sourceMappingURL=plan-reminder-N4X6JPBI.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/skills/planning/operations/plan-reminder.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as LanguageModel from '@effect/ai/LanguageModel';\nimport * as Prompt from '@effect/ai/Prompt';\nimport * as Effect from 'effect/Effect';\n\nimport { AiPreprocessor, AiService } from '@dxos/ai';\nimport { Harness } from '@dxos/assistant';\nimport { Operation } from '@dxos/compute';\nimport { Database } from '@dxos/echo';\nimport { ContentBlock } from '@dxos/types';\nimport { trim } from '@dxos/util';\n\nimport { Chat, Plan } from '../../../types';\nimport { PlanReminder } from './definitions';\n\n/**\n * End-request hook for the planning blueprint. When the session plan still has open tasks, an\n * ephemeral check asks the model — given the full conversation — whether the agent should keep\n * working: a deterministic reminder alone would trap an agent that legitimately finishes with open\n * tasks in an unbreakable re-prompt loop. On \"continue\" it enqueues a continuation reminder onto the\n * owning host's queue (HarnessService Tier B), which keeps the process alive; on \"stop\" it does\n * nothing so the agent may complete with tasks deliberately left open.\n */\nexport default PlanReminder.pipe(\n Operation.withHandler(\n Effect.fnUntraced(\n function* () {\n const chat = yield* Chat.getFromContext.pipe(Effect.orElseSucceed(() => undefined));\n if (!chat) {\n return;\n }\n if (!chat?.plan) {\n return;\n }\n const plan = yield* Database.load(chat.plan).pipe(Effect.orElseSucceed(() => undefined));\n if (!plan || !Plan.hasIncompleteTasks(plan)) {\n return;\n }\n\n const history = yield* Harness.history;\n const prompt = Prompt.merge(\n yield* AiPreprocessor.preprocessPrompt(history, { system: planCompletionCheckSystem }),\n planCompletionCheckPrompt(plan),\n );\n const { text } = yield* Effect.scoped(LanguageModel.generateText({ prompt }));\n\n if (!parseContinueDecision(text)) {\n return;\n }\n\n yield* Harness.enqueueMessage({\n content: [ContentBlock.Text.make({ text: planContinueReminderPrompt(plan), disposition: 'synthetic' })],\n });\n },\n Effect.provide(AiService.model('com.anthropic.model.claude-sonnet-4-6.default')),\n ),\n ),\n);\n\nconst planCompletionCheckSystem = trim`\n You decide whether an agent should stop or continue working on its plan, given the conversation\n so far and the agent's remaining plan tasks.\n Reply with exactly one word: \"stop\" or \"continue\". Do not use tools. Do not add explanation.\n`;\n\nconst planCompletionCheckPrompt = (plan: Plan.Plan): string => trim`\n The agent is about to finish, but its plan still has incomplete tasks:\n\n <plan>\n ${Plan.formatPlan(plan)}\n </plan>\n\n Should the agent STOP now (no more work needed) or CONTINUE working on the plan?\n Reply with exactly one word: \"stop\" or \"continue\".\n`;\n\n/** Prefer an explicit \"continue\"; treat ambiguous replies as continue so open plan work is not dropped. */\nconst parseContinueDecision = (reply: string): boolean => {\n const normalized = reply.toLowerCase();\n if (/\\bcontinue\\b/.test(normalized)) {\n return true;\n }\n if (/\\bstop\\b/.test(normalized)) {\n return false;\n }\n return true;\n};\n\nconst planContinueReminderPrompt = (plan: Plan.Plan): string => trim`\n Your plan still has incomplete tasks — continue working before finishing:\n\n <plan>\n ${Plan.formatPlan(plan)}\n </plan>\n`;\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;AAIA,YAAYA,mBAAmB;AAC/B,YAAYC,YAAY;AACxB,YAAYC,YAAY;AAExB,SAASC,gBAAgBC,iBAAiB;AAC1C,SAASC,eAAe;AACxB,SAASC,iBAAiB;AAC1B,SAASC,gBAAgB;AACzB,SAASC,oBAAoB;AAC7B,SAASC,YAAY;AAarB,IAAA,wBAAeC,aAAaC,KAC1BC,UAAUC,YACDC,kBACL,aAAA;AACE,QAAMC,OAAO,OAAOC,aAAKC,eAAeN,KAAYO,qBAAc,MAAMC,MAAAA,CAAAA;AACxE,MAAI,CAACJ,MAAM;AACT;EACF;AACA,MAAI,CAACA,MAAMK,MAAM;AACf;EACF;AACA,QAAMA,OAAO,OAAOC,SAASC,KAAKP,KAAKK,IAAI,EAAET,KAAYO,qBAAc,MAAMC,MAAAA,CAAAA;AAC7E,MAAI,CAACC,QAAQ,CAACG,aAAKC,mBAAmBJ,IAAAA,GAAO;AAC3C;EACF;AAEA,QAAMK,UAAU,OAAOC,QAAQD;AAC/B,QAAME,SAAgBC,aACpB,OAAOC,eAAeC,iBAAiBL,SAAS;IAAEM,QAAQC;EAA0B,CAAA,GACpFC,0BAA0Bb,IAAAA,CAAAA;AAE5B,QAAM,EAAEc,KAAI,IAAK,OAAcC,cAAqBC,2BAAa;IAAET;EAAO,CAAA,CAAA;AAE1E,MAAI,CAACU,sBAAsBH,IAAAA,GAAO;AAChC;EACF;AAEA,SAAOR,QAAQY,eAAe;IAC5BC,SAAS;MAACC,aAAaC,KAAKC,KAAK;QAAER,MAAMS,2BAA2BvB,IAAAA;QAAOwB,aAAa;MAAY,CAAA;;EACtG,CAAA;AACF,GACOC,eAAQC,UAAUC,MAAM,+CAAA,CAAA,CAAA,CAAA,CAAA;AAKrC,IAAMf,4BAA4BgB;;;;;AAMlC,IAAMf,4BAA4B,CAACb,SAA4B4B;;;;IAI3DzB,aAAK0B,WAAW7B,IAAAA,CAAAA;;;;;;AAQpB,IAAMiB,wBAAwB,CAACa,UAAAA;AAC7B,QAAMC,aAAaD,MAAME,YAAW;AACpC,MAAI,eAAeC,KAAKF,UAAAA,GAAa;AACnC,WAAO;EACT;AACA,MAAI,WAAWE,KAAKF,UAAAA,GAAa;AAC/B,WAAO;EACT;AACA,SAAO;AACT;AAEA,IAAMR,6BAA6B,CAACvB,SAA4B4B;;;;IAI5DzB,aAAK0B,WAAW7B,IAAAA,CAAAA;;;",
|
|
6
|
-
"names": ["LanguageModel", "Prompt", "Effect", "AiPreprocessor", "AiService", "Harness", "Operation", "Database", "ContentBlock", "trim", "PlanReminder", "pipe", "Operation", "withHandler", "fnUntraced", "chat", "Chat", "getFromContext", "orElseSucceed", "undefined", "plan", "Database", "load", "Plan", "hasIncompleteTasks", "history", "Harness", "prompt", "merge", "AiPreprocessor", "preprocessPrompt", "system", "planCompletionCheckSystem", "planCompletionCheckPrompt", "text", "scoped", "generateText", "parseContinueDecision", "enqueueMessage", "content", "ContentBlock", "Text", "make", "planContinueReminderPrompt", "disposition", "provide", "AiService", "model", "trim", "formatPlan", "reply", "normalized", "toLowerCase", "test"]
|
|
7
|
-
}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Qualifier
|
|
3
|
-
} from "./chunk-BDTGFPM7.mjs";
|
|
4
|
-
import {
|
|
5
|
-
Agent_exports
|
|
6
|
-
} from "./chunk-H4W22FFJ.mjs";
|
|
7
|
-
import {
|
|
8
|
-
Plan_exports
|
|
9
|
-
} from "./chunk-Z2HFOZXK.mjs";
|
|
10
|
-
import "./chunk-EPQCDGIV.mjs";
|
|
11
|
-
import "./chunk-J5LGTIGS.mjs";
|
|
12
|
-
|
|
13
|
-
// src/skills/agent/operations/qualifier.ts
|
|
14
|
-
import * as LanguageModel from "@effect/ai/LanguageModel";
|
|
15
|
-
import * as Prompt from "@effect/ai/Prompt";
|
|
16
|
-
import * as Effect from "effect/Effect";
|
|
17
|
-
import * as Schema from "effect/Schema";
|
|
18
|
-
import { AiService } from "@dxos/ai";
|
|
19
|
-
import { Operation } from "@dxos/compute";
|
|
20
|
-
import { Database, Feed, Obj, Ref } from "@dxos/echo";
|
|
21
|
-
import { invariant } from "@dxos/invariant";
|
|
22
|
-
import { trim } from "@dxos/util";
|
|
23
|
-
var __dxlog_file = "/__w/dxos/dxos/packages/core/compute/assistant-toolkit/src/skills/agent/operations/qualifier.ts";
|
|
24
|
-
var handler = Qualifier.pipe(Operation.withHandler(Effect.fnUntraced(function* ({ agent: agentRef, event }) {
|
|
25
|
-
const agent = yield* Database.load(agentRef);
|
|
26
|
-
invariant(Obj.instanceOf(Agent_exports.Agent, agent), void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 17, S: this, A: ["Obj.instanceOf(Agent.Agent, agent)", ""] });
|
|
27
|
-
invariant(agent.chat, "Agent has no chat.", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 18, S: this, A: ["agent.chat", "'Agent has no chat.'"] });
|
|
28
|
-
const { id, name, feed: queue } = agent;
|
|
29
|
-
if (!queue) {
|
|
30
|
-
throw new Error("Agent has no queue.");
|
|
31
|
-
}
|
|
32
|
-
const chat = yield* Database.load(agent.chat);
|
|
33
|
-
const planText = chat.plan ? yield* Database.load(chat.plan).pipe(Effect.map(Plan_exports.formatPlan), Effect.catchTag("EntityNotFoundError", () => Effect.succeed("No plan found."))) : "No plan found.";
|
|
34
|
-
const instructions = yield* Database.load(agent.instructions);
|
|
35
|
-
const { value } = yield* Effect.scoped(LanguageModel.generateObject({
|
|
36
|
-
schema: Schema.Struct({
|
|
37
|
-
isRelevant: Schema.Boolean
|
|
38
|
-
}),
|
|
39
|
-
prompt: Prompt.fromMessages([
|
|
40
|
-
Prompt.systemMessage({
|
|
41
|
-
content: trim`
|
|
42
|
-
You are a qualifying agent that determines if the event is relevant to the agent.
|
|
43
|
-
Respond with true if the event is relevant to the agent, false otherwise.
|
|
44
|
-
If you are not sure, return true.
|
|
45
|
-
The qualified events will be forwarded to the larger agent that will process them.
|
|
46
|
-
<agent id="${id}" name="${name}">
|
|
47
|
-
<instructions>
|
|
48
|
-
${instructions.content}
|
|
49
|
-
</instructions>
|
|
50
|
-
<plan>
|
|
51
|
-
${planText}
|
|
52
|
-
</plan>
|
|
53
|
-
</agent>
|
|
54
|
-
`
|
|
55
|
-
}),
|
|
56
|
-
Prompt.userMessage({
|
|
57
|
-
content: [
|
|
58
|
-
Prompt.makePart("text", {
|
|
59
|
-
text: trim`
|
|
60
|
-
<event>
|
|
61
|
-
${JSON.stringify(event, null, 2)}
|
|
62
|
-
</event>
|
|
63
|
-
`
|
|
64
|
-
})
|
|
65
|
-
]
|
|
66
|
-
})
|
|
67
|
-
])
|
|
68
|
-
}));
|
|
69
|
-
const { isRelevant } = value;
|
|
70
|
-
if (isRelevant) {
|
|
71
|
-
const feedTarget = yield* Database.load(queue);
|
|
72
|
-
if ("feed" in event && event.item) {
|
|
73
|
-
const obj = event.item;
|
|
74
|
-
yield* Feed.append(feedTarget, [
|
|
75
|
-
obj
|
|
76
|
-
]);
|
|
77
|
-
} else if ("subject" in event && Ref.isRef(event.subject)) {
|
|
78
|
-
const obj = yield* Database.load(event.subject);
|
|
79
|
-
yield* Feed.append(feedTarget, [
|
|
80
|
-
obj
|
|
81
|
-
]);
|
|
82
|
-
} else {
|
|
83
|
-
throw new Error("Invalid event.");
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}, Effect.provide(AiService.model("com.anthropic.model.claude-sonnet-4-6.default")))));
|
|
87
|
-
var qualifier_default = handler;
|
|
88
|
-
export {
|
|
89
|
-
qualifier_default as default
|
|
90
|
-
};
|
|
91
|
-
//# sourceMappingURL=qualifier-5CIRZYX5.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/skills/agent/operations/qualifier.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as LanguageModel from '@effect/ai/LanguageModel';\nimport * as Prompt from '@effect/ai/Prompt';\nimport * as Effect from 'effect/Effect';\nimport * as Schema from 'effect/Schema';\n\nimport { AiService } from '@dxos/ai';\nimport { Operation } from '@dxos/compute';\nimport { Database, Feed, Obj, Ref } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\nimport { trim } from '@dxos/util';\n\nimport { Agent, Plan } from '../../../types';\nimport { Qualifier } from './definitions';\n\nconst handler: Operation.WithHandler<typeof Qualifier> = Qualifier.pipe(\n Operation.withHandler(\n Effect.fnUntraced(\n function* ({ agent: agentRef, event }) {\n const agent = yield* Database.load(agentRef);\n invariant(Obj.instanceOf(Agent.Agent, agent));\n invariant(agent.chat, 'Agent has no chat.');\n\n const { id, name, feed: queue } = agent;\n if (!queue) {\n throw new Error('Agent has no queue.');\n }\n\n const chat = yield* Database.load(agent.chat);\n const planText = chat.plan\n ? yield* Database.load(chat.plan).pipe(\n Effect.map(Plan.formatPlan),\n Effect.catchTag('EntityNotFoundError', () => Effect.succeed('No plan found.')),\n )\n : 'No plan found.';\n const instructions = yield* Database.load(agent.instructions);\n\n const { value } = yield* Effect.scoped(\n LanguageModel.generateObject({\n schema: Schema.Struct({\n isRelevant: Schema.Boolean,\n }),\n prompt: Prompt.fromMessages([\n Prompt.systemMessage({\n content: trim`\n You are a qualifying agent that determines if the event is relevant to the agent.\n Respond with true if the event is relevant to the agent, false otherwise.\n If you are not sure, return true.\n The qualified events will be forwarded to the larger agent that will process them.\n <agent id=\"${id}\" name=\"${name}\">\n <instructions>\n ${instructions.content}\n </instructions>\n <plan>\n ${planText}\n </plan>\n </agent>\n `,\n }),\n Prompt.userMessage({\n content: [\n Prompt.makePart('text', {\n text: trim`\n <event>\n ${JSON.stringify(event, null, 2)}\n </event>\n `,\n }),\n ],\n }),\n ]),\n }),\n );\n\n const { isRelevant } = value as { isRelevant: boolean };\n\n if (isRelevant) {\n const feedTarget = yield* Database.load(queue);\n if ('feed' in event && event.item) {\n const obj = event.item;\n yield* Feed.append(feedTarget, [obj]);\n } else if ('subject' in event && Ref.isRef(event.subject)) {\n const obj = yield* Database.load(event.subject);\n yield* Feed.append(feedTarget, [obj]);\n } else {\n throw new Error('Invalid event.');\n }\n }\n },\n Effect.provide(AiService.model('com.anthropic.model.claude-sonnet-4-6.default')),\n ),\n ),\n);\nexport default handler;\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;AAIA,YAAYA,mBAAmB;AAC/B,YAAYC,YAAY;AACxB,YAAYC,YAAY;AACxB,YAAYC,YAAY;AAExB,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB;AAC1B,SAASC,UAAUC,MAAMC,KAAKC,WAAW;AACzC,SAASC,iBAAiB;AAC1B,SAASC,YAAY;AAKrB,IAAA,eAAyDC;IAKjDC,UAAUC,UAAIC,KAAWC,UAAW,YAAEC,kBAAAA,WAAAA,EAAAA,OAAAA,UAAAA,MAAAA,GAAAA;AACtCJ,QAAAA,QAAUI,OAAU,SAAE,KAAA,QAAA;AAEtB,YAAU,IAAEC,WAAYC,cAAO,OAAGF,KAAAA,GAAAA,QAAAA,EAAAA,YAAAA,YAAAA,GAAAA,cAAAA,GAAAA,IAAAA,GAAAA,MAAAA,GAAAA,CAAAA,sCAAAA,EAAAA,EAAAA,CAAAA;AAClC,YAAKE,MAAO,MAAA,sBAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,MAAA,GAAA,CAAA,cAAA,sBAAA,EAAA,CAAA;QACV,EAAA,IAAM,MAAIC,MAAM,MAAA,IAAA;AAClB,MAAA,CAAA,OAAA;AAEA,UAAMC,IAAO,MAAOC,qBAAoBD;EACxC;AAMA,QAAME,OAAAA,OAAAA,SAAsBD,KAAAA,MAASE,IAAKP;AAE1C,QAAM,WAAS,KAAG,OAAOQ,OAAOC,SAC9BC,KAAAA,KAAcC,IAAAA,EAAAA,KAAe,WAAA,aAAA,UAAA,GAAA,gBAAA,uBAAA,MAAA,eAAA,gBAAA,CAAA,CAAA,IAAA;QAC3BC,eAAeC,OAAO,SAAA,KAAA,MAAA,YAAA;UACpBC,MAAAA,IAAAA,OAAmBC,cAAO,6BAAA;IAC5B,QAAA,cAAA;MACAC,YAAeC;;YAEXC,oBAAc;;;;;;;+BAORZ,EAAAA,WAAqB,IAAA;;;;;;;;;;yBAUlBa;iBACLC;;YAEI,MAAEC;;0BAEL,KAAA,UAAA,OAAA,MAAA,CAAA,CAAA;;;UAGP,CAAA;QACD;MACH,CAAA;IAGF,CAAA;EAEA,CAAA,CAAA;QACE,EAAA,WAAMC,IAAa;MACnB,YAAI;UACF,aAAYC,OAAU,SAAA,KAAA,KAAA;QACtB,UAAOC,SAAYF,MAAAA,MAAY;YAACG,MAAAA,MAAAA;aAAI,KAAA,OAAA,YAAA;QAC/B;MACL,CAAA;eACOD,aAAYF,SAAAA,IAAY,MAAA,MAAA,OAAA,GAAA;YAACG,MAAAA,OAAAA,SAAAA,KAAAA,MAAAA,OAAAA;aAAI,KAAA,OAAA,YAAA;QAC/B;MACL,CAAA;IACF,OAAA;AACF,YAAA,IAAA,MAAA,gBAAA;IAEFjB;EAIN;;;",
|
|
6
|
-
"names": ["LanguageModel", "Prompt", "Effect", "Schema", "AiService", "Operation", "Database", "Feed", "Obj", "Ref", "invariant", "trim", "Qualifier", "invariant", "Obj", "instanceOf", "Agent", "agent", "name", "queue", "Error", "chat", "Database", "instructions", "load", "Effect", "scoped", "LanguageModel", "generateObject", "schema", "Struct", "isRelevant", "Boolean", "prompt", "fromMessages", "content", "makePart", "text", "JSON", "feedTarget", "event", "Feed", "obj"]
|
|
7
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
QueryMemories
|
|
3
|
-
} from "./chunk-LBA5UOLF.mjs";
|
|
4
|
-
import {
|
|
5
|
-
Memory
|
|
6
|
-
} from "./chunk-EPQCDGIV.mjs";
|
|
7
|
-
import "./chunk-J5LGTIGS.mjs";
|
|
8
|
-
|
|
9
|
-
// src/skills/memory/operations/query.ts
|
|
10
|
-
import * as Effect from "effect/Effect";
|
|
11
|
-
import { Operation } from "@dxos/compute";
|
|
12
|
-
import { Database, Entity, Filter, Query } from "@dxos/echo";
|
|
13
|
-
var query_default = QueryMemories.pipe(Operation.withHandler(Effect.fn(function* ({ text, limit = 10 }) {
|
|
14
|
-
let query;
|
|
15
|
-
if (text) {
|
|
16
|
-
query = Query.all(
|
|
17
|
-
...text.split(" ").map((term) => Query.select(Filter.text(term, {
|
|
18
|
-
type: "full-text"
|
|
19
|
-
})))
|
|
20
|
-
).select(Filter.type(Memory));
|
|
21
|
-
} else {
|
|
22
|
-
query = Query.select(Filter.type(Memory));
|
|
23
|
-
}
|
|
24
|
-
query = query.limit(limit);
|
|
25
|
-
yield* Database.flush();
|
|
26
|
-
const results = yield* Database.query(query).run;
|
|
27
|
-
return results.map((obj) => Entity.toJSON(obj));
|
|
28
|
-
})));
|
|
29
|
-
export {
|
|
30
|
-
query_default as default
|
|
31
|
-
};
|
|
32
|
-
//# sourceMappingURL=query-K4R7UHLU.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/skills/memory/operations/query.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/compute';\nimport { Database, Entity, Filter, Query } from '@dxos/echo';\n\nimport { Memory } from '../../../types/Memory';\nimport { QueryMemories } from './definitions';\n\nexport default QueryMemories.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ text, limit = 10 }) {\n let query: Query.Any;\n if (text) {\n query = Query.all(\n // TODO(dmaretskyi): We should move this to the query executor layer.\n ...text.split(' ').map((term) => Query.select(Filter.text(term, { type: 'full-text' }))),\n ).select(Filter.type(Memory));\n } else {\n query = Query.select(Filter.type(Memory));\n }\n query = query.limit(limit);\n\n yield* Database.flush();\n const results = yield* Database.query(query).run;\n return results.map((obj) => Entity.toJSON(obj));\n }),\n ),\n);\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiB;AAC1B,SAASC,UAAUC,QAAQC,QAAQC,aAAa;AAKhD,IAAA,gBAAeC,cAAcC,KAC3BC,UAAUC,YACDC,UAAG,WAAW,EAAEC,MAAMC,QAAQ,GAAE,GAAE;AACvC,MAAIC;AACJ,MAAIF,MAAM;AACRE,YAAQC,MAAMC;SAETJ,KAAKK,MAAM,GAAA,EAAKC,IAAI,CAACC,SAASJ,MAAMK,OAAOC,OAAOT,KAAKO,MAAM;QAAEG,MAAM;MAAY,CAAA,CAAA,CAAA;IAAA,EACpFF,OAAOC,OAAOC,KAAKC,MAAAA,CAAAA;EACvB,OAAO;AACLT,YAAQC,MAAMK,OAAOC,OAAOC,KAAKC,MAAAA,CAAAA;EACnC;AACAT,UAAQA,MAAMD,MAAMA,KAAAA;AAEpB,SAAOW,SAASC,MAAK;AACrB,QAAMC,UAAU,OAAOF,SAASV,MAAMA,KAAAA,EAAOa;AAC7C,SAAOD,QAAQR,IAAI,CAACU,QAAQC,OAAOC,OAAOF,GAAAA,CAAAA;AAC5C,CAAA,CAAA,CAAA;",
|
|
6
|
-
"names": ["Effect", "Operation", "Database", "Entity", "Filter", "Query", "QueryMemories", "pipe", "Operation", "withHandler", "fn", "text", "limit", "query", "Query", "all", "split", "map", "term", "select", "Filter", "type", "Memory", "Database", "flush", "results", "run", "obj", "Entity", "toJSON"]
|
|
7
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Query
|
|
3
|
-
} from "./chunk-YQSQRSXG.mjs";
|
|
4
|
-
import "./chunk-J5LGTIGS.mjs";
|
|
5
|
-
|
|
6
|
-
// src/skills/database/operations/query.ts
|
|
7
|
-
import * as Effect from "effect/Effect";
|
|
8
|
-
import { Operation } from "@dxos/compute";
|
|
9
|
-
import { Database, Query as EchoQuery, Entity, Filter, Obj, Scope, Type } from "@dxos/echo";
|
|
10
|
-
var query_default = Query.pipe(Operation.withHandler(Effect.fn(function* ({ in: parents, typename, text, includeContent = false, limit = 10, includeQueues = false }) {
|
|
11
|
-
const { db } = yield* Database.Service;
|
|
12
|
-
let query;
|
|
13
|
-
if (text) {
|
|
14
|
-
query = EchoQuery.all(...text.split(" ").map((term) => EchoQuery.select(Filter.text(term, {
|
|
15
|
-
type: "full-text"
|
|
16
|
-
}))));
|
|
17
|
-
if (typename !== void 0) {
|
|
18
|
-
const types = yield* Database.query(EchoQuery.select(Filter.type(Type.Type)).from(Scope.space(), Scope.registry())).run;
|
|
19
|
-
const schema = types.find((t) => Type.getTypename(t) === typename);
|
|
20
|
-
if (!schema) {
|
|
21
|
-
return yield* Effect.fail(new Error(`Schema ${typename} not found`));
|
|
22
|
-
}
|
|
23
|
-
query = query.select(Filter.type(schema));
|
|
24
|
-
}
|
|
25
|
-
} else if (typename) {
|
|
26
|
-
const types = yield* Database.query(EchoQuery.select(Filter.type(Type.Type)).from(Scope.space(), Scope.registry())).run;
|
|
27
|
-
const schema = types.find((t) => Type.getTypename(t) === typename);
|
|
28
|
-
if (!schema) {
|
|
29
|
-
return yield* Effect.fail(new Error(`Schema ${typename} not found`));
|
|
30
|
-
}
|
|
31
|
-
query = EchoQuery.select(Filter.type(schema));
|
|
32
|
-
} else {
|
|
33
|
-
query = EchoQuery.select(Filter.everything());
|
|
34
|
-
}
|
|
35
|
-
if (parents && parents.length > 0) {
|
|
36
|
-
query = query.select(Filter.childOf(parents));
|
|
37
|
-
}
|
|
38
|
-
query = query.limit(limit);
|
|
39
|
-
if (includeQueues) {
|
|
40
|
-
query = query.from(db, {
|
|
41
|
-
includeFeeds: true
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
yield* Database.flush();
|
|
45
|
-
const results = yield* Database.query(query).run;
|
|
46
|
-
if (includeContent) {
|
|
47
|
-
return results.map((obj) => Entity.toJSON(obj));
|
|
48
|
-
} else {
|
|
49
|
-
return results.map((obj) => ({
|
|
50
|
-
dxn: Obj.getURI(obj),
|
|
51
|
-
typename: Obj.getTypename(obj),
|
|
52
|
-
label: Obj.getLabel(obj)
|
|
53
|
-
}));
|
|
54
|
-
}
|
|
55
|
-
})));
|
|
56
|
-
export {
|
|
57
|
-
query_default as default
|
|
58
|
-
};
|
|
59
|
-
//# sourceMappingURL=query-NCTCRYTD.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/skills/database/operations/query.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/compute';\nimport { Database, Query as EchoQuery, Entity, Filter, Obj, Scope, Type } from '@dxos/echo';\n\nimport { Query } from './definitions';\n\n// TODO(burdon): Move to toolkit (i.e., tool not function).\nexport default Query.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ in: parents, typename, text, includeContent = false, limit = 10, includeQueues = false }) {\n const { db } = yield* Database.Service;\n let query: EchoQuery.Any;\n if (text) {\n query = EchoQuery.all(\n ...text.split(' ').map((term) => EchoQuery.select(Filter.text(term, { type: 'full-text' }))),\n );\n if (typename !== undefined) {\n const types = yield* Database.query(\n EchoQuery.select(Filter.type(Type.Type)).from(Scope.space(), Scope.registry()),\n ).run;\n const schema = types.find((t) => Type.getTypename(t) === typename);\n if (!schema) {\n return yield* Effect.fail(new Error(`Schema ${typename} not found`));\n }\n query = query.select(Filter.type(schema));\n }\n } else if (typename) {\n const types = yield* Database.query(\n EchoQuery.select(Filter.type(Type.Type)).from(Scope.space(), Scope.registry()),\n ).run;\n const schema = types.find((t) => Type.getTypename(t) === typename);\n if (!schema) {\n return yield* Effect.fail(new Error(`Schema ${typename} not found`));\n }\n query = EchoQuery.select(Filter.type(schema));\n } else {\n query = EchoQuery.select(Filter.everything());\n }\n\n if (parents && parents.length > 0) {\n query = query.select(Filter.childOf(parents));\n }\n\n query = query.limit(limit);\n if (includeQueues) {\n // Must scope to the current space: `from({ allFeedsFromSpaces: true })` alone has no spaceIds, so the SQL\n // index returns nothing (see EntityMetaIndex.buildSourceCondition / early returns when spaceIds are empty).\n query = query.from(db, { includeFeeds: true });\n }\n\n yield* Database.flush();\n const results = yield* Database.query(query).run;\n if (includeContent) {\n return results.map((obj) => Entity.toJSON(obj));\n } else {\n return results.map((obj) => ({\n dxn: Obj.getURI(obj),\n typename: Obj.getTypename(obj),\n label: Obj.getLabel(obj),\n }));\n }\n }),\n ),\n);\n"],
|
|
5
|
-
"mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiB;AAC1B,SAASC,UAAUC,SAASC,WAAWC,QAAQC,QAAQC,KAAKC,OAAOC,YAAY;AAK/E,IAAA,gBAAeC,MAAMC,KACnBC,UAAUC,YACDC,UAAG,WAAW,EAAEC,IAAIC,SAASC,UAAUC,MAAMC,iBAAiB,OAAOC,QAAQ,IAAIC,gBAAgB,MAAK,GAAE;AAC7G,QAAM,EAAEC,GAAE,IAAK,OAAOC,SAASC;AAC/B,MAAIC;AACJ,MAAIP,MAAM;AACRO,YAAQC,UAAUC,IAAG,GAChBT,KAAKU,MAAM,GAAA,EAAKC,IAAI,CAACC,SAASJ,UAAUK,OAAOC,OAAOd,KAAKY,MAAM;MAAEG,MAAM;IAAY,CAAA,CAAA,CAAA,CAAA;AAE1F,QAAIhB,aAAaiB,QAAW;AAC1B,YAAMC,QAAQ,OAAOZ,SAASE,MAC5BC,UAAUK,OAAOC,OAAOC,KAAKG,KAAKA,IAAI,CAAA,EAAGC,KAAKC,MAAMC,MAAK,GAAID,MAAME,SAAQ,CAAA,CAAA,EAC3EC;AACF,YAAMC,SAASP,MAAMQ,KAAK,CAACC,MAAMR,KAAKS,YAAYD,CAAAA,MAAO3B,QAAAA;AACzD,UAAI,CAACyB,QAAQ;AACX,eAAO,OAAcI,YAAK,IAAIC,MAAM,UAAU9B,QAAAA,YAAoB,CAAA;MACpE;AACAQ,cAAQA,MAAMM,OAAOC,OAAOC,KAAKS,MAAAA,CAAAA;IACnC;EACF,WAAWzB,UAAU;AACnB,UAAMkB,QAAQ,OAAOZ,SAASE,MAC5BC,UAAUK,OAAOC,OAAOC,KAAKG,KAAKA,IAAI,CAAA,EAAGC,KAAKC,MAAMC,MAAK,GAAID,MAAME,SAAQ,CAAA,CAAA,EAC3EC;AACF,UAAMC,SAASP,MAAMQ,KAAK,CAACC,MAAMR,KAAKS,YAAYD,CAAAA,MAAO3B,QAAAA;AACzD,QAAI,CAACyB,QAAQ;AACX,aAAO,OAAcI,YAAK,IAAIC,MAAM,UAAU9B,QAAAA,YAAoB,CAAA;IACpE;AACAQ,YAAQC,UAAUK,OAAOC,OAAOC,KAAKS,MAAAA,CAAAA;EACvC,OAAO;AACLjB,YAAQC,UAAUK,OAAOC,OAAOgB,WAAU,CAAA;EAC5C;AAEA,MAAIhC,WAAWA,QAAQiC,SAAS,GAAG;AACjCxB,YAAQA,MAAMM,OAAOC,OAAOkB,QAAQlC,OAAAA,CAAAA;EACtC;AAEAS,UAAQA,MAAML,MAAMA,KAAAA;AACpB,MAAIC,eAAe;AAGjBI,YAAQA,MAAMY,KAAKf,IAAI;MAAE6B,cAAc;IAAK,CAAA;EAC9C;AAEA,SAAO5B,SAAS6B,MAAK;AACrB,QAAMC,UAAU,OAAO9B,SAASE,MAAMA,KAAAA,EAAOgB;AAC7C,MAAItB,gBAAgB;AAClB,WAAOkC,QAAQxB,IAAI,CAACyB,QAAQC,OAAOC,OAAOF,GAAAA,CAAAA;EAC5C,OAAO;AACL,WAAOD,QAAQxB,IAAI,CAACyB,SAAS;MAC3BG,KAAKC,IAAIC,OAAOL,GAAAA;MAChBrC,UAAUyC,IAAIb,YAAYS,GAAAA;MAC1BM,OAAOF,IAAIG,SAASP,GAAAA;IACtB,EAAA;EACF;AACF,CAAA,CAAA,CAAA;",
|
|
6
|
-
"names": ["Effect", "Operation", "Database", "Query", "EchoQuery", "Entity", "Filter", "Obj", "Scope", "Type", "Query", "pipe", "Operation", "withHandler", "fn", "in", "parents", "typename", "text", "includeContent", "limit", "includeQueues", "db", "Database", "Service", "query", "EchoQuery", "all", "split", "map", "term", "select", "Filter", "type", "undefined", "types", "Type", "from", "Scope", "space", "registry", "run", "schema", "find", "t", "getTypename", "fail", "Error", "everything", "length", "childOf", "includeFeeds", "flush", "results", "obj", "Entity", "toJSON", "dxn", "Obj", "getURI", "label", "getLabel"]
|
|
7
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
QuerySkills
|
|
3
|
-
} from "./chunk-JTEBE7KA.mjs";
|
|
4
|
-
import "./chunk-J5LGTIGS.mjs";
|
|
5
|
-
|
|
6
|
-
// src/skills/skill-manager/operations/query-skills.ts
|
|
7
|
-
import * as Effect from "effect/Effect";
|
|
8
|
-
import { Operation, Skill } from "@dxos/compute";
|
|
9
|
-
import { Filter, Registry } from "@dxos/echo";
|
|
10
|
-
var query_skills_default = QuerySkills.pipe(Operation.withHandler(Effect.fnUntraced(function* () {
|
|
11
|
-
const skills = yield* Registry.runQuery(Filter.type(Skill.Skill));
|
|
12
|
-
return skills.slice().sort(({ name: a }, { name: b }) => a.localeCompare(b));
|
|
13
|
-
})));
|
|
14
|
-
export {
|
|
15
|
-
query_skills_default as default
|
|
16
|
-
};
|
|
17
|
-
//# sourceMappingURL=query-skills-7GQFSU4V.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/skills/skill-manager/operations/query-skills.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Operation, Skill } from '@dxos/compute';\nimport { Filter, Registry } from '@dxos/echo';\n\nimport { QuerySkills } from './definitions';\n\nexport default QuerySkills.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* () {\n const skills = yield* Registry.runQuery(Filter.type(Skill.Skill));\n return skills.slice().sort(({ name: a }, { name: b }) => a.localeCompare(b));\n }),\n ),\n);\n"],
|
|
5
|
-
"mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,WAAWC,aAAa;AACjC,SAASC,QAAQC,gBAAgB;AAIjC,IAAA,uBAAeC,YAAYC,KACzBC,UAAUC,YACDC,kBAAW,aAAA;AAChB,QAAMC,SAAS,OAAOC,SAASC,SAASC,OAAOC,KAAKC,MAAMA,KAAK,CAAA;AAC/D,SAAOL,OAAOM,MAAK,EAAGC,KAAK,CAAC,EAAEC,MAAMC,EAAC,GAAI,EAAED,MAAME,EAAC,MAAOD,EAAEE,cAAcD,CAAAA,CAAAA;AAC3E,CAAA,CAAA,CAAA;",
|
|
6
|
-
"names": ["Effect", "Operation", "Skill", "Filter", "Registry", "QuerySkills", "pipe", "Operation", "withHandler", "fnUntraced", "skills", "Registry", "runQuery", "Filter", "type", "Skill", "slice", "sort", "name", "a", "b", "localeCompare"]
|
|
7
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
RelationCreate
|
|
3
|
-
} from "./chunk-YQSQRSXG.mjs";
|
|
4
|
-
import "./chunk-J5LGTIGS.mjs";
|
|
5
|
-
|
|
6
|
-
// src/skills/database/operations/relation-create.ts
|
|
7
|
-
import * as Effect from "effect/Effect";
|
|
8
|
-
import { Operation } from "@dxos/compute";
|
|
9
|
-
import { Database, Entity, Filter, Query, Relation, Scope, Type } from "@dxos/echo";
|
|
10
|
-
import { invariant } from "@dxos/invariant";
|
|
11
|
-
import { safeParseJson } from "@dxos/util";
|
|
12
|
-
var __dxlog_file = "/__w/dxos/dxos/packages/core/compute/assistant-toolkit/src/skills/database/operations/relation-create.ts";
|
|
13
|
-
var relation_create_default = RelationCreate.pipe(Operation.withHandler(Effect.fn(function* ({ typename, source, target, properties }) {
|
|
14
|
-
const { db } = yield* Database.Service;
|
|
15
|
-
const types = yield* Database.query(Query.select(Filter.type(Type.Type)).from(Scope.space(), Scope.registry())).run;
|
|
16
|
-
const foundSchema = types.find((t) => Type.getTypename(t) === typename);
|
|
17
|
-
invariant(foundSchema, `Schema not found: ${typename}`, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 14, S: this, A: ["foundSchema", "`Schema not found: ${typename}`"] });
|
|
18
|
-
invariant(Type.isRelation(foundSchema), "Schema is not a relation schema", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 15, S: this, A: ["Type.isRelation(foundSchema)", "'Schema is not a relation schema'"] });
|
|
19
|
-
const schema = foundSchema;
|
|
20
|
-
const sourceObj = yield* Database.load(source);
|
|
21
|
-
const targetObj = yield* Database.load(target);
|
|
22
|
-
const parsedProperties = typeof properties === "string" ? safeParseJson(properties, {}) : properties;
|
|
23
|
-
const relationProperties = parsedProperties !== null && typeof parsedProperties === "object" && !Array.isArray(parsedProperties) ? parsedProperties : {};
|
|
24
|
-
const relation = db.add(Relation.make(schema, {
|
|
25
|
-
[Relation.Source]: sourceObj,
|
|
26
|
-
[Relation.Target]: targetObj,
|
|
27
|
-
...relationProperties
|
|
28
|
-
}));
|
|
29
|
-
return Entity.toJSON(relation);
|
|
30
|
-
})));
|
|
31
|
-
export {
|
|
32
|
-
relation_create_default as default
|
|
33
|
-
};
|
|
34
|
-
//# sourceMappingURL=relation-create-QKXHTL7G.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/skills/database/operations/relation-create.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/compute';\nimport { Database, Entity, Filter, Query, Relation, Scope, Type } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\nimport { safeParseJson } from '@dxos/util';\n\nimport { RelationCreate } from './definitions';\n\nexport default RelationCreate.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ typename, source, target, properties }) {\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.isRelation(foundSchema), 'Schema is not a relation schema');\n const schema = foundSchema;\n\n const sourceObj = yield* Database.load(source);\n const targetObj = yield* Database.load(target);\n // A stringified non-object (e.g. '\"abc\"' or '[1,2]') parses successfully but must not be\n // spread onto the relation; only a plain object contributes properties.\n const parsedProperties = typeof properties === 'string' ? safeParseJson(properties, {}) : properties;\n const relationProperties =\n parsedProperties !== null && typeof parsedProperties === 'object' && !Array.isArray(parsedProperties)\n ? parsedProperties\n : {};\n const relation = db.add(\n Relation.make(schema, {\n [Relation.Source]: sourceObj,\n [Relation.Target]: targetObj,\n ...relationProperties,\n }),\n );\n return Entity.toJSON(relation);\n }),\n ),\n);\n"],
|
|
5
|
-
"mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiB;AAC1B,SAASC,UAAUC,QAAQC,QAAQC,OAAOC,UAAUC,OAAOC,YAAY;AACvE,SAASC,iBAAiB;AAC1B,SAASC,qBAAqB;AAI9B,IAAA,eAAeC;IAIT,0BAAMC,eAAeC,KAASC,UAAMC,YAAwB,UAACC,WAAYC,EAAAA,UAAWC,QAASC,QAAMC,WAChGC,GAAG;AACN,QAAMC,EAAAA,GAAAA,IAAAA,OAAcV,SAAW;AAC/BW,QAAAA,QAAUD,OAAAA,SAAc,MAAA,MAAkB,OAAEE,OAAU,KAAA,KAAA,IAAA,CAAA,EAAA,KAAA,MAAA,MAAA,GAAA,MAAA,SAAA,CAAA,CAAA,EAAA;AACtDD,QAAAA,cAAeE,MAAWH,KAAAA,CAAAA,MAAAA,KAAc,YAAA,CAAA,MAAA,QAAA;AACxC,YAAMI,aAASJ,qBAAAA,QAAAA,IAAAA,EAAAA,YAAAA,YAAAA,GAAAA,cAAAA,GAAAA,IAAAA,GAAAA,MAAAA,GAAAA,CAAAA,eAAAA,iCAAAA,EAAAA,CAAAA;AAEf,YAAMK,KAAAA,WAAmBd,WAASe,GAAKC,mCAAAA,EAAAA,YAAAA,YAAAA,GAAAA,cAAAA,GAAAA,IAAAA,GAAAA,MAAAA,GAAAA,CAAAA,gCAAAA,mCAAAA,EAAAA,CAAAA;AACvC,QAAMC,SAAAA;AACN,QAAA,YAAA,OAAA,SAAA,KAAA,MAAA;AACA,QAAA,YAAA,OAAA,SAAA,KAAA,MAAA;AAMA,QAAMC,mBACJC,OAAAA,eAAsB,WAAA,cAAA,YAAA,CAAA,CAAA,IAAA;QACnBA,qBAAkBL,qBAAAA,QAAAA,OAAAA,qBAAAA,YAAAA,CAAAA,MAAAA,QAAAA,gBAAAA,IAAAA,mBAAAA,CAAAA;QAClBK,WAASC,GAAM,IAAGH,SAAAA,KAAAA,QAAAA;IACnB,CAAA,SAAGI,MAAAA,GAAAA;IACL,CAAA,SAAA,MAAA,GAAA;IAEF,GAAOC;EACT,CAEF,CAAA;;;",
|
|
6
|
-
"names": ["Effect", "Operation", "Database", "Entity", "Filter", "Query", "Relation", "Scope", "Type", "invariant", "safeParseJson", "RelationCreate", "types", "Database", "query", "Query", "Type", "from", "space", "Scope", "registry", "run", "foundSchema", "invariant", "typename", "isRelation", "schema", "sourceObj", "load", "source", "targetObj", "relation", "Relation", "Target", "relationProperties", "Entity"]
|
|
7
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
RelationDelete
|
|
3
|
-
} from "./chunk-YQSQRSXG.mjs";
|
|
4
|
-
import "./chunk-J5LGTIGS.mjs";
|
|
5
|
-
|
|
6
|
-
// src/skills/database/operations/relation-delete.ts
|
|
7
|
-
import * as Effect from "effect/Effect";
|
|
8
|
-
import { Operation } from "@dxos/compute";
|
|
9
|
-
import { Database } from "@dxos/echo";
|
|
10
|
-
var relation_delete_default = RelationDelete.pipe(Operation.withHandler(Effect.fn(function* ({ rel }) {
|
|
11
|
-
const { db } = yield* Database.Service;
|
|
12
|
-
const relation = yield* Database.load(rel);
|
|
13
|
-
db.remove(relation);
|
|
14
|
-
})));
|
|
15
|
-
export {
|
|
16
|
-
relation_delete_default as default
|
|
17
|
-
};
|
|
18
|
-
//# sourceMappingURL=relation-delete-PDIWT2JX.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/skills/database/operations/relation-delete.ts"],
|
|
4
|
-
"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 { RelationDelete } from './definitions';\n\nexport default RelationDelete.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ rel }) {\n const { db } = yield* Database.Service;\n const relation = yield* Database.load(rel);\n // TODO(dmaretskyi): Echo types broken.\n db.remove(relation as any);\n }),\n ),\n);\n"],
|
|
5
|
-
"mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiB;AAC1B,SAASC,gBAAgB;AAIzB,IAAA,0BAAeC,eAAeC,KAC5BC,UAAUC,YACDC,UAAG,WAAW,EAAEC,IAAG,GAAE;AAC1B,QAAM,EAAEC,GAAE,IAAK,OAAOC,SAASC;AAC/B,QAAMC,WAAW,OAAOF,SAASG,KAAKL,GAAAA;AAEtCC,KAAGK,OAAOF,QAAAA;AACZ,CAAA,CAAA,CAAA;",
|
|
6
|
-
"names": ["Effect", "Operation", "Database", "RelationDelete", "pipe", "Operation", "withHandler", "fn", "rel", "db", "Database", "Service", "relation", "load", "remove"]
|
|
7
|
-
}
|
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
RunInstructions
|
|
3
|
-
} from "./chunk-VJ5QBYM5.mjs";
|
|
4
|
-
import {
|
|
5
|
-
Chat,
|
|
6
|
-
PromptError
|
|
7
|
-
} from "./chunk-Z2HFOZXK.mjs";
|
|
8
|
-
import "./chunk-J5LGTIGS.mjs";
|
|
9
|
-
|
|
10
|
-
// src/operations/run-instructions.ts
|
|
11
|
-
import * as Tool from "@effect/ai/Tool";
|
|
12
|
-
import * as Toolkit from "@effect/ai/Toolkit";
|
|
13
|
-
import * as Deferred from "effect/Deferred";
|
|
14
|
-
import * as Effect from "effect/Effect";
|
|
15
|
-
import * as Layer from "effect/Layer";
|
|
16
|
-
import * as Option from "effect/Option";
|
|
17
|
-
import * as Schema from "effect/Schema";
|
|
18
|
-
import { AiService, OpaqueToolkit } from "@dxos/ai";
|
|
19
|
-
import { AiSession, getOperationFromTool, makeToolExecutionService, makeToolResolverFromOperations } from "@dxos/assistant";
|
|
20
|
-
import { Operation, Template, Trace } from "@dxos/compute";
|
|
21
|
-
import { Database, Feed, JsonSchema, Obj, Ref } from "@dxos/echo";
|
|
22
|
-
import { EffectEx } from "@dxos/effect";
|
|
23
|
-
import { invariant } from "@dxos/invariant";
|
|
24
|
-
import { DXN } from "@dxos/keys";
|
|
25
|
-
import { log } from "@dxos/log";
|
|
26
|
-
import { trim } from "@dxos/util";
|
|
27
|
-
var __dxlog_file = "/__w/dxos/dxos/packages/core/compute/assistant-toolkit/src/operations/run-instructions.ts";
|
|
28
|
-
var DEFAULT_MODEL = DXN.make("com.anthropic.model.claude-opus-4-8.default");
|
|
29
|
-
var routineOutputSchema = (output) => {
|
|
30
|
-
if ("$id" in output && output.$id === "/schemas/unknown") {
|
|
31
|
-
return Schema.Any;
|
|
32
|
-
}
|
|
33
|
-
return JsonSchema.toEffectSchema(output);
|
|
34
|
-
};
|
|
35
|
-
var run_instructions_default = RunInstructions.pipe(Operation.withHandler(Effect.fnUntraced(function* (data) {
|
|
36
|
-
log.info("processing input", {
|
|
37
|
-
input: data.input
|
|
38
|
-
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 32, S: this });
|
|
39
|
-
const input = yield* Ref.isRef(data.input) ? Database.load(data.input).pipe(Effect.map(Obj.toJSON)) : Effect.succeed(data.input);
|
|
40
|
-
yield* Database.flush();
|
|
41
|
-
const instructions = yield* Database.load(data.instructions);
|
|
42
|
-
yield* Trace.emitStatus(`Running ${instructions.id}`);
|
|
43
|
-
log.info("starting agent", {
|
|
44
|
-
instructions: instructions.id,
|
|
45
|
-
input
|
|
46
|
-
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 39, S: this });
|
|
47
|
-
const skillRefs = yield* Effect.filter(instructions.skills, (ref) => Database.load(ref).pipe(Effect.as(true), Effect.catchTag("EntityNotFoundError", () => Effect.succeed(false))));
|
|
48
|
-
const objectRefs = yield* Effect.filter(instructions.objects ?? [], (ref) => Database.load(ref).pipe(Effect.as(true), Effect.catchTag("EntityNotFoundError", () => Effect.succeed(false))));
|
|
49
|
-
const textDoc = yield* Database.load(instructions.text);
|
|
50
|
-
let promptText = Template.process(textDoc.content, input);
|
|
51
|
-
if (input !== void 0) {
|
|
52
|
-
promptText += `
|
|
53
|
-
<input>${JSON.stringify(input)}</input>`;
|
|
54
|
-
}
|
|
55
|
-
let systemText = trim`
|
|
56
|
-
You are an agent running in the non-interactive mode.
|
|
57
|
-
The user is unable to see what you are doing, and cannot answer any questions.
|
|
58
|
-
Do not ask questions.
|
|
59
|
-
Complete the task before you, and at the end call [completeJob] with the output.
|
|
60
|
-
If you are unable to complete the task, call [completeJob] with the failure reason.
|
|
61
|
-
If no output is required, call [completeJob] with an empty object: {}
|
|
62
|
-
Do not stop until you call [completeJob].
|
|
63
|
-
`;
|
|
64
|
-
if (data.systemInstructions) {
|
|
65
|
-
systemText += `
|
|
66
|
-
${data.systemInstructions}`;
|
|
67
|
-
}
|
|
68
|
-
const modelLayer = AiService.model(DXN.getName(data.model ?? DEFAULT_MODEL));
|
|
69
|
-
let feed;
|
|
70
|
-
if (data.chat) {
|
|
71
|
-
const chat = yield* Database.load(data.chat);
|
|
72
|
-
invariant(Obj.instanceOf(Chat, chat), "Expected Chat object.", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 71, S: this, A: ["Obj.instanceOf(Chat.Chat, chat)", "'Expected Chat object.'"] });
|
|
73
|
-
feed = yield* Database.load(chat.feed);
|
|
74
|
-
} else {
|
|
75
|
-
feed = yield* Database.add(Feed.make());
|
|
76
|
-
}
|
|
77
|
-
const resultSink = yield* Deferred.make();
|
|
78
|
-
const promptToolkit = makePromptAgentToolkit({
|
|
79
|
-
output: routineOutputSchema(instructions.output),
|
|
80
|
-
resultSink
|
|
81
|
-
});
|
|
82
|
-
const runtime2 = yield* Effect.runtime();
|
|
83
|
-
const session = yield* EffectEx.acquireReleaseResource(() => new AiSession.Session({
|
|
84
|
-
feed,
|
|
85
|
-
runtime: runtime2
|
|
86
|
-
}));
|
|
87
|
-
yield* Effect.promise(() => session.context.bind({
|
|
88
|
-
skills: skillRefs,
|
|
89
|
-
objects: data.chat ? [
|
|
90
|
-
...objectRefs,
|
|
91
|
-
data.chat
|
|
92
|
-
] : objectRefs
|
|
93
|
-
}));
|
|
94
|
-
yield* session.createRequest({
|
|
95
|
-
prompt: promptText,
|
|
96
|
-
system: systemText,
|
|
97
|
-
toolkit: promptToolkit
|
|
98
|
-
}).pipe(Effect.provide(Layer.mergeAll(modelLayer, ToolExecutionService({
|
|
99
|
-
feed
|
|
100
|
-
}), makeToolResolverFromOperations())));
|
|
101
|
-
return yield* Deferred.poll(resultSink).pipe(Effect.flatten, Effect.flatten, Effect.catchTag("NoSuchElementException", () => Effect.gen(function* () {
|
|
102
|
-
yield* session.createRequest({
|
|
103
|
-
prompt: "You must signal task completion by calling [completeJob] with the output or failure reason.",
|
|
104
|
-
system: systemText,
|
|
105
|
-
toolkit: promptToolkit
|
|
106
|
-
}).pipe(Effect.provide(Layer.mergeAll(modelLayer, ToolExecutionService({
|
|
107
|
-
feed
|
|
108
|
-
}), makeToolResolverFromOperations())));
|
|
109
|
-
return yield* Deferred.poll(resultSink).pipe(Effect.flatten, Effect.flatten, Effect.catchTag("NoSuchElementException", () => Effect.fail(new PromptError("Agent did not signal task completion.", {}))));
|
|
110
|
-
})));
|
|
111
|
-
}, Effect.tapBoth({
|
|
112
|
-
onSuccess: () => Database.flush(),
|
|
113
|
-
onFailure: () => Database.flush()
|
|
114
|
-
}), Effect.scoped)), Operation.opaqueHandler);
|
|
115
|
-
var makePromptAgentToolkit = (options) => {
|
|
116
|
-
class PromptAgentToolkit extends Toolkit.make(Tool.make("completeJob", {
|
|
117
|
-
parameters: {
|
|
118
|
-
success: Schema.optional(options.output),
|
|
119
|
-
failure: Schema.optional(Schema.Struct({
|
|
120
|
-
message: Schema.String.annotations({
|
|
121
|
-
description: "Short message describing the error."
|
|
122
|
-
}),
|
|
123
|
-
description: Schema.optional(Schema.String).annotations({
|
|
124
|
-
description: "Optional longer message describing in detail what went wrong"
|
|
125
|
-
})
|
|
126
|
-
}))
|
|
127
|
-
}
|
|
128
|
-
})) {
|
|
129
|
-
}
|
|
130
|
-
const layer = PromptAgentToolkit.toLayer({
|
|
131
|
-
completeJob: Effect.fnUntraced(function* (result) {
|
|
132
|
-
if (result.failure) {
|
|
133
|
-
yield* Deferred.fail(options.resultSink, new PromptError(result.failure.message, {
|
|
134
|
-
description: result.failure.description
|
|
135
|
-
}));
|
|
136
|
-
} else {
|
|
137
|
-
yield* Deferred.succeed(options.resultSink, result.success);
|
|
138
|
-
}
|
|
139
|
-
})
|
|
140
|
-
});
|
|
141
|
-
return OpaqueToolkit.make(PromptAgentToolkit, layer);
|
|
142
|
-
};
|
|
143
|
-
var ToolExecutionService = ({ feed }) => Layer.unwrapEffect(Effect.gen(function* () {
|
|
144
|
-
const operationInvoker = yield* Operation.Service;
|
|
145
|
-
return makeToolExecutionService({
|
|
146
|
-
invoke: (tool, input) => Effect.gen(function* () {
|
|
147
|
-
const operationDef = getOperationFromTool(tool).pipe(Option.getOrThrow);
|
|
148
|
-
log("invoking operation", {
|
|
149
|
-
operationDef,
|
|
150
|
-
input
|
|
151
|
-
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 147, S: this });
|
|
152
|
-
const result = yield* operationInvoker.invoke(operationDef, input, {
|
|
153
|
-
conversation: Obj.getURI(feed)
|
|
154
|
-
}).pipe(Effect.orDie);
|
|
155
|
-
log("result", {
|
|
156
|
-
result
|
|
157
|
-
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 154, S: this });
|
|
158
|
-
return result;
|
|
159
|
-
})
|
|
160
|
-
});
|
|
161
|
-
}));
|
|
162
|
-
export {
|
|
163
|
-
run_instructions_default as default
|
|
164
|
-
};
|
|
165
|
-
//# sourceMappingURL=run-instructions-72ASH5EZ.mjs.map
|