@dxos/assistant-toolkit 0.8.4-main.e8ec1fe → 0.8.4-main.fcc0d83b33
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-XDFUXRY5.mjs +30 -0
- package/dist/lib/neutral/add-artifact-XDFUXRY5.mjs.map +7 -0
- package/dist/lib/neutral/agent-6OHUAIA2.mjs +65 -0
- package/dist/lib/neutral/agent-6OHUAIA2.mjs.map +7 -0
- package/dist/lib/neutral/chunk-4T3LJGXI.mjs +76 -0
- package/dist/lib/neutral/chunk-4T3LJGXI.mjs.map +7 -0
- package/dist/lib/neutral/chunk-CVUA23QI.mjs +332 -0
- package/dist/lib/neutral/chunk-CVUA23QI.mjs.map +7 -0
- package/dist/lib/neutral/chunk-EJAQUAKM.mjs +73 -0
- package/dist/lib/neutral/chunk-EJAQUAKM.mjs.map +7 -0
- package/dist/lib/neutral/chunk-GSG4JGIY.mjs +100 -0
- package/dist/lib/neutral/chunk-GSG4JGIY.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-JN4GARRQ.mjs +53 -0
- package/dist/lib/neutral/chunk-JN4GARRQ.mjs.map +7 -0
- package/dist/lib/neutral/chunk-KGU725LW.mjs +29 -0
- package/dist/lib/neutral/chunk-KGU725LW.mjs.map +7 -0
- package/dist/lib/neutral/chunk-NR3GTWRC.mjs +53 -0
- package/dist/lib/neutral/chunk-NR3GTWRC.mjs.map +7 -0
- package/dist/lib/neutral/chunk-P5LAPHCG.mjs +140 -0
- package/dist/lib/neutral/chunk-P5LAPHCG.mjs.map +7 -0
- package/dist/lib/neutral/chunk-SVI25Z2Y.mjs +293 -0
- package/dist/lib/neutral/chunk-SVI25Z2Y.mjs.map +7 -0
- package/dist/lib/neutral/chunk-VSDP6SRY.mjs +74 -0
- package/dist/lib/neutral/chunk-VSDP6SRY.mjs.map +7 -0
- package/dist/lib/neutral/chunk-WIV7ZVRS.mjs +109 -0
- package/dist/lib/neutral/chunk-WIV7ZVRS.mjs.map +7 -0
- package/dist/lib/neutral/chunk-WLR3BGO4.mjs +25 -0
- package/dist/lib/neutral/chunk-WLR3BGO4.mjs.map +7 -0
- package/dist/lib/neutral/chunk-YSYNXOZA.mjs +68 -0
- package/dist/lib/neutral/chunk-YSYNXOZA.mjs.map +7 -0
- package/dist/lib/neutral/chunk-YXOVSRFU.mjs +70 -0
- package/dist/lib/neutral/chunk-YXOVSRFU.mjs.map +7 -0
- package/dist/lib/neutral/context-add-IIDPRRVB.mjs +22 -0
- package/dist/lib/neutral/context-add-IIDPRRVB.mjs.map +7 -0
- package/dist/lib/neutral/context-remove-RDYV4PD4.mjs +22 -0
- package/dist/lib/neutral/context-remove-RDYV4PD4.mjs.map +7 -0
- package/dist/lib/neutral/create-project-MPAMKQ3T.mjs +36 -0
- package/dist/lib/neutral/create-project-MPAMKQ3T.mjs.map +7 -0
- package/dist/lib/neutral/delete-J3PMWP7Z.mjs +19 -0
- package/dist/lib/neutral/delete-J3PMWP7Z.mjs.map +7 -0
- package/dist/lib/neutral/enable-blueprints-LELPQHY5.mjs +48 -0
- package/dist/lib/neutral/enable-blueprints-LELPQHY5.mjs.map +7 -0
- package/dist/lib/neutral/fetch-KHMHV7JR.mjs +16 -0
- package/dist/lib/neutral/fetch-KHMHV7JR.mjs.map +7 -0
- package/dist/lib/neutral/fetch-messages-OS74FP76.mjs +140 -0
- package/dist/lib/neutral/fetch-messages-OS74FP76.mjs.map +7 -0
- package/dist/lib/neutral/get-context-JRTOOA5O.mjs +35 -0
- package/dist/lib/neutral/get-context-JRTOOA5O.mjs.map +7 -0
- package/dist/lib/neutral/index.mjs +906 -0
- package/dist/lib/neutral/index.mjs.map +7 -0
- package/dist/lib/neutral/load-LI7HHVD6.mjs +17 -0
- package/dist/lib/neutral/load-LI7HHVD6.mjs.map +7 -0
- package/dist/lib/neutral/meta.json +1 -0
- package/dist/lib/neutral/object-create-52Z7YKIA.mjs +35 -0
- package/dist/lib/neutral/object-create-52Z7YKIA.mjs.map +7 -0
- package/dist/lib/neutral/object-delete-I266YAXI.mjs +18 -0
- package/dist/lib/neutral/object-delete-I266YAXI.mjs.map +7 -0
- package/dist/lib/neutral/object-update-HY4GI7LA.mjs +28 -0
- package/dist/lib/neutral/object-update-HY4GI7LA.mjs.map +7 -0
- package/dist/lib/neutral/project-JAU3A7AX.mjs +23 -0
- package/dist/lib/neutral/project-JAU3A7AX.mjs.map +7 -0
- package/dist/lib/neutral/project-rules-FLUQQRPB.mjs +78 -0
- package/dist/lib/neutral/project-rules-FLUQQRPB.mjs.map +7 -0
- package/dist/lib/neutral/prompt-4UMXX6QU.mjs +169 -0
- package/dist/lib/neutral/prompt-4UMXX6QU.mjs.map +7 -0
- package/dist/lib/neutral/qualifier-7BUCOEKK.mjs +88 -0
- package/dist/lib/neutral/qualifier-7BUCOEKK.mjs.map +7 -0
- package/dist/lib/neutral/query-B3NOYFCK.mjs +70 -0
- package/dist/lib/neutral/query-B3NOYFCK.mjs.map +7 -0
- package/dist/lib/neutral/query-U56GNEV6.mjs +32 -0
- package/dist/lib/neutral/query-U56GNEV6.mjs.map +7 -0
- package/dist/lib/neutral/query-blueprints-Z576ABT5.mjs +17 -0
- package/dist/lib/neutral/query-blueprints-Z576ABT5.mjs.map +7 -0
- package/dist/lib/neutral/relation-create-Z3NGW4VU.mjs +34 -0
- package/dist/lib/neutral/relation-create-Z3NGW4VU.mjs.map +7 -0
- package/dist/lib/neutral/relation-delete-LXY7W2YO.mjs +18 -0
- package/dist/lib/neutral/relation-delete-LXY7W2YO.mjs.map +7 -0
- package/dist/lib/neutral/save-GWAPLT3Z.mjs +23 -0
- package/dist/lib/neutral/save-GWAPLT3Z.mjs.map +7 -0
- package/dist/lib/neutral/schema-add-4TXJO2V7.mjs +24 -0
- package/dist/lib/neutral/schema-add-4TXJO2V7.mjs.map +7 -0
- package/dist/lib/neutral/schema-list-Q7HRRKGR.mjs +39 -0
- package/dist/lib/neutral/schema-list-Q7HRRKGR.mjs.map +7 -0
- package/dist/lib/neutral/sync-issues-A2RJNPEF.mjs +167 -0
- package/dist/lib/neutral/sync-issues-A2RJNPEF.mjs.map +7 -0
- package/dist/lib/neutral/sync-triggers-NV4JCRN5.mjs +137 -0
- package/dist/lib/neutral/sync-triggers-NV4JCRN5.mjs.map +7 -0
- package/dist/lib/neutral/tag-add-5NOHUTIE.mjs +19 -0
- package/dist/lib/neutral/tag-add-5NOHUTIE.mjs.map +7 -0
- package/dist/lib/neutral/tag-remove-QTKYDJAW.mjs +19 -0
- package/dist/lib/neutral/tag-remove-QTKYDJAW.mjs.map +7 -0
- package/dist/lib/neutral/testing/index.mjs +76 -0
- package/dist/lib/neutral/testing/index.mjs.map +7 -0
- package/dist/lib/neutral/update-blueprints-K7A5SHBZ.mjs +17 -0
- package/dist/lib/neutral/update-blueprints-K7A5SHBZ.mjs.map +7 -0
- package/dist/lib/neutral/update-tasks-UGGHWXT5.mjs +46 -0
- package/dist/lib/neutral/update-tasks-UGGHWXT5.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 +60 -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/functions/update-blueprints.d.ts +5 -0
- package/dist/types/src/blueprints/blueprint-manager/functions/update-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 +59 -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 +13 -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/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 +11 -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/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/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 +158 -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 +73 -0
- package/dist/types/src/blueprints/project/functions/qualifier.d.ts.map +1 -0
- package/dist/types/src/blueprints/project/index.d.ts +3 -0
- package/dist/types/src/blueprints/project/index.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 +52 -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 +97 -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/functions/sync-triggers.d.ts +48 -0
- package/dist/types/src/blueprints/project-wizard/functions/sync-triggers.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/testing.d.ts +9 -5
- 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} +3 -1
- package/dist/types/src/blueprints/websearch/toolkit.d.ts.map +1 -0
- package/dist/types/src/crud/graph.d.ts +14 -11
- package/dist/types/src/crud/graph.d.ts.map +1 -1
- package/dist/types/src/errors.d.ts +41 -0
- package/dist/types/src/errors.d.ts.map +1 -0
- package/dist/types/src/functions/agent/definitions.d.ts +61 -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 +2 -7
- 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/index.d.ts +0 -6
- package/dist/types/src/functions/index.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +2 -2
- 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 +1 -2
- package/dist/types/src/toolkits/index.d.ts.map +1 -1
- package/dist/types/src/types/Agent.d.ts +77 -0
- package/dist/types/src/types/Agent.d.ts.map +1 -0
- package/dist/types/src/types/Chat.d.ts +56 -0
- package/dist/types/src/types/Chat.d.ts.map +1 -0
- package/dist/types/src/types/McpServer.d.ts +18 -0
- package/dist/types/src/types/McpServer.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 +89 -0
- package/dist/types/src/types/Plan.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +6 -0
- package/dist/types/src/types/index.d.ts.map +1 -0
- package/dist/types/src/util/graphql.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +44 -40
- package/src/blueprints/automation/blueprint.ts +107 -0
- package/src/blueprints/automation/index.ts +5 -0
- package/src/blueprints/blueprint-manager/blueprint.conversations.json +1 -0
- package/src/blueprints/blueprint-manager/blueprint.test.ts +199 -0
- package/src/blueprints/blueprint-manager/blueprint.ts +49 -0
- package/src/blueprints/blueprint-manager/functions/definitions.ts +58 -0
- package/src/blueprints/blueprint-manager/functions/enable-blueprints.ts +44 -0
- package/src/blueprints/blueprint-manager/functions/index.ts +13 -0
- package/src/blueprints/blueprint-manager/functions/query-blueprints.ts +19 -0
- package/src/blueprints/blueprint-manager/functions/update-blueprints.ts +19 -0
- package/src/blueprints/blueprint-manager/index.ts +6 -0
- package/src/blueprints/browser/blueprint.test.ts +62 -0
- package/src/blueprints/browser/blueprint.ts +40 -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 +532 -0
- package/src/blueprints/database/blueprint.ts +66 -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 +318 -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 +64 -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 +34 -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/discord/blueprint.ts +41 -0
- package/src/blueprints/discord/functions/definitions.ts +71 -0
- package/src/blueprints/discord/functions/fetch-messages.test.ts +45 -0
- 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 +11 -6
- package/src/blueprints/linear/blueprint.ts +42 -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 +59 -0
- package/src/{functions/linear → blueprints/linear/functions}/sync-issues.ts +40 -46
- package/src/blueprints/linear/index.ts +2 -3
- package/src/blueprints/memory/blueprint.conversations.json +1 -0
- package/src/blueprints/memory/blueprint.test.ts +139 -0
- package/src/blueprints/memory/blueprint.ts +41 -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 +24 -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/project/blueprint.conversations.json +1 -0
- package/src/blueprints/project/blueprint.test.ts +715 -0
- package/src/blueprints/project/blueprint.ts +64 -0
- package/src/blueprints/project/functions/add-artifact.ts +30 -0
- package/src/blueprints/project/functions/agent.ts +69 -0
- package/src/blueprints/project/functions/definitions.ts +92 -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 +6 -0
- package/src/blueprints/project-wizard/blueprint.ts +52 -0
- package/src/blueprints/project-wizard/functions/create-project.ts +33 -0
- package/src/blueprints/project-wizard/functions/definitions.ts +64 -0
- package/src/blueprints/project-wizard/functions/index.ts +13 -0
- package/src/blueprints/project-wizard/functions/project-rules.ts +77 -0
- package/src/blueprints/project-wizard/functions/sync-triggers.ts +159 -0
- package/src/blueprints/project-wizard/index.ts +6 -0
- package/src/blueprints/testing.ts +23 -8
- package/src/blueprints/websearch/blueprint.conversations.json +1 -0
- package/src/blueprints/websearch/blueprint.test.ts +39 -0
- package/src/blueprints/websearch/blueprint.ts +30 -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} +6 -1
- package/src/crud/graph.test.ts +13 -38
- package/src/crud/graph.ts +33 -41
- package/src/errors.ts +25 -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.conversations.json +1 -0
- package/src/functions/agent/prompt.test.ts +83 -0
- package/src/functions/agent/prompt.ts +211 -102
- package/src/functions/index.ts +0 -6
- package/src/index.ts +2 -2
- package/src/sync/sync.ts +52 -33
- package/src/testing/index.ts +2 -1
- package/src/testing/plugins.tsx +79 -0
- package/src/toolkits/WebToolkit.ts +33 -0
- package/src/toolkits/index.ts +1 -2
- package/src/types/Agent.ts +239 -0
- package/src/types/Chat.ts +63 -0
- package/src/types/McpServer.ts +37 -0
- package/src/types/Memory.ts +24 -0
- package/src/types/Plan.ts +110 -0
- package/src/types/index.ts +9 -0
- package/dist/lib/browser/index.mjs +0 -2777
- 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 -2778
- 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/design/index.d.ts +0 -3
- package/dist/types/src/blueprints/design/index.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/index.d.ts +0 -3
- package/dist/types/src/blueprints/research/index.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 -13
- 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/entity-extraction/entity-extraction.d.ts +0 -173
- package/dist/types/src/functions/entity-extraction/entity-extraction.d.ts.map +0 -1
- package/dist/types/src/functions/entity-extraction/entity-extraction.test.d.ts +0 -2
- package/dist/types/src/functions/entity-extraction/entity-extraction.test.d.ts.map +0 -1
- package/dist/types/src/functions/entity-extraction/index.d.ts +0 -174
- package/dist/types/src/functions/entity-extraction/index.d.ts.map +0 -1
- package/dist/types/src/functions/exa/exa.d.ts +0 -5
- package/dist/types/src/functions/exa/exa.d.ts.map +0 -1
- package/dist/types/src/functions/exa/index.d.ts +0 -3
- package/dist/types/src/functions/exa/index.d.ts.map +0 -1
- package/dist/types/src/functions/exa/mock.d.ts +0 -5
- package/dist/types/src/functions/exa/mock.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/document-create.d.ts +0 -9
- package/dist/types/src/functions/research/document-create.d.ts.map +0 -1
- package/dist/types/src/functions/research/index.d.ts +0 -21
- 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 -14
- package/dist/types/src/functions/research/research.d.ts.map +0 -1
- package/dist/types/src/functions/research/research.test.d.ts +0 -2
- package/dist/types/src/functions/research/research.test.d.ts.map +0 -1
- package/dist/types/src/functions/research/types.d.ts +0 -6
- 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 +0 -74
- package/dist/types/src/functions/tasks/task-list.d.ts.map +0 -1
- package/dist/types/src/functions/tasks/task-list.test.d.ts +0 -2
- 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 +0 -38
- 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 +0 -37
- 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 +0 -58
- package/dist/types/src/testing/data/exa-search-1748337344119.d.ts.map +0 -1
- package/dist/types/src/testing/data/index.d.ts +0 -3
- package/dist/types/src/testing/data/index.d.ts.map +0 -1
- package/dist/types/src/toolkits/AssistantToolkit.d.ts +0 -17
- package/dist/types/src/toolkits/AssistantToolkit.d.ts.map +0 -1
- package/dist/types/src/toolkits/AssistantToolkit.test.d.ts +0 -2
- package/dist/types/src/toolkits/AssistantToolkit.test.d.ts.map +0 -1
- package/dist/types/src/toolkits/SystemToolkit.d.ts +0 -67
- package/dist/types/src/toolkits/SystemToolkit.d.ts.map +0 -1
- package/src/blueprints/design/design-blueprint.test.ts +0 -103
- package/src/blueprints/design/design-blueprint.ts +0 -33
- package/src/blueprints/design/index.ts +0 -7
- package/src/blueprints/discord/discord-blueprint.ts +0 -34
- package/src/blueprints/linear/linear-blueprint.ts +0 -35
- package/src/blueprints/planning/planning-blueprint.test.ts +0 -124
- package/src/blueprints/planning/planning-blueprint.ts +0 -98
- package/src/blueprints/research/index.ts +0 -7
- package/src/blueprints/research/research-blueprint.test.ts +0 -7
- package/src/blueprints/research/research-blueprint.ts +0 -53
- package/src/blueprints/websearch/websearch-blueprint.ts +0 -20
- package/src/experimental/feed.test.ts +0 -111
- package/src/functions/discord/fetch-messages.test.ts +0 -58
- package/src/functions/discord/fetch-messages.ts +0 -252
- package/src/functions/discord/index.ts +0 -9
- package/src/functions/document/index.ts +0 -12
- package/src/functions/document/read.ts +0 -29
- package/src/functions/document/update.ts +0 -30
- package/src/functions/entity-extraction/entity-extraction.conversations.json +0 -1
- package/src/functions/entity-extraction/entity-extraction.test.ts +0 -92
- package/src/functions/entity-extraction/entity-extraction.ts +0 -165
- package/src/functions/entity-extraction/index.ts +0 -9
- package/src/functions/exa/exa.ts +0 -37
- package/src/functions/exa/index.ts +0 -6
- package/src/functions/exa/mock.ts +0 -71
- 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 -83
- package/src/functions/research/document-create.ts +0 -75
- package/src/functions/research/index.ts +0 -14
- package/src/functions/research/research-graph.ts +0 -47
- package/src/functions/research/research-instructions.tpl +0 -106
- package/src/functions/research/research.conversations.json +0 -1
- package/src/functions/research/research.test.ts +0 -179
- package/src/functions/research/research.ts +0 -190
- package/src/functions/research/types.ts +0 -26
- package/src/functions/tasks/index.ts +0 -11
- package/src/functions/tasks/read.ts +0 -34
- package/src/functions/tasks/task-list.test.ts +0 -99
- package/src/functions/tasks/task-list.ts +0 -165
- package/src/functions/tasks/update.ts +0 -52
- package/src/plugins.tsx +0 -68
- package/src/testing/data/exa-search-1748337321991.ts +0 -131
- package/src/testing/data/exa-search-1748337331526.ts +0 -144
- package/src/testing/data/exa-search-1748337344119.ts +0 -133
- package/src/testing/data/index.ts +0 -11
- package/src/toolkits/AssistantToolkit.conversations.json +0 -1
- package/src/toolkits/AssistantToolkit.test.ts +0 -88
- package/src/toolkits/AssistantToolkit.ts +0 -47
- package/src/toolkits/SystemToolkit.ts +0 -231
- /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
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Chat,
|
|
3
|
+
CompanionTo,
|
|
4
|
+
make
|
|
5
|
+
} from "./chunk-NR3GTWRC.mjs";
|
|
6
|
+
import {
|
|
7
|
+
__export
|
|
8
|
+
} from "./chunk-J5LGTIGS.mjs";
|
|
9
|
+
|
|
10
|
+
// src/types/Plan.ts
|
|
11
|
+
var Plan_exports = {};
|
|
12
|
+
__export(Plan_exports, {
|
|
13
|
+
Plan: () => Plan,
|
|
14
|
+
Task: () => Task,
|
|
15
|
+
TaskId: () => TaskId,
|
|
16
|
+
addTasks: () => addTasks,
|
|
17
|
+
formatPlan: () => formatPlan,
|
|
18
|
+
generateTaskId: () => generateTaskId,
|
|
19
|
+
makePlan: () => makePlan
|
|
20
|
+
});
|
|
21
|
+
import * as Schema from "effect/Schema";
|
|
22
|
+
import { Annotation, Obj, Ref, Type } from "@dxos/echo";
|
|
23
|
+
var TaskId = Schema.String.pipe(Schema.brand("@dxos/assistant-toolkit/TaskId"));
|
|
24
|
+
var Task = Schema.Struct({
|
|
25
|
+
/**
|
|
26
|
+
* Short task ID unique within the plan.
|
|
27
|
+
*/
|
|
28
|
+
id: TaskId,
|
|
29
|
+
title: Schema.String.annotations({
|
|
30
|
+
description: "Task title and description."
|
|
31
|
+
}),
|
|
32
|
+
status: Schema.Literal("todo", "in-progress", "done"),
|
|
33
|
+
/**
|
|
34
|
+
* Parent task ID.
|
|
35
|
+
*/
|
|
36
|
+
parent: Schema.optional(TaskId).annotations({
|
|
37
|
+
description: "Parent task ID."
|
|
38
|
+
}),
|
|
39
|
+
/**
|
|
40
|
+
* Chat object that this task is associated with.
|
|
41
|
+
*/
|
|
42
|
+
chat: Schema.optional(Ref.Ref(Chat))
|
|
43
|
+
});
|
|
44
|
+
var Plan = Schema.Struct({
|
|
45
|
+
tasks: Schema.Array(Task)
|
|
46
|
+
}).pipe(Type.object({
|
|
47
|
+
typename: "org.dxos.type.plan",
|
|
48
|
+
version: "0.1.0"
|
|
49
|
+
}), Annotation.SystemTypeAnnotation.set(true));
|
|
50
|
+
var generateTaskId = (plan) => {
|
|
51
|
+
const existingIds = plan.tasks.map((task) => {
|
|
52
|
+
const [num, letter] = task.id.split("-");
|
|
53
|
+
return parseInt(num);
|
|
54
|
+
}).filter((_) => !isNaN(_));
|
|
55
|
+
let newId;
|
|
56
|
+
if (existingIds.length === 0) {
|
|
57
|
+
newId = 1;
|
|
58
|
+
} else {
|
|
59
|
+
newId = Math.max(...existingIds) + 1;
|
|
60
|
+
}
|
|
61
|
+
return TaskId.make(`${newId}-${crypto.randomUUID().slice(0, 2)}`);
|
|
62
|
+
};
|
|
63
|
+
var addTasks = (plan, tasks) => {
|
|
64
|
+
for (const task of tasks) {
|
|
65
|
+
const taskId = generateTaskId(plan);
|
|
66
|
+
plan.tasks.push({
|
|
67
|
+
id: taskId,
|
|
68
|
+
...task,
|
|
69
|
+
status: task.status ?? "todo"
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
return plan;
|
|
73
|
+
};
|
|
74
|
+
var makePlan = (props) => {
|
|
75
|
+
const plan = Obj.make(Plan, {
|
|
76
|
+
tasks: []
|
|
77
|
+
});
|
|
78
|
+
Obj.update(plan, (plan2) => {
|
|
79
|
+
addTasks(plan2, props.tasks);
|
|
80
|
+
});
|
|
81
|
+
return plan;
|
|
82
|
+
};
|
|
83
|
+
var formatPlan = (plan) => {
|
|
84
|
+
return plan.tasks.map((task) => `- **${task.status?.toLocaleUpperCase()}**: ${task.title ?? "No title"} <!-- id=${task.id} -->`).join("\n");
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
// src/types/Agent.ts
|
|
88
|
+
var Agent_exports = {};
|
|
89
|
+
__export(Agent_exports, {
|
|
90
|
+
Agent: () => Agent,
|
|
91
|
+
getFromChatContext: () => getFromChatContext,
|
|
92
|
+
makeInitialized: () => makeInitialized,
|
|
93
|
+
resetChatHistory: () => resetChatHistory
|
|
94
|
+
});
|
|
95
|
+
import * as Effect from "effect/Effect";
|
|
96
|
+
import * as Function from "effect/Function";
|
|
97
|
+
import * as Schema2 from "effect/Schema";
|
|
98
|
+
import { AiContextBinder, AiContextService } from "@dxos/assistant";
|
|
99
|
+
import { QueueService } from "@dxos/compute";
|
|
100
|
+
import { Annotation as Annotation2, Database, Feed, Format, Obj as Obj2, Ref as Ref2, Relation, Type as Type2 } from "@dxos/echo";
|
|
101
|
+
import { Queue } from "@dxos/echo-db";
|
|
102
|
+
import { FormInputAnnotation, LabelAnnotation } from "@dxos/echo/internal";
|
|
103
|
+
import { acquireReleaseResource } from "@dxos/effect";
|
|
104
|
+
import { invariant } from "@dxos/invariant";
|
|
105
|
+
import { QueueAnnotation, Text } from "@dxos/schema";
|
|
106
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/core/assistant-toolkit/src/types/Agent.ts";
|
|
107
|
+
var Agent = Schema2.Struct({
|
|
108
|
+
name: Schema2.optional(Schema2.String),
|
|
109
|
+
/**
|
|
110
|
+
* When false, agent triggers are disabled after sync-triggers runs.
|
|
111
|
+
*/
|
|
112
|
+
enabled: Schema2.optional(Schema2.Boolean).annotations({
|
|
113
|
+
title: "Enabled",
|
|
114
|
+
description: "Master switch for agent automation; propagated to all triggers on sync."
|
|
115
|
+
}),
|
|
116
|
+
/**
|
|
117
|
+
* Instructions for the agent.
|
|
118
|
+
*/
|
|
119
|
+
instructions: Ref2.Ref(Text.Text).pipe(Format.FormatAnnotation.set(Format.TypeFormat.Markdown), Schema2.annotations({
|
|
120
|
+
title: "Instructions"
|
|
121
|
+
})),
|
|
122
|
+
/**
|
|
123
|
+
* Primary chat for the agent.
|
|
124
|
+
*/
|
|
125
|
+
// TODO(dmaretskyi): Multiple chats; RB: branching hierarchy.
|
|
126
|
+
chat: Schema2.optional(Ref2.Ref(Chat).pipe(FormInputAnnotation.set(false))),
|
|
127
|
+
// TODO(burdon): Is this used? Should it be an artifact?
|
|
128
|
+
// Format.FormatAnnotation.set(Format.TypeFormat.Markdown)
|
|
129
|
+
plan: Ref2.Ref(Plan).pipe(FormInputAnnotation.set(false)),
|
|
130
|
+
// TODO(burdon): Currently Memory.Memory objects are global to the space; make them artifacts?
|
|
131
|
+
artifacts: Schema2.Array(Schema2.Struct({
|
|
132
|
+
// TODO(dmaretskyi): Consider gettings names from the artifact itself using Obj.getLabel.
|
|
133
|
+
name: Schema2.String,
|
|
134
|
+
// TODO(burdon): Rename object.
|
|
135
|
+
data: Ref2.Ref(Obj2.Unknown)
|
|
136
|
+
})).pipe(FormInputAnnotation.set(false)),
|
|
137
|
+
/**
|
|
138
|
+
* Input feed for subscriptions.
|
|
139
|
+
*/
|
|
140
|
+
// TODO(burdon): Rename to Feed?
|
|
141
|
+
// NOTE: Named `queue` to conform to subscribable schema (see QueueAnnotation).
|
|
142
|
+
queue: Schema2.optional(Ref2.Ref(Queue).pipe(FormInputAnnotation.set(false))),
|
|
143
|
+
/**
|
|
144
|
+
* References to objects with a canonical queue property.
|
|
145
|
+
* Schema must have the QueueAnnotation.
|
|
146
|
+
*/
|
|
147
|
+
// TODO(dmaretskyi): Turn into an array of objects when form-data
|
|
148
|
+
subscriptions: Schema2.Array(Ref2.Ref(Obj2.Unknown)).pipe(FormInputAnnotation.set(false)),
|
|
149
|
+
/**
|
|
150
|
+
* Allow the agent to filter events.
|
|
151
|
+
* Related events will be added to the input queue of the agent.
|
|
152
|
+
* It is recommended to enable this.
|
|
153
|
+
*/
|
|
154
|
+
filterEvents: Schema2.optional(Schema2.Boolean).annotations({
|
|
155
|
+
title: "Filter events",
|
|
156
|
+
description: "Allow the agent to filter events."
|
|
157
|
+
}),
|
|
158
|
+
/**
|
|
159
|
+
* Cron expression for a timer trigger that invokes the agent worker on a schedule.
|
|
160
|
+
* The timer trigger bypasses the qualifier and goes straight to the agent worker.
|
|
161
|
+
*/
|
|
162
|
+
cron: Schema2.optional(Schema2.String).annotations({
|
|
163
|
+
title: "Cron",
|
|
164
|
+
description: "Cron expression for a timer trigger that invokes the agent on a schedule."
|
|
165
|
+
})
|
|
166
|
+
}).pipe(Type2.object({
|
|
167
|
+
typename: "org.dxos.type.agent",
|
|
168
|
+
version: "0.1.0"
|
|
169
|
+
}), LabelAnnotation.set([
|
|
170
|
+
"name"
|
|
171
|
+
]), QueueAnnotation.set(true), Annotation2.IconAnnotation.set({
|
|
172
|
+
icon: "ph--drone--regular",
|
|
173
|
+
hue: "sky"
|
|
174
|
+
}));
|
|
175
|
+
var makeInitialized = (props, blueprint) => Effect.gen(function* () {
|
|
176
|
+
const agent = Obj2.make(Agent, {
|
|
177
|
+
...props,
|
|
178
|
+
instructions: Ref2.make(Text.make(props.instructions)),
|
|
179
|
+
plan: Ref2.make(makePlan({
|
|
180
|
+
tasks: []
|
|
181
|
+
})),
|
|
182
|
+
artifacts: props.artifacts ?? [],
|
|
183
|
+
subscriptions: props.subscriptions ?? [],
|
|
184
|
+
filterEvents: props.filterEvents ?? true,
|
|
185
|
+
enabled: props.enabled ?? true
|
|
186
|
+
});
|
|
187
|
+
yield* Database.add(agent);
|
|
188
|
+
const feed = yield* Database.add(Feed.make());
|
|
189
|
+
const runtime2 = yield* Effect.runtime();
|
|
190
|
+
const contextBinder = new AiContextBinder({
|
|
191
|
+
feed,
|
|
192
|
+
runtime: runtime2
|
|
193
|
+
});
|
|
194
|
+
const agentBlueprint = yield* Database.add(Obj2.clone(blueprint, {
|
|
195
|
+
deep: true
|
|
196
|
+
}));
|
|
197
|
+
yield* Effect.promise(() => contextBinder.bind({
|
|
198
|
+
blueprints: [
|
|
199
|
+
Ref2.make(agentBlueprint),
|
|
200
|
+
...props.blueprints ?? []
|
|
201
|
+
],
|
|
202
|
+
objects: [
|
|
203
|
+
Ref2.make(agent),
|
|
204
|
+
...props.contextObjects ?? []
|
|
205
|
+
]
|
|
206
|
+
}));
|
|
207
|
+
const chat = yield* Database.add(make({
|
|
208
|
+
[Obj2.Parent]: agent,
|
|
209
|
+
feed: Ref2.make(feed)
|
|
210
|
+
}));
|
|
211
|
+
Obj2.setParent(feed, chat);
|
|
212
|
+
yield* Database.add(Relation.make(CompanionTo, {
|
|
213
|
+
[Relation.Source]: chat,
|
|
214
|
+
[Relation.Target]: agent
|
|
215
|
+
}));
|
|
216
|
+
const inputQueue = yield* QueueService.createQueue();
|
|
217
|
+
Obj2.update(agent, (agent2) => {
|
|
218
|
+
agent2.chat = Ref2.make(chat);
|
|
219
|
+
agent2.queue = Ref2.fromDXN(inputQueue.dxn);
|
|
220
|
+
});
|
|
221
|
+
return agent;
|
|
222
|
+
});
|
|
223
|
+
var resetChatHistory = (agent) => Effect.gen(function* () {
|
|
224
|
+
invariant(agent.chat, "Agent must have an existing chat to reset.", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 143, S: this, A: ["agent.chat", "'Agent must have an existing chat to reset.'"] });
|
|
225
|
+
const existingFeed = yield* agent.chat.pipe(Database.load).pipe(Effect.map((_) => _.feed), Effect.flatMap(Database.load));
|
|
226
|
+
const runtime2 = yield* Effect.runtime();
|
|
227
|
+
const existingContextBinder = yield* acquireReleaseResource(() => new AiContextBinder({
|
|
228
|
+
feed: existingFeed,
|
|
229
|
+
runtime: runtime2
|
|
230
|
+
}));
|
|
231
|
+
const blueprints = existingContextBinder.getBlueprints().map((blueprint) => Ref2.make(blueprint));
|
|
232
|
+
const objects = existingContextBinder.getObjects().map((object) => Ref2.make(object));
|
|
233
|
+
const feed = yield* Database.add(Feed.make());
|
|
234
|
+
const contextBinder = new AiContextBinder({
|
|
235
|
+
feed,
|
|
236
|
+
runtime: runtime2
|
|
237
|
+
});
|
|
238
|
+
yield* Effect.promise(() => contextBinder.bind({
|
|
239
|
+
blueprints,
|
|
240
|
+
objects
|
|
241
|
+
}));
|
|
242
|
+
const chat = yield* Database.add(make({
|
|
243
|
+
feed: Ref2.make(feed)
|
|
244
|
+
}));
|
|
245
|
+
Obj2.setParent(feed, chat);
|
|
246
|
+
Obj2.update(agent, (agent2) => {
|
|
247
|
+
agent2.chat = Ref2.make(chat);
|
|
248
|
+
});
|
|
249
|
+
yield* Database.add(Relation.make(CompanionTo, {
|
|
250
|
+
[Relation.Source]: chat,
|
|
251
|
+
[Relation.Target]: agent
|
|
252
|
+
}));
|
|
253
|
+
}).pipe(Effect.scoped);
|
|
254
|
+
var getFromChatContext = Effect.gen(function* () {
|
|
255
|
+
const agents = yield* Function.pipe(AiContextService.findObjects(Agent));
|
|
256
|
+
if (agents.length !== 1) {
|
|
257
|
+
return yield* Effect.fail(new Error(`There should be exactly one agent in context. Got: ${agents.length}`));
|
|
258
|
+
}
|
|
259
|
+
const agent = agents[0];
|
|
260
|
+
return agent;
|
|
261
|
+
});
|
|
262
|
+
|
|
263
|
+
// src/types/McpServer.ts
|
|
264
|
+
var McpServer_exports = {};
|
|
265
|
+
__export(McpServer_exports, {
|
|
266
|
+
McpServer: () => McpServer
|
|
267
|
+
});
|
|
268
|
+
import * as Schema3 from "effect/Schema";
|
|
269
|
+
import { Annotation as Annotation3, Type as Type3 } from "@dxos/echo";
|
|
270
|
+
import { LabelAnnotation as LabelAnnotation2 } from "@dxos/echo/internal";
|
|
271
|
+
var McpServer = Schema3.Struct({
|
|
272
|
+
name: Schema3.String,
|
|
273
|
+
url: Schema3.String,
|
|
274
|
+
protocol: Schema3.Union(Schema3.Literal("sse"), Schema3.Literal("http")),
|
|
275
|
+
/** Stored in plaintext; replicated to all peers in the space. */
|
|
276
|
+
apiKey: Schema3.optional(Schema3.String),
|
|
277
|
+
enabled: Schema3.optional(Schema3.Boolean)
|
|
278
|
+
}).pipe(Type3.object({
|
|
279
|
+
typename: "org.dxos.type.assistant.mcpServer",
|
|
280
|
+
version: "0.1.0"
|
|
281
|
+
}), LabelAnnotation2.set([
|
|
282
|
+
"name"
|
|
283
|
+
]), Annotation3.IconAnnotation.set({
|
|
284
|
+
icon: "ph--plugs-connected--regular",
|
|
285
|
+
hue: "sky"
|
|
286
|
+
}));
|
|
287
|
+
|
|
288
|
+
export {
|
|
289
|
+
Plan_exports,
|
|
290
|
+
Agent_exports,
|
|
291
|
+
McpServer_exports
|
|
292
|
+
};
|
|
293
|
+
//# sourceMappingURL=chunk-SVI25Z2Y.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/types/Plan.ts", "../../../src/types/Agent.ts", "../../../src/types/McpServer.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2026 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Schema from 'effect/Schema';\n\nimport { Annotation, Obj, Ref, Type } from '@dxos/echo';\n\nimport * as Chat from './Chat';\n\nexport const TaskId = Schema.String.pipe(Schema.brand('@dxos/assistant-toolkit/TaskId'));\nexport type TaskId = Schema.Schema.Type<typeof TaskId>;\n\nexport const Task = Schema.Struct({\n /**\n * Short task ID unique within the plan.\n */\n id: TaskId,\n\n title: Schema.String.annotations({\n description: 'Task title and description.',\n }),\n\n status: Schema.Literal('todo', 'in-progress', 'done'),\n\n /**\n * Parent task ID.\n */\n parent: Schema.optional(TaskId).annotations({\n description: 'Parent task ID.',\n }),\n\n /**\n * Chat object that this task is associated with.\n */\n chat: Schema.optional(Ref.Ref(Chat.Chat)),\n});\nexport interface Task extends Schema.Schema.Type<typeof Task> {}\n\n/**\n * Hierarchical collection of tasks for humans and agents to track progress.\n */\nexport const Plan = Schema.Struct({\n tasks: Schema.Array(Task),\n}).pipe(\n Type.object({\n typename: 'org.dxos.type.plan',\n version: '0.1.0',\n }),\n Annotation.SystemTypeAnnotation.set(true),\n);\nexport interface Plan extends Schema.Schema.Type<typeof Plan> {}\n\nexport const generateTaskId = (plan: Plan): TaskId => {\n const existingIds = plan.tasks\n .map((task) => {\n const [num, letter] = task.id.split('-');\n return parseInt(num);\n })\n .filter((_) => !isNaN(_));\n let newId;\n if (existingIds.length === 0) {\n newId = 1;\n } else {\n newId = Math.max(...existingIds) + 1;\n }\n // Add random suffix to avoid collisions.\n return TaskId.make(`${newId}-${crypto.randomUUID().slice(0, 2)}`);\n};\n\n/**\n * Add new tasks to a plan, generating IDs for new tasks.\n * Use inside an `Obj.update` callback.\n */\nexport const addTasks = (\n plan: Obj.Mutable<Plan>,\n tasks: (Pick<Task, 'title'> & Partial<Pick<Task, 'status' | 'parent' | 'chat'>>)[],\n) => {\n for (const task of tasks) {\n const taskId = generateTaskId(plan);\n plan.tasks.push({ id: taskId, ...task, status: task.status ?? 'todo' });\n }\n return plan;\n};\n\ninterface MakePlanProps {\n tasks: {\n title: string;\n status?: 'todo' | 'in-progress' | 'done';\n }[];\n}\n\nexport const makePlan = (props: MakePlanProps): Plan => {\n const plan = Obj.make(Plan, { tasks: [] });\n Obj.update(plan, (plan) => {\n addTasks(plan, props.tasks);\n });\n return plan;\n};\n\n/**\n * Formats plan to markdown format.\n */\nexport const formatPlan = (plan: Plan): string => {\n return plan.tasks\n .map((task) => `- **${task.status?.toLocaleUpperCase()}**: ${task.title ?? 'No title'} <!-- id=${task.id} -->`)\n .join('\\n');\n};\n", "//\n// Copyright 2026 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Effect from 'effect/Effect';\nimport * as Function from 'effect/Function';\nimport * as Schema from 'effect/Schema';\n\nimport { AiContextBinder, AiContextService } from '@dxos/assistant';\nimport { type Blueprint } from '@dxos/compute';\nimport { QueueService } from '@dxos/compute';\nimport { Annotation, Database, Feed, Format, Obj, Ref, Relation, Type } from '@dxos/echo';\nimport { Queue } from '@dxos/echo-db';\nimport { type ObjectNotFoundError } from '@dxos/echo/Err';\nimport { FormInputAnnotation, LabelAnnotation } from '@dxos/echo/internal';\nimport { acquireReleaseResource } from '@dxos/effect';\nimport { invariant } from '@dxos/invariant';\nimport { QueueAnnotation, Text } from '@dxos/schema';\n\nimport * as Chat from './Chat';\nimport * as Plan from './Plan';\n\n/**\n * Agent schema definition.\n */\nexport const Agent = Schema.Struct({\n name: Schema.optional(Schema.String),\n\n /**\n * When false, agent triggers are disabled after sync-triggers runs.\n */\n enabled: Schema.optional(Schema.Boolean).annotations({\n title: 'Enabled',\n description: 'Master switch for agent automation; propagated to all triggers on sync.',\n }),\n\n /**\n * Instructions for the agent.\n */\n instructions: Ref.Ref(Text.Text).pipe(\n Format.FormatAnnotation.set(Format.TypeFormat.Markdown),\n Schema.annotations({ title: 'Instructions' }),\n ),\n\n /**\n * Primary chat for the agent.\n */\n // TODO(dmaretskyi): Multiple chats; RB: branching hierarchy.\n chat: Schema.optional(Ref.Ref(Chat.Chat).pipe(FormInputAnnotation.set(false))),\n\n // TODO(burdon): Is this used? Should it be an artifact?\n // Format.FormatAnnotation.set(Format.TypeFormat.Markdown)\n plan: Ref.Ref(Plan.Plan).pipe(FormInputAnnotation.set(false)),\n\n // TODO(burdon): Currently Memory.Memory objects are global to the space; make them artifacts?\n artifacts: Schema.Array(\n Schema.Struct({\n // TODO(dmaretskyi): Consider gettings names from the artifact itself using Obj.getLabel.\n name: Schema.String,\n // TODO(burdon): Rename object.\n data: Ref.Ref(Obj.Unknown),\n }),\n ).pipe(FormInputAnnotation.set(false)),\n\n /**\n * Input feed for subscriptions.\n */\n // TODO(burdon): Rename to Feed?\n // NOTE: Named `queue` to conform to subscribable schema (see QueueAnnotation).\n queue: Schema.optional(Ref.Ref(Queue).pipe(FormInputAnnotation.set(false))),\n\n /**\n * References to objects with a canonical queue property.\n * Schema must have the QueueAnnotation.\n */\n // TODO(dmaretskyi): Turn into an array of objects when form-data\n subscriptions: Schema.Array(Ref.Ref(Obj.Unknown)).pipe(FormInputAnnotation.set(false)),\n\n /**\n * Allow the agent to filter events.\n * Related events will be added to the input queue of the agent.\n * It is recommended to enable this.\n */\n filterEvents: Schema.optional(Schema.Boolean).annotations({\n title: 'Filter events',\n description: 'Allow the agent to filter events.',\n }),\n\n /**\n * Cron expression for a timer trigger that invokes the agent worker on a schedule.\n * The timer trigger bypasses the qualifier and goes straight to the agent worker.\n */\n cron: Schema.optional(Schema.String).annotations({\n title: 'Cron',\n description: 'Cron expression for a timer trigger that invokes the agent on a schedule.',\n }),\n}).pipe(\n Type.object({\n typename: 'org.dxos.type.agent',\n version: '0.1.0',\n }),\n LabelAnnotation.set(['name']),\n QueueAnnotation.set(true),\n Annotation.IconAnnotation.set({\n icon: 'ph--drone--regular',\n hue: 'sky',\n }),\n);\n\nexport interface Agent extends Schema.Schema.Type<typeof Agent> {}\n\n/**\n * Creates a fully initialized Agent with chat, queue, and context bindings.\n *\n * @param props - Agent properties including spec, plan, blueprints, and context objects.\n * @param blueprint - The blueprint to use for the agent context.\n * @returns An Effect that yields the initialized Agent.\n */\nexport const makeInitialized = (\n props: Omit<Obj.MakeProps<typeof Agent>, 'instructions' | 'plan' | 'artifacts' | 'subscriptions' | 'chat'> &\n Partial<Pick<Obj.MakeProps<typeof Agent>, 'artifacts' | 'subscriptions'>> & {\n instructions: string;\n blueprints?: Ref.Ref<Blueprint.Blueprint>[];\n contextObjects?: Ref.Ref<Obj.Any>[];\n },\n blueprint: Blueprint.Blueprint,\n): Effect.Effect<Agent, never, QueueService | Feed.FeedService | Database.Service> =>\n Effect.gen(function* () {\n const agent = Obj.make(Agent, {\n ...props,\n instructions: Ref.make(Text.make(props.instructions)),\n plan: Ref.make(Plan.makePlan({ tasks: [] })),\n artifacts: props.artifacts ?? [],\n subscriptions: props.subscriptions ?? [],\n filterEvents: props.filterEvents ?? true,\n enabled: props.enabled ?? true,\n });\n yield* Database.add(agent);\n const feed = yield* Database.add(Feed.make());\n const runtime = yield* Effect.runtime<Feed.FeedService>();\n const contextBinder = new AiContextBinder({ feed, runtime });\n // TODO(dmaretskyi): Blueprint registry.\n const agentBlueprint = yield* Database.add(Obj.clone(blueprint, { deep: true }));\n yield* Effect.promise(() =>\n contextBinder.bind({\n blueprints: [Ref.make(agentBlueprint), ...(props.blueprints ?? [])],\n objects: [Ref.make(agent), ...(props.contextObjects ?? [])],\n }),\n );\n const chat = yield* Database.add(\n Chat.make({\n [Obj.Parent]: agent,\n feed: Ref.make(feed),\n }),\n );\n Obj.setParent(feed, chat);\n yield* Database.add(\n Relation.make(Chat.CompanionTo, {\n [Relation.Source]: chat,\n [Relation.Target]: agent,\n }),\n );\n\n const inputQueue = yield* QueueService.createQueue();\n\n Obj.update(agent, (agent) => {\n agent.chat = Ref.make(chat);\n agent.queue = Ref.fromDXN(inputQueue.dxn);\n });\n\n return agent;\n });\n\n/**\n * Resets the agent chat history by rebuilding the chat context.\n * Preserves the existing blueprints and objects from the current chat context.\n *\n * @param agent - The agent whose chat history should be reset. Must have an existing chat.\n * @returns An Effect that resets the chat history.\n */\nexport const resetChatHistory = (\n agent: Agent,\n): Effect.Effect<void, ObjectNotFoundError, Feed.FeedService | Database.Service> =>\n Effect.gen(function* () {\n invariant(agent.chat, 'Agent must have an existing chat to reset.');\n\n const existingFeed = yield* agent.chat.pipe(Database.load).pipe(\n Effect.map((_) => _.feed),\n Effect.flatMap(Database.load),\n );\n const runtime = yield* Effect.runtime<Feed.FeedService>();\n const existingContextBinder = yield* acquireReleaseResource(\n () =>\n new AiContextBinder({\n feed: existingFeed,\n runtime,\n }),\n );\n const blueprints = existingContextBinder.getBlueprints().map((blueprint) => Ref.make(blueprint));\n const objects = existingContextBinder.getObjects().map((object) => Ref.make(object));\n\n const feed = yield* Database.add(Feed.make());\n const contextBinder = new AiContextBinder({ feed, runtime });\n yield* Effect.promise(() =>\n contextBinder.bind({\n blueprints,\n objects,\n }),\n );\n\n const chat = yield* Database.add(\n Chat.make({\n feed: Ref.make(feed),\n }),\n );\n Obj.setParent(feed, chat);\n Obj.update(agent, (agent) => {\n agent.chat = Ref.make(chat);\n });\n\n yield* Database.add(\n Relation.make(Chat.CompanionTo, {\n [Relation.Source]: chat,\n [Relation.Target]: agent,\n }),\n );\n }).pipe(Effect.scoped);\n\nexport const getFromChatContext: Effect.Effect<Agent, Error, AiContextService> = Effect.gen(function* () {\n const agents = yield* Function.pipe(AiContextService.findObjects(Agent));\n if (agents.length !== 1) {\n return yield* Effect.fail(new Error(`There should be exactly one agent in context. Got: ${agents.length}`));\n }\n\n const agent = agents[0];\n return agent;\n});\n", "//\n// Copyright 2026 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Schema from 'effect/Schema';\n\nimport { Annotation, Type } from '@dxos/echo';\nimport { LabelAnnotation } from '@dxos/echo/internal';\n\n/**\n * MCP server configuration stored as a space-level ECHO object.\n *\n * NOTE: `apiKey` is stored in plaintext and replicated to all peers with access to the space.\n * A future iteration should move secrets to per-device credential storage or use envelope encryption.\n */\nexport const McpServer = Schema.Struct({\n name: Schema.String,\n url: Schema.String,\n protocol: Schema.Union(Schema.Literal('sse'), Schema.Literal('http')),\n /** Stored in plaintext; replicated to all peers in the space. */\n apiKey: Schema.optional(Schema.String),\n enabled: Schema.optional(Schema.Boolean),\n}).pipe(\n Type.object({\n typename: 'org.dxos.type.assistant.mcpServer',\n version: '0.1.0',\n }),\n LabelAnnotation.set(['name']),\n Annotation.IconAnnotation.set({\n icon: 'ph--plugs-connected--regular',\n hue: 'sky',\n }),\n);\n\nexport interface McpServer extends Schema.Schema.Type<typeof McpServer> {}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Schema", "Annotation", "Obj", "Ref", "Type", "TaskId", "String", "pipe", "brand", "Task", "Struct", "id", "title", "annotations", "description", "status", "Literal", "parent", "optional", "chat", "Ref", "Chat", "Plan", "tasks", "Array", "Type", "object", "typename", "version", "Annotation", "SystemTypeAnnotation", "set", "generateTaskId", "plan", "existingIds", "map", "task", "num", "letter", "split", "parseInt", "filter", "_", "isNaN", "newId", "length", "Math", "max", "make", "crypto", "randomUUID", "slice", "addTasks", "taskId", "push", "makePlan", "props", "Obj", "update", "formatPlan", "toLocaleUpperCase", "join", "Effect", "Function", "Schema", "AiContextBinder", "AiContextService", "QueueService", "Annotation", "Database", "Feed", "Format", "Obj", "Ref", "Relation", "Type", "Queue", "FormInputAnnotation", "LabelAnnotation", "acquireReleaseResource", "invariant", "QueueAnnotation", "Text", "Ref", "artifacts", "Array", "Schema", "String", "data", "Obj", "description", "Type", "typename", "version", "LabelAnnotation", "QueueAnnotation", "set", "icon", "hue", "Annotation", "props", "instructions", "make", "Text", "plan", "subscriptions", "filterEvents", "enabled", "Database", "agent", "runtime", "Effect", "contextBinder", "AiContextBinder", "feed", "agentBlueprint", "objects", "chat", "setParent", "Source", "Relation", "Target", "inputQueue", "queue", "fromDXN", "existingFeed", "pipe", "existingContextBinder", "acquireReleaseResource", "blueprints", "add", "scoped", "agents", "Error", "Schema", "Annotation", "Type", "LabelAnnotation", "McpServer", "Struct", "name", "String", "url", "protocol", "Union", "Literal", "apiKey", "optional", "enabled", "Boolean", "pipe", "object", "typename", "version", "set", "IconAnnotation", "icon", "hue"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// src/blueprints/discord/functions/definitions.ts
|
|
2
|
+
import * as Schema from "effect/Schema";
|
|
3
|
+
import { CredentialsService, Trace } from "@dxos/compute";
|
|
4
|
+
import { Operation } from "@dxos/compute";
|
|
5
|
+
var TimeRangeSchema = Schema.String.pipe(Schema.pattern(/\d+(s|m|h|d)/)).annotations({
|
|
6
|
+
description: "Time range. 1d - 1 day, 2h - 2 hours, 30m - 30 minutes, 15s - 15 seconds.",
|
|
7
|
+
examples: [
|
|
8
|
+
"1d",
|
|
9
|
+
"2h",
|
|
10
|
+
"30m",
|
|
11
|
+
"15s"
|
|
12
|
+
]
|
|
13
|
+
});
|
|
14
|
+
var TimeRange = Object.assign(TimeRangeSchema, {
|
|
15
|
+
toSeconds(timeRange) {
|
|
16
|
+
const match = timeRange.match(/(\d+)(s|m|h|d)/);
|
|
17
|
+
if (!match) {
|
|
18
|
+
throw new Error(`Invalid time range: ${timeRange}`);
|
|
19
|
+
}
|
|
20
|
+
const [_, amount, unit] = match;
|
|
21
|
+
switch (unit) {
|
|
22
|
+
case "s":
|
|
23
|
+
return Number(amount);
|
|
24
|
+
case "m":
|
|
25
|
+
return Number(amount) * 60;
|
|
26
|
+
case "h":
|
|
27
|
+
return Number(amount) * 60 * 60;
|
|
28
|
+
case "d":
|
|
29
|
+
return Number(amount) * 24 * 60 * 60;
|
|
30
|
+
default:
|
|
31
|
+
throw new Error(`Invalid time range unit: ${unit}`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
var FetchMessages = Operation.make({
|
|
36
|
+
meta: {
|
|
37
|
+
key: "org.dxos.function.fetch-discord-messages",
|
|
38
|
+
name: "Sync Discord messages"
|
|
39
|
+
},
|
|
40
|
+
input: Schema.Struct({
|
|
41
|
+
serverId: Schema.String.annotations({
|
|
42
|
+
description: "The ID of the server to fetch messages from."
|
|
43
|
+
}),
|
|
44
|
+
channelId: Schema.optional(Schema.String).annotations({
|
|
45
|
+
description: "The ID of the channel to fetch messages from. Will crawl all channels from the server if not specified."
|
|
46
|
+
}),
|
|
47
|
+
after: Schema.optional(Schema.Number).annotations({
|
|
48
|
+
description: "Fetch messages that were sent after a given date. Unix timestamp in seconds. Exclusive with `last`."
|
|
49
|
+
}),
|
|
50
|
+
last: TimeRange.annotations({
|
|
51
|
+
description: 'Time range to fetch most recent messages. Specifies the range in the past, from now. "1d" would fetch messages from the last 24 hours.'
|
|
52
|
+
}),
|
|
53
|
+
limit: Schema.optional(Schema.Number).annotations({
|
|
54
|
+
description: "The maximum number of messages to fetch."
|
|
55
|
+
}),
|
|
56
|
+
pageSize: Schema.optional(Schema.Number).annotations({
|
|
57
|
+
description: "The number of messages to fetch per page."
|
|
58
|
+
}),
|
|
59
|
+
ignoreUsernames: Schema.optional(Schema.Array(Schema.String)).annotations({
|
|
60
|
+
description: "Exclude messages from these usernames."
|
|
61
|
+
})
|
|
62
|
+
}),
|
|
63
|
+
output: Schema.Any,
|
|
64
|
+
services: [
|
|
65
|
+
CredentialsService,
|
|
66
|
+
Trace.TraceService
|
|
67
|
+
]
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
export {
|
|
71
|
+
TimeRange,
|
|
72
|
+
FetchMessages
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=chunk-VSDP6SRY.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/blueprints/discord/functions/definitions.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { CredentialsService, Trace } from '@dxos/compute';\nimport { Operation } from '@dxos/compute';\n\n// TODO(dmaretskyi): Extract.\nconst TimeRangeSchema = Schema.String.pipe(Schema.pattern(/\\d+(s|m|h|d)/)).annotations({\n description: 'Time range. 1d - 1 day, 2h - 2 hours, 30m - 30 minutes, 15s - 15 seconds.',\n examples: ['1d', '2h', '30m', '15s'],\n});\n\nexport const TimeRange = Object.assign(TimeRangeSchema, {\n toSeconds(timeRange: string) {\n const match = timeRange.match(/(\\d+)(s|m|h|d)/);\n if (!match) {\n throw new Error(`Invalid time range: ${timeRange}`);\n }\n const [_, amount, unit] = match;\n switch (unit) {\n case 's':\n return Number(amount);\n case 'm':\n return Number(amount) * 60;\n case 'h':\n return Number(amount) * 60 * 60;\n case 'd':\n return Number(amount) * 24 * 60 * 60;\n default:\n throw new Error(`Invalid time range unit: ${unit}`);\n }\n },\n});\n\nexport const FetchMessages = Operation.make({\n meta: {\n key: 'org.dxos.function.fetch-discord-messages',\n name: 'Sync Discord messages',\n },\n input: Schema.Struct({\n serverId: Schema.String.annotations({\n description: 'The ID of the server to fetch messages from.',\n }),\n channelId: Schema.optional(Schema.String).annotations({\n description:\n 'The ID of the channel to fetch messages from. Will crawl all channels from the server if not specified.',\n }),\n after: Schema.optional(Schema.Number).annotations({\n description:\n 'Fetch messages that were sent after a given date. Unix timestamp in seconds. Exclusive with `last`.',\n }),\n last: TimeRange.annotations({\n description:\n 'Time range to fetch most recent messages. Specifies the range in the past, from now. \"1d\" would fetch messages from the last 24 hours.',\n }),\n limit: Schema.optional(Schema.Number).annotations({\n description: 'The maximum number of messages to fetch.',\n }),\n pageSize: Schema.optional(Schema.Number).annotations({\n description: 'The number of messages to fetch per page.',\n }),\n ignoreUsernames: Schema.optional(Schema.Array(Schema.String)).annotations({\n description: 'Exclude messages from these usernames.',\n }),\n }),\n output: Schema.Any,\n services: [CredentialsService, Trace.TraceService],\n});\n"],
|
|
5
|
+
"mappings": ";AAIA,YAAYA,YAAY;AAExB,SAASC,oBAAoBC,aAAa;AAC1C,SAASC,iBAAiB;AAG1B,IAAMC,kBAAyBC,cAAOC,KAAYC,eAAQ,cAAA,CAAA,EAAiBC,YAAY;EACrFC,aAAa;EACbC,UAAU;IAAC;IAAM;IAAM;IAAO;;AAChC,CAAA;AAEO,IAAMC,YAAYC,OAAOC,OAAOT,iBAAiB;EACtDU,UAAUC,WAAiB;AACzB,UAAMC,QAAQD,UAAUC,MAAM,gBAAA;AAC9B,QAAI,CAACA,OAAO;AACV,YAAM,IAAIC,MAAM,uBAAuBF,SAAAA,EAAW;IACpD;AACA,UAAM,CAACG,GAAGC,QAAQC,IAAAA,IAAQJ;AAC1B,YAAQI,MAAAA;MACN,KAAK;AACH,eAAOC,OAAOF,MAAAA;MAChB,KAAK;AACH,eAAOE,OAAOF,MAAAA,IAAU;MAC1B,KAAK;AACH,eAAOE,OAAOF,MAAAA,IAAU,KAAK;MAC/B,KAAK;AACH,eAAOE,OAAOF,MAAAA,IAAU,KAAK,KAAK;MACpC;AACE,cAAM,IAAIF,MAAM,4BAA4BG,IAAAA,EAAM;IACtD;EACF;AACF,CAAA;AAEO,IAAME,gBAAgBnB,UAAUoB,KAAK;EAC1CC,MAAM;IACJC,KAAK;IACLC,MAAM;EACR;EACAC,OAAcC,cAAO;IACnBC,UAAiBxB,cAAOG,YAAY;MAClCC,aAAa;IACf,CAAA;IACAqB,WAAkBC,gBAAgB1B,aAAM,EAAEG,YAAY;MACpDC,aACE;IACJ,CAAA;IACAuB,OAAcD,gBAAgBV,aAAM,EAAEb,YAAY;MAChDC,aACE;IACJ,CAAA;IACAwB,MAAMtB,UAAUH,YAAY;MAC1BC,aACE;IACJ,CAAA;IACAyB,OAAcH,gBAAgBV,aAAM,EAAEb,YAAY;MAChDC,aAAa;IACf,CAAA;IACA0B,UAAiBJ,gBAAgBV,aAAM,EAAEb,YAAY;MACnDC,aAAa;IACf,CAAA;IACA2B,iBAAwBL,gBAAgBM,aAAahC,aAAM,CAAA,EAAGG,YAAY;MACxEC,aAAa;IACf,CAAA;EACF,CAAA;EACA6B,QAAeC;EACfC,UAAU;IAACvC;IAAoBC,MAAMuC;;AACvC,CAAA;",
|
|
6
|
+
"names": ["Schema", "CredentialsService", "Trace", "Operation", "TimeRangeSchema", "String", "pipe", "pattern", "annotations", "description", "examples", "TimeRange", "Object", "assign", "toSeconds", "timeRange", "match", "Error", "_", "amount", "unit", "Number", "FetchMessages", "make", "meta", "key", "name", "input", "Struct", "serverId", "channelId", "optional", "after", "last", "limit", "pageSize", "ignoreUsernames", "Array", "output", "Any", "services", "TraceService"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
// src/blueprints/linear/functions/definitions.ts
|
|
2
|
+
import * as Schema from "effect/Schema";
|
|
3
|
+
import { CredentialsService } from "@dxos/compute";
|
|
4
|
+
import { Operation } from "@dxos/compute";
|
|
5
|
+
import { Database } from "@dxos/echo";
|
|
6
|
+
var SyncIssues = Operation.make({
|
|
7
|
+
meta: {
|
|
8
|
+
key: "org.dxos.function.linear.sync-issues",
|
|
9
|
+
name: "Linear",
|
|
10
|
+
description: "Sync issues from Linear."
|
|
11
|
+
},
|
|
12
|
+
input: Schema.Struct({
|
|
13
|
+
team: Schema.String.annotations({
|
|
14
|
+
description: "Linear team id."
|
|
15
|
+
})
|
|
16
|
+
}),
|
|
17
|
+
output: Schema.Any,
|
|
18
|
+
services: [
|
|
19
|
+
CredentialsService,
|
|
20
|
+
Database.Service
|
|
21
|
+
]
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
// src/sync/sync.ts
|
|
25
|
+
import * as Effect from "effect/Effect";
|
|
26
|
+
import { Filter, Obj, Query, Ref } from "@dxos/echo";
|
|
27
|
+
import { Database as Database2 } from "@dxos/echo";
|
|
28
|
+
import { failedInvariant } from "@dxos/invariant";
|
|
29
|
+
import { log } from "@dxos/log";
|
|
30
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/core/assistant-toolkit/src/sync/sync.ts";
|
|
31
|
+
var syncObjects = Effect.fn("syncObjects")(function* (objs, { foreignKeyId }) {
|
|
32
|
+
return yield* Effect.forEach(objs, Effect.fnUntraced(function* (obj) {
|
|
33
|
+
for (const key of Object.keys(obj)) {
|
|
34
|
+
if (typeof key !== "string" || key === "id") {
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
if (!Ref.isRef(obj[key])) {
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
const ref = obj[key];
|
|
41
|
+
if (!ref.target) {
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
if (Obj.getDXN(ref.target).isLocalObjectId()) {
|
|
45
|
+
const [target] = yield* syncObjects([
|
|
46
|
+
ref.target
|
|
47
|
+
], {
|
|
48
|
+
foreignKeyId
|
|
49
|
+
});
|
|
50
|
+
obj[key] = Ref.make(target);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
const schema = Obj.getSchema(obj) ?? failedInvariant("No schema.");
|
|
54
|
+
const foreignId = Obj.getKeys(obj, foreignKeyId)[0]?.id ?? failedInvariant("No foreign key.");
|
|
55
|
+
const [existing] = yield* Database2.runQuery(Query.select(Filter.foreignKeys(schema, [
|
|
56
|
+
{
|
|
57
|
+
source: foreignKeyId,
|
|
58
|
+
id: foreignId
|
|
59
|
+
}
|
|
60
|
+
])));
|
|
61
|
+
log("sync object", {
|
|
62
|
+
type: Obj.getTypename(obj),
|
|
63
|
+
foreignId,
|
|
64
|
+
existing: existing ? Obj.getDXN(existing) : void 0
|
|
65
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 48, S: this });
|
|
66
|
+
if (!existing) {
|
|
67
|
+
yield* Database2.add(obj);
|
|
68
|
+
return obj;
|
|
69
|
+
} else {
|
|
70
|
+
copyObjectData(existing, obj);
|
|
71
|
+
return existing;
|
|
72
|
+
}
|
|
73
|
+
}), {
|
|
74
|
+
concurrency: 1
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
var copyObjectData = (existing, newObj) => {
|
|
78
|
+
Obj.update(existing, (existing2) => {
|
|
79
|
+
for (const key of Object.keys(newObj)) {
|
|
80
|
+
if (typeof key !== "string" || key === "id") {
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
if (typeof newObj[key] !== "string" && typeof newObj[key] !== "number" && typeof newObj[key] !== "boolean" && !Ref.isRef(newObj[key])) {
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
existing2[key] = newObj[key];
|
|
87
|
+
}
|
|
88
|
+
for (const key of Object.keys(existing2)) {
|
|
89
|
+
if (typeof key !== "string" || key === "id") {
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
if (!(key in newObj)) {
|
|
93
|
+
delete existing2[key];
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
for (const foreignKey of Obj.getMeta(newObj).keys) {
|
|
97
|
+
Obj.deleteKeys(existing2, foreignKey.source);
|
|
98
|
+
Obj.getMeta(existing2).keys.push({
|
|
99
|
+
...foreignKey
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
export {
|
|
106
|
+
SyncIssues,
|
|
107
|
+
syncObjects
|
|
108
|
+
};
|
|
109
|
+
//# sourceMappingURL=chunk-WIV7ZVRS.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/blueprints/linear/functions/definitions.ts", "../../../src/sync/sync.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { CredentialsService } from '@dxos/compute';\nimport { Operation } from '@dxos/compute';\nimport { Database } from '@dxos/echo';\n\nexport const SyncIssues = Operation.make({\n meta: {\n key: 'org.dxos.function.linear.sync-issues',\n name: 'Linear',\n description: 'Sync issues from Linear.',\n },\n input: Schema.Struct({\n team: Schema.String.annotations({\n description: 'Linear team id.',\n }),\n }),\n output: Schema.Any,\n services: [CredentialsService, Database.Service],\n});\n", "//\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') {\n continue;\n }\n if (!Ref.isRef((obj as any)[key])) {\n continue;\n }\n const ref: Ref.Unknown = (obj as any)[key];\n if (!ref.target) {\n continue;\n }\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.update(existing, (existing) => {\n // Copy properties from newObj to existing.\n for (const key of Object.keys(newObj)) {\n if (typeof key !== 'string' || key === 'id') {\n continue;\n }\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 }\n (existing 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(existing)) {\n if (typeof key !== 'string' || key === 'id') {\n continue;\n }\n if (!(key in newObj)) {\n delete (existing as any)[key];\n }\n }\n\n // Update foreign keys.\n for (const foreignKey of Obj.getMeta(newObj).keys) {\n Obj.deleteKeys(existing, foreignKey.source);\n // TODO(dmaretskyi): Doesn't work: `Obj.getMeta(existing).keys.push(foreignKey);`\n Obj.getMeta(existing).keys.push({ ...foreignKey });\n }\n });\n};\n"],
|
|
5
|
+
"mappings": ";AAIA,YAAYA,YAAY;AAExB,SAASC,0BAA0B;AACnC,SAASC,iBAAiB;AAC1B,SAASC,gBAAgB;AAElB,IAAMC,aAAaF,UAAUG,KAAK;EACvCC,MAAM;IACJC,KAAK;IACLC,MAAM;IACNC,aAAa;EACf;EACAC,OAAcC,cAAO;IACnBC,MAAaC,cAAOC,YAAY;MAC9BL,aAAa;IACf,CAAA;EACF,CAAA;EACAM,QAAeC;EACfC,UAAU;IAAChB;IAAoBE,SAASe;;AAC1C,CAAA;;;ACnBA,YAAYC,YAAY;AAExB,SAASC,QAAQC,KAAKC,OAAOC,WAAW;AACxC,SAASC,YAAAA,iBAAgB;AACzB,SAASC,uBAAuB;AAChC,SAASC,WAAW;AAEpB,IAAA,eAAA;AAkBM,IAAA,cAA2B,UAAA,aAAA,EAAA,WAAA,MAAA,EAAA,aAAA,GAAA;SAC3B,OAAWC,eAAcC,MAAW,kBAAA,WAAA,KAAA;eAEhC,OAAA,OAAA,KAAA,GAAA,GAAA;AACF,UAAA,OAAA,QAAA,YAAA,QAAA,MAAA;AACI;;AAEJ,UAAA,CAAA,IAAA,MAAA,IAAA,GAAA,CAAA,GAAA;AACA;MACA;YACE,MAAA,IAAA,GAAA;AACF,UAAA,CAAA,IAAA,QAAA;AACIP;;UAEF,IAAA,OAAOQ,IAAO,MAAG,EAAA,gBAAmB,GAAA;cAAc,CAAA,MAAA,IAAA,OAAA,YAAA;UAAEC,IAAAA;QAAa,GAAA;UACpDH;QACf,CAAA;AACF,YAAA,GAAA,IAAA,IAAA,KAAA,MAAA;MAEA;IACA;AACA,UAAM,SAACI,IAAY,UAAOP,GAAAA,KAASQ,gBAC3BC,YAAcC;UAAqB,YAAA,IAAA,QAAA,KAAA,YAAA,EAAA,CAAA,GAAA,MAAA,gBAAA,iBAAA;mBAAEC,IAAQL,OAAAA,UAAAA,SAAAA,MAAAA,OAAAA,OAAAA,YAAAA,QAAAA;;QAA4B,QAAA;QAAE,IAAA;MAE/E;;QAEFM,eAAAA;MACAL,MAAAA,IAAUA,YAAWV,GAAIgB;MAC3B;MACI,UAACN,WAAU,IAAA,OAAA,QAAA,IAAA;qBACNP,YAAac,GAAAA,cAAAA,GAAAA,IAAAA,GAAAA,KAAAA,CAAAA;QACpB,CAAA,UAAOA;AACT,aAAOd,UAAA,IAAA,GAAA;AACLe,aAAAA;WACA;AACF,qBAAA,UAAA,GAAA;AAEF,aAAA;IAAEC;EAAe,CAAA,GAAA;IAElB,aAAA;EAEH,CAAA;;qBAEI,CAAA,UAAA,WAAA;MACA,OAAK,UAAMb,CAAOc,cAAW;eAEzB,OAAA,OAAA,KAAA,MAAA,GAAA;AACF,UAAA,OAAA,QAAA,YAAA,QAAA,MAAA;AAEE;;AAMF,UAAA,OAAA,OAAA,GAAA,MAAA,YAAA,OAAA,OAAA,GAAA,MAAA,YAAA,OAAA,OAAA,GAAA,MAAA,aAAA,CAAA,IAAA,MAAA,OAAA,GAAA,CAAA,GAAA;AACCV;MACH;AAEA,MAAAA,UAAA,GAAA,IAAA,OAAA,GAAA;IACA;eAEI,OAAA,OAAA,KAAAA,SAAA,GAAA;AACF,UAAA,OAAA,QAAA,YAAA,QAAA,MAAA;AACI;;AAEJ,UAAA,EAAA,OAAA,SAAA;AACF,eAAAA,UAAA,GAAA;MAEA;IACA;eAEE,cAAA,IAAA,QAAA,MAAA,EAAA,MAAA;AACAV,UAAIqB,WAAQX,WAAUH,WAAU,MAAA;AAAgB,UAAA,QAAAG,SAAA,EAAA,KAAA,KAAA;QAClD,GAAA;MACF,CAAA;IACF;;;",
|
|
6
|
+
"names": ["Schema", "CredentialsService", "Operation", "Database", "SyncIssues", "make", "meta", "key", "name", "description", "input", "Struct", "team", "String", "annotations", "output", "Any", "services", "Service", "Effect", "Filter", "Obj", "Query", "Ref", "Database", "failedInvariant", "log", "key", "keys", "target", "foreignKeyId", "existing", "runQuery", "select", "foreignKeys", "source", "foreignId", "getDXN", "obj", "copyObjectData", "concurrency", "Object", "getMeta"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// src/blueprints/websearch/functions/definitions.ts
|
|
2
|
+
import * as Schema from "effect/Schema";
|
|
3
|
+
import { Operation } from "@dxos/compute";
|
|
4
|
+
import { trim } from "@dxos/util";
|
|
5
|
+
var Fetch = Operation.make({
|
|
6
|
+
meta: {
|
|
7
|
+
key: "org.dxos.function.web-search.fetch",
|
|
8
|
+
name: "Fetch web page",
|
|
9
|
+
description: trim`
|
|
10
|
+
Fetches the content of a web page and returns the HTML.
|
|
11
|
+
Use this to get the content of a web page.
|
|
12
|
+
`
|
|
13
|
+
},
|
|
14
|
+
input: Schema.Struct({
|
|
15
|
+
url: Schema.String.annotations({
|
|
16
|
+
description: "The URL of the web page to fetch."
|
|
17
|
+
})
|
|
18
|
+
}),
|
|
19
|
+
output: Schema.String
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
export {
|
|
23
|
+
Fetch
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=chunk-WLR3BGO4.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/blueprints/websearch/functions/definitions.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Operation } from '@dxos/compute';\nimport { trim } from '@dxos/util';\n\nexport const Fetch = Operation.make({\n meta: {\n key: 'org.dxos.function.web-search.fetch',\n name: 'Fetch web page',\n description: trim`\n Fetches the content of a web page and returns the HTML. \n Use this to get the content of a web page.\n `,\n },\n input: Schema.Struct({\n url: Schema.String.annotations({\n description: 'The URL of the web page to fetch.',\n }),\n }),\n output: Schema.String,\n});\n"],
|
|
5
|
+
"mappings": ";AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiB;AAC1B,SAASC,YAAY;AAEd,IAAMC,QAAQF,UAAUG,KAAK;EAClCC,MAAM;IACJC,KAAK;IACLC,MAAM;IACNC,aAAaN;;;;EAIf;EACAO,OAAcC,cAAO;IACnBC,KAAYC,cAAOC,YAAY;MAC7BL,aAAa;IACf,CAAA;EACF,CAAA;EACAM,QAAeF;AACjB,CAAA;",
|
|
6
|
+
"names": ["Schema", "Operation", "trim", "Fetch", "make", "meta", "key", "name", "description", "input", "Struct", "url", "String", "annotations", "output"]
|
|
7
|
+
}
|