@dxos/assistant-toolkit 0.8.4-main.ae835ea → 0.8.4-main.bcb3aa67d6
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/neutral/add-artifact-OBP4D5RN.mjs +30 -0
- package/dist/lib/neutral/add-artifact-OBP4D5RN.mjs.map +7 -0
- package/dist/lib/neutral/agent-27Z7BESA.mjs +95 -0
- package/dist/lib/neutral/agent-27Z7BESA.mjs.map +7 -0
- package/dist/lib/neutral/chunk-2NKPVOXM.mjs +267 -0
- package/dist/lib/neutral/chunk-2NKPVOXM.mjs.map +7 -0
- package/dist/lib/neutral/chunk-3ZUJIEFV.mjs +184 -0
- package/dist/lib/neutral/chunk-3ZUJIEFV.mjs.map +7 -0
- package/dist/lib/neutral/chunk-4QGZEDWS.mjs +140 -0
- package/dist/lib/neutral/chunk-4QGZEDWS.mjs.map +7 -0
- package/dist/lib/neutral/chunk-6FL4C6KD.mjs +86 -0
- package/dist/lib/neutral/chunk-6FL4C6KD.mjs.map +7 -0
- package/dist/lib/neutral/chunk-6IAJ2JI5.mjs +54 -0
- package/dist/lib/neutral/chunk-6IAJ2JI5.mjs.map +7 -0
- package/dist/lib/neutral/chunk-AGG6OZNB.mjs +74 -0
- package/dist/lib/neutral/chunk-AGG6OZNB.mjs.map +7 -0
- package/dist/lib/neutral/chunk-AKMBURAD.mjs +320 -0
- package/dist/lib/neutral/chunk-AKMBURAD.mjs.map +7 -0
- package/dist/lib/neutral/chunk-BO4ZVH7M.mjs +73 -0
- package/dist/lib/neutral/chunk-BO4ZVH7M.mjs.map +7 -0
- package/dist/lib/neutral/chunk-CJUCONUJ.mjs +99 -0
- package/dist/lib/neutral/chunk-CJUCONUJ.mjs.map +7 -0
- package/dist/lib/neutral/chunk-GAJ6MKJX.mjs +363 -0
- package/dist/lib/neutral/chunk-GAJ6MKJX.mjs.map +7 -0
- package/dist/lib/neutral/chunk-HEFG73F2.mjs +53 -0
- package/dist/lib/neutral/chunk-HEFG73F2.mjs.map +7 -0
- package/dist/lib/neutral/chunk-HZM3HNAS.mjs +78 -0
- package/dist/lib/neutral/chunk-HZM3HNAS.mjs.map +7 -0
- package/dist/lib/neutral/chunk-ILZ2ODWC.mjs +95 -0
- package/dist/lib/neutral/chunk-ILZ2ODWC.mjs.map +7 -0
- package/dist/lib/neutral/chunk-IQNOIB23.mjs +58 -0
- package/dist/lib/neutral/chunk-IQNOIB23.mjs.map +7 -0
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
- package/dist/lib/neutral/chunk-KWZG4QBN.mjs +685 -0
- package/dist/lib/neutral/chunk-KWZG4QBN.mjs.map +7 -0
- package/dist/lib/neutral/chunk-LI6VMCJW.mjs +27 -0
- package/dist/lib/neutral/chunk-LI6VMCJW.mjs.map +7 -0
- package/dist/lib/neutral/chunk-MEZ4UFR6.mjs +25 -0
- package/dist/lib/neutral/chunk-MEZ4UFR6.mjs.map +7 -0
- package/dist/lib/neutral/chunk-VBSCQN37.mjs +52 -0
- package/dist/lib/neutral/chunk-VBSCQN37.mjs.map +7 -0
- package/dist/lib/neutral/chunk-VDEDVOS6.mjs +39 -0
- package/dist/lib/neutral/chunk-VDEDVOS6.mjs.map +7 -0
- package/dist/lib/neutral/chunk-YBTLIXQK.mjs +29 -0
- package/dist/lib/neutral/chunk-YBTLIXQK.mjs.map +7 -0
- package/dist/lib/neutral/context-add-U5LSEQLG.mjs +22 -0
- package/dist/lib/neutral/context-add-U5LSEQLG.mjs.map +7 -0
- package/dist/lib/neutral/context-remove-3YGXLVRA.mjs +22 -0
- package/dist/lib/neutral/context-remove-3YGXLVRA.mjs.map +7 -0
- package/dist/lib/neutral/create-P6I22VS5.mjs +23 -0
- package/dist/lib/neutral/create-P6I22VS5.mjs.map +7 -0
- package/dist/lib/neutral/create-project-YEDZU75J.mjs +34 -0
- package/dist/lib/neutral/create-project-YEDZU75J.mjs.map +7 -0
- package/dist/lib/neutral/delete-LHMZDJFA.mjs +19 -0
- package/dist/lib/neutral/delete-LHMZDJFA.mjs.map +7 -0
- package/dist/lib/neutral/document-create-53ZVNGFR.mjs +57 -0
- package/dist/lib/neutral/document-create-53ZVNGFR.mjs.map +7 -0
- package/dist/lib/neutral/enable-blueprints-Q5NXGX2G.mjs +48 -0
- package/dist/lib/neutral/enable-blueprints-Q5NXGX2G.mjs.map +7 -0
- package/dist/lib/neutral/entity-extraction-CFXRZWZK.mjs +196 -0
- package/dist/lib/neutral/entity-extraction-CFXRZWZK.mjs.map +7 -0
- package/dist/lib/neutral/exa-P4G3DCYB.mjs +28 -0
- package/dist/lib/neutral/exa-P4G3DCYB.mjs.map +7 -0
- package/dist/lib/neutral/fetch-TLKREIZA.mjs +16 -0
- package/dist/lib/neutral/fetch-TLKREIZA.mjs.map +7 -0
- package/dist/lib/neutral/fetch-messages-AFX7ZAVE.mjs +154 -0
- package/dist/lib/neutral/fetch-messages-AFX7ZAVE.mjs.map +7 -0
- package/dist/lib/neutral/get-context-MKM4CEGH.mjs +35 -0
- package/dist/lib/neutral/get-context-MKM4CEGH.mjs.map +7 -0
- package/dist/lib/neutral/index.mjs +248 -0
- package/dist/lib/neutral/index.mjs.map +7 -0
- package/dist/lib/neutral/load-KHLICMGJ.mjs +17 -0
- package/dist/lib/neutral/load-KHLICMGJ.mjs.map +7 -0
- package/dist/lib/neutral/meta.json +1 -0
- package/dist/lib/{browser/index.mjs → neutral/mock-JSY4GY77.mjs} +28 -1953
- package/dist/lib/neutral/mock-JSY4GY77.mjs.map +7 -0
- package/dist/lib/neutral/object-create-7J7D53FT.mjs +43 -0
- package/dist/lib/neutral/object-create-7J7D53FT.mjs.map +7 -0
- package/dist/lib/neutral/object-delete-QFXUHJ2D.mjs +18 -0
- package/dist/lib/neutral/object-delete-QFXUHJ2D.mjs.map +7 -0
- package/dist/lib/neutral/object-update-C73HRM5F.mjs +28 -0
- package/dist/lib/neutral/object-update-C73HRM5F.mjs.map +7 -0
- package/dist/lib/neutral/project-rules-ZVV4TFOQ.mjs +77 -0
- package/dist/lib/neutral/project-rules-ZVV4TFOQ.mjs.map +7 -0
- package/dist/lib/neutral/prompt-J2XSDAWH.mjs +138 -0
- package/dist/lib/neutral/prompt-J2XSDAWH.mjs.map +7 -0
- package/dist/lib/neutral/qualifier-WRYRVSET.mjs +104 -0
- package/dist/lib/neutral/qualifier-WRYRVSET.mjs.map +7 -0
- package/dist/lib/neutral/query-FUFKLAN2.mjs +66 -0
- package/dist/lib/neutral/query-FUFKLAN2.mjs.map +7 -0
- package/dist/lib/neutral/query-U4LWIBNG.mjs +32 -0
- package/dist/lib/neutral/query-U4LWIBNG.mjs.map +7 -0
- package/dist/lib/neutral/query-blueprints-Y5CXJLCT.mjs +17 -0
- package/dist/lib/neutral/query-blueprints-Y5CXJLCT.mjs.map +7 -0
- package/dist/lib/neutral/read-JJN7YXHI.mjs +19 -0
- package/dist/lib/neutral/read-JJN7YXHI.mjs.map +7 -0
- package/dist/lib/neutral/relation-create-YWV2TUKS.mjs +42 -0
- package/dist/lib/neutral/relation-create-YWV2TUKS.mjs.map +7 -0
- package/dist/lib/neutral/relation-delete-JGGA4CYQ.mjs +18 -0
- package/dist/lib/neutral/relation-delete-JGGA4CYQ.mjs.map +7 -0
- package/dist/lib/neutral/research-UBK6ZGX7.mjs +109 -0
- package/dist/lib/neutral/research-UBK6ZGX7.mjs.map +7 -0
- package/dist/lib/neutral/save-JZ73KUMA.mjs +23 -0
- package/dist/lib/neutral/save-JZ73KUMA.mjs.map +7 -0
- package/dist/lib/neutral/schema-add-7WKPPKW4.mjs +24 -0
- package/dist/lib/neutral/schema-add-7WKPPKW4.mjs.map +7 -0
- package/dist/lib/neutral/schema-list-MIAIKERK.mjs +30 -0
- package/dist/lib/neutral/schema-list-MIAIKERK.mjs.map +7 -0
- package/dist/lib/neutral/sync-issues-FIRE3XR6.mjs +179 -0
- package/dist/lib/neutral/sync-issues-FIRE3XR6.mjs.map +7 -0
- package/dist/lib/neutral/tag-add-IKD4ADDM.mjs +19 -0
- package/dist/lib/neutral/tag-add-IKD4ADDM.mjs.map +7 -0
- package/dist/lib/neutral/tag-remove-PCSKCFT2.mjs +19 -0
- package/dist/lib/neutral/tag-remove-PCSKCFT2.mjs.map +7 -0
- package/dist/lib/neutral/testing/index.mjs +81 -0
- package/dist/lib/neutral/testing/index.mjs.map +7 -0
- package/dist/lib/neutral/update-HZ7A3ZA5.mjs +20 -0
- package/dist/lib/neutral/update-HZ7A3ZA5.mjs.map +7 -0
- package/dist/lib/neutral/update-tasks-TZ65WZ44.mjs +46 -0
- package/dist/lib/neutral/update-tasks-TZ65WZ44.mjs.map +7 -0
- package/dist/types/src/blueprints/automation/blueprint.d.ts +4 -0
- package/dist/types/src/blueprints/automation/blueprint.d.ts.map +1 -0
- package/dist/types/src/blueprints/automation/index.d.ts +2 -0
- package/dist/types/src/blueprints/automation/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/blueprint-manager/blueprint.d.ts +4 -0
- package/dist/types/src/blueprints/blueprint-manager/blueprint.d.ts.map +1 -0
- package/dist/types/src/blueprints/blueprint-manager/blueprint.test.d.ts +2 -0
- package/dist/types/src/blueprints/blueprint-manager/blueprint.test.d.ts.map +1 -0
- package/dist/types/src/blueprints/blueprint-manager/functions/definitions.d.ts +59 -0
- package/dist/types/src/blueprints/blueprint-manager/functions/definitions.d.ts.map +1 -0
- package/dist/types/src/blueprints/blueprint-manager/functions/enable-blueprints.d.ts +36 -0
- package/dist/types/src/blueprints/blueprint-manager/functions/enable-blueprints.d.ts.map +1 -0
- package/dist/types/src/blueprints/blueprint-manager/functions/index.d.ts +4 -0
- package/dist/types/src/blueprints/blueprint-manager/functions/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/blueprint-manager/functions/query-blueprints.d.ts +27 -0
- package/dist/types/src/blueprints/blueprint-manager/functions/query-blueprints.d.ts.map +1 -0
- package/dist/types/src/blueprints/blueprint-manager/index.d.ts +3 -0
- package/dist/types/src/blueprints/blueprint-manager/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/browser/blueprint.d.ts +4 -0
- package/dist/types/src/blueprints/browser/blueprint.d.ts.map +1 -0
- package/dist/types/src/blueprints/browser/blueprint.test.d.ts +2 -0
- package/dist/types/src/blueprints/browser/blueprint.test.d.ts.map +1 -0
- package/dist/types/src/blueprints/browser/index.d.ts +2 -0
- package/dist/types/src/blueprints/browser/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/database/blueprint.d.ts +4 -0
- package/dist/types/src/blueprints/database/blueprint.d.ts.map +1 -0
- package/dist/types/src/blueprints/database/blueprint.test.d.ts +2 -0
- package/dist/types/src/blueprints/database/blueprint.test.d.ts.map +1 -0
- package/dist/types/src/blueprints/database/functions/context-add.d.ts +7 -0
- package/dist/types/src/blueprints/database/functions/context-add.d.ts.map +1 -0
- package/dist/types/src/blueprints/database/functions/context-remove.d.ts +7 -0
- package/dist/types/src/blueprints/database/functions/context-remove.d.ts.map +1 -0
- package/dist/types/src/blueprints/database/functions/definitions.d.ts +58 -0
- package/dist/types/src/blueprints/database/functions/definitions.d.ts.map +1 -0
- package/dist/types/src/blueprints/database/functions/index.d.ts +4 -0
- package/dist/types/src/blueprints/database/functions/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/database/functions/load.d.ts +7 -0
- package/dist/types/src/blueprints/database/functions/load.d.ts.map +1 -0
- package/dist/types/src/blueprints/database/functions/object-create.d.ts +8 -0
- package/dist/types/src/blueprints/database/functions/object-create.d.ts.map +1 -0
- package/dist/types/src/blueprints/database/functions/object-delete.d.ts +7 -0
- package/dist/types/src/blueprints/database/functions/object-delete.d.ts.map +1 -0
- package/dist/types/src/blueprints/database/functions/object-update.d.ts +10 -0
- package/dist/types/src/blueprints/database/functions/object-update.d.ts.map +1 -0
- package/dist/types/src/blueprints/database/functions/query.d.ts +11 -0
- package/dist/types/src/blueprints/database/functions/query.d.ts.map +1 -0
- package/dist/types/src/blueprints/database/functions/relation-create.d.ts +10 -0
- package/dist/types/src/blueprints/database/functions/relation-create.d.ts.map +1 -0
- package/dist/types/src/blueprints/database/functions/relation-delete.d.ts +7 -0
- package/dist/types/src/blueprints/database/functions/relation-delete.d.ts.map +1 -0
- package/dist/types/src/blueprints/database/functions/schema-add.d.ts +9 -0
- package/dist/types/src/blueprints/database/functions/schema-add.d.ts.map +1 -0
- package/dist/types/src/blueprints/database/functions/schema-list.d.ts +7 -0
- package/dist/types/src/blueprints/database/functions/schema-list.d.ts.map +1 -0
- package/dist/types/src/blueprints/database/functions/tag-add.d.ts +8 -0
- package/dist/types/src/blueprints/database/functions/tag-add.d.ts.map +1 -0
- package/dist/types/src/blueprints/database/functions/tag-remove.d.ts +8 -0
- package/dist/types/src/blueprints/database/functions/tag-remove.d.ts.map +1 -0
- package/dist/types/src/blueprints/database/index.d.ts +3 -0
- package/dist/types/src/blueprints/database/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/design/blueprint.d.ts +4 -0
- package/dist/types/src/blueprints/design/blueprint.d.ts.map +1 -0
- package/dist/types/src/blueprints/design/blueprint.test.d.ts +2 -0
- package/dist/types/src/blueprints/design/blueprint.test.d.ts.map +1 -0
- package/dist/types/src/blueprints/design/index.d.ts +1 -2
- package/dist/types/src/blueprints/design/index.d.ts.map +1 -1
- package/dist/types/src/blueprints/discord/blueprint.d.ts +4 -0
- package/dist/types/src/blueprints/discord/blueprint.d.ts.map +1 -0
- package/dist/types/src/blueprints/discord/functions/definitions.d.ts +16 -0
- package/dist/types/src/blueprints/discord/functions/definitions.d.ts.map +1 -0
- package/dist/types/src/{functions/discord → blueprints/discord/functions}/fetch-messages.d.ts +4 -2
- package/dist/types/src/blueprints/discord/functions/fetch-messages.d.ts.map +1 -0
- package/dist/types/src/blueprints/discord/functions/fetch-messages.test.d.ts.map +1 -0
- package/dist/types/src/blueprints/discord/functions/index.d.ts +4 -0
- package/dist/types/src/blueprints/discord/functions/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/discord/index.d.ts +2 -2
- package/dist/types/src/blueprints/discord/index.d.ts.map +1 -1
- package/dist/types/src/blueprints/github/functions/definitions.d.ts +8 -0
- package/dist/types/src/blueprints/github/functions/definitions.d.ts.map +1 -0
- package/dist/types/src/blueprints/github/functions/fetch-prs.d.ts +9 -0
- package/dist/types/src/blueprints/github/functions/fetch-prs.d.ts.map +1 -0
- package/dist/types/src/blueprints/github/functions/index.d.ts +4 -0
- package/dist/types/src/blueprints/github/functions/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/github/index.d.ts +2 -0
- package/dist/types/src/blueprints/github/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/index.d.ts +14 -6
- package/dist/types/src/blueprints/index.d.ts.map +1 -1
- package/dist/types/src/blueprints/linear/blueprint.d.ts +4 -0
- package/dist/types/src/blueprints/linear/blueprint.d.ts.map +1 -0
- package/dist/types/src/blueprints/linear/functions/definitions.d.ts +7 -0
- package/dist/types/src/blueprints/linear/functions/definitions.d.ts.map +1 -0
- package/dist/types/src/blueprints/linear/functions/index.d.ts +4 -0
- package/dist/types/src/blueprints/linear/functions/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/linear/functions/linear.test.d.ts.map +1 -0
- package/dist/types/src/blueprints/linear/functions/sync-issues.d.ts +11 -0
- package/dist/types/src/blueprints/linear/functions/sync-issues.d.ts.map +1 -0
- package/dist/types/src/blueprints/linear/index.d.ts +2 -2
- package/dist/types/src/blueprints/linear/index.d.ts.map +1 -1
- package/dist/types/src/blueprints/markdown/blueprint.d.ts +4 -0
- package/dist/types/src/blueprints/markdown/blueprint.d.ts.map +1 -0
- package/dist/types/src/blueprints/markdown/functions/create.d.ts +8 -0
- package/dist/types/src/blueprints/markdown/functions/create.d.ts.map +1 -0
- package/dist/types/src/blueprints/markdown/functions/definitions.d.ts +45 -0
- package/dist/types/src/blueprints/markdown/functions/definitions.d.ts.map +1 -0
- package/dist/types/src/blueprints/markdown/functions/index.d.ts +4 -0
- package/dist/types/src/blueprints/markdown/functions/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/markdown/functions/read.d.ts +17 -0
- package/dist/types/src/blueprints/markdown/functions/read.d.ts.map +1 -0
- package/dist/types/src/blueprints/markdown/functions/update.d.ts +16 -0
- package/dist/types/src/blueprints/markdown/functions/update.d.ts.map +1 -0
- package/dist/types/src/blueprints/markdown/index.d.ts +3 -0
- package/dist/types/src/blueprints/markdown/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/memory/blueprint.d.ts +4 -0
- package/dist/types/src/blueprints/memory/blueprint.d.ts.map +1 -0
- package/dist/types/src/blueprints/memory/blueprint.test.d.ts +2 -0
- package/dist/types/src/blueprints/memory/blueprint.test.d.ts.map +1 -0
- package/dist/types/src/blueprints/memory/functions/definitions.d.ts +17 -0
- package/dist/types/src/blueprints/memory/functions/definitions.d.ts.map +1 -0
- package/dist/types/src/blueprints/memory/functions/delete.d.ts +10 -0
- package/dist/types/src/blueprints/memory/functions/delete.d.ts.map +1 -0
- package/dist/types/src/blueprints/memory/functions/index.d.ts +4 -0
- package/dist/types/src/blueprints/memory/functions/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/memory/functions/query.d.ts +8 -0
- package/dist/types/src/blueprints/memory/functions/query.d.ts.map +1 -0
- package/dist/types/src/blueprints/memory/functions/save.d.ts +8 -0
- package/dist/types/src/blueprints/memory/functions/save.d.ts.map +1 -0
- package/dist/types/src/blueprints/memory/index.d.ts +3 -0
- package/dist/types/src/blueprints/memory/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/planning/blueprint.d.ts +4 -0
- package/dist/types/src/blueprints/planning/blueprint.d.ts.map +1 -0
- package/dist/types/src/blueprints/planning/functions/definitions.d.ts +11 -0
- package/dist/types/src/blueprints/planning/functions/definitions.d.ts.map +1 -0
- package/dist/types/src/blueprints/planning/functions/index.d.ts +4 -0
- package/dist/types/src/blueprints/planning/functions/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/planning/functions/update-tasks.d.ts +11 -0
- package/dist/types/src/blueprints/planning/functions/update-tasks.d.ts.map +1 -0
- package/dist/types/src/blueprints/planning/index.d.ts +2 -2
- package/dist/types/src/blueprints/planning/index.d.ts.map +1 -1
- package/dist/types/src/blueprints/planning-old/blueprint.d.ts +4 -0
- package/dist/types/src/blueprints/planning-old/blueprint.d.ts.map +1 -0
- package/dist/types/src/blueprints/planning-old/blueprint.test.d.ts +2 -0
- package/dist/types/src/blueprints/planning-old/blueprint.test.d.ts.map +1 -0
- package/dist/types/src/blueprints/planning-old/functions/definitions.d.ts +31 -0
- package/dist/types/src/blueprints/planning-old/functions/definitions.d.ts.map +1 -0
- package/dist/types/src/blueprints/planning-old/functions/index.d.ts +4 -0
- package/dist/types/src/blueprints/planning-old/functions/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/planning-old/functions/read.d.ts +17 -0
- package/dist/types/src/blueprints/planning-old/functions/read.d.ts.map +1 -0
- package/dist/types/src/blueprints/planning-old/functions/task-list.d.ts.map +1 -0
- package/dist/types/src/blueprints/planning-old/functions/task-list.test.d.ts.map +1 -0
- package/dist/types/src/blueprints/planning-old/functions/update.d.ts +19 -0
- package/dist/types/src/blueprints/planning-old/functions/update.d.ts.map +1 -0
- package/dist/types/src/blueprints/planning-old/index.d.ts +3 -0
- package/dist/types/src/blueprints/planning-old/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/project/blueprint.d.ts +4 -0
- package/dist/types/src/blueprints/project/blueprint.d.ts.map +1 -0
- package/dist/types/src/blueprints/project/blueprint.test.d.ts +2 -0
- package/dist/types/src/blueprints/project/blueprint.test.d.ts.map +1 -0
- package/dist/types/src/blueprints/project/functions/add-artifact.d.ts +8 -0
- package/dist/types/src/blueprints/project/functions/add-artifact.d.ts.map +1 -0
- package/dist/types/src/blueprints/project/functions/agent.d.ts +4 -0
- package/dist/types/src/blueprints/project/functions/agent.d.ts.map +1 -0
- package/dist/types/src/blueprints/project/functions/definitions.d.ts +150 -0
- package/dist/types/src/blueprints/project/functions/definitions.d.ts.map +1 -0
- package/dist/types/src/blueprints/project/functions/get-context.d.ts +15 -0
- package/dist/types/src/blueprints/project/functions/get-context.d.ts.map +1 -0
- package/dist/types/src/blueprints/project/functions/index.d.ts +4 -0
- package/dist/types/src/blueprints/project/functions/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/project/functions/qualifier.d.ts +69 -0
- package/dist/types/src/blueprints/project/functions/qualifier.d.ts.map +1 -0
- package/dist/types/src/blueprints/project/index.d.ts +4 -0
- package/dist/types/src/blueprints/project/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/project/sync-triggers.d.ts +11 -0
- package/dist/types/src/blueprints/project/sync-triggers.d.ts.map +1 -0
- package/dist/types/src/blueprints/project-wizard/blueprint.d.ts +4 -0
- package/dist/types/src/blueprints/project-wizard/blueprint.d.ts.map +1 -0
- package/dist/types/src/blueprints/project-wizard/functions/create-project.d.ts +48 -0
- package/dist/types/src/blueprints/project-wizard/functions/create-project.d.ts.map +1 -0
- package/dist/types/src/blueprints/project-wizard/functions/definitions.d.ts +49 -0
- package/dist/types/src/blueprints/project-wizard/functions/definitions.d.ts.map +1 -0
- package/dist/types/src/blueprints/project-wizard/functions/index.d.ts +4 -0
- package/dist/types/src/blueprints/project-wizard/functions/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/project-wizard/functions/project-rules.d.ts +4 -0
- package/dist/types/src/blueprints/project-wizard/functions/project-rules.d.ts.map +1 -0
- package/dist/types/src/blueprints/project-wizard/index.d.ts +3 -0
- package/dist/types/src/blueprints/project-wizard/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/research/blueprint.d.ts +4 -0
- package/dist/types/src/blueprints/research/blueprint.d.ts.map +1 -0
- package/dist/types/src/blueprints/research/blueprint.test.d.ts +2 -0
- package/dist/types/src/blueprints/research/blueprint.test.d.ts.map +1 -0
- package/dist/types/src/blueprints/research/functions/definitions.d.ts +21 -0
- package/dist/types/src/blueprints/research/functions/definitions.d.ts.map +1 -0
- package/dist/types/src/blueprints/research/functions/document-create.d.ts +12 -0
- package/dist/types/src/blueprints/research/functions/document-create.d.ts.map +1 -0
- package/dist/types/src/blueprints/research/functions/index.d.ts +4 -0
- package/dist/types/src/blueprints/research/functions/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/research/functions/research.d.ts +18 -0
- package/dist/types/src/blueprints/research/functions/research.d.ts.map +1 -0
- package/dist/types/src/blueprints/research/functions/research.test.d.ts.map +1 -0
- package/dist/types/src/blueprints/research/index.d.ts +3 -2
- package/dist/types/src/blueprints/research/index.d.ts.map +1 -1
- package/dist/types/src/blueprints/research/types/ResearchGraph.d.ts +24 -0
- package/dist/types/src/blueprints/research/types/ResearchGraph.d.ts.map +1 -0
- package/dist/types/src/blueprints/research/types/index.d.ts +7 -0
- package/dist/types/src/blueprints/research/types/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/testing.d.ts +16 -4
- package/dist/types/src/blueprints/testing.d.ts.map +1 -1
- package/dist/types/src/blueprints/websearch/blueprint.d.ts +4 -0
- package/dist/types/src/blueprints/websearch/blueprint.d.ts.map +1 -0
- package/dist/types/src/blueprints/websearch/blueprint.test.d.ts +2 -0
- package/dist/types/src/blueprints/websearch/blueprint.test.d.ts.map +1 -0
- package/dist/types/src/blueprints/websearch/functions/definitions.d.ts +5 -0
- package/dist/types/src/blueprints/websearch/functions/definitions.d.ts.map +1 -0
- package/dist/types/src/blueprints/websearch/functions/fetch.d.ts +6 -0
- package/dist/types/src/blueprints/websearch/functions/fetch.d.ts.map +1 -0
- package/dist/types/src/blueprints/websearch/functions/index.d.ts +4 -0
- package/dist/types/src/blueprints/websearch/functions/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/websearch/index.d.ts +3 -3
- package/dist/types/src/blueprints/websearch/index.d.ts.map +1 -1
- package/dist/types/src/blueprints/websearch/{websearch-toolkit.d.ts → toolkit.d.ts} +4 -1
- package/dist/types/src/blueprints/websearch/toolkit.d.ts.map +1 -0
- package/dist/types/src/{functions/research → crud}/graph.d.ts +14 -11
- package/dist/types/src/crud/graph.d.ts.map +1 -0
- package/dist/types/src/crud/graph.test.d.ts.map +1 -0
- package/dist/types/src/crud/index.d.ts +2 -0
- package/dist/types/src/crud/index.d.ts.map +1 -0
- package/dist/types/src/functions/agent/definitions.d.ts +101 -0
- package/dist/types/src/functions/agent/definitions.d.ts.map +1 -0
- package/dist/types/src/functions/agent/index.d.ts +3 -4
- package/dist/types/src/functions/agent/index.d.ts.map +1 -1
- package/dist/types/src/functions/agent/prompt.d.ts +100 -9
- package/dist/types/src/functions/agent/prompt.d.ts.map +1 -1
- package/dist/types/src/functions/agent/prompt.test.d.ts +2 -0
- package/dist/types/src/functions/agent/prompt.test.d.ts.map +1 -0
- package/dist/types/src/functions/entity-extraction/definitions.d.ts +182 -0
- package/dist/types/src/functions/entity-extraction/definitions.d.ts.map +1 -0
- package/dist/types/src/functions/entity-extraction/entity-extraction.d.ts +2 -171
- package/dist/types/src/functions/entity-extraction/entity-extraction.d.ts.map +1 -1
- package/dist/types/src/functions/entity-extraction/index.d.ts +3 -173
- package/dist/types/src/functions/entity-extraction/index.d.ts.map +1 -1
- package/dist/types/src/functions/exa/data/exa-search-1748337321991.d.ts.map +1 -0
- package/dist/types/src/functions/exa/data/exa-search-1748337331526.d.ts.map +1 -0
- package/dist/types/src/functions/exa/data/exa-search-1748337344119.d.ts.map +1 -0
- package/dist/types/src/functions/exa/data/index.d.ts.map +1 -0
- package/dist/types/src/functions/exa/definitions.d.ts +9 -0
- package/dist/types/src/functions/exa/definitions.d.ts.map +1 -0
- package/dist/types/src/functions/exa/exa.d.ts +4 -2
- package/dist/types/src/functions/exa/exa.d.ts.map +1 -1
- package/dist/types/src/functions/exa/index.d.ts +3 -2
- package/dist/types/src/functions/exa/index.d.ts.map +1 -1
- package/dist/types/src/functions/exa/mock.d.ts +3 -2
- package/dist/types/src/functions/exa/mock.d.ts.map +1 -1
- package/dist/types/src/functions/index.d.ts +1 -5
- package/dist/types/src/functions/index.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +3 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/sync/sync.d.ts +3 -3
- package/dist/types/src/sync/sync.d.ts.map +1 -1
- package/dist/types/src/testing/index.d.ts +2 -1
- package/dist/types/src/testing/index.d.ts.map +1 -1
- package/dist/types/src/testing/plugins.d.ts +19 -0
- package/dist/types/src/testing/plugins.d.ts.map +1 -0
- package/dist/types/src/toolkits/WebToolkit.d.ts +38 -0
- package/dist/types/src/toolkits/WebToolkit.d.ts.map +1 -0
- package/dist/types/src/toolkits/index.d.ts +2 -0
- package/dist/types/src/toolkits/index.d.ts.map +1 -0
- package/dist/types/src/types/Chat.d.ts +52 -0
- package/dist/types/src/types/Chat.d.ts.map +1 -0
- package/dist/types/src/types/Memory.d.ts +12 -0
- package/dist/types/src/types/Memory.d.ts.map +1 -0
- package/dist/types/src/types/Plan.d.ts +86 -0
- package/dist/types/src/types/Plan.d.ts.map +1 -0
- package/dist/types/src/types/Project.d.ts +73 -0
- package/dist/types/src/types/Project.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +5 -0
- package/dist/types/src/types/index.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +50 -38
- package/src/blueprints/automation/blueprint.ts +109 -0
- package/src/blueprints/automation/index.ts +5 -0
- package/src/blueprints/blueprint-manager/blueprint.test.ts +130 -0
- package/src/blueprints/blueprint-manager/blueprint.ts +49 -0
- package/src/blueprints/blueprint-manager/functions/definitions.ts +46 -0
- package/src/blueprints/blueprint-manager/functions/enable-blueprints.ts +44 -0
- package/src/blueprints/blueprint-manager/functions/index.ts +12 -0
- package/src/blueprints/blueprint-manager/functions/query-blueprints.ts +19 -0
- package/src/blueprints/blueprint-manager/index.ts +6 -0
- package/src/blueprints/browser/blueprint.conversations.json +1 -0
- package/src/blueprints/browser/blueprint.test.ts +64 -0
- package/src/blueprints/browser/blueprint.ts +41 -0
- package/src/blueprints/browser/index.ts +5 -0
- package/src/blueprints/database/blueprint.conversations.json +1 -0
- package/src/blueprints/database/blueprint.test.ts +343 -0
- package/src/blueprints/database/blueprint.ts +67 -0
- package/src/blueprints/database/functions/context-add.ts +24 -0
- package/src/blueprints/database/functions/context-remove.ts +24 -0
- package/src/blueprints/database/functions/definitions.ts +301 -0
- package/src/blueprints/database/functions/index.ts +23 -0
- package/src/blueprints/database/functions/load.ts +19 -0
- package/src/blueprints/database/functions/object-create.ts +38 -0
- package/src/blueprints/database/functions/object-delete.ts +20 -0
- package/src/blueprints/database/functions/object-update.ts +30 -0
- package/src/blueprints/database/functions/query.ts +56 -0
- package/src/blueprints/database/functions/relation-create.ts +34 -0
- package/src/blueprints/database/functions/relation-delete.ts +21 -0
- package/src/blueprints/database/functions/schema-add.ts +28 -0
- package/src/blueprints/database/functions/schema-list.ts +27 -0
- package/src/blueprints/database/functions/tag-add.ts +21 -0
- package/src/blueprints/database/functions/tag-remove.ts +21 -0
- package/src/blueprints/database/index.ts +21 -0
- package/src/blueprints/design/{design-blueprint.test.ts → blueprint.test.ts} +26 -37
- package/src/blueprints/design/{design-blueprint.ts → blueprint.ts} +21 -13
- package/src/blueprints/design/index.ts +1 -3
- package/src/blueprints/discord/blueprint.ts +42 -0
- package/src/blueprints/discord/functions/definitions.ts +71 -0
- package/src/{functions/discord → blueprints/discord/functions}/fetch-messages.test.ts +11 -14
- package/src/blueprints/discord/functions/fetch-messages.ts +199 -0
- package/src/blueprints/discord/functions/index.ts +9 -0
- package/src/blueprints/discord/index.ts +2 -3
- package/src/blueprints/github/functions/definitions.ts +27 -0
- package/src/blueprints/github/functions/fetch-prs.ts +24 -0
- package/src/blueprints/github/functions/index.ts +9 -0
- package/src/blueprints/github/index.ts +5 -0
- package/src/blueprints/index.ts +14 -6
- package/src/blueprints/linear/blueprint.ts +43 -0
- package/src/blueprints/linear/functions/definitions.ts +24 -0
- package/src/blueprints/linear/functions/index.ts +9 -0
- package/src/blueprints/linear/functions/linear.test.ts +60 -0
- package/src/{functions/linear → blueprints/linear/functions}/sync-issues.ts +44 -50
- package/src/blueprints/linear/index.ts +2 -3
- package/src/blueprints/markdown/blueprint.ts +36 -0
- package/src/blueprints/markdown/functions/create.ts +20 -0
- package/src/blueprints/markdown/functions/definitions.ts +80 -0
- package/src/blueprints/markdown/functions/index.ts +13 -0
- package/src/blueprints/markdown/functions/read.ts +22 -0
- package/src/blueprints/markdown/functions/update.ts +22 -0
- package/src/blueprints/markdown/index.ts +11 -0
- package/src/blueprints/memory/blueprint.conversations.json +1 -0
- package/src/blueprints/memory/blueprint.test.ts +139 -0
- package/src/blueprints/memory/blueprint.ts +42 -0
- package/src/blueprints/memory/functions/definitions.ts +68 -0
- package/src/blueprints/memory/functions/delete.ts +20 -0
- package/src/blueprints/memory/functions/index.ts +13 -0
- package/src/blueprints/memory/functions/query.ts +32 -0
- package/src/blueprints/memory/functions/save.ts +20 -0
- package/src/blueprints/memory/index.ts +6 -0
- package/src/blueprints/planning/blueprint.ts +25 -0
- package/src/blueprints/planning/functions/definitions.ts +137 -0
- package/src/blueprints/planning/functions/index.ts +9 -0
- package/src/blueprints/planning/functions/update-tasks.ts +45 -0
- package/src/blueprints/planning/index.ts +3 -4
- package/src/blueprints/{planning/planning-blueprint.test.ts → planning-old/blueprint.test.ts} +26 -33
- package/src/blueprints/{planning/planning-blueprint.ts → planning-old/blueprint.ts} +21 -13
- package/src/blueprints/planning-old/functions/definitions.ts +53 -0
- package/src/blueprints/planning-old/functions/index.ts +12 -0
- package/src/blueprints/planning-old/functions/read.ts +24 -0
- package/src/blueprints/planning-old/functions/update.ts +31 -0
- package/src/blueprints/planning-old/index.ts +6 -0
- package/src/blueprints/project/blueprint.conversations.json +1 -0
- package/src/blueprints/project/blueprint.test.ts +587 -0
- package/src/blueprints/project/blueprint.ts +65 -0
- package/src/blueprints/project/functions/add-artifact.ts +30 -0
- package/src/blueprints/project/functions/agent.ts +75 -0
- package/src/blueprints/project/functions/definitions.ts +91 -0
- package/src/blueprints/project/functions/get-context.ts +46 -0
- package/src/blueprints/project/functions/index.ts +14 -0
- package/src/blueprints/project/functions/qualifier.ts +90 -0
- package/src/blueprints/project/index.ts +7 -0
- package/src/blueprints/project/sync-triggers.ts +149 -0
- package/src/blueprints/project-wizard/blueprint.ts +43 -0
- package/src/blueprints/project-wizard/functions/create-project.ts +33 -0
- package/src/blueprints/project-wizard/functions/definitions.ts +48 -0
- package/src/blueprints/project-wizard/functions/index.ts +12 -0
- package/src/blueprints/project-wizard/functions/project-rules.ts +76 -0
- package/src/blueprints/project-wizard/index.ts +6 -0
- package/src/blueprints/research/blueprint.ts +61 -0
- package/src/blueprints/research/functions/definitions.ts +87 -0
- package/src/blueprints/research/functions/document-create.ts +50 -0
- package/src/blueprints/research/functions/index.ts +12 -0
- package/src/{functions/research/instructions-research.tpl → blueprints/research/functions/research-instructions.tpl} +19 -11
- package/src/blueprints/research/functions/research.conversations.json +1 -0
- package/src/blueprints/research/functions/research.test.ts +152 -0
- package/src/blueprints/research/functions/research.ts +138 -0
- package/src/blueprints/research/index.ts +3 -3
- package/src/blueprints/research/types/ResearchGraph.ts +62 -0
- package/src/blueprints/research/types/index.ts +32 -0
- package/src/blueprints/testing.ts +34 -5
- package/src/blueprints/websearch/blueprint.conversations.json +1 -0
- package/src/blueprints/websearch/blueprint.test.ts +39 -0
- package/src/blueprints/websearch/blueprint.ts +31 -0
- package/src/blueprints/websearch/functions/definitions.ts +25 -0
- package/src/blueprints/websearch/functions/fetch.ts +18 -0
- package/src/blueprints/websearch/functions/index.ts +9 -0
- package/src/blueprints/websearch/index.ts +3 -4
- package/src/blueprints/websearch/{websearch-toolkit.ts → toolkit.ts} +4 -0
- package/src/crud/graph.test.ts +46 -0
- package/src/{functions/research → crud}/graph.ts +32 -40
- package/src/crud/index.ts +5 -0
- package/src/functions/READ_THIS.md +5 -0
- package/src/functions/agent/definitions.ts +53 -0
- package/src/functions/agent/index.ts +3 -5
- package/src/functions/agent/prompt.test.ts +144 -0
- package/src/functions/agent/prompt.ts +120 -85
- package/src/functions/entity-extraction/definitions.ts +44 -0
- package/src/functions/entity-extraction/entity-extraction.conversations.json +1 -1
- package/src/functions/entity-extraction/entity-extraction.test.ts +19 -43
- package/src/functions/entity-extraction/entity-extraction.ts +84 -88
- package/src/functions/entity-extraction/index.ts +4 -4
- package/src/functions/exa/definitions.ts +37 -0
- package/src/functions/exa/exa.ts +22 -27
- package/src/functions/exa/index.ts +8 -2
- package/src/functions/exa/mock.ts +26 -35
- package/src/functions/index.ts +1 -5
- package/src/index.ts +3 -1
- package/src/sync/sync.ts +38 -30
- package/src/testing/index.ts +2 -1
- package/src/testing/plugins.tsx +77 -0
- package/src/toolkits/WebToolkit.ts +33 -0
- package/src/toolkits/index.ts +5 -0
- package/src/types/Chat.ts +62 -0
- package/src/types/Memory.ts +23 -0
- package/src/types/Plan.ts +110 -0
- package/src/types/Project.ts +208 -0
- package/src/types/index.ts +8 -0
- package/dist/lib/browser/index.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/node-esm/index.mjs +0 -2483
- package/dist/lib/node-esm/index.mjs.map +0 -7
- package/dist/lib/node-esm/meta.json +0 -1
- package/dist/types/src/blueprints/design/design-blueprint.d.ts +0 -4
- package/dist/types/src/blueprints/design/design-blueprint.d.ts.map +0 -1
- package/dist/types/src/blueprints/design/design-blueprint.test.d.ts +0 -2
- package/dist/types/src/blueprints/design/design-blueprint.test.d.ts.map +0 -1
- package/dist/types/src/blueprints/discord/discord-blueprint.d.ts +0 -18
- package/dist/types/src/blueprints/discord/discord-blueprint.d.ts.map +0 -1
- package/dist/types/src/blueprints/linear/linear-blueprint.d.ts +0 -18
- package/dist/types/src/blueprints/linear/linear-blueprint.d.ts.map +0 -1
- package/dist/types/src/blueprints/planning/planning-blueprint.d.ts +0 -4
- package/dist/types/src/blueprints/planning/planning-blueprint.d.ts.map +0 -1
- package/dist/types/src/blueprints/planning/planning-blueprint.test.d.ts +0 -2
- package/dist/types/src/blueprints/planning/planning-blueprint.test.d.ts.map +0 -1
- package/dist/types/src/blueprints/research/research-blueprint.d.ts +0 -4
- package/dist/types/src/blueprints/research/research-blueprint.d.ts.map +0 -1
- package/dist/types/src/blueprints/research/research-blueprint.test.d.ts +0 -2
- package/dist/types/src/blueprints/research/research-blueprint.test.d.ts.map +0 -1
- package/dist/types/src/blueprints/websearch/websearch-blueprint.d.ts +0 -4
- package/dist/types/src/blueprints/websearch/websearch-blueprint.d.ts.map +0 -1
- package/dist/types/src/blueprints/websearch/websearch-toolkit.d.ts.map +0 -1
- package/dist/types/src/experimental/feed.test.d.ts +0 -2
- package/dist/types/src/experimental/feed.test.d.ts.map +0 -1
- package/dist/types/src/functions/discord/fetch-messages.d.ts.map +0 -1
- package/dist/types/src/functions/discord/fetch-messages.test.d.ts.map +0 -1
- package/dist/types/src/functions/discord/index.d.ts +0 -12
- package/dist/types/src/functions/discord/index.d.ts.map +0 -1
- package/dist/types/src/functions/document/index.d.ts +0 -12
- package/dist/types/src/functions/document/index.d.ts.map +0 -1
- package/dist/types/src/functions/document/read.d.ts +0 -7
- package/dist/types/src/functions/document/read.d.ts.map +0 -1
- package/dist/types/src/functions/document/update.d.ts +0 -6
- package/dist/types/src/functions/document/update.d.ts.map +0 -1
- package/dist/types/src/functions/github/fetch-prs.d.ts +0 -6
- package/dist/types/src/functions/github/fetch-prs.d.ts.map +0 -1
- package/dist/types/src/functions/linear/index.d.ts +0 -9
- package/dist/types/src/functions/linear/index.d.ts.map +0 -1
- package/dist/types/src/functions/linear/linear.test.d.ts.map +0 -1
- package/dist/types/src/functions/linear/sync-issues.d.ts +0 -12
- package/dist/types/src/functions/linear/sync-issues.d.ts.map +0 -1
- package/dist/types/src/functions/research/create-document.d.ts +0 -7
- package/dist/types/src/functions/research/create-document.d.ts.map +0 -1
- package/dist/types/src/functions/research/graph.d.ts.map +0 -1
- package/dist/types/src/functions/research/graph.test.d.ts.map +0 -1
- package/dist/types/src/functions/research/index.d.ts +0 -19
- package/dist/types/src/functions/research/index.d.ts.map +0 -1
- package/dist/types/src/functions/research/research-graph.d.ts +0 -18
- package/dist/types/src/functions/research/research-graph.d.ts.map +0 -1
- package/dist/types/src/functions/research/research.d.ts +0 -13
- package/dist/types/src/functions/research/research.d.ts.map +0 -1
- package/dist/types/src/functions/research/research.test.d.ts.map +0 -1
- package/dist/types/src/functions/research/types.d.ts +0 -384
- package/dist/types/src/functions/research/types.d.ts.map +0 -1
- package/dist/types/src/functions/tasks/index.d.ts +0 -15
- package/dist/types/src/functions/tasks/index.d.ts.map +0 -1
- package/dist/types/src/functions/tasks/read.d.ts +0 -7
- package/dist/types/src/functions/tasks/read.d.ts.map +0 -1
- package/dist/types/src/functions/tasks/task-list.d.ts.map +0 -1
- package/dist/types/src/functions/tasks/task-list.test.d.ts.map +0 -1
- package/dist/types/src/functions/tasks/update.d.ts +0 -9
- package/dist/types/src/functions/tasks/update.d.ts.map +0 -1
- package/dist/types/src/plugins.d.ts +0 -19
- package/dist/types/src/plugins.d.ts.map +0 -1
- package/dist/types/src/testing/data/exa-search-1748337321991.d.ts.map +0 -1
- package/dist/types/src/testing/data/exa-search-1748337331526.d.ts.map +0 -1
- package/dist/types/src/testing/data/exa-search-1748337344119.d.ts.map +0 -1
- package/dist/types/src/testing/data/index.d.ts.map +0 -1
- package/src/blueprints/discord/discord-blueprint.ts +0 -34
- package/src/blueprints/linear/linear-blueprint.ts +0 -35
- package/src/blueprints/research/research-blueprint.ts +0 -45
- package/src/blueprints/websearch/websearch-blueprint.ts +0 -20
- package/src/experimental/feed.test.ts +0 -108
- package/src/functions/discord/fetch-messages.ts +0 -251
- package/src/functions/discord/index.ts +0 -9
- package/src/functions/document/index.ts +0 -11
- package/src/functions/document/read.ts +0 -29
- package/src/functions/document/update.ts +0 -30
- package/src/functions/github/fetch-prs.ts +0 -30
- package/src/functions/linear/index.ts +0 -9
- package/src/functions/linear/linear.test.ts +0 -86
- package/src/functions/research/create-document.ts +0 -69
- package/src/functions/research/graph.test.ts +0 -69
- package/src/functions/research/index.ts +0 -15
- package/src/functions/research/research-graph.ts +0 -47
- package/src/functions/research/research.conversations.json +0 -10714
- package/src/functions/research/research.test.ts +0 -240
- package/src/functions/research/research.ts +0 -155
- package/src/functions/research/types.ts +0 -24
- package/src/functions/tasks/index.ts +0 -11
- package/src/functions/tasks/read.ts +0 -34
- package/src/functions/tasks/update.ts +0 -52
- package/src/plugins.tsx +0 -68
- /package/dist/types/src/{functions/discord → blueprints/discord/functions}/fetch-messages.test.d.ts +0 -0
- /package/dist/types/src/{functions/linear → blueprints/linear/functions}/linear.test.d.ts +0 -0
- /package/dist/types/src/{functions/tasks → blueprints/planning-old/functions}/task-list.d.ts +0 -0
- /package/dist/types/src/{functions/tasks → blueprints/planning-old/functions}/task-list.test.d.ts +0 -0
- /package/dist/types/src/{functions/research → blueprints/research/functions}/research.test.d.ts +0 -0
- /package/dist/types/src/{functions/research → crud}/graph.test.d.ts +0 -0
- /package/dist/types/src/{testing → functions/exa}/data/exa-search-1748337321991.d.ts +0 -0
- /package/dist/types/src/{testing → functions/exa}/data/exa-search-1748337331526.d.ts +0 -0
- /package/dist/types/src/{testing → functions/exa}/data/exa-search-1748337344119.d.ts +0 -0
- /package/dist/types/src/{testing → functions/exa}/data/index.d.ts +0 -0
- /package/src/{functions/tasks → blueprints/planning-old/functions}/task-list.test.ts +0 -0
- /package/src/{functions/tasks → blueprints/planning-old/functions}/task-list.ts +0 -0
- /package/src/blueprints/research/{research-blueprint.test.ts → blueprint.test.ts} +0 -0
- /package/src/{testing → functions/exa}/data/exa-search-1748337321991.ts +0 -0
- /package/src/{testing → functions/exa}/data/exa-search-1748337331526.ts +0 -0
- /package/src/{testing → functions/exa}/data/exa-search-1748337344119.ts +0 -0
- /package/src/{testing → functions/exa}/data/index.ts +0 -0
|
@@ -0,0 +1,363 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__export
|
|
3
|
+
} from "./chunk-J5LGTIGS.mjs";
|
|
4
|
+
|
|
5
|
+
// src/crud/graph.ts
|
|
6
|
+
import * as Tool from "@effect/ai/Tool";
|
|
7
|
+
import * as Toolkit from "@effect/ai/Toolkit";
|
|
8
|
+
import * as Context from "effect/Context";
|
|
9
|
+
import * as Effect from "effect/Effect";
|
|
10
|
+
import * as Function from "effect/Function";
|
|
11
|
+
import * as Option from "effect/Option";
|
|
12
|
+
import * as Schema from "effect/Schema";
|
|
13
|
+
import * as SchemaAST from "effect/SchemaAST";
|
|
14
|
+
import { Entity, Filter, Obj, Query, Type } from "@dxos/echo";
|
|
15
|
+
import { Database } from "@dxos/echo";
|
|
16
|
+
import { ReferenceAnnotationId, RelationSourceDXNId, RelationSourceId, RelationTargetDXNId, RelationTargetId, createObject, getTypeAnnotation, getTypeIdentifierAnnotation } from "@dxos/echo/internal";
|
|
17
|
+
import { isEncodedReference } from "@dxos/echo-protocol";
|
|
18
|
+
import { mapAst } from "@dxos/effect";
|
|
19
|
+
import { ContextQueueService } from "@dxos/functions";
|
|
20
|
+
import { DXN, ObjectId } from "@dxos/keys";
|
|
21
|
+
import { log } from "@dxos/log";
|
|
22
|
+
import { deepMapValues, isNonNullable, trim } from "@dxos/util";
|
|
23
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/core/assistant-toolkit/src/crud/graph.ts";
|
|
24
|
+
var Subgraph = Schema.Struct({
|
|
25
|
+
/** Objects and relations. */
|
|
26
|
+
objects: Schema.Array(Schema.Any)
|
|
27
|
+
});
|
|
28
|
+
var findRelatedSchema = async (db, anchor) => {
|
|
29
|
+
const allSchemas = await db.graph.schemaRegistry.query().run();
|
|
30
|
+
return allSchemas.filter((schema) => {
|
|
31
|
+
if (getTypeAnnotation(schema)?.kind !== Entity.Kind.Relation) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
return isSchemaAddressableByDxn(anchor, DXN.parse(getTypeAnnotation(schema).sourceSchema)) || isSchemaAddressableByDxn(anchor, DXN.parse(getTypeAnnotation(schema).targetSchema));
|
|
35
|
+
}).map((schema) => ({
|
|
36
|
+
kind: "relation",
|
|
37
|
+
schema
|
|
38
|
+
}));
|
|
39
|
+
};
|
|
40
|
+
var isSchemaAddressableByDxn = (schema, dxn) => {
|
|
41
|
+
if (getTypeIdentifierAnnotation(schema) === dxn.toString()) {
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
const t = dxn.asTypeDXN();
|
|
45
|
+
if (t) {
|
|
46
|
+
return t.type === Type.getTypename(schema);
|
|
47
|
+
}
|
|
48
|
+
return false;
|
|
49
|
+
};
|
|
50
|
+
var LocalSearchToolkit = Toolkit.make(Tool.make("search_local_search", {
|
|
51
|
+
description: "Search the local database for information using a vector index",
|
|
52
|
+
parameters: {
|
|
53
|
+
query: Schema.String.annotations({
|
|
54
|
+
description: "The query to search for. Could be a question or a topic or a set of keywords."
|
|
55
|
+
})
|
|
56
|
+
},
|
|
57
|
+
success: Schema.Unknown,
|
|
58
|
+
failure: Schema.Never,
|
|
59
|
+
dependencies: [
|
|
60
|
+
Database.Service
|
|
61
|
+
]
|
|
62
|
+
}));
|
|
63
|
+
var LocalSearchHandler = LocalSearchToolkit.toLayer({
|
|
64
|
+
search_local_search: Effect.fn(function* ({ query: query2 }) {
|
|
65
|
+
const objects = yield* Database.runQuery(Query.select(Filter.text(query2, {
|
|
66
|
+
type: "vector"
|
|
67
|
+
})));
|
|
68
|
+
const results = [
|
|
69
|
+
...objects
|
|
70
|
+
];
|
|
71
|
+
const option = yield* Effect.serviceOption(ContextQueueService);
|
|
72
|
+
if (Option.isSome(option)) {
|
|
73
|
+
const queueObjects = yield* Effect.promise(() => option.value.queue.queryObjects());
|
|
74
|
+
results.push(...queueObjects);
|
|
75
|
+
}
|
|
76
|
+
return trim`
|
|
77
|
+
<local_context>
|
|
78
|
+
${JSON.stringify(results, null, 2)}
|
|
79
|
+
</local_context>
|
|
80
|
+
`;
|
|
81
|
+
})
|
|
82
|
+
});
|
|
83
|
+
var GraphWriterSchema = class extends Context.Tag("@dxos/assistant/GraphWriterSchema")() {
|
|
84
|
+
};
|
|
85
|
+
var makeGraphWriterToolkit = ({ schema }) => {
|
|
86
|
+
return Toolkit.make(Tool.make("graph_writer", {
|
|
87
|
+
description: "Write to the local graph database",
|
|
88
|
+
parameters: createExtractionSchema(schema).fields,
|
|
89
|
+
success: Schema.Unknown,
|
|
90
|
+
failure: Schema.Never,
|
|
91
|
+
dependencies: [
|
|
92
|
+
Database.Service,
|
|
93
|
+
ContextQueueService
|
|
94
|
+
]
|
|
95
|
+
}).annotateContext(Context.make(GraphWriterSchema, {
|
|
96
|
+
schema
|
|
97
|
+
})));
|
|
98
|
+
};
|
|
99
|
+
var makeGraphWriterHandler = (toolkit, { onAppend } = {}) => {
|
|
100
|
+
const { schema } = Context.get(toolkit.tools.graph_writer.annotations, GraphWriterSchema);
|
|
101
|
+
return toolkit.toLayer({
|
|
102
|
+
graph_writer: Effect.fn(function* (input) {
|
|
103
|
+
const { db } = yield* Database.Service;
|
|
104
|
+
const { queue } = yield* ContextQueueService;
|
|
105
|
+
const data = yield* Effect.promise(() => sanitizeObjects(schema, input, db, queue));
|
|
106
|
+
yield* Effect.promise(() => queue.append(data));
|
|
107
|
+
const dxns = data.map((obj) => Obj.getDXN(obj));
|
|
108
|
+
onAppend?.(dxns);
|
|
109
|
+
return dxns;
|
|
110
|
+
})
|
|
111
|
+
});
|
|
112
|
+
};
|
|
113
|
+
var createExtractionSchema = (types) => {
|
|
114
|
+
return Schema.Struct({
|
|
115
|
+
...Object.fromEntries(types.map(preprocessSchema).map((schema, index) => [
|
|
116
|
+
`objects_${getSanitizedSchemaName(types[index])}`,
|
|
117
|
+
Schema.optional(Schema.Array(schema)).annotations({
|
|
118
|
+
description: `The objects of type: ${Type.getDXN(types[index])?.asTypeDXN().type}. ${SchemaAST.getDescriptionAnnotation(types[index].ast).pipe(Option.getOrElse(() => ""))}`
|
|
119
|
+
})
|
|
120
|
+
]))
|
|
121
|
+
});
|
|
122
|
+
};
|
|
123
|
+
var getSanitizedSchemaName = (schema) => {
|
|
124
|
+
return Type.getDXN(schema).asTypeDXN().type.replaceAll(/[^a-zA-Z0-9]+/g, "_");
|
|
125
|
+
};
|
|
126
|
+
var sanitizeObjects = async (types, data, db, queue) => {
|
|
127
|
+
const entries = types.map((type) => data[`objects_${getSanitizedSchemaName(type)}`]?.map((object) => ({
|
|
128
|
+
data: object,
|
|
129
|
+
schema: type
|
|
130
|
+
})) ?? []).flat();
|
|
131
|
+
const idMap = /* @__PURE__ */ new Map();
|
|
132
|
+
const existingIds = /* @__PURE__ */ new Set();
|
|
133
|
+
const enitties = /* @__PURE__ */ new Map();
|
|
134
|
+
const resolveId = (id) => {
|
|
135
|
+
if (ObjectId.isValid(id)) {
|
|
136
|
+
existingIds.add(id);
|
|
137
|
+
return DXN.fromLocalObjectId(id);
|
|
138
|
+
}
|
|
139
|
+
const mappedId = idMap.get(id);
|
|
140
|
+
if (mappedId) {
|
|
141
|
+
return DXN.fromLocalObjectId(mappedId);
|
|
142
|
+
}
|
|
143
|
+
return void 0;
|
|
144
|
+
};
|
|
145
|
+
const res = entries.map((entry) => {
|
|
146
|
+
if (ObjectId.isValid(entry.data.id)) {
|
|
147
|
+
return entry;
|
|
148
|
+
}
|
|
149
|
+
idMap.set(entry.data.id, ObjectId.random());
|
|
150
|
+
entry.data.id = idMap.get(entry.data.id);
|
|
151
|
+
return entry;
|
|
152
|
+
}).map((entry) => {
|
|
153
|
+
const data2 = deepMapValues(entry.data, (value, recurse) => {
|
|
154
|
+
if (isEncodedReference(value)) {
|
|
155
|
+
const ref = value["/"];
|
|
156
|
+
const id = resolveId(ref);
|
|
157
|
+
if (id) {
|
|
158
|
+
return {
|
|
159
|
+
"/": id.toString()
|
|
160
|
+
};
|
|
161
|
+
} else {
|
|
162
|
+
return {
|
|
163
|
+
"/": `search:?q=${encodeURIComponent(ref)}`
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return recurse(value);
|
|
168
|
+
});
|
|
169
|
+
if (Entity.getKind(entry.schema) === "relation") {
|
|
170
|
+
const sourceDxn = resolveId(data2.source);
|
|
171
|
+
if (!sourceDxn) {
|
|
172
|
+
log.warn("source not found", {
|
|
173
|
+
source: data2.source
|
|
174
|
+
}, {
|
|
175
|
+
F: __dxlog_file,
|
|
176
|
+
L: 273,
|
|
177
|
+
S: void 0,
|
|
178
|
+
C: (f, a) => f(...a)
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
const targetDxn = resolveId(data2.target);
|
|
182
|
+
if (!targetDxn) {
|
|
183
|
+
log.warn("target not found", {
|
|
184
|
+
target: data2.target
|
|
185
|
+
}, {
|
|
186
|
+
F: __dxlog_file,
|
|
187
|
+
L: 277,
|
|
188
|
+
S: void 0,
|
|
189
|
+
C: (f, a) => f(...a)
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
delete data2.source;
|
|
193
|
+
delete data2.target;
|
|
194
|
+
data2[RelationSourceDXNId] = sourceDxn;
|
|
195
|
+
data2[RelationTargetDXNId] = targetDxn;
|
|
196
|
+
}
|
|
197
|
+
return {
|
|
198
|
+
data: data2,
|
|
199
|
+
schema: entry.schema
|
|
200
|
+
};
|
|
201
|
+
}).filter((object) => !existingIds.has(object.data.id));
|
|
202
|
+
const dbObjects = await db.query(Query.select(Filter.id(...existingIds))).run();
|
|
203
|
+
const queueObjects = await queue?.getObjectsById([
|
|
204
|
+
...existingIds
|
|
205
|
+
]) ?? [];
|
|
206
|
+
const objects = [
|
|
207
|
+
...dbObjects,
|
|
208
|
+
...queueObjects
|
|
209
|
+
].filter(isNonNullable);
|
|
210
|
+
log.info("objects", {
|
|
211
|
+
dbObjects,
|
|
212
|
+
queueObjects,
|
|
213
|
+
existingIds
|
|
214
|
+
}, {
|
|
215
|
+
F: __dxlog_file,
|
|
216
|
+
L: 298,
|
|
217
|
+
S: void 0,
|
|
218
|
+
C: (f, a) => f(...a)
|
|
219
|
+
});
|
|
220
|
+
const missing = Array.from(existingIds).filter((id) => !objects.some((object) => object.id === id));
|
|
221
|
+
if (missing.length > 0) {
|
|
222
|
+
throw new Error(`Object IDs do not point to existing objects: ${missing.join(", ")}`);
|
|
223
|
+
}
|
|
224
|
+
return res.flatMap(({ data: data2, schema }) => {
|
|
225
|
+
let skip = false;
|
|
226
|
+
if (RelationSourceDXNId in data2) {
|
|
227
|
+
const id = data2[RelationSourceDXNId].asEchoDXN()?.echoId;
|
|
228
|
+
const obj = objects.find((object) => object.id === id) ?? enitties.get(id);
|
|
229
|
+
if (obj) {
|
|
230
|
+
delete data2[RelationSourceDXNId];
|
|
231
|
+
data2[RelationSourceId] = obj;
|
|
232
|
+
} else {
|
|
233
|
+
skip = true;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
if (RelationTargetDXNId in data2) {
|
|
237
|
+
const id = data2[RelationTargetDXNId].asEchoDXN()?.echoId;
|
|
238
|
+
const obj = objects.find((object) => object.id === id) ?? enitties.get(id);
|
|
239
|
+
if (obj) {
|
|
240
|
+
delete data2[RelationTargetDXNId];
|
|
241
|
+
data2[RelationTargetId] = obj;
|
|
242
|
+
} else {
|
|
243
|
+
skip = true;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
if (!skip) {
|
|
247
|
+
const obj = createObject(schema, data2);
|
|
248
|
+
enitties.set(obj.id, obj);
|
|
249
|
+
return [
|
|
250
|
+
obj
|
|
251
|
+
];
|
|
252
|
+
}
|
|
253
|
+
return [];
|
|
254
|
+
});
|
|
255
|
+
};
|
|
256
|
+
var SoftRef = Schema.Struct({
|
|
257
|
+
"/": Schema.String
|
|
258
|
+
}).annotations({
|
|
259
|
+
description: "Reference to another object."
|
|
260
|
+
});
|
|
261
|
+
var preprocessSchema = (schema) => {
|
|
262
|
+
const isRelationSchema = Entity.getKind(schema) === "relation";
|
|
263
|
+
const go = (ast, visited = /* @__PURE__ */ new Set()) => {
|
|
264
|
+
if (visited.has(ast)) {
|
|
265
|
+
return ast;
|
|
266
|
+
}
|
|
267
|
+
visited.add(ast);
|
|
268
|
+
if (SchemaAST.getAnnotation(ast, ReferenceAnnotationId).pipe(Option.isSome)) {
|
|
269
|
+
return SoftRef.ast;
|
|
270
|
+
}
|
|
271
|
+
return mapAst(ast, (child) => go(child, visited));
|
|
272
|
+
};
|
|
273
|
+
return Schema.make(mapAst(schema.ast, (ast) => go(ast))).pipe(Schema.omit("id"), Schema.extend(Schema.Struct({
|
|
274
|
+
id: Schema.String.annotations({
|
|
275
|
+
description: "The id of this object. Come up with a unique id based on your judgement."
|
|
276
|
+
})
|
|
277
|
+
})), isRelationSchema ? Schema.extend(Schema.Struct({
|
|
278
|
+
source: Schema.String.annotations({
|
|
279
|
+
description: "The id of the source object for this relation."
|
|
280
|
+
}),
|
|
281
|
+
target: Schema.String.annotations({
|
|
282
|
+
description: "The id of the target object for this relation."
|
|
283
|
+
})
|
|
284
|
+
})) : Function.identity);
|
|
285
|
+
};
|
|
286
|
+
|
|
287
|
+
// src/blueprints/research/types/ResearchGraph.ts
|
|
288
|
+
var ResearchGraph_exports = {};
|
|
289
|
+
__export(ResearchGraph_exports, {
|
|
290
|
+
LegacyResearchGraph: () => LegacyResearchGraph,
|
|
291
|
+
ResearchGraph: () => ResearchGraph,
|
|
292
|
+
contextQueueLayer: () => contextQueueLayer,
|
|
293
|
+
create: () => create,
|
|
294
|
+
query: () => query
|
|
295
|
+
});
|
|
296
|
+
import * as Effect2 from "effect/Effect";
|
|
297
|
+
import * as Layer from "effect/Layer";
|
|
298
|
+
import * as Schema2 from "effect/Schema";
|
|
299
|
+
import { Database as Database2, Obj as Obj2, Query as Query2, Ref, Type as Type2 } from "@dxos/echo";
|
|
300
|
+
import { SystemTypeAnnotation } from "@dxos/echo/internal";
|
|
301
|
+
import { Queue } from "@dxos/echo-db";
|
|
302
|
+
import { ContextQueueService as ContextQueueService2, QueueService } from "@dxos/functions";
|
|
303
|
+
var LegacyResearchGraph = Schema2.Struct({
|
|
304
|
+
queue: Ref.Ref(Queue)
|
|
305
|
+
}).pipe(Type2.object({
|
|
306
|
+
typename: "org.dxos.type.research-graph",
|
|
307
|
+
version: "0.1.0"
|
|
308
|
+
}), SystemTypeAnnotation.set(true));
|
|
309
|
+
var ResearchGraph = Schema2.Struct({
|
|
310
|
+
queue: Ref.Ref(Queue)
|
|
311
|
+
}).pipe(Type2.object({
|
|
312
|
+
typename: "org.dxos.type.researchGraph",
|
|
313
|
+
version: "0.1.0"
|
|
314
|
+
}), SystemTypeAnnotation.set(true));
|
|
315
|
+
var create = Effect2.fn("createResearchGraph")(function* () {
|
|
316
|
+
const queue = yield* QueueService.createQueue();
|
|
317
|
+
return yield* Database2.add(Obj2.make(ResearchGraph, {
|
|
318
|
+
queue: Ref.fromDXN(queue.dxn)
|
|
319
|
+
}));
|
|
320
|
+
});
|
|
321
|
+
var query = Effect2.fn("queryResearchGraph")(function* () {
|
|
322
|
+
const objects = yield* Database2.runQuery(Query2.type(ResearchGraph));
|
|
323
|
+
return objects.at(0);
|
|
324
|
+
});
|
|
325
|
+
var contextQueueLayer = Layer.unwrapEffect(Effect2.gen(function* () {
|
|
326
|
+
const researchGraph = (yield* query()) ?? (yield* create());
|
|
327
|
+
const researchQueue = yield* Database2.load(researchGraph.queue);
|
|
328
|
+
return ContextQueueService2.layer(researchQueue);
|
|
329
|
+
}));
|
|
330
|
+
|
|
331
|
+
// src/blueprints/research/types/index.ts
|
|
332
|
+
import { Text } from "@dxos/schema";
|
|
333
|
+
import { Event, HasConnection, HasRelationship, LegacyOrganization, LegacyPerson, Pipeline, Task } from "@dxos/types";
|
|
334
|
+
var ResearchDataTypes = [
|
|
335
|
+
// Objects
|
|
336
|
+
Event.Event,
|
|
337
|
+
Task.Task,
|
|
338
|
+
Text.Text,
|
|
339
|
+
// TODO(wittjosiah): Until views (e.g., Table) support relations this needs to be expressed via organization ref.
|
|
340
|
+
// Employer.Employer,
|
|
341
|
+
// Organization.Organization,
|
|
342
|
+
LegacyPerson,
|
|
343
|
+
LegacyOrganization,
|
|
344
|
+
Pipeline.Pipeline,
|
|
345
|
+
// Relations
|
|
346
|
+
HasRelationship.HasRelationship,
|
|
347
|
+
HasConnection.HasConnection
|
|
348
|
+
];
|
|
349
|
+
|
|
350
|
+
export {
|
|
351
|
+
Subgraph,
|
|
352
|
+
findRelatedSchema,
|
|
353
|
+
LocalSearchToolkit,
|
|
354
|
+
LocalSearchHandler,
|
|
355
|
+
makeGraphWriterToolkit,
|
|
356
|
+
makeGraphWriterHandler,
|
|
357
|
+
createExtractionSchema,
|
|
358
|
+
getSanitizedSchemaName,
|
|
359
|
+
sanitizeObjects,
|
|
360
|
+
ResearchGraph_exports,
|
|
361
|
+
ResearchDataTypes
|
|
362
|
+
};
|
|
363
|
+
//# sourceMappingURL=chunk-GAJ6MKJX.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/crud/graph.ts", "../../../src/blueprints/research/types/ResearchGraph.ts", "../../../src/blueprints/research/types/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Tool from '@effect/ai/Tool';\nimport * as Toolkit from '@effect/ai/Toolkit';\nimport * as Context from 'effect/Context';\nimport * as Effect from 'effect/Effect';\nimport * as Function from 'effect/Function';\nimport * as Option from 'effect/Option';\nimport * as Schema from 'effect/Schema';\nimport * as SchemaAST from 'effect/SchemaAST';\n\nimport { Entity, Filter, Obj, Query, Type } from '@dxos/echo';\nimport { Database } from '@dxos/echo';\nimport {\n ReferenceAnnotationId,\n RelationSourceDXNId,\n RelationSourceId,\n RelationTargetDXNId,\n RelationTargetId,\n createObject,\n getTypeAnnotation,\n getTypeIdentifierAnnotation,\n} from '@dxos/echo/internal';\nimport { type Queue } from '@dxos/echo-db';\nimport { isEncodedReference } from '@dxos/echo-protocol';\nimport { mapAst } from '@dxos/effect';\nimport { ContextQueueService } from '@dxos/functions';\nimport { DXN, ObjectId } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { deepMapValues, isNonNullable, trim } from '@dxos/util';\n\n// TODO(burdon): Unify with the graph schema.\nexport const Subgraph = Schema.Struct({\n /** Objects and relations. */\n objects: Schema.Array(Schema.Any),\n});\n\nexport interface Subgraph extends Schema.Schema.Type<typeof Subgraph> {}\n\nexport type RelatedSchema = {\n schema: Type.AnyEntity;\n kind: 'reference' | 'relation';\n};\n\n/**\n * Find all schemas that are related to the given schema.\n *\n * @param db\n * @param schema\n * @returns\n */\nexport const findRelatedSchema = async (db: Database.Database, anchor: Type.AnyEntity): Promise<RelatedSchema[]> => {\n // TODO(dmaretskyi): Query stored schemas.\n const allSchemas = await db.graph.schemaRegistry.query().run();\n\n // TODO(dmaretskyi): Also do references.\n return allSchemas\n .filter((schema) => {\n if (getTypeAnnotation(schema)?.kind !== Entity.Kind.Relation) {\n return false;\n }\n\n return (\n isSchemaAddressableByDxn(anchor, DXN.parse(getTypeAnnotation(schema)!.sourceSchema!)) ||\n isSchemaAddressableByDxn(anchor, DXN.parse(getTypeAnnotation(schema)!.targetSchema!))\n );\n })\n .map(\n (schema): RelatedSchema => ({\n kind: 'relation',\n schema,\n }),\n );\n};\n\n/**\n * Non-strict DXN comparison.\n * Returns true if the DXN could be resolved to the schema.\n */\nconst isSchemaAddressableByDxn = (schema: Type.AnyEntity, dxn: DXN): boolean => {\n if (getTypeIdentifierAnnotation(schema) === dxn.toString()) {\n return true;\n }\n\n const t = dxn.asTypeDXN();\n if (t) {\n return t.type === Type.getTypename(schema);\n }\n\n return false;\n};\n\n/**\n * Perform vector search in the local database.\n */\n// TODO(dmaretskyi): Rename `GraphReadToolkit`.\nexport const LocalSearchToolkit = Toolkit.make(\n Tool.make('search_local_search', {\n description: 'Search the local database for information using a vector index',\n parameters: {\n query: Schema.String.annotations({\n description: 'The query to search for. Could be a question or a topic or a set of keywords.',\n }),\n },\n success: Schema.Unknown,\n failure: Schema.Never,\n dependencies: [Database.Service],\n }),\n);\n\nexport const LocalSearchHandler = LocalSearchToolkit.toLayer({\n search_local_search: Effect.fn(function* ({ query }) {\n const objects = yield* Database.runQuery(Query.select(Filter.text(query, { type: 'vector' })));\n const results = [...objects];\n\n const option = yield* Effect.serviceOption(ContextQueueService);\n if (Option.isSome(option)) {\n const queueObjects = yield* Effect.promise(() => option.value.queue.queryObjects());\n // TODO(dmaretskyi): Text search on the queue.\n results.push(...queueObjects);\n }\n\n return trim`\n <local_context>\n ${JSON.stringify(results, null, 2)}\n </local_context>\n `;\n }),\n});\n\n/**\n * Attached as an annotation to the writer tool.\n */\nclass GraphWriterSchema extends Context.Tag('@dxos/assistant/GraphWriterSchema')<\n GraphWriterSchema,\n {\n schema: Type.AnyEntity[];\n }\n>() {}\n\n/**\n * Forms typed objects that can be written to the graph database.\n */\nexport const makeGraphWriterToolkit = ({ schema }: { schema: Type.AnyEntity[] }) => {\n return Toolkit.make(\n Tool.make('graph_writer', {\n description: 'Write to the local graph database',\n parameters: createExtractionSchema(schema).fields,\n success: Schema.Unknown,\n failure: Schema.Never,\n dependencies: [Database.Service, ContextQueueService],\n }).annotateContext(Context.make(GraphWriterSchema, { schema })),\n );\n};\n\nexport const makeGraphWriterHandler = (\n toolkit: ReturnType<typeof makeGraphWriterToolkit>,\n {\n onAppend,\n }: {\n onAppend?: (object: DXN[]) => void;\n } = {},\n) => {\n const { schema } = Context.get(\n toolkit.tools.graph_writer.annotations as Context.Context<GraphWriterSchema>,\n GraphWriterSchema,\n );\n\n return toolkit.toLayer({\n graph_writer: Effect.fn(function* (input) {\n const { db } = yield* Database.Service;\n const { queue } = yield* ContextQueueService;\n const data = yield* Effect.promise(() => sanitizeObjects(schema, input as any, db, queue));\n yield* Effect.promise(() => queue.append(data as Obj.Unknown[]));\n\n const dxns = data.map((obj) => Obj.getDXN(obj));\n onAppend?.(dxns);\n return dxns;\n }),\n });\n};\n\n/**\n * Create a schema for structured data extraction.\n */\nexport const createExtractionSchema = (types: Type.AnyEntity[]) => {\n return Schema.Struct({\n ...Object.fromEntries(\n types.map(preprocessSchema).map((schema, index) => [\n `objects_${getSanitizedSchemaName(types[index])}`,\n Schema.optional(Schema.Array(schema)).annotations({\n description: `The objects of type: ${Type.getDXN(types[index])?.asTypeDXN()!.type}. ${SchemaAST.getDescriptionAnnotation(types[index].ast).pipe(Option.getOrElse(() => ''))}`,\n }),\n ]),\n ),\n });\n};\n\nexport const getSanitizedSchemaName = (schema: Type.AnyEntity) => {\n return Type.getDXN(schema)!\n .asTypeDXN()!\n .type.replaceAll(/[^a-zA-Z0-9]+/g, '_');\n};\n\nexport const sanitizeObjects = async (\n types: Type.AnyEntity[],\n data: Record<string, readonly unknown[]>,\n db: Database.Database,\n queue?: Queue,\n): Promise<Obj.Unknown[]> => {\n const entries = types\n .map(\n (type) =>\n data[`objects_${getSanitizedSchemaName(type)}`]?.map((object: any) => ({\n data: object,\n schema: type,\n })) ?? [],\n )\n .flat();\n\n const idMap = new Map<string, string>();\n const existingIds = new Set<ObjectId>();\n const enitties = new Map<ObjectId, Entity.Unknown>();\n\n const resolveId = (id: string): DXN | undefined => {\n if (ObjectId.isValid(id)) {\n existingIds.add(id);\n return DXN.fromLocalObjectId(id);\n }\n\n const mappedId = idMap.get(id);\n if (mappedId) {\n return DXN.fromLocalObjectId(mappedId);\n }\n\n return undefined;\n };\n\n const res = entries\n .map((entry) => {\n // This entry mutates existing object.\n if (ObjectId.isValid(entry.data.id)) {\n return entry;\n }\n\n idMap.set(entry.data.id, ObjectId.random());\n entry.data.id = idMap.get(entry.data.id);\n return entry;\n })\n .map((entry) => {\n const data = deepMapValues(entry.data, (value, recurse) => {\n if (isEncodedReference(value)) {\n const ref = value['/'];\n const id = resolveId(ref);\n\n if (id) {\n // Link to an existing object.\n return { '/': id.toString() };\n } else {\n // Search URIs?\n return { '/': `search:?q=${encodeURIComponent(ref)}` };\n }\n }\n\n return recurse(value);\n });\n\n if (Entity.getKind(entry.schema) === 'relation') {\n const sourceDxn = resolveId(data.source);\n if (!sourceDxn) {\n log.warn('source not found', { source: data.source });\n }\n const targetDxn = resolveId(data.target);\n if (!targetDxn) {\n log.warn('target not found', { target: data.target });\n }\n delete data.source;\n delete data.target;\n data[RelationSourceDXNId] = sourceDxn;\n data[RelationTargetDXNId] = targetDxn;\n }\n\n return {\n data,\n schema: entry.schema,\n };\n })\n .filter((object) => !existingIds.has(object.data.id)); // TODO(dmaretskyi): This dissallows updating existing objects.\n\n // TODO(dmaretskyi): Use ref resolver.\n const dbObjects = await db.query(Query.select(Filter.id(...existingIds))).run();\n const queueObjects = (await queue?.getObjectsById([...existingIds])) ?? [];\n const objects = [...dbObjects, ...queueObjects].filter(isNonNullable);\n\n // TODO(dmaretskyi): Returns everything if IDs are empty!\n log.info('objects', { dbObjects, queueObjects, existingIds });\n const missing = Array.from(existingIds).filter((id) => !objects.some((object) => object.id === id));\n if (missing.length > 0) {\n throw new Error(`Object IDs do not point to existing objects: ${missing.join(', ')}`);\n }\n\n return res.flatMap(({ data, schema }) => {\n let skip = false;\n if (RelationSourceDXNId in data) {\n const id = (data[RelationSourceDXNId] as DXN).asEchoDXN()?.echoId;\n const obj = objects.find((object) => object.id === id) ?? enitties.get(id!);\n if (obj) {\n delete data[RelationSourceDXNId];\n data[RelationSourceId] = obj;\n } else {\n skip = true;\n }\n }\n if (RelationTargetDXNId in data) {\n const id = (data[RelationTargetDXNId] as DXN).asEchoDXN()?.echoId;\n const obj = objects.find((object) => object.id === id) ?? enitties.get(id!);\n if (obj) {\n delete data[RelationTargetDXNId];\n data[RelationTargetId] = obj;\n } else {\n skip = true;\n }\n }\n if (!skip) {\n const obj = createObject(schema, data);\n enitties.set(obj.id, obj);\n return [obj];\n }\n return [];\n });\n};\n\nconst SoftRef = Schema.Struct({\n '/': Schema.String,\n}).annotations({\n description: 'Reference to another object.',\n});\n\nconst preprocessSchema = (schema: Schema.Schema.AnyNoContext) => {\n const isRelationSchema = Entity.getKind(schema) === 'relation';\n\n const go = (ast: SchemaAST.AST, visited = new Set<SchemaAST.AST>()): SchemaAST.AST => {\n if (visited.has(ast)) {\n // Already visited this node, prevent infinite recursion.\n return ast;\n }\n visited.add(ast);\n\n if (SchemaAST.getAnnotation(ast, ReferenceAnnotationId).pipe(Option.isSome)) {\n return SoftRef.ast;\n }\n\n return mapAst(ast, (child) => go(child, visited));\n };\n\n return Schema.make<any, any, never>(mapAst(schema.ast, (ast) => go(ast))).pipe(\n Schema.omit('id'),\n Schema.extend(\n Schema.Struct({\n id: Schema.String.annotations({\n description: 'The id of this object. Come up with a unique id based on your judgement.',\n }),\n }),\n ),\n isRelationSchema\n ? Schema.extend(\n Schema.Struct({\n source: Schema.String.annotations({\n description: 'The id of the source object for this relation.',\n }),\n target: Schema.String.annotations({\n description: 'The id of the target object for this relation.',\n }),\n }),\n )\n : Function.identity<Schema.Schema.AnyNoContext>,\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Layer from 'effect/Layer';\nimport * as Schema from 'effect/Schema';\n\nimport { Database, Obj, Query, Ref, Type } from '@dxos/echo';\nimport { SystemTypeAnnotation } from '@dxos/echo/internal';\nimport { Queue } from '@dxos/echo-db';\nimport { ContextQueueService, QueueService } from '@dxos/functions';\n\n/** @deprecated Use ResearchGraph instead. */\nexport const LegacyResearchGraph = Schema.Struct({\n queue: Ref.Ref(Queue),\n}).pipe(\n Type.object({\n typename: 'org.dxos.type.research-graph',\n version: '0.1.0',\n }),\n SystemTypeAnnotation.set(true),\n);\n\nexport interface LegacyResearchGraph extends Schema.Schema.Type<typeof LegacyResearchGraph> {}\n\n/**\n * Container for a set of ephemeral research results.\n */\nexport const ResearchGraph = Schema.Struct({\n queue: Ref.Ref(Queue),\n}).pipe(\n Type.object({\n typename: 'org.dxos.type.researchGraph',\n version: '0.1.0',\n }),\n SystemTypeAnnotation.set(true),\n);\n\nexport interface ResearchGraph extends Schema.Schema.Type<typeof ResearchGraph> {}\n\nexport const create: () => Effect.Effect<ResearchGraph, never, Database.Service | QueueService> = Effect.fn(\n 'createResearchGraph',\n)(function* () {\n const queue = yield* QueueService.createQueue();\n return yield* Database.add(Obj.make(ResearchGraph, { queue: Ref.fromDXN(queue.dxn) }));\n});\n\nexport const query: () => Effect.Effect<ResearchGraph | undefined, never, Database.Service> = Effect.fn(\n 'queryResearchGraph',\n)(function* () {\n const objects = yield* Database.runQuery(Query.type(ResearchGraph));\n return objects.at(0);\n});\n\nexport const contextQueueLayer = Layer.unwrapEffect(\n Effect.gen(function* () {\n const researchGraph = (yield* query()) ?? (yield* create());\n const researchQueue = yield* Database.load(researchGraph.queue);\n return ContextQueueService.layer(researchQueue);\n }),\n);\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { type Type } from '@dxos/echo';\nimport { Text } from '@dxos/schema';\nimport { Event, HasConnection, HasRelationship, LegacyOrganization, LegacyPerson, Pipeline, Task } from '@dxos/types';\n\nexport * as ResearchGraph from './ResearchGraph';\n\n/**\n * Data types for research.\n */\n// TODO(burdon): This should not be hardcoded.\nexport const ResearchDataTypes: Type.AnyEntity[] = [\n // Objects\n Event.Event,\n Task.Task,\n Text.Text,\n\n // TODO(wittjosiah): Until views (e.g., Table) support relations this needs to be expressed via organization ref.\n // Employer.Employer,\n // Organization.Organization,\n LegacyPerson,\n LegacyOrganization,\n\n Pipeline.Pipeline,\n\n // Relations\n HasRelationship.HasRelationship,\n HasConnection.HasConnection,\n];\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Tool", "Toolkit", "Context", "Effect", "Function", "Option", "Schema", "SchemaAST", "Entity", "Filter", "Obj", "Query", "Type", "Database", "ReferenceAnnotationId", "RelationSourceDXNId", "RelationSourceId", "RelationTargetDXNId", "RelationTargetId", "createObject", "getTypeAnnotation", "getTypeIdentifierAnnotation", "isEncodedReference", "mapAst", "ContextQueueService", "DXN", "ObjectId", "log", "deepMapValues", "isNonNullable", "trim", "Subgraph", "Struct", "objects", "Array", "Any", "findRelatedSchema", "db", "anchor", "allSchemas", "graph", "schemaRegistry", "query", "run", "filter", "schema", "kind", "Kind", "Relation", "isSchemaAddressableByDxn", "parse", "sourceSchema", "targetSchema", "map", "dxn", "toString", "t", "asTypeDXN", "type", "getTypename", "LocalSearchToolkit", "make", "description", "parameters", "String", "annotations", "success", "Unknown", "failure", "Never", "dependencies", "Service", "LocalSearchHandler", "toLayer", "search_local_search", "fn", "runQuery", "select", "text", "results", "option", "serviceOption", "isSome", "queueObjects", "promise", "value", "queue", "queryObjects", "push", "JSON", "stringify", "GraphWriterSchema", "Tag", "makeGraphWriterToolkit", "createExtractionSchema", "fields", "annotateContext", "makeGraphWriterHandler", "toolkit", "onAppend", "get", "tools", "graph_writer", "input", "data", "sanitizeObjects", "append", "dxns", "obj", "getDXN", "types", "Object", "fromEntries", "preprocessSchema", "index", "getSanitizedSchemaName", "optional", "getDescriptionAnnotation", "ast", "pipe", "getOrElse", "replaceAll", "entries", "object", "flat", "idMap", "Map", "existingIds", "Set", "enitties", "resolveId", "id", "isValid", "add", "fromLocalObjectId", "mappedId", "undefined", "res", "entry", "set", "random", "recurse", "ref", "encodeURIComponent", "getKind", "sourceDxn", "source", "warn", "targetDxn", "target", "has", "dbObjects", "getObjectsById", "info", "missing", "from", "some", "length", "Error", "join", "flatMap", "skip", "asEchoDXN", "echoId", "find", "SoftRef", "isRelationSchema", "go", "visited", "getAnnotation", "child", "omit", "extend", "identity", "Effect", "Layer", "Schema", "Database", "Obj", "Query", "Ref", "Type", "SystemTypeAnnotation", "Queue", "ContextQueueService", "QueueService", "LegacyResearchGraph", "Struct", "queue", "Ref", "Queue", "pipe", "Type", "object", "typename", "version", "SystemTypeAnnotation", "set", "ResearchGraph", "create", "fn", "QueueService", "createQueue", "Database", "add", "Obj", "make", "fromDXN", "dxn", "query", "objects", "runQuery", "Query", "type", "at", "contextQueueLayer", "unwrapEffect", "gen", "researchGraph", "researchQueue", "load", "ContextQueueService", "layer", "Text", "Event", "HasConnection", "HasRelationship", "LegacyOrganization", "LegacyPerson", "Pipeline", "Task", "ResearchDataTypes", "Event", "Task", "Text", "LegacyPerson", "LegacyOrganization", "Pipeline", "HasRelationship", "HasConnection"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Chat
|
|
3
|
+
} from "./chunk-VBSCQN37.mjs";
|
|
4
|
+
|
|
5
|
+
// src/functions/agent/definitions.ts
|
|
6
|
+
import * as Schema from "effect/Schema";
|
|
7
|
+
import { AiService, ModelName, ToolExecutionService, ToolResolverService } from "@dxos/ai";
|
|
8
|
+
import { Prompt } from "@dxos/blueprints";
|
|
9
|
+
import { Database, Ref } from "@dxos/echo";
|
|
10
|
+
import { FunctionInvocationService, QueueService, TracingService } from "@dxos/functions";
|
|
11
|
+
import { Operation } from "@dxos/operation";
|
|
12
|
+
var AgentPrompt = Operation.make({
|
|
13
|
+
meta: {
|
|
14
|
+
key: "org.dxos.function.prompt",
|
|
15
|
+
name: "Agent",
|
|
16
|
+
description: "Agentic worker that executes a provided prompt using blueprints and tools."
|
|
17
|
+
},
|
|
18
|
+
input: Schema.Struct({
|
|
19
|
+
prompt: Ref.Ref(Prompt.Prompt),
|
|
20
|
+
// TODO(dmaretskyi): Remove.
|
|
21
|
+
systemPrompt: Schema.optional(Ref.Ref(Prompt.Prompt)),
|
|
22
|
+
/**
|
|
23
|
+
* When set, runs in this chat (history, queue, and bound context). Prompt blueprints and context objects are merged into the conversation for this request.
|
|
24
|
+
*/
|
|
25
|
+
chat: Schema.optional(Ref.Ref(Chat)),
|
|
26
|
+
/**
|
|
27
|
+
* @default @anthropic/claude-opus-4-0
|
|
28
|
+
*/
|
|
29
|
+
model: Schema.optional(ModelName),
|
|
30
|
+
/**
|
|
31
|
+
* Input object or data.
|
|
32
|
+
* References get auto-resolved.
|
|
33
|
+
*/
|
|
34
|
+
input: Schema.Any.pipe(Schema.annotations({
|
|
35
|
+
title: "Input"
|
|
36
|
+
}))
|
|
37
|
+
}),
|
|
38
|
+
output: Schema.Any,
|
|
39
|
+
services: [
|
|
40
|
+
AiService.AiService,
|
|
41
|
+
Database.Service,
|
|
42
|
+
QueueService,
|
|
43
|
+
TracingService,
|
|
44
|
+
ToolExecutionService,
|
|
45
|
+
ToolResolverService,
|
|
46
|
+
FunctionInvocationService
|
|
47
|
+
]
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
export {
|
|
51
|
+
AgentPrompt
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=chunk-HEFG73F2.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/functions/agent/definitions.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { AiService, ModelName, ToolExecutionService, ToolResolverService } from '@dxos/ai';\nimport { Prompt } from '@dxos/blueprints';\nimport { Database, Ref } from '@dxos/echo';\nimport { FunctionInvocationService, QueueService, TracingService } from '@dxos/functions';\nimport { Operation } from '@dxos/operation';\n\nimport * as Chat from '../../types/Chat';\n\nexport const AgentPrompt = Operation.make({\n meta: {\n key: 'org.dxos.function.prompt',\n name: 'Agent',\n description: 'Agentic worker that executes a provided prompt using blueprints and tools.',\n },\n input: Schema.Struct({\n prompt: Ref.Ref(Prompt.Prompt),\n\n // TODO(dmaretskyi): Remove.\n systemPrompt: Schema.optional(Ref.Ref(Prompt.Prompt)),\n\n /**\n * When set, runs in this chat (history, queue, and bound context). Prompt blueprints and context objects are merged into the conversation for this request.\n */\n chat: Schema.optional(Ref.Ref(Chat.Chat)),\n\n /**\n * @default @anthropic/claude-opus-4-0\n */\n\n model: Schema.optional(ModelName),\n /**\n * Input object or data.\n * References get auto-resolved.\n */\n input: Schema.Any.pipe(Schema.annotations({ title: 'Input' })),\n }),\n output: Schema.Any,\n services: [\n AiService.AiService,\n Database.Service,\n QueueService,\n TracingService,\n ToolExecutionService,\n ToolResolverService,\n FunctionInvocationService,\n ],\n});\n"],
|
|
5
|
+
"mappings": ";;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,WAAWC,WAAWC,sBAAsBC,2BAA2B;AAChF,SAASC,cAAc;AACvB,SAASC,UAAUC,WAAW;AAC9B,SAASC,2BAA2BC,cAAcC,sBAAsB;AACxE,SAASC,iBAAiB;AAInB,IAAMC,cAAcC,UAAUC,KAAK;EACxCC,MAAM;IACJC,KAAK;IACLC,MAAM;IACNC,aAAa;EACf;EACAC,OAAcC,cAAO;IACnBC,QAAQC,IAAIA,IAAIC,OAAOA,MAAM;;IAG7BC,cAAqBC,gBAASH,IAAIA,IAAIC,OAAOA,MAAM,CAAA;;;;IAKnDG,MAAaD,gBAASH,IAAIA,IAASK,IAAI,CAAA;;;;IAMvCC,OAAcH,gBAASI,SAAAA;;;;;IAKvBV,OAAcW,WAAIC,KAAYC,mBAAY;MAAEC,OAAO;IAAQ,CAAA,CAAA;EAC7D,CAAA;EACAC,QAAeJ;EACfK,UAAU;IACRC,UAAUA;IACVC,SAASC;IACTC;IACAC;IACAC;IACAC;IACAC;;AAEJ,CAAA;",
|
|
6
|
+
"names": ["Schema", "AiService", "ModelName", "ToolExecutionService", "ToolResolverService", "Prompt", "Database", "Ref", "FunctionInvocationService", "QueueService", "TracingService", "Operation", "AgentPrompt", "Operation", "make", "meta", "key", "name", "description", "input", "Struct", "prompt", "Ref", "Prompt", "systemPrompt", "optional", "chat", "Chat", "model", "ModelName", "Any", "pipe", "annotations", "title", "output", "services", "AiService", "Database", "Service", "QueueService", "TracingService", "ToolExecutionService", "ToolResolverService", "FunctionInvocationService"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// src/sync/sync.ts
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import { Filter, Obj, Query, Ref } from "@dxos/echo";
|
|
4
|
+
import { Database } from "@dxos/echo";
|
|
5
|
+
import { failedInvariant } from "@dxos/invariant";
|
|
6
|
+
import { log } from "@dxos/log";
|
|
7
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/core/assistant-toolkit/src/sync/sync.ts";
|
|
8
|
+
var syncObjects = Effect.fn("syncObjects")(function* (objs, { foreignKeyId }) {
|
|
9
|
+
return yield* Effect.forEach(objs, Effect.fnUntraced(function* (obj) {
|
|
10
|
+
for (const key of Object.keys(obj)) {
|
|
11
|
+
if (typeof key !== "string" || key === "id") continue;
|
|
12
|
+
if (!Ref.isRef(obj[key])) continue;
|
|
13
|
+
const ref = obj[key];
|
|
14
|
+
if (!ref.target) continue;
|
|
15
|
+
if (Obj.getDXN(ref.target).isLocalObjectId()) {
|
|
16
|
+
const [target] = yield* syncObjects([
|
|
17
|
+
ref.target
|
|
18
|
+
], {
|
|
19
|
+
foreignKeyId
|
|
20
|
+
});
|
|
21
|
+
obj[key] = Ref.make(target);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
const schema = Obj.getSchema(obj) ?? failedInvariant("No schema.");
|
|
25
|
+
const foreignId = Obj.getKeys(obj, foreignKeyId)[0]?.id ?? failedInvariant("No foreign key.");
|
|
26
|
+
const [existing] = yield* Database.runQuery(Query.select(Filter.foreignKeys(schema, [
|
|
27
|
+
{
|
|
28
|
+
source: foreignKeyId,
|
|
29
|
+
id: foreignId
|
|
30
|
+
}
|
|
31
|
+
])));
|
|
32
|
+
log("sync object", {
|
|
33
|
+
type: Obj.getTypename(obj),
|
|
34
|
+
foreignId,
|
|
35
|
+
existing: existing ? Obj.getDXN(existing) : void 0
|
|
36
|
+
}, {
|
|
37
|
+
F: __dxlog_file,
|
|
38
|
+
L: 48,
|
|
39
|
+
S: this,
|
|
40
|
+
C: (f, a) => f(...a)
|
|
41
|
+
});
|
|
42
|
+
if (!existing) {
|
|
43
|
+
yield* Database.add(obj);
|
|
44
|
+
return obj;
|
|
45
|
+
} else {
|
|
46
|
+
copyObjectData(existing, obj);
|
|
47
|
+
return existing;
|
|
48
|
+
}
|
|
49
|
+
}), {
|
|
50
|
+
concurrency: 1
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
var copyObjectData = (existing, newObj) => {
|
|
54
|
+
Obj.change(existing, (obj) => {
|
|
55
|
+
for (const key of Object.keys(newObj)) {
|
|
56
|
+
if (typeof key !== "string" || key === "id") continue;
|
|
57
|
+
if (typeof newObj[key] !== "string" && typeof newObj[key] !== "number" && typeof newObj[key] !== "boolean" && !Ref.isRef(newObj[key])) continue;
|
|
58
|
+
obj[key] = newObj[key];
|
|
59
|
+
}
|
|
60
|
+
for (const key of Object.keys(obj)) {
|
|
61
|
+
if (typeof key !== "string" || key === "id") continue;
|
|
62
|
+
if (!(key in newObj)) {
|
|
63
|
+
delete obj[key];
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
for (const foreignKey of Obj.getMeta(newObj).keys) {
|
|
67
|
+
Obj.deleteKeys(obj, foreignKey.source);
|
|
68
|
+
Obj.getMeta(obj).keys.push({
|
|
69
|
+
...foreignKey
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
export {
|
|
76
|
+
syncObjects
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=chunk-HZM3HNAS.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/sync/sync.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Filter, Obj, Query, Ref } from '@dxos/echo';\nimport { Database } from '@dxos/echo';\nimport { failedInvariant } from '@dxos/invariant';\nimport { log } from '@dxos/log';\n\n/**\n * Syncs objects to the database.\n * If there's an object with a matching foreign key in the database, it will be updated.\n * Otherwise, a new object will be added.\n * Recursively syncs top-level refs.\n *\n * @param opts.foreignKeyId - The key to use for matching objects.\n */\nexport const syncObjects: (\n objs: Obj.Unknown[],\n opts: { foreignKeyId: string },\n) => Effect.Effect<Obj.Unknown[], never, Database.Service> = Effect.fn('syncObjects')(function* (\n objs,\n { foreignKeyId },\n) {\n return yield* Effect.forEach(\n objs,\n Effect.fnUntraced(function* (obj) {\n // Sync referenced objects.\n for (const key of Object.keys(obj)) {\n if (typeof key !== 'string' || key === 'id') continue;\n if (!Ref.isRef((obj as any)[key])) continue;\n const ref: Ref.Unknown = (obj as any)[key];\n if (!ref.target) continue;\n if (Obj.getDXN(ref.target).isLocalObjectId()) {\n // obj not persisted to db.\n const [target] = yield* syncObjects([ref.target], { foreignKeyId });\n (obj as any)[key] = Ref.make(target);\n }\n }\n\n const schema = Obj.getSchema(obj) ?? failedInvariant('No schema.');\n const foreignId = Obj.getKeys(obj, foreignKeyId)[0]?.id ?? failedInvariant('No foreign key.');\n const [existing] = yield* Database.runQuery(\n Query.select(Filter.foreignKeys(schema, [{ source: foreignKeyId, id: foreignId }])),\n );\n log('sync object', {\n type: Obj.getTypename(obj),\n foreignId,\n existing: existing ? Obj.getDXN(existing) : undefined,\n });\n if (!existing) {\n yield* Database.add(obj);\n return obj;\n } else {\n copyObjectData(existing, obj);\n return existing;\n }\n }),\n { concurrency: 1 },\n );\n});\n\nconst copyObjectData = (existing: Obj.Unknown, newObj: Obj.Unknown) => {\n Obj.change(existing, (obj) => {\n // Copy properties from newObj to existing.\n for (const key of Object.keys(newObj)) {\n if (typeof key !== 'string' || key === 'id') continue;\n if (\n typeof (newObj as any)[key] !== 'string' &&\n typeof (newObj as any)[key] !== 'number' &&\n typeof (newObj as any)[key] !== 'boolean' &&\n !Ref.isRef((newObj as any)[key])\n )\n continue;\n (obj as any)[key] = (newObj as any)[key];\n }\n\n // Delete properties that don't exist in newObj.\n for (const key of Object.keys(obj)) {\n if (typeof key !== 'string' || key === 'id') continue;\n if (!(key in newObj)) {\n delete (obj as any)[key];\n }\n }\n\n // Update foreign keys.\n for (const foreignKey of Obj.getMeta(newObj).keys) {\n Obj.deleteKeys(obj, foreignKey.source);\n // TODO(dmaretskyi): Doesn't work: `Obj.getMeta(existing).keys.push(foreignKey);`\n Obj.getMeta(obj).keys.push({ ...foreignKey });\n }\n });\n};\n"],
|
|
5
|
+
"mappings": ";AAIA,YAAYA,YAAY;AAExB,SAASC,QAAQC,KAAKC,OAAOC,WAAW;AACxC,SAASC,gBAAgB;AACzB,SAASC,uBAAuB;AAChC,SAASC,WAAW;;AAUb,IAAMC,cAGuDC,UAAG,aAAA,EAAe,WACpFC,MACA,EAAEC,aAAY,GAAE;AAEhB,SAAO,OAAcC,eACnBF,MACOG,kBAAW,WAAWC,KAAG;AAE9B,eAAWC,OAAOC,OAAOC,KAAKH,GAAAA,GAAM;AAClC,UAAI,OAAOC,QAAQ,YAAYA,QAAQ,KAAM;AAC7C,UAAI,CAACX,IAAIc,MAAOJ,IAAYC,GAAAA,CAAI,EAAG;AACnC,YAAMI,MAAoBL,IAAYC,GAAAA;AACtC,UAAI,CAACI,IAAIC,OAAQ;AACjB,UAAIlB,IAAImB,OAAOF,IAAIC,MAAM,EAAEE,gBAAe,GAAI;AAE5C,cAAM,CAACF,MAAAA,IAAU,OAAOZ,YAAY;UAACW,IAAIC;WAAS;UAAET;QAAa,CAAA;AAChEG,YAAYC,GAAAA,IAAOX,IAAImB,KAAKH,MAAAA;MAC/B;IACF;AAEA,UAAMI,SAAStB,IAAIuB,UAAUX,GAAAA,KAAQR,gBAAgB,YAAA;AACrD,UAAMoB,YAAYxB,IAAIyB,QAAQb,KAAKH,YAAAA,EAAc,CAAA,GAAIiB,MAAMtB,gBAAgB,iBAAA;AAC3E,UAAM,CAACuB,QAAAA,IAAY,OAAOxB,SAASyB,SACjC3B,MAAM4B,OAAO9B,OAAO+B,YAAYR,QAAQ;MAAC;QAAES,QAAQtB;QAAciB,IAAIF;MAAU;KAAE,CAAA,CAAA;AAEnFnB,QAAI,eAAe;MACjB2B,MAAMhC,IAAIiC,YAAYrB,GAAAA;MACtBY;MACAG,UAAUA,WAAW3B,IAAImB,OAAOQ,QAAAA,IAAYO;IAC9C,GAAA;;;;;;AACA,QAAI,CAACP,UAAU;AACb,aAAOxB,SAASgC,IAAIvB,GAAAA;AACpB,aAAOA;IACT,OAAO;AACLwB,qBAAeT,UAAUf,GAAAA;AACzB,aAAOe;IACT;EACF,CAAA,GACA;IAAEU,aAAa;EAAE,CAAA;AAErB,CAAA;AAEA,IAAMD,iBAAiB,CAACT,UAAuBW,WAAAA;AAC7CtC,MAAIuC,OAAOZ,UAAU,CAACf,QAAAA;AAEpB,eAAWC,OAAOC,OAAOC,KAAKuB,MAAAA,GAAS;AACrC,UAAI,OAAOzB,QAAQ,YAAYA,QAAQ,KAAM;AAC7C,UACE,OAAQyB,OAAezB,GAAAA,MAAS,YAChC,OAAQyB,OAAezB,GAAAA,MAAS,YAChC,OAAQyB,OAAezB,GAAAA,MAAS,aAChC,CAACX,IAAIc,MAAOsB,OAAezB,GAAAA,CAAI,EAE/B;AACDD,UAAYC,GAAAA,IAAQyB,OAAezB,GAAAA;IACtC;AAGA,eAAWA,OAAOC,OAAOC,KAAKH,GAAAA,GAAM;AAClC,UAAI,OAAOC,QAAQ,YAAYA,QAAQ,KAAM;AAC7C,UAAI,EAAEA,OAAOyB,SAAS;AACpB,eAAQ1B,IAAYC,GAAAA;MACtB;IACF;AAGA,eAAW2B,cAAcxC,IAAIyC,QAAQH,MAAAA,EAAQvB,MAAM;AACjDf,UAAI0C,WAAW9B,KAAK4B,WAAWT,MAAM;AAErC/B,UAAIyC,QAAQ7B,GAAAA,EAAKG,KAAK4B,KAAK;QAAE,GAAGH;MAAW,CAAA;IAC7C;EACF,CAAA;AACF;",
|
|
6
|
+
"names": ["Effect", "Filter", "Obj", "Query", "Ref", "Database", "failedInvariant", "log", "syncObjects", "fn", "objs", "foreignKeyId", "forEach", "fnUntraced", "obj", "key", "Object", "keys", "isRef", "ref", "target", "getDXN", "isLocalObjectId", "make", "schema", "getSchema", "foreignId", "getKeys", "id", "existing", "runQuery", "select", "foreignKeys", "source", "type", "getTypename", "undefined", "add", "copyObjectData", "concurrency", "newObj", "change", "foreignKey", "getMeta", "deleteKeys", "push"]
|
|
7
|
+
}
|