@dxos/assistant-toolkit 0.8.4-main.3fbcb4aa9b → 0.8.4-main.43cb759274
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/LICENSE +102 -5
- package/dist/lib/neutral/{add-artifact-ZUJ5DMSY.mjs → add-artifact-ADKF427P.mjs} +6 -6
- package/dist/lib/neutral/{add-artifact-ZUJ5DMSY.mjs.map → add-artifact-ADKF427P.mjs.map} +3 -3
- package/dist/lib/neutral/{agent-5NIKAYUK.mjs → agent-4HT4GKKI.mjs} +9 -9
- package/dist/lib/neutral/{agent-5NIKAYUK.mjs.map → agent-4HT4GKKI.mjs.map} +2 -2
- package/dist/lib/neutral/{chunk-TO5IX24K.mjs → chunk-3ZDYN7BG.mjs} +16 -27
- package/dist/lib/neutral/chunk-3ZDYN7BG.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-EJAQUAKM.mjs → chunk-53BZWMRB.mjs} +12 -8
- package/dist/lib/neutral/chunk-53BZWMRB.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-WLR3BGO4.mjs → chunk-6SYN5IV3.mjs} +4 -2
- package/dist/lib/neutral/chunk-6SYN5IV3.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-QO5SU37C.mjs → chunk-7OQIX2PP.mjs} +4 -4
- package/dist/lib/neutral/{chunk-QO5SU37C.mjs.map → chunk-7OQIX2PP.mjs.map} +1 -1
- package/dist/lib/neutral/{chunk-P4ZMYO4K.mjs → chunk-ALDU6VDG.mjs} +21 -33
- package/dist/lib/neutral/chunk-ALDU6VDG.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-GV66MKAQ.mjs → chunk-AYV2KMAV.mjs} +7 -5
- package/dist/lib/neutral/chunk-AYV2KMAV.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-ROMZO4CB.mjs → chunk-BB6X6NT6.mjs} +13 -10
- package/dist/lib/neutral/chunk-BB6X6NT6.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-XUF53B6B.mjs → chunk-DBUT6FKM.mjs} +16 -14
- package/dist/lib/neutral/chunk-DBUT6FKM.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-NR3GTWRC.mjs → chunk-GQRUBCMT.mjs} +8 -13
- package/dist/lib/neutral/chunk-GQRUBCMT.mjs.map +7 -0
- package/dist/lib/neutral/chunk-JRYAD4TG.mjs +67 -0
- package/dist/lib/neutral/chunk-JRYAD4TG.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-ZFXLTBZG.mjs → chunk-PHZNOLXL.mjs} +5 -3
- package/dist/lib/neutral/chunk-PHZNOLXL.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-KGU725LW.mjs → chunk-SOLG2NPH.mjs} +4 -7
- package/dist/lib/neutral/chunk-SOLG2NPH.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-246ACKSH.mjs → chunk-T3RP4AUP.mjs} +24 -20
- package/dist/lib/neutral/chunk-T3RP4AUP.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-IKBIORQX.mjs → chunk-V3PPVL3C.mjs} +57 -43
- package/dist/lib/neutral/chunk-V3PPVL3C.mjs.map +7 -0
- package/dist/lib/neutral/{context-add-VB7AOY3G.mjs → context-add-2G2CDRCK.mjs} +4 -4
- package/dist/lib/neutral/context-add-2G2CDRCK.mjs.map +7 -0
- package/dist/lib/neutral/{context-remove-VCM3VPSO.mjs → context-remove-QQOT57JC.mjs} +4 -4
- package/dist/lib/neutral/context-remove-QQOT57JC.mjs.map +7 -0
- package/dist/lib/neutral/{create-project-EIF4OJMY.mjs → create-project-LVIH4OLF.mjs} +7 -7
- package/dist/lib/neutral/{delete-J3PMWP7Z.mjs → delete-MRER3QMO.mjs} +3 -3
- package/dist/lib/neutral/{enable-blueprints-LBDZH2CY.mjs → enable-blueprints-GEIKTSRV.mjs} +12 -12
- package/dist/lib/neutral/enable-blueprints-GEIKTSRV.mjs.map +7 -0
- package/dist/lib/neutral/{fetch-KHMHV7JR.mjs → fetch-B2AYJK7F.mjs} +2 -2
- package/dist/lib/neutral/{fetch-messages-QOBBCTGC.mjs → fetch-messages-RUUU63L2.mjs} +2 -2
- package/dist/lib/neutral/{get-context-TN7X7U2H.mjs → get-context-3SXNFRXG.mjs} +10 -10
- package/dist/lib/neutral/{get-context-TN7X7U2H.mjs.map → get-context-3SXNFRXG.mjs.map} +3 -3
- package/dist/lib/neutral/index.mjs +94 -97
- package/dist/lib/neutral/index.mjs.map +3 -3
- package/dist/lib/neutral/{load-ALP3TK2E.mjs → load-YWYQ4THR.mjs} +2 -2
- package/dist/lib/neutral/meta.json +1 -1
- package/dist/lib/neutral/{object-create-Z57Y3X6Y.mjs → object-create-WME2XFGD.mjs} +9 -12
- package/dist/lib/neutral/object-create-WME2XFGD.mjs.map +7 -0
- package/dist/lib/neutral/{object-delete-X53LS37B.mjs → object-delete-I5OAPI32.mjs} +2 -2
- package/dist/lib/neutral/{object-update-GVKSBR7T.mjs → object-update-VCOL62NX.mjs} +3 -3
- package/dist/lib/neutral/{object-update-GVKSBR7T.mjs.map → object-update-VCOL62NX.mjs.map} +2 -2
- package/dist/lib/neutral/{project-HPHTZ2CI.mjs → project-4BYI2PZC.mjs} +6 -6
- package/dist/lib/neutral/{project-rules-IVDHKSKI.mjs → project-rules-7NYDDQ7K.mjs} +5 -5
- package/dist/lib/neutral/{prompt-Y7NN7M5D.mjs → prompt-DZP2K2NE.mjs} +6 -6
- package/dist/lib/neutral/prompt-DZP2K2NE.mjs.map +7 -0
- package/dist/lib/neutral/{qualifier-VDOY5CWU.mjs → qualifier-NLOWVZCM.mjs} +15 -14
- package/dist/lib/neutral/qualifier-NLOWVZCM.mjs.map +7 -0
- package/dist/lib/neutral/{query-PPJU5622.mjs → query-GZDTQRQ6.mjs} +12 -23
- package/dist/lib/neutral/query-GZDTQRQ6.mjs.map +7 -0
- package/dist/lib/neutral/{query-U56GNEV6.mjs → query-KBKGBYUO.mjs} +3 -3
- package/dist/lib/neutral/{query-blueprints-KXADGHSA.mjs → query-blueprints-MFXXRZBY.mjs} +5 -4
- package/dist/lib/neutral/query-blueprints-MFXXRZBY.mjs.map +7 -0
- package/dist/lib/neutral/{relation-create-XJ2IX6X3.mjs → relation-create-UHBWQQXS.mjs} +8 -11
- package/dist/lib/neutral/relation-create-UHBWQQXS.mjs.map +7 -0
- package/dist/lib/neutral/{relation-delete-EP4KXAFL.mjs → relation-delete-ZSB7JOHO.mjs} +2 -2
- package/dist/lib/neutral/{save-GWAPLT3Z.mjs → save-B2CSSFDG.mjs} +3 -3
- package/dist/lib/neutral/{schema-add-Z5CY6P24.mjs → schema-add-ZJ64RAZK.mjs} +13 -12
- package/dist/lib/neutral/schema-add-ZJ64RAZK.mjs.map +7 -0
- package/dist/lib/neutral/schema-list-3X3VNYYB.mjs +37 -0
- package/dist/lib/neutral/schema-list-3X3VNYYB.mjs.map +7 -0
- package/dist/lib/neutral/{sync-issues-4YE5XAK5.mjs → sync-issues-36TS2R7R.mjs} +5 -6
- package/dist/lib/neutral/sync-issues-36TS2R7R.mjs.map +7 -0
- package/dist/lib/neutral/{sync-triggers-CDMJVW6E.mjs → sync-triggers-MMHKQDNW.mjs} +39 -37
- package/dist/lib/neutral/sync-triggers-MMHKQDNW.mjs.map +7 -0
- package/dist/lib/neutral/{tag-add-VNIIOVJA.mjs → tag-add-7P5O3IAV.mjs} +4 -5
- package/dist/lib/neutral/tag-add-7P5O3IAV.mjs.map +7 -0
- package/dist/lib/neutral/{tag-remove-6R2R27W3.mjs → tag-remove-YZIMOFA4.mjs} +4 -5
- package/dist/lib/neutral/tag-remove-YZIMOFA4.mjs.map +7 -0
- package/dist/lib/neutral/testing/index.mjs +9 -12
- package/dist/lib/neutral/testing/index.mjs.map +3 -3
- package/dist/lib/neutral/update-tasks-6MJCJ2KC.mjs +13 -0
- package/dist/lib/neutral/update-tasks-6MJCJ2KC.mjs.map +7 -0
- package/dist/types/src/blueprints/blueprint-manager/functions/definitions.d.ts +12 -15
- package/dist/types/src/blueprints/blueprint-manager/functions/definitions.d.ts.map +1 -1
- package/dist/types/src/blueprints/blueprint-manager/functions/enable-blueprints.d.ts +7 -8
- package/dist/types/src/blueprints/blueprint-manager/functions/enable-blueprints.d.ts.map +1 -1
- package/dist/types/src/blueprints/blueprint-manager/functions/index.d.ts.map +1 -1
- package/dist/types/src/blueprints/blueprint-manager/functions/query-blueprints.d.ts +6 -6
- package/dist/types/src/blueprints/blueprint-manager/functions/query-blueprints.d.ts.map +1 -1
- package/dist/types/src/blueprints/database/functions/context-add.d.ts +3 -3
- package/dist/types/src/blueprints/database/functions/context-add.d.ts.map +1 -1
- package/dist/types/src/blueprints/database/functions/context-remove.d.ts +3 -3
- package/dist/types/src/blueprints/database/functions/context-remove.d.ts.map +1 -1
- package/dist/types/src/blueprints/database/functions/definitions.d.ts +23 -17
- package/dist/types/src/blueprints/database/functions/definitions.d.ts.map +1 -1
- package/dist/types/src/blueprints/database/functions/load.d.ts +2 -2
- package/dist/types/src/blueprints/database/functions/load.d.ts.map +1 -1
- package/dist/types/src/blueprints/database/functions/object-create.d.ts.map +1 -1
- package/dist/types/src/blueprints/database/functions/object-delete.d.ts +1 -1
- package/dist/types/src/blueprints/database/functions/object-update.d.ts +2 -2
- package/dist/types/src/blueprints/database/functions/object-update.d.ts.map +1 -1
- package/dist/types/src/blueprints/database/functions/query.d.ts +2 -3
- package/dist/types/src/blueprints/database/functions/query.d.ts.map +1 -1
- package/dist/types/src/blueprints/database/functions/relation-create.d.ts +3 -3
- package/dist/types/src/blueprints/database/functions/relation-create.d.ts.map +1 -1
- package/dist/types/src/blueprints/database/functions/relation-delete.d.ts +1 -1
- package/dist/types/src/blueprints/database/functions/schema-add.d.ts.map +1 -1
- package/dist/types/src/blueprints/database/functions/schema-list.d.ts.map +1 -1
- package/dist/types/src/blueprints/database/functions/tag-add.d.ts +6 -3
- package/dist/types/src/blueprints/database/functions/tag-add.d.ts.map +1 -1
- package/dist/types/src/blueprints/database/functions/tag-remove.d.ts +6 -3
- package/dist/types/src/blueprints/database/functions/tag-remove.d.ts.map +1 -1
- package/dist/types/src/blueprints/discord/functions/definitions.d.ts.map +1 -1
- package/dist/types/src/blueprints/github/functions/definitions.d.ts.map +1 -1
- package/dist/types/src/blueprints/linear/functions/definitions.d.ts.map +1 -1
- package/dist/types/src/blueprints/linear/functions/sync-issues.d.ts.map +1 -1
- package/dist/types/src/blueprints/memory/functions/definitions.d.ts +2 -2
- package/dist/types/src/blueprints/memory/functions/definitions.d.ts.map +1 -1
- package/dist/types/src/blueprints/memory/functions/delete.d.ts +2 -2
- package/dist/types/src/blueprints/planning/functions/index.d.ts +1 -1
- package/dist/types/src/blueprints/planning/functions/index.d.ts.map +1 -1
- package/dist/types/src/blueprints/planning/functions/update-tasks.d.ts +14 -1
- package/dist/types/src/blueprints/planning/functions/update-tasks.d.ts.map +1 -1
- package/dist/types/src/blueprints/planning/functions/update-tasks.test.d.ts +2 -0
- package/dist/types/src/blueprints/planning/functions/update-tasks.test.d.ts.map +1 -0
- package/dist/types/src/blueprints/project/functions/add-artifact.d.ts +1 -5
- package/dist/types/src/blueprints/project/functions/add-artifact.d.ts.map +1 -1
- package/dist/types/src/blueprints/project/functions/definitions.d.ts +60 -45
- package/dist/types/src/blueprints/project/functions/definitions.d.ts.map +1 -1
- package/dist/types/src/blueprints/project/functions/get-context.d.ts +1 -12
- package/dist/types/src/blueprints/project/functions/get-context.d.ts.map +1 -1
- package/dist/types/src/blueprints/project/functions/qualifier.d.ts +3 -71
- package/dist/types/src/blueprints/project/functions/qualifier.d.ts.map +1 -1
- package/dist/types/src/blueprints/project-wizard/functions/create-project.d.ts +23 -19
- package/dist/types/src/blueprints/project-wizard/functions/create-project.d.ts.map +1 -1
- package/dist/types/src/blueprints/project-wizard/functions/definitions.d.ts +45 -38
- package/dist/types/src/blueprints/project-wizard/functions/definitions.d.ts.map +1 -1
- package/dist/types/src/blueprints/project-wizard/functions/sync-triggers.d.ts +21 -17
- package/dist/types/src/blueprints/project-wizard/functions/sync-triggers.d.ts.map +1 -1
- package/dist/types/src/blueprints/testing.d.ts +4 -4
- package/dist/types/src/blueprints/testing.d.ts.map +1 -1
- package/dist/types/src/blueprints/websearch/functions/definitions.d.ts.map +1 -1
- package/dist/types/src/crud/graph.d.ts +8 -11
- package/dist/types/src/crud/graph.d.ts.map +1 -1
- package/dist/types/src/errors.d.ts +3 -3
- package/dist/types/src/errors.d.ts.map +1 -1
- package/dist/types/src/functions/agent/definitions.d.ts +14 -23
- package/dist/types/src/functions/agent/definitions.d.ts.map +1 -1
- package/dist/types/src/sync/sync.d.ts +1 -2
- package/dist/types/src/sync/sync.d.ts.map +1 -1
- package/dist/types/src/testing/plugins.d.ts +1 -1
- package/dist/types/src/testing/plugins.d.ts.map +1 -1
- package/dist/types/src/types/Agent.d.ts +25 -24
- package/dist/types/src/types/Agent.d.ts.map +1 -1
- package/dist/types/src/types/Chat.d.ts +17 -20
- package/dist/types/src/types/Chat.d.ts.map +1 -1
- package/dist/types/src/types/McpServer.d.ts +1 -2
- package/dist/types/src/types/McpServer.d.ts.map +1 -1
- package/dist/types/src/types/Memory.d.ts +1 -2
- package/dist/types/src/types/Memory.d.ts.map +1 -1
- package/dist/types/src/types/Plan.d.ts +15 -17
- package/dist/types/src/types/Plan.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +30 -31
- package/src/blueprints/automation/blueprint.ts +3 -3
- package/src/blueprints/blueprint-manager/blueprint.conversations.json +1 -1
- package/src/blueprints/blueprint-manager/blueprint.test.ts +24 -67
- package/src/blueprints/blueprint-manager/blueprint.ts +5 -5
- package/src/blueprints/blueprint-manager/functions/definitions.ts +11 -20
- package/src/blueprints/blueprint-manager/functions/enable-blueprints.ts +10 -7
- package/src/blueprints/blueprint-manager/functions/index.ts +0 -1
- package/src/blueprints/blueprint-manager/functions/query-blueprints.ts +3 -2
- package/src/blueprints/browser/blueprint.conversations.json +1 -0
- package/src/blueprints/browser/blueprint.test.ts +4 -3
- package/src/blueprints/database/blueprint.conversations.json +1 -1
- package/src/blueprints/database/blueprint.test.ts +25 -25
- package/src/blueprints/database/functions/context-add.ts +2 -2
- package/src/blueprints/database/functions/context-remove.ts +2 -2
- package/src/blueprints/database/functions/definitions.ts +54 -40
- package/src/blueprints/database/functions/object-create.ts +8 -5
- package/src/blueprints/database/functions/object-update.ts +1 -1
- package/src/blueprints/database/functions/query.ts +16 -11
- package/src/blueprints/database/functions/relation-create.ts +7 -4
- package/src/blueprints/database/functions/schema-add.ts +7 -12
- package/src/blueprints/database/functions/schema-list.ts +12 -7
- package/src/blueprints/database/functions/tag-add.ts +2 -3
- package/src/blueprints/database/functions/tag-remove.ts +2 -3
- package/src/blueprints/discord/functions/definitions.ts +3 -1
- package/src/blueprints/discord/functions/fetch-messages.test.ts +7 -2
- package/src/blueprints/github/functions/definitions.ts +3 -1
- package/src/blueprints/linear/functions/definitions.ts +3 -1
- package/src/blueprints/linear/functions/linear.test.ts +1 -2
- package/src/blueprints/linear/functions/sync-issues.ts +1 -2
- package/src/blueprints/memory/blueprint.conversations.json +1 -1
- package/src/blueprints/memory/blueprint.test.ts +2 -2
- package/src/blueprints/memory/functions/definitions.ts +7 -3
- package/src/blueprints/planning/blueprint.ts +1 -1
- package/src/blueprints/planning/functions/index.ts +1 -1
- package/src/blueprints/planning/functions/{definitions.ts → update-tasks.md} +29 -50
- package/src/blueprints/planning/functions/update-tasks.test.ts +55 -0
- package/src/blueprints/planning/functions/update-tasks.ts +27 -3
- package/src/blueprints/project/blueprint.conversations.json +1 -1
- package/src/blueprints/project/blueprint.test.ts +14 -16
- package/src/blueprints/project/blueprint.ts +1 -1
- package/src/blueprints/project/functions/add-artifact.ts +1 -0
- package/src/blueprints/project/functions/agent.ts +4 -4
- package/src/blueprints/project/functions/definitions.ts +17 -14
- package/src/blueprints/project/functions/get-context.ts +5 -4
- package/src/blueprints/project/functions/qualifier.ts +8 -7
- package/src/blueprints/project-wizard/blueprint.ts +1 -1
- package/src/blueprints/project-wizard/functions/definitions.ts +11 -8
- package/src/blueprints/project-wizard/functions/sync-triggers.ts +33 -35
- package/src/blueprints/testing.ts +10 -4
- package/src/blueprints/websearch/blueprint.conversations.json +1 -1
- package/src/blueprints/websearch/functions/definitions.ts +3 -1
- package/src/crud/graph.test.ts +1 -1
- package/src/crud/graph.ts +143 -153
- package/src/errors.ts +3 -3
- package/src/functions/agent/definitions.ts +5 -3
- package/src/functions/agent/prompt.conversations.json +1 -1
- package/src/functions/agent/prompt.test.ts +10 -13
- package/src/functions/agent/prompt.ts +3 -3
- package/src/sync/sync.ts +7 -6
- package/src/testing/plugins.tsx +10 -15
- package/src/types/Agent.ts +27 -35
- package/src/types/Chat.ts +10 -20
- package/src/types/McpServer.ts +4 -10
- package/src/types/Memory.ts +4 -7
- package/src/types/Plan.ts +4 -11
- package/dist/lib/neutral/chunk-246ACKSH.mjs.map +0 -7
- package/dist/lib/neutral/chunk-EJAQUAKM.mjs.map +0 -7
- package/dist/lib/neutral/chunk-FIGO6CA6.mjs +0 -140
- package/dist/lib/neutral/chunk-FIGO6CA6.mjs.map +0 -7
- package/dist/lib/neutral/chunk-GV66MKAQ.mjs.map +0 -7
- package/dist/lib/neutral/chunk-IKBIORQX.mjs.map +0 -7
- package/dist/lib/neutral/chunk-KGU725LW.mjs.map +0 -7
- package/dist/lib/neutral/chunk-NR3GTWRC.mjs.map +0 -7
- package/dist/lib/neutral/chunk-P4ZMYO4K.mjs.map +0 -7
- package/dist/lib/neutral/chunk-ROMZO4CB.mjs.map +0 -7
- package/dist/lib/neutral/chunk-TO5IX24K.mjs.map +0 -7
- package/dist/lib/neutral/chunk-WLR3BGO4.mjs.map +0 -7
- package/dist/lib/neutral/chunk-XUF53B6B.mjs.map +0 -7
- package/dist/lib/neutral/chunk-ZFXLTBZG.mjs.map +0 -7
- package/dist/lib/neutral/context-add-VB7AOY3G.mjs.map +0 -7
- package/dist/lib/neutral/context-remove-VCM3VPSO.mjs.map +0 -7
- package/dist/lib/neutral/enable-blueprints-LBDZH2CY.mjs.map +0 -7
- package/dist/lib/neutral/object-create-Z57Y3X6Y.mjs.map +0 -7
- package/dist/lib/neutral/prompt-Y7NN7M5D.mjs.map +0 -7
- package/dist/lib/neutral/qualifier-VDOY5CWU.mjs.map +0 -7
- package/dist/lib/neutral/query-PPJU5622.mjs.map +0 -7
- package/dist/lib/neutral/query-blueprints-KXADGHSA.mjs.map +0 -7
- package/dist/lib/neutral/relation-create-XJ2IX6X3.mjs.map +0 -7
- package/dist/lib/neutral/schema-add-Z5CY6P24.mjs.map +0 -7
- package/dist/lib/neutral/schema-list-W326VPVX.mjs +0 -38
- package/dist/lib/neutral/schema-list-W326VPVX.mjs.map +0 -7
- package/dist/lib/neutral/sync-issues-4YE5XAK5.mjs.map +0 -7
- package/dist/lib/neutral/sync-triggers-CDMJVW6E.mjs.map +0 -7
- package/dist/lib/neutral/tag-add-VNIIOVJA.mjs.map +0 -7
- package/dist/lib/neutral/tag-remove-6R2R27W3.mjs.map +0 -7
- package/dist/lib/neutral/update-blueprints-N2AK2VUR.mjs +0 -16
- package/dist/lib/neutral/update-blueprints-N2AK2VUR.mjs.map +0 -7
- package/dist/lib/neutral/update-tasks-H7SWIFQL.mjs +0 -46
- package/dist/lib/neutral/update-tasks-H7SWIFQL.mjs.map +0 -7
- package/dist/types/src/blueprints/blueprint-manager/functions/update-blueprints.d.ts +0 -4
- package/dist/types/src/blueprints/blueprint-manager/functions/update-blueprints.d.ts.map +0 -1
- package/dist/types/src/blueprints/planning/functions/definitions.d.ts +0 -11
- package/dist/types/src/blueprints/planning/functions/definitions.d.ts.map +0 -1
- package/src/blueprints/blueprint-manager/functions/update-blueprints.ts +0 -18
- /package/dist/lib/neutral/{create-project-EIF4OJMY.mjs.map → create-project-LVIH4OLF.mjs.map} +0 -0
- /package/dist/lib/neutral/{delete-J3PMWP7Z.mjs.map → delete-MRER3QMO.mjs.map} +0 -0
- /package/dist/lib/neutral/{fetch-KHMHV7JR.mjs.map → fetch-B2AYJK7F.mjs.map} +0 -0
- /package/dist/lib/neutral/{fetch-messages-QOBBCTGC.mjs.map → fetch-messages-RUUU63L2.mjs.map} +0 -0
- /package/dist/lib/neutral/{load-ALP3TK2E.mjs.map → load-YWYQ4THR.mjs.map} +0 -0
- /package/dist/lib/neutral/{object-delete-X53LS37B.mjs.map → object-delete-I5OAPI32.mjs.map} +0 -0
- /package/dist/lib/neutral/{project-HPHTZ2CI.mjs.map → project-4BYI2PZC.mjs.map} +0 -0
- /package/dist/lib/neutral/{project-rules-IVDHKSKI.mjs.map → project-rules-7NYDDQ7K.mjs.map} +0 -0
- /package/dist/lib/neutral/{query-U56GNEV6.mjs.map → query-KBKGBYUO.mjs.map} +0 -0
- /package/dist/lib/neutral/{relation-delete-EP4KXAFL.mjs.map → relation-delete-ZSB7JOHO.mjs.map} +0 -0
- /package/dist/lib/neutral/{save-GWAPLT3Z.mjs.map → save-B2CSSFDG.mjs.map} +0 -0
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/types/Chat.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Schema from 'effect/Schema';\n\nimport { Annotation, Feed, Obj, Ref, Type } from '@dxos/echo';\nimport { FormInputAnnotation, LabelAnnotation } from '@dxos/echo/internal';\n\n/**\n * AI chat.\n */\nexport const Chat = Schema.Struct({\n name: Schema.String.pipe(Schema.optional),\n feed: Ref.Ref(Feed.Feed).pipe(FormInputAnnotation.set(false)),\n view: Schema.String.pipe(Schema.optional),\n}).pipe(\n Type.object({\n typename: 'org.dxos.type.assistant.chat',\n version: '0.1.0',\n }),\n LabelAnnotation.set(['name']),\n Annotation.IconAnnotation.set({\n icon: 'ph--sparkle--regular',\n hue: 'sky',\n }),\n);\n\nexport interface Chat extends Schema.Schema.Type<typeof Chat> {}\n\nexport const make = (props: Obj.MakeProps<typeof Chat>) => Obj.make(Chat, props);\n\n/** @deprecated Use CompanionTo instead. */\nexport const LegacyCompanionTo = Schema.Struct({\n id: Obj.ID,\n}).pipe(\n Type.relation({\n typename: 'org.dxos.relation.assistant.companion-to',\n version: '0.1.0',\n source: Chat,\n target: Obj.Unknown,\n }),\n);\n\nexport interface LegacyCompanionTo extends Schema.Schema.Type<typeof LegacyCompanionTo> {}\n\n/**\n * Relation between a Chat and companion objects (e.g., artifacts).\n */\nexport const CompanionTo = Schema.Struct({\n id: Obj.ID,\n}).pipe(\n Type.relation({\n typename: 'org.dxos.relation.assistant.companionTo',\n version: '0.1.0',\n source: Chat,\n target: Obj.Unknown,\n }),\n);\n\nexport interface CompanionTo extends Schema.Schema.Type<typeof CompanionTo> {}\n"],
|
|
5
|
-
"mappings": ";;;;;AAAA;;;;;;;AAMA,YAAYA,YAAY;AAExB,SAASC,YAAYC,MAAMC,KAAKC,KAAKC,YAAY;AACjD,SAASC,qBAAqBC,uBAAuB;AAK9C,IAAMC,OAAcC,cAAO;EAChCC,MAAaC,cAAOC,KAAYC,eAAQ;EACxCC,MAAMV,IAAIA,IAAIF,KAAKA,IAAI,EAAEU,KAAKN,oBAAoBS,IAAI,KAAA,CAAA;EACtDC,MAAaL,cAAOC,KAAYC,eAAQ;AAC1C,CAAA,EAAGD,KACDP,KAAKY,OAAO;EACVC,UAAU;EACVC,SAAS;AACX,CAAA,GACAZ,gBAAgBQ,IAAI;EAAC;CAAO,GAC5Bd,WAAWmB,eAAeL,IAAI;EAC5BM,MAAM;EACNC,KAAK;AACP,CAAA,CAAA;AAKK,IAAMC,OAAO,CAACC,UAAsCrB,IAAIoB,KAAKf,MAAMgB,KAAAA;AAGnE,IAAMC,oBAA2BhB,cAAO;EAC7CiB,IAAIvB,IAAIwB;AACV,CAAA,EAAGf,KACDP,KAAKuB,SAAS;EACZV,UAAU;EACVC,SAAS;EACTU,QAAQrB;EACRsB,QAAQ3B,IAAI4B;AACd,CAAA,CAAA;AAQK,IAAMC,cAAqBvB,cAAO;EACvCiB,IAAIvB,IAAIwB;AACV,CAAA,EAAGf,KACDP,KAAKuB,SAAS;EACZV,UAAU;EACVC,SAAS;EACTU,QAAQrB;EACRsB,QAAQ3B,IAAI4B;AACd,CAAA,CAAA;",
|
|
6
|
-
"names": ["Schema", "Annotation", "Feed", "Obj", "Ref", "Type", "FormInputAnnotation", "LabelAnnotation", "Chat", "Struct", "name", "String", "pipe", "optional", "feed", "set", "view", "object", "typename", "version", "IconAnnotation", "icon", "hue", "make", "props", "LegacyCompanionTo", "id", "ID", "relation", "source", "target", "Unknown", "CompanionTo"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
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 { 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 } from '@dxos/echo/internal';\nimport { acquireReleaseResource } from '@dxos/effect';\nimport { QueueService } from '@dxos/functions';\nimport { invariant } from '@dxos/invariant';\nimport { 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 * References to objects with a canonical queue property.\n * Schema must have the QueueAnnotation.\n */\n // Change to trigger.\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 * 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 // Change to trigger.\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\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 * @deprecated\n */\n filterEvents: Schema.optional(Schema.Boolean).annotations({\n title: 'Filter events',\n description: 'Allow the agent to filter events.',\n }),\n\n /**\n * Input feed for subscriptions.\n * @deprecated Subscriptions will write directly to the agent.\n */\n queue: Schema.optional(Ref.Ref(Queue).pipe(FormInputAnnotation.set(false))),\n}).pipe(\n Type.object({\n typename: 'org.dxos.type.agent',\n version: '0.1.0',\n }),\n Annotation.LabelAnnotation.set(['name']),\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({ content: 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 { McpServer as McpServerSpec } from '@dxos/compute';\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 * Composes the canonical connection spec from `@dxos/compute` (`url`, `protocol`, `apiKey`)\n * and adds instance-level fields (`name`, `enabled`) plus ECHO annotations.\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 ...McpServerSpec.McpServer.fields,\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", "Annotation", "Database", "Feed", "Format", "Obj", "Ref", "Relation", "Type", "Queue", "FormInputAnnotation", "acquireReleaseResource", "QueueService", "invariant", "Text", "Ref", "artifacts", "Array", "Schema", "String", "data", "Obj", "description", "typename", "version", "Annotation", "IconAnnotation", "set", "icon", "hue", "props", "instructions", "make", "Text", "plan", "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", "McpServer", "McpServerSpec", "Annotation", "Type", "LabelAnnotation", "Struct", "fields", "enabled", "optional", "Boolean", "pipe", "object", "typename", "version", "set", "IconAnnotation", "icon", "hue"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
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 { Credential, 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: [Credential.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,YAAYC,iBAAiB;AACtC,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,WAAWiB;IAAoBf,SAASgB;;AACrD,CAAA;;;AClBA,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", "Credential", "Operation", "Database", "SyncIssues", "make", "meta", "key", "name", "description", "input", "Struct", "team", "String", "annotations", "output", "Any", "services", "CredentialsService", "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
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/blueprints/blueprint-manager/functions/definitions.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { AiContextService } from '@dxos/assistant';\nimport { Blueprint, Operation } from '@dxos/compute';\nimport { Database } from '@dxos/echo';\n\nexport const QueryBlueprints = Operation.make({\n meta: {\n key: 'org.dxos.function.blueprint-manager.query-blueprints',\n name: 'Query blueprints',\n description: 'Queries available blueprints.',\n },\n input: Schema.Struct({}),\n output: Schema.Array(Blueprint.Blueprint),\n services: [Blueprint.RegistryService],\n});\n\nexport const EnableBlueprints = Operation.make({\n meta: {\n key: 'org.dxos.function.blueprint-manager.enable-blueprints',\n name: 'Enable blueprints',\n description:\n 'Enables blueprints in the current conversation by their keys. Only blueprints with agentCanEnable=true can be enabled. Always call [query-blueprints] first to discover available blueprint keys.',\n },\n input: Schema.Struct({\n keys: Schema.Array(Schema.String).annotations({\n description: 'The keys of the blueprints to enable.',\n examples: [['org.dxos.blueprint.memory', 'org.dxos.blueprint.database']],\n }),\n }),\n output: Schema.Struct({\n enabled: Schema.Array(Blueprint.Blueprint),\n rejected: Schema.Array(\n Schema.Struct({\n key: Schema.String,\n reason: Schema.String,\n }),\n ),\n }),\n services: [Blueprint.RegistryService, Database.Service, AiContextService],\n});\n\nexport const UpdateBlueprints = Operation.make({\n meta: {\n key: 'org.dxos.function.blueprint-manager.refresh-blueprints',\n name: 'Refresh blueprints',\n description:\n 'Updates the blueprints saved to the database with the latest version from the registry. Sometimes blueprints in the database can become outdated. Use this function to pull in the latest versions.',\n },\n input: Schema.Struct({}),\n output: Schema.Void,\n services: [Blueprint.RegistryService, Database.Service],\n});\n"],
|
|
5
|
-
"mappings": ";AAIA,YAAYA,YAAY;AAExB,SAASC,wBAAwB;AACjC,SAASC,WAAWC,iBAAiB;AACrC,SAASC,gBAAgB;AAElB,IAAMC,kBAAkBF,UAAUG,KAAK;EAC5CC,MAAM;IACJC,KAAK;IACLC,MAAM;IACNC,aAAa;EACf;EACAC,OAAcC,cAAO,CAAC,CAAA;EACtBC,QAAeC,aAAMZ,UAAUA,SAAS;EACxCa,UAAU;IAACb,UAAUc;;AACvB,CAAA;AAEO,IAAMC,mBAAmBd,UAAUG,KAAK;EAC7CC,MAAM;IACJC,KAAK;IACLC,MAAM;IACNC,aACE;EACJ;EACAC,OAAcC,cAAO;IACnBM,MAAaJ,aAAaK,aAAM,EAAEC,YAAY;MAC5CV,aAAa;MACbW,UAAU;QAAC;UAAC;UAA6B;;;IAC3C,CAAA;EACF,CAAA;EACAR,QAAeD,cAAO;IACpBU,SAAgBR,aAAMZ,UAAUA,SAAS;IACzCqB,UAAiBT,aACRF,cAAO;MACZJ,KAAYW;MACZK,QAAeL;IACjB,CAAA,CAAA;EAEJ,CAAA;EACAJ,UAAU;IAACb,UAAUc;IAAiBZ,SAASqB;IAASxB;;AAC1D,CAAA;AAEO,IAAMyB,mBAAmBvB,UAAUG,KAAK;EAC7CC,MAAM;IACJC,KAAK;IACLC,MAAM;IACNC,aACE;EACJ;EACAC,OAAcC,cAAO,CAAC,CAAA;EACtBC,QAAec;EACfZ,UAAU;IAACb,UAAUc;IAAiBZ,SAASqB;;AACjD,CAAA;",
|
|
6
|
-
"names": ["Schema", "AiContextService", "Blueprint", "Operation", "Database", "QueryBlueprints", "make", "meta", "key", "name", "description", "input", "Struct", "output", "Array", "services", "RegistryService", "EnableBlueprints", "keys", "String", "annotations", "examples", "enabled", "rejected", "reason", "Service", "UpdateBlueprints", "Void"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/blueprints/project-wizard/functions/definitions.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Blueprint, Operation } from '@dxos/compute';\nimport { Database, Feed, Obj, Ref } from '@dxos/echo';\nimport { QueueService } from '@dxos/functions';\n\nimport { Agent } from '../../../types';\n\nexport const AgentRules = Operation.make({\n meta: {\n key: 'org.dxos.function.agent-wizard.agent-rules',\n name: 'Agent rules',\n description: 'Gets the rules for creating an agent.',\n },\n input: Schema.Struct({}),\n output: Schema.String,\n});\n\nexport const CreateAgent = Operation.make({\n meta: {\n key: 'org.dxos.function.agent-wizard.create-agent',\n name: 'Create agent',\n description: 'Creates a new agent.',\n },\n input: Schema.Struct({\n name: Schema.String.annotations({\n description: 'The name of the agent to create.',\n }),\n instructions: Schema.String.annotations({\n description:\n 'The goal of the agent. Be specific but not too verbose. The agent will use this as a core objective and set of rules to follow.',\n }),\n blueprints: Schema.Array(Schema.String).annotations({\n description: 'The blueprint keys to use for the agent.',\n examples: [['org.dxos.blueprint.markdown', 'org.dxos.blueprint.database']],\n }),\n subscriptions: Schema.Array(Ref.Ref(Obj.Unknown)).annotations({\n description: 'The objects to subscribe to for the agent. Can be references to mailboxes.',\n }),\n }),\n output: Agent.Agent,\n services: [Blueprint.RegistryService, Database.Service, QueueService, Feed.FeedService],\n});\n\nexport const SyncTriggers = Operation.make({\n meta: {\n key: 'org.dxos.function.agent.sync-triggers',\n name: 'Sync triggers',\n description:\n 'Synchronizes triggers with the agent: subscriptions, cron, filter-events, and enabled (copied to every trigger). Call after editing those fields.',\n },\n input: Schema.Struct({\n agent: Ref.Ref(Agent.Agent).annotations({\n description: 'The agent whose triggers should be synced.',\n }),\n }),\n output: Schema.Void,\n services: [Database.Service],\n});\n"],
|
|
5
|
-
"mappings": ";;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,WAAWC,iBAAiB;AACrC,SAASC,UAAUC,MAAMC,KAAKC,WAAW;AACzC,SAASC,oBAAoB;AAItB,IAAMC,aAAaC,UAAUC,KAAK;EACvCC,MAAM;IACJC,KAAK;IACLC,MAAM;IACNC,aAAa;EACf;EACAC,OAAcC,cAAO,CAAC,CAAA;EACtBC,QAAeC;AACjB,CAAA;AAEO,IAAMC,cAAcV,UAAUC,KAAK;EACxCC,MAAM;IACJC,KAAK;IACLC,MAAM;IACNC,aAAa;EACf;EACAC,OAAcC,cAAO;IACnBH,MAAaK,cAAOE,YAAY;MAC9BN,aAAa;IACf,CAAA;IACAO,cAAqBH,cAAOE,YAAY;MACtCN,aACE;IACJ,CAAA;IACAQ,YAAmBC,aAAaL,aAAM,EAAEE,YAAY;MAClDN,aAAa;MACbU,UAAU;QAAC;UAAC;UAA+B;;;IAC7C,CAAA;IACAC,eAAsBF,aAAMG,IAAIA,IAAIC,IAAIC,OAAO,CAAA,EAAGR,YAAY;MAC5DN,aAAa;IACf,CAAA;EACF,CAAA;EACAG,QAAQY,cAAMA;EACdC,UAAU;IAACC,UAAUC;IAAiBC,SAASC;IAASC;IAAcC,KAAKC;;AAC7E,CAAA;AAEO,IAAMC,eAAe7B,UAAUC,KAAK;EACzCC,MAAM;IACJC,KAAK;IACLC,MAAM;IACNC,aACE;EACJ;EACAC,OAAcC,cAAO;IACnBuB,OAAOb,IAAIA,IAAIG,cAAMA,KAAK,EAAET,YAAY;MACtCN,aAAa;IACf,CAAA;EACF,CAAA;EACAG,QAAeuB;EACfV,UAAU;IAACG,SAASC;;AACtB,CAAA;",
|
|
6
|
-
"names": ["Schema", "Blueprint", "Operation", "Database", "Feed", "Obj", "Ref", "QueueService", "AgentRules", "Operation", "make", "meta", "key", "name", "description", "input", "Struct", "output", "String", "CreateAgent", "annotations", "instructions", "blueprints", "Array", "examples", "subscriptions", "Ref", "Obj", "Unknown", "Agent", "services", "Blueprint", "RegistryService", "Database", "Service", "QueueService", "Feed", "FeedService", "SyncTriggers", "agent", "Void"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
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 { Credential, Trace, 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: [Credential.CredentialsService, Trace.TraceService],\n});\n"],
|
|
5
|
-
"mappings": ";AAIA,YAAYA,YAAY;AAExB,SAASC,YAAYC,OAAOC,iBAAiB;AAG7C,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,WAAWwC;IAAoBvC,MAAMwC;;AAClD,CAAA;",
|
|
6
|
-
"names": ["Schema", "Credential", "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", "CredentialsService", "TraceService"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/blueprints/database/functions/context-add.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { AiContextService } from '@dxos/assistant';\nimport { Operation } from '@dxos/compute';\n\nimport { ContextAdd } from './definitions';\n\nexport default ContextAdd.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ obj }) {\n const { binder } = yield* AiContextService;\n yield* Effect.promise(() =>\n binder.bind({\n blueprints: [],\n objects: [obj],\n }),\n );\n }),\n ),\n);\n"],
|
|
5
|
-
"mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,wBAAwB;AACjC,SAASC,iBAAiB;AAI1B,IAAA,sBAAeC,WAAWC,KACxBC,UAAUC,YACDC,UAAG,WAAW,EAAEC,IAAG,GAAE;AAC1B,QAAM,EAAEC,OAAM,IAAK,OAAOC;AAC1B,SAAcC,eAAQ,MACpBF,OAAOG,KAAK;IACVC,YAAY,CAAA;IACZC,SAAS;MAACN;;EACZ,CAAA,CAAA;AAEJ,CAAA,CAAA,CAAA;",
|
|
6
|
-
"names": ["Effect", "AiContextService", "Operation", "ContextAdd", "pipe", "Operation", "withHandler", "fn", "obj", "binder", "AiContextService", "promise", "bind", "blueprints", "objects"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/blueprints/database/functions/context-remove.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { AiContextService } from '@dxos/assistant';\nimport { Operation } from '@dxos/compute';\n\nimport { ContextRemove } from './definitions';\n\nexport default ContextRemove.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ obj }) {\n const { binder } = yield* AiContextService;\n yield* Effect.promise(() =>\n binder.unbind({\n blueprints: [],\n objects: [obj],\n }),\n );\n }) as any,\n ),\n);\n"],
|
|
5
|
-
"mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,wBAAwB;AACjC,SAASC,iBAAiB;AAI1B,IAAA,yBAAeC,cAAcC,KAC3BC,UAAUC,YACDC,UAAG,WAAW,EAAEC,IAAG,GAAE;AAC1B,QAAM,EAAEC,OAAM,IAAK,OAAOC;AAC1B,SAAcC,eAAQ,MACpBF,OAAOG,OAAO;IACZC,YAAY,CAAA;IACZC,SAAS;MAACN;;EACZ,CAAA,CAAA;AAEJ,CAAA,CAAA,CAAA;",
|
|
6
|
-
"names": ["Effect", "AiContextService", "Operation", "ContextRemove", "pipe", "Operation", "withHandler", "fn", "obj", "binder", "AiContextService", "promise", "unbind", "blueprints", "objects"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/blueprints/blueprint-manager/functions/enable-blueprints.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { AiContextService } from '@dxos/assistant';\nimport { Blueprint, Operation } from '@dxos/compute';\nimport { Ref } from '@dxos/echo';\n\nimport { EnableBlueprints } from './definitions';\n\nexport default EnableBlueprints.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* ({ keys }) {\n const registry = yield* Blueprint.RegistryService;\n const enabled: Blueprint.Blueprint[] = [];\n const rejected: { key: string; reason: string }[] = [];\n\n for (const key of keys) {\n const blueprint = registry.getByKey(key);\n if (!blueprint) {\n rejected.push({ key, reason: 'Blueprint not found in registry.' });\n continue;\n }\n if (!blueprint.agentCanEnable) {\n rejected.push({ key, reason: 'Blueprint does not allow agent auto-enable (agentCanEnable is not set).' });\n continue;\n }\n const dbBlueprint = yield* Blueprint.upsert(key).pipe(Effect.orDie);\n enabled.push(dbBlueprint);\n }\n\n if (enabled.length > 0) {\n yield* AiContextService.bindContext({\n blueprints: enabled.map(Ref.make),\n });\n }\n\n return { enabled, rejected };\n }),\n ),\n);\n"],
|
|
5
|
-
"mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,wBAAwB;AACjC,SAASC,WAAWC,iBAAiB;AACrC,SAASC,WAAW;AAIpB,IAAA,4BAAeC,iBAAiBC,KAC9BC,UAAUC,YACDC,kBAAW,WAAW,EAAEC,KAAI,GAAE;AACnC,QAAMC,WAAW,OAAOC,UAAUC;AAClC,QAAMC,UAAiC,CAAA;AACvC,QAAMC,WAA8C,CAAA;AAEpD,aAAWC,OAAON,MAAM;AACtB,UAAMO,YAAYN,SAASO,SAASF,GAAAA;AACpC,QAAI,CAACC,WAAW;AACdF,eAASI,KAAK;QAAEH;QAAKI,QAAQ;MAAmC,CAAA;AAChE;IACF;AACA,QAAI,CAACH,UAAUI,gBAAgB;AAC7BN,eAASI,KAAK;QAAEH;QAAKI,QAAQ;MAA0E,CAAA;AACvG;IACF;AACA,UAAME,cAAc,OAAOV,UAAUW,OAAOP,GAAAA,EAAKV,KAAYkB,YAAK;AAClEV,YAAQK,KAAKG,WAAAA;EACf;AAEA,MAAIR,QAAQW,SAAS,GAAG;AACtB,WAAOC,iBAAiBC,YAAY;MAClCC,YAAYd,QAAQe,IAAIC,IAAIC,IAAI;IAClC,CAAA;EACF;AAEA,SAAO;IAAEjB;IAASC;EAAS;AAC7B,CAAA,CAAA,CAAA;",
|
|
6
|
-
"names": ["Effect", "AiContextService", "Blueprint", "Operation", "Ref", "EnableBlueprints", "pipe", "Operation", "withHandler", "fnUntraced", "keys", "registry", "Blueprint", "RegistryService", "enabled", "rejected", "key", "blueprint", "getByKey", "push", "reason", "agentCanEnable", "dbBlueprint", "upsert", "orDie", "length", "AiContextService", "bindContext", "blueprints", "map", "Ref", "make"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/blueprints/database/functions/object-create.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/compute';\nimport { Database, Entity, Obj, Type } from '@dxos/echo';\nimport { EncodedReference } from '@dxos/echo-protocol';\nimport { invariant } from '@dxos/invariant';\nimport { deepMapValues } from '@dxos/util';\n\nimport { ObjectCreate } from './definitions';\n\nexport default ObjectCreate.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ typename, data }) {\n const { db } = yield* Database.Service;\n const schema = yield* Effect.promise(() =>\n db.schemaRegistry.query({ typename, location: ['database', 'runtime'] }).first(),\n );\n invariant(Type.isObjectSchema(schema), 'Schema is not an object schema');\n\n const object = db.add(\n Obj.make(\n schema,\n deepMapValues(data, (value, recurse) => {\n if (EncodedReference.isEncodedReference(value)) {\n return db.makeRef(EncodedReference.toDXN(value));\n }\n return recurse(value);\n }),\n ),\n );\n return Entity.toJSON(object);\n }),\n ),\n);\n"],
|
|
5
|
-
"mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiB;AAC1B,SAASC,UAAUC,QAAQC,KAAKC,YAAY;AAC5C,SAASC,wBAAwB;AACjC,SAASC,iBAAiB;AAC1B,SAASC,qBAAqB;AAI9B,IAAA,eAAeC;IAIT,wBAAMC,aAAgBC,KAAOC,UAAQ,YAClB,UAACC,WAAM,EAAA,UAAA,KAAA,GAAA;UAAEC,GAAAA,IAAAA,OAAAA,SAAAA;iBAAUC,OAAU,eAAA,MAAA,GAAA,eAAA,MAAA;;cAAa;MAAU;MAAS;IAEhFC;EAEA,CAAA,EAAMC,MAAAA,CAAAA;YAIIC,KAAAA,eAAiBC,MAAAA,GAAAA,kCAA2B,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,MAAA,GAAA,CAAA,+BAAA,kCAAA,EAAA,CAAA;iBACvCC,GAAGC,IAAAA,IAAQH,KAAAA,QAAAA,cAAuBI,MAAAA,CAAAA,OAAAA,YAAAA;AAC3C,QAAA,iBAAA,mBAAA,KAAA,GAAA;AACA,aAAOC,GAAAA,QAAQD,iBAAAA,MAAAA,KAAAA,CAAAA;IACjB;AAGJ,WAAOE,QAAOC,KAAOR;EACvB,CAEF,CAAA,CAAA;;;",
|
|
6
|
-
"names": ["Effect", "Operation", "Database", "Entity", "Obj", "Type", "EncodedReference", "invariant", "deepMapValues", "ObjectCreate", "schema", "Effect", "promise", "query", "typename", "location", "invariant", "object", "EncodedReference", "isEncodedReference", "db", "makeRef", "value", "recurse", "Entity", "toJSON"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/functions/agent/prompt.ts", "../../../src/errors.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 Array from 'effect/Array';\nimport * as Deferred from 'effect/Deferred';\nimport * as Effect from 'effect/Effect';\nimport * as Function from 'effect/Function';\nimport * as Layer from 'effect/Layer';\nimport * as Option from 'effect/Option';\nimport * as Schema from 'effect/Schema';\n\nimport { AiService, OpaqueToolkit, ModelName } from '@dxos/ai';\nimport {\n AiSession,\n getOperationFromTool,\n makeToolExecutionService,\n makeToolResolverFromOperations,\n} from '@dxos/assistant';\nimport { Template, Trace, Operation } from '@dxos/compute';\nimport { Database, Feed, Obj, Ref } from '@dxos/echo';\nimport { acquireReleaseResource } from '@dxos/effect';\nimport { invariant } from '@dxos/invariant';\nimport { log } from '@dxos/log';\nimport { trim } from '@dxos/util';\n\nimport { PromptError } from '../../errors';\nimport * as Chat from '../../types/Chat';\nimport { AgentPrompt } from './definitions';\n\nconst DEFAULT_MODEL: ModelName = '@anthropic/claude-opus-4-6';\n\nexport default AgentPrompt.pipe(\n Operation.withHandler(\n Effect.fnUntraced(\n function* (data) {\n log.info('processing input', { input: data.input });\n\n const input = yield* Ref.isRef(data.input)\n ? Database.load(data.input).pipe(Effect.map(Obj.toJSON))\n : Effect.succeed(data.input);\n\n yield* Database.flush();\n const prompt = yield* Database.load(data.prompt);\n yield* Trace.emitStatus(`Running ${prompt.id}`);\n\n log.info('starting agent', { prompt: prompt.id, input });\n\n const blueprints = yield* Function.pipe(\n prompt.blueprints,\n Effect.forEach(Database.loadOption),\n Effect.map(Array.filter(Option.isSome)),\n Effect.map(Array.map((option) => option.value)),\n );\n\n const objects = yield* Function.pipe(\n prompt.context,\n Effect.forEach(Database.loadOption),\n Effect.map(Array.filter(Option.isSome)),\n Effect.map(Array.map((option) => option.value)),\n );\n\n const promptInstructions = yield* Database.load(prompt.instructions.source);\n let promptText = Template.process(promptInstructions.content, input);\n\n if (input !== undefined) {\n promptText += `\\n<input>${JSON.stringify(input)}</input>`;\n }\n\n let systemText = trim`\n You are an agent running in the non-interactive mode.\n The user is unable to see what you are doing, and cannot answer any questions.\n Do not ask questions.\n Complete the task before you, and at the end call [completeJob] with the output.\n If you are unable to complete the task, call [completeJob] with the failure reason.\n If no output is required, call [completeJob] with an empty object: {}\n Do not stop until you call [completeJob].\n `;\n if (data.systemInstructions) {\n systemText += `\\n\\n${data.systemInstructions}`;\n }\n\n const modelLayer = AiService.model(data.model ?? DEFAULT_MODEL);\n\n let feed: Feed.Feed;\n if (data.chat) {\n const chat = yield* Database.load(data.chat);\n invariant(Obj.instanceOf(Chat.Chat, chat), 'Expected Chat object.');\n feed = yield* Database.load(chat.feed);\n } else {\n feed = yield* Database.add(Feed.make());\n }\n\n const resultSink = yield* Deferred.make<unknown, PromptError>();\n const promptToolkit = makePromptAgentToolkit({\n output: Schema.Any, // TODO(dmaretskyi): Use prompt's output schema.\n resultSink,\n });\n\n const runtime = yield* Effect.runtime<Feed.FeedService>();\n const session = yield* acquireReleaseResource(() => new AiSession({ feed, runtime }));\n\n yield* Effect.promise(() =>\n session.context.bind({\n blueprints: blueprints.map((blueprint) => Ref.make(blueprint)),\n objects: objects.map((object) => Ref.make(object as Obj.Unknown)),\n }),\n );\n\n yield* session\n .createRequest({\n prompt: promptText,\n system: systemText,\n toolkit: promptToolkit,\n })\n .pipe(\n Effect.provide(\n Layer.mergeAll(modelLayer, ToolExecutionService({ feed }), makeToolResolverFromOperations()),\n ),\n );\n\n return yield* Deferred.poll(resultSink).pipe(\n Effect.flatten,\n Effect.flatten,\n Effect.catchTag('NoSuchElementException', () =>\n Effect.gen(function* () {\n yield* session\n .createRequest({\n prompt: 'You must signal task completion by calling [completeJob] with the output or failure reason.',\n system: systemText,\n toolkit: promptToolkit,\n })\n .pipe(\n Effect.provide(\n Layer.mergeAll(modelLayer, ToolExecutionService({ feed }), makeToolResolverFromOperations()),\n ),\n );\n\n return yield* Deferred.poll(resultSink).pipe(\n Effect.flatten,\n Effect.flatten,\n Effect.catchTag('NoSuchElementException', () =>\n Effect.fail(new PromptError('Agent did not signal task completion.', {})),\n ),\n );\n }),\n ),\n );\n },\n Effect.tapBoth({\n onSuccess: () => Database.flush(),\n onFailure: () => Database.flush(),\n }),\n Effect.scoped,\n ),\n ),\n Operation.opaqueHandler,\n);\n\nconst makePromptAgentToolkit = (options: {\n output: Schema.Schema.Any;\n resultSink: Deferred.Deferred<unknown, PromptError>;\n}) => {\n class PromptAgentToolkit extends Toolkit.make(\n Tool.make('completeJob', {\n parameters: {\n success: Schema.optional(Schema.Any), // TODO(dmaretskyi): Pipe output schema here.\n failure: Schema.optional(\n Schema.Struct({\n message: Schema.String.annotations({\n description: 'Short message describing the error.',\n }),\n description: Schema.optional(Schema.String).annotations({\n description: 'Optional longer message describing in detail what went wrong',\n }),\n }),\n ),\n },\n }),\n ) {}\n const layer = PromptAgentToolkit.toLayer({\n completeJob: Effect.fnUntraced(function* (result) {\n if (result.failure) {\n yield* Deferred.fail(\n options.resultSink,\n new PromptError(result.failure.message, {\n description: result.failure.description,\n }),\n );\n } else {\n yield* Deferred.succeed(options.resultSink, result.success);\n }\n }),\n });\n\n return OpaqueToolkit.make(PromptAgentToolkit, layer);\n};\n\ninterface ToolExecutionServiceOptions {\n feed: Feed.Feed;\n}\n\nconst ToolExecutionService = ({ feed }: ToolExecutionServiceOptions) =>\n Layer.unwrapEffect(\n Effect.gen(function* () {\n const operationInvoker = yield* Operation.Service;\n return makeToolExecutionService({\n invoke: (tool, input) =>\n Effect.gen(function* () {\n const operationDef = getOperationFromTool(tool).pipe(Option.getOrThrow);\n log('invoking operation', { operationDef, input });\n const result = yield* operationInvoker\n .invoke(operationDef, input, {\n conversation: Obj.getDXN(feed).toString(),\n })\n .pipe(Effect.orDie);\n log('result', { result });\n return result;\n }),\n });\n }),\n );\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { BaseError } from '@dxos/errors';\nimport { DXN } from '@dxos/keys';\n\n/**\n * Agent could not execute prompt.\n */\nexport class PromptError extends BaseError.extend('PromptError') {\n constructor(\n message: string,\n context: {\n description?: string;\n prompt?: DXN.String;\n chat?: DXN.String;\n },\n ) {\n super({\n message,\n context,\n });\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Tool", "Toolkit", "Array", "Deferred", "Effect", "Function", "Layer", "Option", "Schema", "AiService", "OpaqueToolkit", "AiSession", "getOperationFromTool", "makeToolExecutionService", "makeToolResolverFromOperations", "Template", "Trace", "Operation", "Database", "Feed", "Obj", "Ref", "acquireReleaseResource", "invariant", "log", "trim", "BaseError", "PromptError", "extend", "message", "context", "DEFAULT_MODEL", "log", "data", "input", "Database", "prompt", "load", "Trace", "emitStatus", "info", "objects", "Function", "context", "promptInstructions", "instructions", "promptText", "process", "JSON", "systemText", "trim", "modelLayer", "AiService", "model", "invariant", "Obj", "feed", "chat", "add", "Feed", "make", "resultSink", "Deferred", "output", "Any", "runtime", "Effect", "map", "object", "Ref", "session", "createRequest", "system", "toolkit", "pipe", "makeToolResolverFromOperations", "tapBoth", "onSuccess", "onFailure", "scoped", "Operation", "opaqueHandler", "makePromptAgentToolkit", "options", "PromptAgentToolkit", "Toolkit", "failure", "Schema", "annotations", "description", "result", "ToolExecutionService", "unwrapEffect", "makeToolExecutionService", "invoke", "operationDef", "conversation", "getDXN", "toString", "orDie"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/blueprints/project/functions/qualifier.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as LanguageModel from '@effect/ai/LanguageModel';\nimport * as Prompt from '@effect/ai/Prompt';\nimport * as Effect from 'effect/Effect';\nimport * as Schema from 'effect/Schema';\n\nimport { AiService } from '@dxos/ai';\nimport { Operation } from '@dxos/compute';\nimport { Database, Obj, Ref } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\nimport { trim } from '@dxos/util';\n\nimport { Plan, Agent } from '../../../types';\nimport { Qualifier } from './definitions';\n\nexport default Qualifier.pipe(\n Operation.withHandler(\n Effect.fnUntraced(\n function* ({ agent: agentRef, event }) {\n const agent = yield* Database.load(agentRef);\n invariant(Obj.instanceOf(Agent.Agent, agent));\n invariant(agent.chat, 'Agent has no chat.');\n\n const { id, name, queue } = agent;\n if (!queue) {\n throw new Error('Agent has no queue.');\n }\n\n const plan = yield* Database.load(agent.plan);\n const instructions = yield* Database.load(agent.instructions);\n\n const { value } = yield* Effect.scoped(\n LanguageModel.generateObject({\n schema: Schema.Struct({\n isRelevant: Schema.Boolean,\n }),\n prompt: Prompt.fromMessages([\n Prompt.systemMessage({\n content: trim`\n You are a qualifying agent that determines if the event is relevant to the agent.\n Respond with true if the event is relevant to the agent, false otherwise.\n If you are not sure, return true.\n The qualified events will be forwarded to the larger agent that will process them.\n <agent id=\"${id}\" name=\"${name}\">\n <instructions>\n ${instructions.content}\n </instructions>\n <plan>\n ${Plan.formatPlan(plan)}\n </plan>\n </agent>\n `,\n }),\n Prompt.userMessage({\n content: [\n Prompt.makePart('text', {\n text: trim`\n <event>\n ${JSON.stringify(event, null, 2)}\n </event>\n `,\n }),\n ],\n }),\n ]),\n }),\n );\n\n const { isRelevant } = value as { isRelevant: boolean };\n\n if (isRelevant) {\n const queueTarget = yield* Database.load(queue);\n if ('queue' in event && event.item) {\n const obj = event.item;\n yield* Effect.promise(() => queueTarget.append([obj]));\n } else if ('subject' in event && Ref.isRef(event.subject)) {\n const obj = yield* Database.load(event.subject);\n yield* Effect.promise(() => queueTarget.append([obj]));\n } else {\n throw new Error('Invalid event.');\n }\n }\n },\n Effect.provide(AiService.model('@anthropic/claude-sonnet-4-5')),\n ),\n ),\n);\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;AAIA,YAAYA,mBAAmB;AAC/B,YAAYC,YAAY;AACxB,YAAYC,YAAY;AACxB,YAAYC,YAAY;AAExB,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB;AAC1B,SAASC,UAAUC,KAAKC,WAAW;AACnC,SAASC,iBAAiB;AAC1B,SAASC,YAAY;AAKrB,IAAA,eAAeC;IAKPC,oBAAUC,UAAIC,KAAWC,UAAW,YAAEC,kBAAAA,WAAAA,EAAAA,OAAAA,UAAAA,MAAAA,GAAAA;AACtCJ,QAAAA,QAAUI,OAAU,SAAE,KAAA,QAAA;AAEtB,YAAU,IAAEC,WAAa,cAAGD,OAAAA,KAAAA,GAAAA,QAAAA,EAAAA,YAAAA,YAAAA,GAAAA,cAAAA,GAAAA,IAAAA,GAAAA,MAAAA,GAAAA,CAAAA,sCAAAA,EAAAA,EAAAA,CAAAA;AAC5B,YAAKE,MAAO,MAAA,sBAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,MAAA,GAAA,CAAA,cAAA,sBAAA,EAAA,CAAA;QACV,EAAA,IAAM,MAAIC,MAAM,IAAA;AAClB,MAAA,CAAA,OAAA;AAEA,UAAMC,IAAO,MAAOC,qBAAoBD;EACxC;AAEA,QAAM,OAAO,OAAK,SAAOE,KAAOC,MAC9BC,IAAAA;QACEC,eAAeC,OAAO,SAAA,KAAA,MAAA,YAAA;UACpBC,MAAAA,IAAAA,OAAmBC,cAAO,6BAAA;IAC5B,QAAA,cAAA;MACAC,YAAeC;;YAEXC,oBAAc;;;;;;;+BAORC,EAAAA,WAAqB,IAAA;;;;;;;;;;yBAUlBC;iBACLC;;YAEI,MAAEC;;0BAEL,KAAA,UAAA,OAAA,MAAA,CAAA,CAAA;;;UAGP,CAAA;QACD;MACH,CAAA;IAGF,CAAA;EAEA,CAAA,CAAA;QACE,EAAA,WAAMC,IAAAA;MACN,YAAI;UACF,cAAYC,OAAU,SAAA,KAAA,KAAA;QACtB,WAAOf,SAAOgB,MAAcF,MAAAA;kBAAoBG,MAAAA;aAAI,eAAA,MAAA,YAAA,OAAA;QAC3C;MACT,CAAA,CAAMA;eACCjB,aAAOgB,SAAcF,IAAAA,MAAYI,MAAO,OAAA,GAAA;kBAACD,OAAAA,SAAAA,KAAAA,MAAAA,OAAAA;aAAI,eAAA,MAAA,YAAA,OAAA;QAC/C;MACL,CAAA,CAAM;IACR,OAAA;AACF,YAAA,IAAA,MAAA,gBAAA;IAEFjB;;;",
|
|
6
|
-
"names": ["LanguageModel", "Prompt", "Effect", "Schema", "AiService", "Operation", "Database", "Obj", "Ref", "invariant", "trim", "Qualifier", "invariant", "Obj", "instanceOf", "Agent", "agent", "name", "queue", "Error", "plan", "Database", "Effect", "scoped", "LanguageModel", "schema", "Struct", "isRelevant", "Boolean", "prompt", "fromMessages", "content", "instructions", "makePart", "text", "JSON", "queueTarget", "event", "promise", "obj", "append"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/blueprints/database/functions/query.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/compute';\nimport { Entity, Filter, Obj, Query as EchoQuery } from '@dxos/echo';\nimport { Database } from '@dxos/echo';\n\nimport { Query } from './definitions';\n\n// TODO(burdon): Move to toolkit (i.e., tool not function).\nexport default Query.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ in: parents, typename, text, includeContent = false, limit = 10, includeQueues = false }) {\n const { db } = yield* Database.Service;\n let query: EchoQuery.Any;\n if (text) {\n query = EchoQuery.all(\n ...text.split(' ').map((term) => EchoQuery.select(Filter.text(term, { type: 'full-text' }))),\n );\n if (typename !== undefined) {\n const schema = yield* Database.runSchemaQuery({ typename, location: ['database', 'runtime'] });\n if (schema.length === 0) {\n return yield* Effect.fail(new Error(`Schema ${typename} not found`));\n }\n query = query.select(Filter.type(schema[0]));\n }\n } else if (typename) {\n const schema = yield* Database.runSchemaQuery({ typename, location: ['database', 'runtime'] });\n if (schema.length === 0) {\n return yield* Effect.fail(new Error(`Schema ${typename} not found`));\n }\n query = EchoQuery.select(Filter.type(schema[0]));\n } else {\n query = EchoQuery.select(Filter.everything());\n }\n\n if (parents && parents.length > 0) {\n query = query.select(Filter.childOf(parents));\n }\n\n query = query.limit(limit);\n if (includeQueues) {\n // Must scope to the current space: `from({ allQueuesFromSpaces: true })` alone has no spaceIds, so the SQL\n // index returns nothing (see ObjectMetaIndex.buildSourceCondition / early returns when spaceIds are empty).\n query = query.from(db, { includeFeeds: true });\n }\n\n yield* Database.flush();\n const results = yield* Database.runQuery(query);\n if (includeContent) {\n return results.map((obj) => Entity.toJSON(obj));\n } else {\n return results.map((obj) => ({\n dxn: Obj.getDXN(obj).toString(),\n typename: Obj.getTypename(obj),\n label: Obj.getLabel(obj),\n }));\n }\n }),\n ),\n);\n"],
|
|
5
|
-
"mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiB;AAC1B,SAASC,QAAQC,QAAQC,KAAKC,SAASC,iBAAiB;AACxD,SAASC,gBAAgB;AAKzB,IAAA,gBAAeC,MAAMC,KACnBC,UAAUC,YACDC,UAAG,WAAW,EAAEC,IAAIC,SAASC,UAAUC,MAAMC,iBAAiB,OAAOC,QAAQ,IAAIC,gBAAgB,MAAK,GAAE;AAC7G,QAAM,EAAEC,GAAE,IAAK,OAAOC,SAASC;AAC/B,MAAIC;AACJ,MAAIP,MAAM;AACRO,YAAQC,UAAUC,IAAG,GAChBT,KAAKU,MAAM,GAAA,EAAKC,IAAI,CAACC,SAASJ,UAAUK,OAAOC,OAAOd,KAAKY,MAAM;MAAEG,MAAM;IAAY,CAAA,CAAA,CAAA,CAAA;AAE1F,QAAIhB,aAAaiB,QAAW;AAC1B,YAAMC,SAAS,OAAOZ,SAASa,eAAe;QAAEnB;QAAUoB,UAAU;UAAC;UAAY;;MAAW,CAAA;AAC5F,UAAIF,OAAOG,WAAW,GAAG;AACvB,eAAO,OAAcC,YAAK,IAAIC,MAAM,UAAUvB,QAAAA,YAAoB,CAAA;MACpE;AACAQ,cAAQA,MAAMM,OAAOC,OAAOC,KAAKE,OAAO,CAAA,CAAE,CAAA;IAC5C;EACF,WAAWlB,UAAU;AACnB,UAAMkB,SAAS,OAAOZ,SAASa,eAAe;MAAEnB;MAAUoB,UAAU;QAAC;QAAY;;IAAW,CAAA;AAC5F,QAAIF,OAAOG,WAAW,GAAG;AACvB,aAAO,OAAcC,YAAK,IAAIC,MAAM,UAAUvB,QAAAA,YAAoB,CAAA;IACpE;AACAQ,YAAQC,UAAUK,OAAOC,OAAOC,KAAKE,OAAO,CAAA,CAAE,CAAA;EAChD,OAAO;AACLV,YAAQC,UAAUK,OAAOC,OAAOS,WAAU,CAAA;EAC5C;AAEA,MAAIzB,WAAWA,QAAQsB,SAAS,GAAG;AACjCb,YAAQA,MAAMM,OAAOC,OAAOU,QAAQ1B,OAAAA,CAAAA;EACtC;AAEAS,UAAQA,MAAML,MAAMA,KAAAA;AACpB,MAAIC,eAAe;AAGjBI,YAAQA,MAAMkB,KAAKrB,IAAI;MAAEsB,cAAc;IAAK,CAAA;EAC9C;AAEA,SAAOrB,SAASsB,MAAK;AACrB,QAAMC,UAAU,OAAOvB,SAASwB,SAAStB,KAAAA;AACzC,MAAIN,gBAAgB;AAClB,WAAO2B,QAAQjB,IAAI,CAACmB,QAAQC,OAAOC,OAAOF,GAAAA,CAAAA;EAC5C,OAAO;AACL,WAAOF,QAAQjB,IAAI,CAACmB,SAAS;MAC3BG,KAAKC,IAAIC,OAAOL,GAAAA,EAAKM,SAAQ;MAC7BrC,UAAUmC,IAAIG,YAAYP,GAAAA;MAC1BQ,OAAOJ,IAAIK,SAAST,GAAAA;IACtB,EAAA;EACF;AACF,CAAA,CAAA,CAAA;",
|
|
6
|
-
"names": ["Effect", "Operation", "Entity", "Filter", "Obj", "Query", "EchoQuery", "Database", "Query", "pipe", "Operation", "withHandler", "fn", "in", "parents", "typename", "text", "includeContent", "limit", "includeQueues", "db", "Database", "Service", "query", "EchoQuery", "all", "split", "map", "term", "select", "Filter", "type", "undefined", "schema", "runSchemaQuery", "location", "length", "fail", "Error", "everything", "childOf", "from", "includeFeeds", "flush", "results", "runQuery", "obj", "Entity", "toJSON", "dxn", "Obj", "getDXN", "toString", "getTypename", "label", "getLabel"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/blueprints/blueprint-manager/functions/query-blueprints.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Blueprint, Operation } from '@dxos/compute';\n\nimport { QueryBlueprints } from './definitions';\n\nexport default QueryBlueprints.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* () {\n const registry = yield* Blueprint.RegistryService;\n return registry.query();\n }),\n ),\n);\n"],
|
|
5
|
-
"mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,WAAWC,iBAAiB;AAIrC,IAAA,2BAAeC,gBAAgBC,KAC7BC,UAAUC,YACDC,kBAAW,aAAA;AAChB,QAAMC,WAAW,OAAOC,UAAUC;AAClC,SAAOF,SAASG,MAAK;AACvB,CAAA,CAAA,CAAA;",
|
|
6
|
-
"names": ["Effect", "Blueprint", "Operation", "QueryBlueprints", "pipe", "Operation", "withHandler", "fnUntraced", "registry", "Blueprint", "RegistryService", "query"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/blueprints/database/functions/relation-create.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/compute';\nimport { Database, Entity, Relation, Type } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\n\nimport { RelationCreate } from './definitions';\n\nexport default RelationCreate.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ typename, source, target, properties }) {\n const { db } = yield* Database.Service;\n const schema = yield* Effect.promise(() =>\n db.schemaRegistry.query({ typename, location: ['database', 'runtime'] }).first(),\n );\n invariant(Type.isRelationSchema(schema), 'Schema is not a relation schema');\n\n const sourceObj = yield* Database.load(source);\n const targetObj = yield* Database.load(target);\n const relation = db.add(\n Relation.make(schema, {\n [Relation.Source]: sourceObj,\n [Relation.Target]: targetObj,\n ...properties,\n }),\n );\n return Entity.toJSON(relation);\n }),\n ),\n);\n"],
|
|
5
|
-
"mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiB;AAC1B,SAASC,UAAUC,QAAQC,UAAUC,YAAY;AACjD,SAASC,iBAAiB;AAI1B,IAAA,eAAeC;IAIT,0BAAMC,eAAgBC,KAAOC,UAC3BC,YAAkBC,UAAAA,WAAM,EAAA,UAAA,QAAA,QAAA,WAAA,GAAA;UAAEC,GAAAA,IAAAA,OAAAA,SAAAA;iBAAUC,OAAU,eAAA,MAAA,GAAA,eAAA,MAAA;;cAAa;MAAU;MAAS;IAEhFC;EAEA,CAAA,EAAMC,MAAAA,CAAAA;AACN,YAAMC,KAAAA,iBAAmBC,MAAa,GAACC,mCAAAA,EAAAA,YAAAA,YAAAA,GAAAA,cAAAA,GAAAA,IAAAA,GAAAA,MAAAA,GAAAA,CAAAA,iCAAAA,mCAAAA,EAAAA,CAAAA;AACvC,QAAMC,YAAWT,OACfU,SAASC,KAAKd,MAAAA;QACXa,YAASE,OAASP,SAAAA,KAAAA,MAAAA;QAClBK,WAASG,GAAM,IAAGP,SAAAA,KAAAA,QAAAA;IACnB,CAAA,SAAGQ,MAAU,GAAA;IACf,CAAA,SAAA,MAAA,GAAA;IAEF,GAAOC;EACT,CAEF,CAAA;;;",
|
|
6
|
-
"names": ["Effect", "Operation", "Database", "Entity", "Relation", "Type", "invariant", "RelationCreate", "schema", "Effect", "promise", "db", "query", "typename", "location", "invariant", "sourceObj", "targetObj", "Database", "target", "relation", "Relation", "make", "Source", "Target", "properties", "Entity"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/blueprints/database/functions/schema-add.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/compute';\nimport { Database } from '@dxos/echo';\n\nimport { SchemaAdd } from './definitions';\n\nexport default SchemaAdd.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ name, typename, jsonSchema }) {\n const { db } = yield* Database.Service;\n yield* Effect.promise(() =>\n db.schemaRegistry.register([\n {\n typename,\n version: '0.1.0',\n jsonSchema,\n name,\n },\n ]),\n );\n }),\n ),\n);\n"],
|
|
5
|
-
"mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiB;AAC1B,SAASC,gBAAgB;AAIzB,IAAA,qBAAeC,UAAUC,KACvBC,UAAUC,YACDC,UAAG,WAAW,EAAEC,MAAMC,UAAUC,WAAU,GAAE;AACjD,QAAM,EAAEC,GAAE,IAAK,OAAOC,SAASC;AAC/B,SAAcC,eAAQ,MACpBH,GAAGI,eAAeC,SAAS;IACzB;MACEP;MACAQ,SAAS;MACTP;MACAF;IACF;GACD,CAAA;AAEL,CAAA,CAAA,CAAA;",
|
|
6
|
-
"names": ["Effect", "Operation", "Database", "SchemaAdd", "pipe", "Operation", "withHandler", "fn", "name", "typename", "jsonSchema", "db", "Database", "Service", "promise", "schemaRegistry", "register", "version"]
|
|
7
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
SchemaList
|
|
3
|
-
} from "./chunk-IKBIORQX.mjs";
|
|
4
|
-
import "./chunk-J5LGTIGS.mjs";
|
|
5
|
-
|
|
6
|
-
// src/blueprints/database/functions/schema-list.ts
|
|
7
|
-
import * as Effect from "effect/Effect";
|
|
8
|
-
import { Routine, Blueprint, Operation } from "@dxos/compute";
|
|
9
|
-
import { Database, Feed, JsonSchema, Type, View } from "@dxos/echo";
|
|
10
|
-
var EXCLUDED_TYPES = [
|
|
11
|
-
Type.PersistentType,
|
|
12
|
-
View.View,
|
|
13
|
-
Routine.Routine,
|
|
14
|
-
Blueprint.Blueprint,
|
|
15
|
-
Feed.Feed
|
|
16
|
-
];
|
|
17
|
-
var excludedTypenames = EXCLUDED_TYPES.map((type) => Type.getTypename(type));
|
|
18
|
-
var schema_list_default = SchemaList.pipe(Operation.withHandler(Effect.fn(function* () {
|
|
19
|
-
const { db } = yield* Database.Service;
|
|
20
|
-
const schema = yield* Effect.promise(() => db.schemaRegistry.query({
|
|
21
|
-
location: [
|
|
22
|
-
"database",
|
|
23
|
-
"runtime"
|
|
24
|
-
]
|
|
25
|
-
}).run());
|
|
26
|
-
return schema.filter((schema2) => !excludedTypenames.includes(Type.getTypename(schema2))).map((schema2) => {
|
|
27
|
-
const meta = Type.getMeta(schema2);
|
|
28
|
-
return {
|
|
29
|
-
typename: Type.getTypename(schema2),
|
|
30
|
-
jsonSchema: JsonSchema.toJsonSchema(schema2),
|
|
31
|
-
kind: meta?.sourceSchema ? "relation" : "record"
|
|
32
|
-
};
|
|
33
|
-
});
|
|
34
|
-
})));
|
|
35
|
-
export {
|
|
36
|
-
schema_list_default as default
|
|
37
|
-
};
|
|
38
|
-
//# sourceMappingURL=schema-list-W326VPVX.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/blueprints/database/functions/schema-list.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Routine, Blueprint, Operation } from '@dxos/compute';\nimport { Database, Feed, JsonSchema, Type, View } from '@dxos/echo';\n\nimport { SchemaList } from './definitions';\n\n// TODO(dmaretskyi): This is a balance between not filling the agent's context with too many types and not excluding important types.\nconst EXCLUDED_TYPES = [Type.PersistentType, View.View, Routine.Routine, Blueprint.Blueprint, Feed.Feed];\nconst excludedTypenames = EXCLUDED_TYPES.map((type) => Type.getTypename(type));\n\nexport default SchemaList.pipe(\n Operation.withHandler(\n Effect.fn(function* () {\n const { db } = yield* Database.Service;\n const schema = yield* Effect.promise(() => db.schemaRegistry.query({ location: ['database', 'runtime'] }).run());\n return schema\n .filter((schema) => !excludedTypenames.includes(Type.getTypename(schema)))\n .map((schema) => {\n const meta = Type.getMeta(schema);\n return {\n typename: Type.getTypename(schema),\n jsonSchema: JsonSchema.toJsonSchema(schema),\n kind: meta?.sourceSchema ? 'relation' : 'record',\n };\n });\n }),\n ),\n);\n"],
|
|
5
|
-
"mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,SAASC,WAAWC,iBAAiB;AAC9C,SAASC,UAAUC,MAAMC,YAAYC,MAAMC,YAAY;AAKvD,IAAMC,iBAAiB;EAACC,KAAKC;EAAgBC,KAAKA;EAAMC,QAAQA;EAASC,UAAUA;EAAWC,KAAKA;;AACnG,IAAMC,oBAAoBP,eAAeQ,IAAI,CAACC,SAASR,KAAKS,YAAYD,IAAAA,CAAAA;AAExE,IAAA,sBAAeE,WAAWC,KACxBC,UAAUC,YACDC,UAAG,aAAA;AACR,QAAM,EAAEC,GAAE,IAAK,OAAOC,SAASC;AAC/B,QAAMC,SAAS,OAAcC,eAAQ,MAAMJ,GAAGK,eAAeC,MAAM;IAAEC,UAAU;MAAC;MAAY;;EAAW,CAAA,EAAGC,IAAG,CAAA;AAC7G,SAAOL,OACJM,OAAO,CAACN,YAAW,CAACZ,kBAAkBmB,SAASzB,KAAKS,YAAYS,OAAAA,CAAAA,CAAAA,EAChEX,IAAI,CAACW,YAAAA;AACJ,UAAMQ,OAAO1B,KAAK2B,QAAQT,OAAAA;AAC1B,WAAO;MACLU,UAAU5B,KAAKS,YAAYS,OAAAA;MAC3BW,YAAYC,WAAWC,aAAab,OAAAA;MACpCc,MAAMN,MAAMO,eAAe,aAAa;IAC1C;EACF,CAAA;AACJ,CAAA,CAAA,CAAA;",
|
|
6
|
-
"names": ["Effect", "Routine", "Blueprint", "Operation", "Database", "Feed", "JsonSchema", "Type", "View", "EXCLUDED_TYPES", "Type", "PersistentType", "View", "Routine", "Blueprint", "Feed", "excludedTypenames", "map", "type", "getTypename", "SchemaList", "pipe", "Operation", "withHandler", "fn", "db", "Database", "Service", "schema", "promise", "schemaRegistry", "query", "location", "run", "filter", "includes", "meta", "getMeta", "typename", "jsonSchema", "JsonSchema", "toJsonSchema", "kind", "sourceSchema"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/blueprints/linear/functions/sync-issues.ts", "../../../src/util/graphql.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as FetchHttpClient from '@effect/platform/FetchHttpClient';\nimport * as HttpClient from '@effect/platform/HttpClient';\nimport * as Array from 'effect/Array';\nimport * as Effect from 'effect/Effect';\nimport * as Function from 'effect/Function';\n\nimport { Credential, Operation } from '@dxos/compute';\nimport { Filter, Obj, Query, Ref, type Type } from '@dxos/echo';\nimport { Database } from '@dxos/echo';\nimport { withAuthorization } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { Person, Pipeline, Task } from '@dxos/types';\n\nimport { syncObjects } from '../../../sync';\nimport { graphqlRequestBody } from '../../../util';\nimport { SyncIssues } from './definitions';\n\nconst queryIssues = `\nquery Issues($teamId: String!, $after: DateTimeOrDuration!) {\n team(id: $teamId) {\n id\n name\n\n\n issues(last: 150, orderBy: updatedAt, filter: {\n updatedAt: { gt: $after }\n }) {\n edges {\n node {\n id\n title\n createdAt\n updatedAt\n description\n assignee { id, name }\n state {\n name\n }\n project {\n id\n name\n }\n }\n cursor\n }\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n}\n`;\n\ntype LinearIssue = {\n id: string;\n title: string;\n createdAt: string;\n updatedAt: string;\n description: string;\n assignee: LinearPerson;\n state: { name: string };\n project: { id: string; name: string };\n};\n\ntype LinearPerson = {\n id: string;\n name: string;\n};\n\nexport const LINEAR_ID_KEY = 'linear.app/id';\nexport const LINEAR_TEAM_ID_KEY = 'linear.app/teamId';\nexport const LINEAR_UPDATED_AT_KEY = 'linear.app/updatedAt';\n\nexport default SyncIssues.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* ({ team }) {\n const credential = yield* Credential.CredentialsService.getCredential({ service: 'linear.app' });\n const client = yield* HttpClient.HttpClient.pipe(Effect.map(withAuthorization(credential.apiKey!)));\n\n const after = yield* getLatestUpdateTimestamp(team, Task.Task);\n log.info('will fetch', { after });\n\n const response = yield* client.post('https://api.linear.app/graphql', {\n body: yield* graphqlRequestBody(queryIssues, {\n teamId: team,\n after,\n }),\n });\n const json: any = yield* response.json;\n const tasks = (json.data.team.issues.edges as any[]).map((edge: any) =>\n mapLinearIssue(edge.node as LinearIssue, { teamId: team }),\n );\n log.info('Fetched tasks', { count: tasks.length });\n\n return {\n objects: yield* syncObjects(tasks, { foreignKeyId: LINEAR_ID_KEY }),\n syncComplete: tasks.length < 150,\n };\n }, Effect.provide(FetchHttpClient.layer)),\n ),\n);\n\nconst getLatestUpdateTimestamp: (\n teamId: string,\n dataType: Type.AnyObj,\n) => Effect.Effect<string, never, Database.Service> = Effect.fnUntraced(function* (teamId, dataType) {\n const existingTasks = yield* Database.runQuery(\n Query.type(dataType).select(Filter.foreignKeys(dataType, [{ source: LINEAR_TEAM_ID_KEY, id: teamId }])),\n );\n return Function.pipe(\n existingTasks,\n Array.map((task) => Obj.getKeys(task, LINEAR_UPDATED_AT_KEY).at(0)?.id),\n Array.filter((x) => x !== undefined),\n Array.reduce('2025-01-01T00:00:00.000Z', (acc: string, x: string) => (x > acc ? x : acc)),\n );\n});\n\nconst mapLinearPerson = (person: LinearPerson, { teamId }: { teamId: string }): Person.Person =>\n Obj.make(Person.Person, {\n [Obj.Meta]: {\n keys: [\n {\n id: person.id,\n source: LINEAR_ID_KEY,\n },\n {\n id: teamId,\n source: LINEAR_TEAM_ID_KEY,\n },\n ],\n },\n nickname: person.name,\n });\n\nconst mapLinearIssue = (issue: LinearIssue, { teamId }: { teamId: string }): Task.Task =>\n Obj.make(Task.Task, {\n [Obj.Meta]: {\n keys: [\n {\n id: issue.id,\n source: LINEAR_ID_KEY,\n },\n {\n id: issue.updatedAt,\n source: LINEAR_UPDATED_AT_KEY,\n },\n {\n id: teamId,\n source: LINEAR_TEAM_ID_KEY,\n },\n ],\n },\n title: issue.title ?? undefined,\n description: issue.description ?? undefined,\n assigned: !issue.assignee ? undefined : Ref.make(mapLinearPerson(issue.assignee, { teamId })),\n // TODO(dmaretskyi): Sync those (+ linear team as org?).\n // state: issue.state.name,\n\n project: !issue.project\n ? undefined\n : Ref.make(\n Pipeline.make({\n [Obj.Meta]: {\n keys: [\n {\n id: issue.project.id,\n source: LINEAR_ID_KEY,\n },\n {\n id: teamId,\n source: LINEAR_TEAM_ID_KEY,\n },\n ],\n },\n name: issue.project.name,\n }),\n ),\n });\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as HttpBody from '@effect/platform/HttpBody';\n\n/**\n * Template tag literal to get syntax highlighting for the query.\n *\n * @example\n * ```ts\n * const query = gql`\n * query Team($teamId: String!) {\n * team(id: $teamId) {\n * id\n * name\n * }\n * }\n * `;\n * ```\n */\nexport const gql = (query: string) => query;\n\n/**\n * @returns JSON body for the graphql request.\n */\nexport const graphqlRequestBody = (query: string, variables: Record<string, any> = {}) =>\n HttpBody.json({\n query,\n variables,\n });\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["FetchHttpClient", "HttpClient", "Array", "Effect", "Function", "Credential", "Operation", "Filter", "Obj", "Query", "Ref", "Database", "withAuthorization", "log", "Person", "Pipeline", "Task", "HttpBody", "graphqlRequestBody", "query", "variables", "json", "queryIssues", "LINEAR_UPDATED_AT_KEY", "Operation", "credential", "Credential", "service", "client", "log", "info", "after", "graphqlRequestBody", "team", "teamId", "json", "count", "syncObjects", "syncComplete", "tasks", "Effect", "FetchHttpClient", "layer", "existingTasks", "Database", "runQuery", "LINEAR_TEAM_ID_KEY", "mapLinearPerson", "person", "Obj", "make", "Person", "nickname", "mapLinearIssue", "issue", "title", "description", "assigned", "assignee", "keys", "name"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/blueprints/project-wizard/functions/sync-triggers.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { Trigger, Operation } from '@dxos/compute';\nimport { Database, Feed, Filter, Obj, Ref } from '@dxos/echo';\nimport { FeedAnnotation } from '@dxos/schema';\n\nimport { Agent } from '../../../types';\nimport { SyncTriggers } from './definitions';\n\nexport default SyncTriggers.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ agent: agentRef }) {\n const agent = yield* Database.load(agentRef);\n yield* syncAgentTriggers(agent);\n }),\n ),\n);\n\n/**\n * Foreign key {@link AGENT_TRIGGER_EXTENSION_KEY} => <agent id : ObjectId>.\n */\nconst AGENT_TRIGGER_EXTENSION_KEY = 'org.dxos.extension.AgentTrigger';\n\n/**\n * Foreign key {@link AGENT_TRIGGER_TARGET_EXTENSION_KEY} => <dxn string of subscription target>.\n */\nconst AGENT_TRIGGER_TARGET_EXTENSION_KEY = 'org.dxos.extension.AgentTriggerTarget';\n\n/** Checks if an object's schema has the FeedAnnotation. */\nconst hasFeedAnnotation = (obj: Obj.Unknown): boolean => {\n const schema = Obj.getSchema(obj);\n if (!schema) {\n return false;\n }\n const annotation = FeedAnnotation.get(schema);\n return Option.isSome(annotation) && annotation.value === true;\n};\n\n/**\n * Syncs triggers in the database with the agent subscriptions.\n */\nconst syncAgentTriggers = (agent: Agent.Agent): Effect.Effect<void, never, Database.Service> =>\n Effect.gen(function* () {\n const triggers = yield* Database.runQuery(\n Filter.foreignKeys(Trigger.Trigger, [{ source: AGENT_TRIGGER_EXTENSION_KEY, id: agent.id }]),\n );\n\n // Remove all existing triggers — they will be recreated with the current config.\n // This ensures operation, concurrency, and enabled stay in sync when agent fields change.\n for (const trigger of triggers) {\n yield* Database.remove(trigger);\n }\n\n const triggersEnabled = agent.enabled ?? true;\n\n // Lazy import to avoid circular dependency issues.\n const { Qualifier, AgentWorker } = yield* Effect.promise(() => import('../../project'));\n\n for (const subscription of agent.subscriptions) {\n const targetOption = yield* Database.loadOption(subscription);\n if (Option.isNone(targetOption)) {\n continue;\n }\n const target = targetOption.value;\n\n let feedObj: Feed.Feed | undefined;\n if (Obj.instanceOf(Feed.Feed, target)) {\n feedObj = target;\n } else if (hasFeedAnnotation(target)) {\n const feedRef = (target as Obj.Unknown & { feed?: Ref.Ref<Feed.Feed> }).feed;\n feedObj = feedRef ? Option.getOrUndefined(yield* Database.loadOption(feedRef)) : undefined;\n }\n\n const queueDxn = Option.fromNullable(feedObj).pipe(\n Option.filter(Obj.instanceOf(Feed.Feed)),\n Option.map(Feed.getQueueDxn),\n Option.getOrUndefined,\n );\n if (!queueDxn) {\n continue;\n }\n\n const filterEvents = agent.filterEvents ?? true;\n\n yield* Database.add(\n Trigger.make({\n [Obj.Parent]: agent,\n [Obj.Meta]: {\n keys: [\n { source: AGENT_TRIGGER_EXTENSION_KEY, id: agent.id },\n { source: AGENT_TRIGGER_TARGET_EXTENSION_KEY, id: subscription.dxn.toString() },\n ],\n },\n enabled: triggersEnabled,\n spec: Trigger.specQueue(queueDxn.toString()),\n function: Ref.make(Operation.serialize(filterEvents ? Qualifier : AgentWorker)),\n input: {\n agent: Ref.make(agent),\n event: '{{event}}',\n },\n concurrency: filterEvents ? 5 : undefined,\n }),\n );\n }\n\n if ((agent.filterEvents ?? true) && agent.queue) {\n yield* Database.add(\n Trigger.make({\n [Obj.Parent]: agent,\n [Obj.Meta]: {\n keys: [\n { source: AGENT_TRIGGER_EXTENSION_KEY, id: agent.id },\n {\n source: AGENT_TRIGGER_TARGET_EXTENSION_KEY,\n id: Obj.getDXN(agent)?.toString() ?? '',\n },\n ],\n },\n function: Ref.make(Operation.serialize(AgentWorker)),\n enabled: triggersEnabled,\n spec: Trigger.specQueue(agent.queue.dxn.toString()),\n input: {\n agent: Ref.make(agent),\n event: '{{event}}',\n },\n }),\n );\n }\n\n // Timer trigger bypasses the qualifier and invokes the agent worker directly on a schedule.\n if (agent.cron) {\n yield* Database.add(\n Trigger.make({\n [Obj.Parent]: agent,\n [Obj.Meta]: {\n keys: [\n { source: AGENT_TRIGGER_EXTENSION_KEY, id: agent.id },\n { source: AGENT_TRIGGER_TARGET_EXTENSION_KEY, id: `timer:${agent.cron}` },\n ],\n },\n enabled: triggersEnabled,\n spec: Trigger.specTimer(agent.cron),\n function: Ref.make(Operation.serialize(AgentWorker)),\n input: {\n agent: Ref.make(agent),\n event: '{{event}}',\n },\n }),\n );\n }\n\n yield* Database.flush();\n });\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Effect", "Option", "Trigger", "Operation", "Database", "Feed", "Filter", "Obj", "Ref", "FeedAnnotation", "SyncTriggers", "pipe", "Operation", "withHandler", "fn", "agent", "agentRef", "Database", "load", "syncAgentTriggers", "AGENT_TRIGGER_EXTENSION_KEY", "AGENT_TRIGGER_TARGET_EXTENSION_KEY", "hasFeedAnnotation", "obj", "schema", "Obj", "getSchema", "annotation", "FeedAnnotation", "get", "isSome", "value", "gen", "triggers", "runQuery", "Filter", "foreignKeys", "Trigger", "source", "id", "trigger", "remove", "triggersEnabled", "enabled", "Qualifier", "AgentWorker", "promise", "subscription", "subscriptions", "targetOption", "loadOption", "isNone", "target", "feedObj", "instanceOf", "Feed", "feedRef", "feed", "getOrUndefined", "undefined", "queueDxn", "fromNullable", "filter", "map", "getQueueDxn", "filterEvents", "add", "make", "Parent", "Meta", "keys", "dxn", "toString", "spec", "specQueue", "function", "Ref", "serialize", "input", "event", "concurrency", "queue", "getDXN", "cron", "specTimer", "flush"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/blueprints/database/functions/tag-add.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/compute';\nimport { Database, Entity, Obj } from '@dxos/echo';\n\nimport { TagAdd } from './definitions';\n\nexport default TagAdd.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ tag, obj }) {\n const object = yield* Database.load(obj);\n const tagObj = yield* Database.load(tag);\n Entity.update(object, (object) => Entity.addTag(object, Obj.getDXN(tagObj).toString()));\n return Entity.toJSON(object);\n }),\n ),\n);\n"],
|
|
5
|
-
"mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiB;AAC1B,SAASC,UAAUC,QAAQC,WAAW;AAItC,IAAA,kBAAeC,OAAOC,KACpBC,UAAUC,YACDC,UAAG,WAAW,EAAEC,KAAKC,IAAG,GAAE;AAC/B,QAAMC,SAAS,OAAOC,SAASC,KAAKH,GAAAA;AACpC,QAAMI,SAAS,OAAOF,SAASC,KAAKJ,GAAAA;AACpCM,SAAOC,OAAOL,QAAQ,CAACA,YAAWI,OAAOE,OAAON,SAAQO,IAAIC,OAAOL,MAAAA,EAAQM,SAAQ,CAAA,CAAA;AACnF,SAAOL,OAAOM,OAAOV,MAAAA;AACvB,CAAA,CAAA,CAAA;",
|
|
6
|
-
"names": ["Effect", "Operation", "Database", "Entity", "Obj", "TagAdd", "pipe", "Operation", "withHandler", "fn", "tag", "obj", "object", "Database", "load", "tagObj", "Entity", "update", "addTag", "Obj", "getDXN", "toString", "toJSON"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/blueprints/database/functions/tag-remove.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/compute';\nimport { Database, Entity, Obj } from '@dxos/echo';\n\nimport { TagRemove } from './definitions';\n\nexport default TagRemove.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ tag, obj }) {\n const object = yield* Database.load(obj);\n const tagObj = yield* Database.load(tag);\n Entity.update(object, (object) => Entity.removeTag(object, Obj.getDXN(tagObj).toString()));\n return Entity.toJSON(object);\n }),\n ),\n);\n"],
|
|
5
|
-
"mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiB;AAC1B,SAASC,UAAUC,QAAQC,WAAW;AAItC,IAAA,qBAAeC,UAAUC,KACvBC,UAAUC,YACDC,UAAG,WAAW,EAAEC,KAAKC,IAAG,GAAE;AAC/B,QAAMC,SAAS,OAAOC,SAASC,KAAKH,GAAAA;AACpC,QAAMI,SAAS,OAAOF,SAASC,KAAKJ,GAAAA;AACpCM,SAAOC,OAAOL,QAAQ,CAACA,YAAWI,OAAOE,UAAUN,SAAQO,IAAIC,OAAOL,MAAAA,EAAQM,SAAQ,CAAA,CAAA;AACtF,SAAOL,OAAOM,OAAOV,MAAAA;AACvB,CAAA,CAAA,CAAA;",
|
|
6
|
-
"names": ["Effect", "Operation", "Database", "Entity", "Obj", "TagRemove", "pipe", "Operation", "withHandler", "fn", "tag", "obj", "object", "Database", "load", "tagObj", "Entity", "update", "removeTag", "Obj", "getDXN", "toString", "toJSON"]
|
|
7
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
UpdateBlueprints
|
|
3
|
-
} from "./chunk-TO5IX24K.mjs";
|
|
4
|
-
import "./chunk-J5LGTIGS.mjs";
|
|
5
|
-
|
|
6
|
-
// src/blueprints/blueprint-manager/functions/update-blueprints.ts
|
|
7
|
-
import * as Effect from "effect/Effect";
|
|
8
|
-
import { Blueprint, Operation } from "@dxos/compute";
|
|
9
|
-
var update_blueprints_default = UpdateBlueprints.pipe(Operation.withHandler(Effect.fnUntraced(function* () {
|
|
10
|
-
const registry = yield* Blueprint.RegistryService;
|
|
11
|
-
yield* registry.updateBlueprints();
|
|
12
|
-
})));
|
|
13
|
-
export {
|
|
14
|
-
update_blueprints_default as default
|
|
15
|
-
};
|
|
16
|
-
//# sourceMappingURL=update-blueprints-N2AK2VUR.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/blueprints/blueprint-manager/functions/update-blueprints.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Blueprint, Operation } from '@dxos/compute';\n\nimport { UpdateBlueprints } from './definitions';\n\nexport default UpdateBlueprints.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* () {\n const registry = yield* Blueprint.RegistryService;\n yield* registry.updateBlueprints();\n }),\n ),\n);\n"],
|
|
5
|
-
"mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,WAAWC,iBAAiB;AAIrC,IAAA,4BAAeC,iBAAiBC,KAC9BC,UAAUC,YACDC,kBAAW,aAAA;AAChB,QAAMC,WAAW,OAAOC,UAAUC;AAClC,SAAOF,SAASG,iBAAgB;AAClC,CAAA,CAAA,CAAA;",
|
|
6
|
-
"names": ["Effect", "Blueprint", "Operation", "UpdateBlueprints", "pipe", "Operation", "withHandler", "fnUntraced", "registry", "Blueprint", "RegistryService", "updateBlueprints"]
|
|
7
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
UpdateTasks
|
|
3
|
-
} from "./chunk-FIGO6CA6.mjs";
|
|
4
|
-
import {
|
|
5
|
-
Agent_exports,
|
|
6
|
-
Plan_exports
|
|
7
|
-
} from "./chunk-P4ZMYO4K.mjs";
|
|
8
|
-
import "./chunk-NR3GTWRC.mjs";
|
|
9
|
-
import "./chunk-KGU725LW.mjs";
|
|
10
|
-
import "./chunk-J5LGTIGS.mjs";
|
|
11
|
-
|
|
12
|
-
// src/blueprints/planning/functions/update-tasks.ts
|
|
13
|
-
import * as Effect from "effect/Effect";
|
|
14
|
-
import { Operation } from "@dxos/compute";
|
|
15
|
-
import { Database, Obj } from "@dxos/echo";
|
|
16
|
-
import { trim } from "@dxos/util";
|
|
17
|
-
var update_tasks_default = UpdateTasks.pipe(Operation.withHandler(Effect.fn(function* ({ tasks: newTasks }) {
|
|
18
|
-
const agent = yield* Agent_exports.getFromChatContext;
|
|
19
|
-
const plan = yield* Database.load(agent.plan);
|
|
20
|
-
Obj.update(plan, (plan2) => {
|
|
21
|
-
for (const task of newTasks) {
|
|
22
|
-
const existingTask = plan2.tasks.find((t) => t.id === task.id);
|
|
23
|
-
if (existingTask) {
|
|
24
|
-
existingTask.title = task.title;
|
|
25
|
-
existingTask.status = task.status;
|
|
26
|
-
} else {
|
|
27
|
-
plan2.tasks.push({
|
|
28
|
-
id: task.id,
|
|
29
|
-
title: task.title,
|
|
30
|
-
status: task.status
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
return trim`
|
|
36
|
-
Tasks updated. Don't forget to mark tasks as done when you're done with them or update their status to 'in-progress' when you start working on them.
|
|
37
|
-
Current plan:
|
|
38
|
-
<plan>
|
|
39
|
-
${Plan_exports.formatPlan(plan)}
|
|
40
|
-
</plan>
|
|
41
|
-
`;
|
|
42
|
-
})));
|
|
43
|
-
export {
|
|
44
|
-
update_tasks_default as default
|
|
45
|
-
};
|
|
46
|
-
//# sourceMappingURL=update-tasks-H7SWIFQL.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/blueprints/planning/functions/update-tasks.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/compute';\nimport { Database, Obj } from '@dxos/echo';\nimport { trim } from '@dxos/util';\n\nimport { Plan, Agent } from '../../../types';\nimport { UpdateTasks } from './definitions';\n\nexport default UpdateTasks.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ tasks: newTasks }) {\n const agent = yield* Agent.getFromChatContext;\n const plan = yield* Database.load(agent.plan);\n\n Obj.update(plan, (plan) => {\n for (const task of newTasks) {\n const existingTask = plan.tasks.find((t) => t.id === task.id);\n if (existingTask) {\n existingTask.title = task.title;\n existingTask.status = task.status;\n } else {\n plan.tasks.push({\n id: task.id,\n title: task.title,\n status: task.status,\n });\n }\n }\n });\n\n return trim`\n Tasks updated. Don't forget to mark tasks as done when you're done with them or update their status to 'in-progress' when you start working on them.\n Current plan:\n <plan>\n ${Plan.formatPlan(plan)}\n </plan>\n `;\n }) as any,\n ),\n);\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiB;AAC1B,SAASC,UAAUC,WAAW;AAC9B,SAASC,YAAY;AAKrB,IAAA,uBAAeC,YAAYC,KACzBC,UAAUC,YACDC,UAAG,WAAW,EAAEC,OAAOC,SAAQ,GAAE;AACtC,QAAMC,QAAQ,OAAOC,cAAMC;AAC3B,QAAMC,OAAO,OAAOC,SAASC,KAAKL,MAAMG,IAAI;AAE5CG,MAAIC,OAAOJ,MAAM,CAACA,UAAAA;AAChB,eAAWK,QAAQT,UAAU;AAC3B,YAAMU,eAAeN,MAAKL,MAAMY,KAAK,CAACC,MAAMA,EAAEC,OAAOJ,KAAKI,EAAE;AAC5D,UAAIH,cAAc;AAChBA,qBAAaI,QAAQL,KAAKK;AAC1BJ,qBAAaK,SAASN,KAAKM;MAC7B,OAAO;AACLX,QAAAA,MAAKL,MAAMiB,KAAK;UACdH,IAAIJ,KAAKI;UACTC,OAAOL,KAAKK;UACZC,QAAQN,KAAKM;QACf,CAAA;MACF;IACF;EACF,CAAA;AAEA,SAAOE;;;;YAIDC,aAAKC,WAAWf,IAAAA,CAAAA;;;AAGxB,CAAA,CAAA,CAAA;",
|
|
6
|
-
"names": ["Effect", "Operation", "Database", "Obj", "trim", "UpdateTasks", "pipe", "Operation", "withHandler", "fn", "tasks", "newTasks", "agent", "Agent", "getFromChatContext", "plan", "Database", "load", "Obj", "update", "task", "existingTask", "find", "t", "id", "title", "status", "push", "trim", "Plan", "formatPlan"]
|
|
7
|
-
}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { Blueprint, Operation } from '@dxos/compute';
|
|
2
|
-
declare const _default: Operation.WithHandler<Operation.Definition<{}, void, Blueprint.RegistryService | import("@dxos/echo/Database").Service>>;
|
|
3
|
-
export default _default;
|
|
4
|
-
//# sourceMappingURL=update-blueprints.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"update-blueprints.d.ts","sourceRoot":"","sources":["../../../../../../src/blueprints/blueprint-manager/functions/update-blueprints.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { AiContextService } from '@dxos/assistant';
|
|
2
|
-
import { Operation } from '@dxos/compute';
|
|
3
|
-
import { Database } from '@dxos/echo';
|
|
4
|
-
export declare const UpdateTasks: Operation.Definition<{
|
|
5
|
-
readonly tasks: readonly {
|
|
6
|
-
readonly id: string & import("effect/Brand").Brand<"@dxos/assistant-toolkit/TaskId">;
|
|
7
|
-
readonly title: string;
|
|
8
|
-
readonly status: "done" | "in-progress" | "todo";
|
|
9
|
-
}[];
|
|
10
|
-
}, any, AiContextService | Database.Service>;
|
|
11
|
-
//# sourceMappingURL=definitions.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../../../../../src/blueprints/planning/functions/definitions.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAqHtC,eAAO,MAAM,WAAW;;;;;;4CAWtB,CAAC"}
|