@dxos/plugin-assistant 0.8.4-main.7ace549 → 0.8.4-main.9735255
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/BlueprintArticle-WP3G5GLG.mjs +31 -0
- package/dist/lib/browser/BlueprintArticle-WP3G5GLG.mjs.map +7 -0
- package/dist/lib/browser/ChatCompanion-ECQYUQ2B.mjs +153 -0
- package/dist/lib/browser/ChatCompanion-ECQYUQ2B.mjs.map +7 -0
- package/dist/lib/browser/ChatContainer-QCCOFBUX.mjs +73 -0
- package/dist/lib/browser/ChatContainer-QCCOFBUX.mjs.map +7 -0
- package/dist/lib/browser/ChatDialog-SMK4RSZU.mjs +85 -0
- package/dist/lib/browser/ChatDialog-SMK4RSZU.mjs.map +7 -0
- package/dist/lib/browser/PromptArticle-K362ZPAE.mjs +53 -0
- package/dist/lib/browser/PromptArticle-K362ZPAE.mjs.map +7 -0
- package/dist/lib/browser/ai-service-5GUDOEWF.mjs +21 -0
- package/dist/lib/browser/ai-service-5GUDOEWF.mjs.map +7 -0
- package/dist/lib/browser/app-graph-builder-DSNH2OMY.mjs +212 -0
- package/dist/lib/browser/app-graph-builder-DSNH2OMY.mjs.map +7 -0
- package/dist/lib/browser/blueprint-definition-DGHH7MUU.mjs +14 -0
- package/dist/lib/browser/blueprints/index.mjs +12 -0
- package/dist/lib/browser/chunk-3JYPE2MM.mjs +1832 -0
- package/dist/lib/browser/chunk-3JYPE2MM.mjs.map +7 -0
- package/dist/lib/browser/{chunk-7ZJIXQ2Y.mjs → chunk-DKQMSMBN.mjs} +54 -63
- package/dist/lib/browser/chunk-DKQMSMBN.mjs.map +7 -0
- package/dist/lib/browser/{chunk-WBG5PTSX.mjs → chunk-EXVT7D4B.mjs} +1 -1
- package/dist/lib/browser/chunk-EXVT7D4B.mjs.map +7 -0
- package/dist/lib/browser/{chunk-2BOE3OTW.mjs → chunk-ML3QCFKA.mjs} +23 -20
- package/dist/lib/browser/chunk-ML3QCFKA.mjs.map +7 -0
- package/dist/lib/browser/chunk-MRJVYGLU.mjs +208 -0
- package/dist/lib/browser/chunk-MRJVYGLU.mjs.map +7 -0
- package/dist/lib/browser/chunk-V772AMZM.mjs +250 -0
- package/dist/lib/browser/chunk-V772AMZM.mjs.map +7 -0
- package/dist/lib/browser/chunk-WGQTU6UJ.mjs +41 -0
- package/dist/lib/browser/chunk-WGQTU6UJ.mjs.map +7 -0
- package/dist/lib/browser/edge-model-resolver-26BOY6HY.mjs +20 -0
- package/dist/lib/browser/edge-model-resolver-26BOY6HY.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +156 -174
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/local-model-resolver-ZFIM6GGV.mjs +19 -0
- package/dist/lib/browser/local-model-resolver-ZFIM6GGV.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/operation-resolver-7XJLBRQY.mjs +132 -0
- package/dist/lib/browser/operation-resolver-7XJLBRQY.mjs.map +7 -0
- package/dist/lib/browser/{react-surface-ECKZNDSU.mjs → react-surface-NCITRSJJ.mjs} +41 -30
- package/dist/lib/browser/react-surface-NCITRSJJ.mjs.map +7 -0
- package/dist/lib/browser/{repair-3MZXLUHO.mjs → repair-6QGAKOVM.mjs} +23 -13
- package/dist/lib/browser/repair-6QGAKOVM.mjs.map +7 -0
- package/dist/lib/browser/settings-4ZDLUMYE.mjs +32 -0
- package/dist/lib/browser/settings-4ZDLUMYE.mjs.map +7 -0
- package/dist/lib/browser/state-AN6336ZX.mjs +26 -0
- package/dist/lib/browser/state-AN6336ZX.mjs.map +7 -0
- package/dist/lib/browser/toolkit-7AVTEPMA.mjs +18 -0
- package/dist/lib/browser/toolkit-7AVTEPMA.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +8 -4
- package/dist/lib/node-esm/BlueprintArticle-WZ76E2C4.mjs +32 -0
- package/dist/lib/node-esm/BlueprintArticle-WZ76E2C4.mjs.map +7 -0
- package/dist/lib/node-esm/ChatCompanion-Q4FUZ2MW.mjs +154 -0
- package/dist/lib/node-esm/ChatCompanion-Q4FUZ2MW.mjs.map +7 -0
- package/dist/lib/node-esm/ChatContainer-AKI33HIB.mjs +74 -0
- package/dist/lib/node-esm/ChatContainer-AKI33HIB.mjs.map +7 -0
- package/dist/lib/node-esm/ChatDialog-AP45PVZR.mjs +86 -0
- package/dist/lib/node-esm/ChatDialog-AP45PVZR.mjs.map +7 -0
- package/dist/lib/node-esm/PromptArticle-D4HAIIC6.mjs +54 -0
- package/dist/lib/node-esm/PromptArticle-D4HAIIC6.mjs.map +7 -0
- package/dist/lib/node-esm/ai-service-PXKKCFIF.mjs +22 -0
- package/dist/lib/node-esm/ai-service-PXKKCFIF.mjs.map +7 -0
- package/dist/lib/node-esm/app-graph-builder-TJCUEXW5.mjs +213 -0
- package/dist/lib/node-esm/app-graph-builder-TJCUEXW5.mjs.map +7 -0
- package/dist/lib/node-esm/{blueprint-definition-RDCLLIQH.mjs → blueprint-definition-SEMDEIYG.mjs} +6 -4
- package/dist/lib/node-esm/blueprint-definition-SEMDEIYG.mjs.map +7 -0
- package/dist/lib/node-esm/blueprints/index.mjs +13 -0
- package/dist/lib/node-esm/blueprints/index.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-355W5B27.mjs +251 -0
- package/dist/lib/node-esm/chunk-355W5B27.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-CKW4IYLY.mjs → chunk-75PHXBN3.mjs} +54 -63
- package/dist/lib/node-esm/chunk-75PHXBN3.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-DCA5QWQT.mjs +209 -0
- package/dist/lib/node-esm/chunk-DCA5QWQT.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-MSBPC4RJ.mjs +42 -0
- package/dist/lib/node-esm/chunk-MSBPC4RJ.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-WE6KTH72.mjs → chunk-POWB2BPC.mjs} +1 -1
- package/dist/lib/node-esm/chunk-POWB2BPC.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-XI5T3MJC.mjs +1833 -0
- package/dist/lib/node-esm/chunk-XI5T3MJC.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-3Q22TTXW.mjs → chunk-ZRIPP7YF.mjs} +23 -20
- package/dist/lib/node-esm/chunk-ZRIPP7YF.mjs.map +7 -0
- package/dist/lib/node-esm/{edge-model-resolver-2ARXDOYS.mjs → edge-model-resolver-G5KMODPO.mjs} +9 -7
- package/dist/lib/node-esm/edge-model-resolver-G5KMODPO.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +156 -174
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/local-model-resolver-KDZLYI7Y.mjs +20 -0
- package/dist/lib/node-esm/local-model-resolver-KDZLYI7Y.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/operation-resolver-SX4WMNA7.mjs +133 -0
- package/dist/lib/node-esm/operation-resolver-SX4WMNA7.mjs.map +7 -0
- package/dist/lib/node-esm/{react-surface-NLIG5VAI.mjs → react-surface-ST6V7LPE.mjs} +41 -30
- package/dist/lib/node-esm/react-surface-ST6V7LPE.mjs.map +7 -0
- package/dist/lib/node-esm/{repair-RER5H7Y6.mjs → repair-QJ7CQDKU.mjs} +23 -13
- package/dist/lib/node-esm/repair-QJ7CQDKU.mjs.map +7 -0
- package/dist/lib/node-esm/settings-CQEOHR3R.mjs +33 -0
- package/dist/lib/node-esm/settings-CQEOHR3R.mjs.map +7 -0
- package/dist/lib/node-esm/state-HDON4REW.mjs +27 -0
- package/dist/lib/node-esm/state-HDON4REW.mjs.map +7 -0
- package/dist/lib/node-esm/toolkit-OWGCEKOO.mjs +19 -0
- package/dist/lib/node-esm/toolkit-OWGCEKOO.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +8 -4
- package/dist/types/src/AssistantPlugin.d.ts +2 -1
- package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
- package/dist/types/src/blueprints/assistant-blueprint.d.ts +209 -0
- package/dist/types/src/blueprints/assistant-blueprint.d.ts.map +1 -0
- package/dist/types/src/blueprints/index.d.ts +7 -0
- package/dist/types/src/blueprints/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/ai-service/ai-service.d.ts +5 -0
- package/dist/types/src/capabilities/ai-service/ai-service.d.ts.map +1 -0
- package/dist/types/src/capabilities/ai-service/index.d.ts +3 -0
- package/dist/types/src/capabilities/ai-service/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +21 -0
- package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -0
- package/dist/types/src/capabilities/blueprint-definition/index.d.ts +4 -0
- package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/edge-model-resolver/edge-model-resolver.d.ts +6 -0
- package/dist/types/src/capabilities/edge-model-resolver/edge-model-resolver.d.ts.map +1 -0
- package/dist/types/src/capabilities/edge-model-resolver/index.d.ts +3 -0
- package/dist/types/src/capabilities/edge-model-resolver/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +10 -12
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/local-model-resolver/index.d.ts +3 -0
- package/dist/types/src/capabilities/local-model-resolver/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/local-model-resolver/local-model-resolver.d.ts +12 -0
- package/dist/types/src/capabilities/local-model-resolver/local-model-resolver.d.ts.map +1 -0
- package/dist/types/src/capabilities/operation-resolver/index.d.ts +3 -0
- package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +5 -0
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
- package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
- package/dist/types/src/capabilities/repair/index.d.ts +3 -0
- package/dist/types/src/capabilities/repair/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/repair/repair.d.ts +6 -0
- package/dist/types/src/capabilities/repair/repair.d.ts.map +1 -0
- package/dist/types/src/capabilities/settings/index.d.ts +15 -0
- package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/settings/settings.d.ts +17 -0
- package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
- package/dist/types/src/capabilities/state/index.d.ts +11 -0
- package/dist/types/src/capabilities/state/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/state/state.d.ts +13 -0
- package/dist/types/src/capabilities/state/state.d.ts.map +1 -0
- package/dist/types/src/capabilities/toolkit/index.d.ts +3 -0
- package/dist/types/src/capabilities/toolkit/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/toolkit/toolkit.d.ts +5 -0
- package/dist/types/src/capabilities/toolkit/toolkit.d.ts.map +1 -0
- package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts +4 -2
- package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +1 -1
- package/dist/types/src/components/BlueprintArticle.d.ts +1 -1
- package/dist/types/src/components/BlueprintArticle.d.ts.map +1 -1
- package/dist/types/src/components/Chat/Chat.d.ts +9 -10
- package/dist/types/src/components/Chat/Chat.d.ts.map +1 -1
- package/dist/types/src/components/Chat/events.d.ts +1 -1
- package/dist/types/src/components/Chat/events.d.ts.map +1 -1
- package/dist/types/src/components/ChatCompanion.d.ts +2 -2
- package/dist/types/src/components/ChatCompanion.d.ts.map +1 -1
- package/dist/types/src/components/ChatContainer.d.ts +10 -5
- package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
- package/dist/types/src/components/ChatDialog.d.ts.map +1 -1
- package/dist/types/src/components/ChatProgress/ChatProgress.d.ts.map +1 -1
- package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts +3 -3
- package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts.map +1 -1
- package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts +3 -3
- package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/ChatThread.d.ts +1 -1
- package/dist/types/src/components/ChatThread/ChatThread.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts +4 -3
- package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/registry.d.ts +1 -1
- package/dist/types/src/components/ChatThread/registry.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/sync.d.ts +1 -1
- package/dist/types/src/components/ChatThread/sync.d.ts.map +1 -1
- package/dist/types/src/components/PromptArticle.d.ts +1 -1
- package/dist/types/src/components/PromptArticle.d.ts.map +1 -1
- package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +1 -1
- package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +11 -1
- package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
- package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts +1 -1
- package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts.map +1 -1
- package/dist/types/src/components/TemplateEditor/extensions/handlebars-extension.d.ts.map +1 -1
- package/dist/types/src/components/ToolBlock/ToolBlock.d.ts +3 -3
- package/dist/types/src/components/ToolBlock/ToolBlock.d.ts.map +1 -1
- package/dist/types/src/components/Toolbox/Toolbox.d.ts +4 -5
- package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
- package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts.map +1 -1
- package/dist/types/src/components/Typewriter/AssistantToolbar.d.ts +12 -0
- package/dist/types/src/components/Typewriter/AssistantToolbar.d.ts.map +1 -0
- package/dist/types/src/components/Typewriter/Typewriter.d.ts +11 -0
- package/dist/types/src/components/Typewriter/Typewriter.d.ts.map +1 -0
- package/dist/types/src/components/Typewriter/Typewriter.stories.d.ts +7 -0
- package/dist/types/src/components/Typewriter/Typewriter.stories.d.ts.map +1 -0
- package/dist/types/src/components/Typewriter/assistant-extension.d.ts +5 -0
- package/dist/types/src/components/Typewriter/assistant-extension.d.ts.map +1 -0
- package/dist/types/src/components/Typewriter/index.d.ts +2 -0
- package/dist/types/src/components/Typewriter/index.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +10 -4
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/functions/index.d.ts +1 -1
- package/dist/types/src/functions/index.d.ts.map +1 -1
- package/dist/types/src/functions/object-list.d.ts +1 -1
- package/dist/types/src/functions/object-list.d.ts.map +1 -1
- package/dist/types/src/functions/object-load.d.ts.map +1 -1
- package/dist/types/src/functions/object-search.d.ts +10 -0
- package/dist/types/src/functions/object-search.d.ts.map +1 -0
- package/dist/types/src/hooks/useBlueprintRegistry.d.ts +5 -5
- package/dist/types/src/hooks/useBlueprintRegistry.d.ts.map +1 -1
- package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
- package/dist/types/src/hooks/useChatServices.d.ts +3 -3
- package/dist/types/src/hooks/useChatServices.d.ts.map +1 -1
- package/dist/types/src/hooks/useChatToolbarActions.d.ts +1 -1
- package/dist/types/src/hooks/useChatToolbarActions.d.ts.map +1 -1
- package/dist/types/src/hooks/useContextBinder.d.ts.map +1 -1
- package/dist/types/src/hooks/useContextObjects.d.ts +7 -7
- package/dist/types/src/hooks/useContextObjects.d.ts.map +1 -1
- package/dist/types/src/hooks/useFilteredTypes.d.ts +2 -3
- package/dist/types/src/hooks/useFilteredTypes.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +0 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/processor/processor.d.ts +10 -9
- package/dist/types/src/processor/processor.d.ts.map +1 -1
- package/dist/types/src/processor/update-name.d.ts.map +1 -1
- package/dist/types/src/queue-logger.d.ts.map +1 -1
- package/dist/types/src/testing/test-generator.d.ts +3 -2
- package/dist/types/src/testing/test-generator.d.ts.map +1 -1
- package/dist/types/src/testing/test-services.d.ts.map +1 -1
- package/dist/types/src/types/Assistant.d.ts +16 -19
- package/dist/types/src/types/Assistant.d.ts.map +1 -1
- package/dist/types/src/types/AssistantAction.d.ts +88 -122
- package/dist/types/src/types/AssistantAction.d.ts.map +1 -1
- package/dist/types/src/types/capabilities.d.ts +33 -0
- package/dist/types/src/types/capabilities.d.ts.map +1 -0
- package/dist/types/src/types/events.d.ts +5 -0
- package/dist/types/src/types/events.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +3 -1
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/service.d.ts +11 -260
- package/dist/types/src/types/service.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +113 -92
- package/src/AssistantPlugin.tsx +62 -90
- package/src/blueprints/assistant-blueprint.ts +62 -0
- package/src/blueprints/index.ts +12 -0
- package/src/capabilities/ai-service/ai-service.ts +29 -0
- package/src/capabilities/ai-service/index.ts +7 -0
- package/src/capabilities/app-graph-builder/app-graph-builder.ts +180 -0
- package/src/capabilities/app-graph-builder/index.ts +7 -0
- package/src/capabilities/blueprint-definition/blueprint-definition.ts +60 -0
- package/src/capabilities/blueprint-definition/index.ts +8 -0
- package/src/capabilities/edge-model-resolver/edge-model-resolver.ts +32 -0
- package/src/capabilities/edge-model-resolver/index.ts +7 -0
- package/src/capabilities/index.ts +10 -15
- package/src/capabilities/local-model-resolver/index.ts +7 -0
- package/src/capabilities/local-model-resolver/local-model-resolver.ts +37 -0
- package/src/capabilities/operation-resolver/index.ts +7 -0
- package/src/capabilities/operation-resolver/operation-resolver.ts +110 -0
- package/src/capabilities/react-surface/index.ts +7 -0
- package/src/capabilities/react-surface/react-surface.tsx +95 -0
- package/src/capabilities/repair/index.ts +7 -0
- package/src/capabilities/{repair.ts → repair/repair.ts} +23 -9
- package/src/capabilities/settings/index.ts +7 -0
- package/src/capabilities/settings/settings.ts +30 -0
- package/src/capabilities/state/index.ts +7 -0
- package/src/capabilities/state/state.ts +27 -0
- package/src/capabilities/toolkit/index.ts +7 -0
- package/src/capabilities/toolkit/toolkit.ts +26 -0
- package/src/components/AssistantSettings/AssistantSettings.tsx +13 -5
- package/src/components/BlueprintArticle.tsx +4 -4
- package/src/components/Chat/Chat.tsx +68 -68
- package/src/components/Chat/events.ts +1 -1
- package/src/components/ChatCompanion.tsx +125 -117
- package/src/components/ChatContainer.tsx +19 -19
- package/src/components/ChatDialog.tsx +6 -7
- package/src/components/ChatProgress/ChatProgress.tsx +3 -16
- package/src/components/ChatPrompt/ChatActions.tsx +1 -1
- package/src/components/ChatPrompt/ChatOptions.tsx +62 -58
- package/src/components/ChatPrompt/ChatReferences.tsx +5 -6
- package/src/components/ChatPrompt/ChatStatusIndicator.tsx +1 -1
- package/src/components/ChatThread/ChatThread.stories.tsx +10 -8
- package/src/components/ChatThread/ChatThread.tsx +1 -1
- package/src/components/ChatThread/Link.tsx +2 -2
- package/src/components/ChatThread/registry.tsx +2 -2
- package/src/components/ChatThread/sync.test.ts +13 -5
- package/src/components/ChatThread/sync.ts +8 -2
- package/src/components/PromptArticle.tsx +8 -9
- package/src/components/TemplateEditor/TemplateEditor.stories.tsx +2 -2
- package/src/components/TemplateEditor/TemplateEditor.tsx +7 -4
- package/src/components/TemplateEditor/TemplateForm.stories.tsx +14 -6
- package/src/components/TemplateEditor/TemplateForm.tsx +75 -28
- package/src/components/TemplateEditor/extensions/handlebars-extension.ts +10 -5
- package/src/components/ToolBlock/ToolBlock.tsx +6 -6
- package/src/components/Toolbox/Toolbox.stories.tsx +8 -9
- package/src/components/Toolbox/Toolbox.tsx +14 -15
- package/src/components/Typewriter/AssistantToolbar.tsx +161 -0
- package/src/components/Typewriter/Typewriter.stories.tsx +83 -0
- package/src/components/Typewriter/Typewriter.tsx +54 -0
- package/src/components/Typewriter/assistant-extension.tsx +144 -0
- package/src/components/Typewriter/index.ts +5 -0
- package/src/functions/index.ts +1 -1
- package/src/functions/object-list.ts +4 -3
- package/src/functions/object-load.ts +6 -4
- package/src/functions/object-search.ts +46 -0
- package/src/hooks/useBlueprintRegistry.ts +30 -20
- package/src/hooks/useChatProcessor.ts +5 -2
- package/src/hooks/useChatServices.ts +11 -15
- package/src/hooks/useChatToolbarActions.ts +24 -25
- package/src/hooks/useContextBinder.ts +4 -2
- package/src/hooks/useContextObjects.ts +13 -25
- package/src/hooks/useFilteredTypes.ts +6 -7
- package/src/hooks/useReferencesProvider.ts +6 -6
- package/src/index.ts +0 -1
- package/src/meta.ts +2 -2
- package/src/processor/processor.test.ts +3 -2
- package/src/processor/processor.ts +23 -25
- package/src/processor/update-name.ts +4 -1
- package/src/queue-logger.ts +4 -1
- package/src/testing/test-generator.ts +4 -3
- package/src/testing/test-services.ts +8 -6
- package/src/types/Assistant.ts +5 -6
- package/src/types/AssistantAction.ts +58 -62
- package/src/types/capabilities.ts +27 -0
- package/src/types/events.ts +11 -0
- package/src/types/index.ts +3 -1
- package/src/types/service.ts +10 -7
- package/dist/lib/browser/BlueprintArticle-BWSLH6LG.mjs +0 -36
- package/dist/lib/browser/BlueprintArticle-BWSLH6LG.mjs.map +0 -7
- package/dist/lib/browser/ChatCompanion-OSZZZSWV.mjs +0 -158
- package/dist/lib/browser/ChatCompanion-OSZZZSWV.mjs.map +0 -7
- package/dist/lib/browser/ChatContainer-2W6FNSJD.mjs +0 -77
- package/dist/lib/browser/ChatContainer-2W6FNSJD.mjs.map +0 -7
- package/dist/lib/browser/ChatDialog-XQ3KDYWE.mjs +0 -90
- package/dist/lib/browser/ChatDialog-XQ3KDYWE.mjs.map +0 -7
- package/dist/lib/browser/PromptArticle-Q7JYGFQV.mjs +0 -59
- package/dist/lib/browser/PromptArticle-Q7JYGFQV.mjs.map +0 -7
- package/dist/lib/browser/ai-service-ERTZBTP3.mjs +0 -19
- package/dist/lib/browser/ai-service-ERTZBTP3.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-LM6GVHQO.mjs +0 -199
- package/dist/lib/browser/app-graph-builder-LM6GVHQO.mjs.map +0 -7
- package/dist/lib/browser/blueprint-definition-VBEOXNBS.mjs +0 -12
- package/dist/lib/browser/chunk-2BOE3OTW.mjs.map +0 -7
- package/dist/lib/browser/chunk-5JZRYQZL.mjs +0 -229
- package/dist/lib/browser/chunk-5JZRYQZL.mjs.map +0 -7
- package/dist/lib/browser/chunk-7ZJIXQ2Y.mjs.map +0 -7
- package/dist/lib/browser/chunk-LRE4VEZV.mjs +0 -16
- package/dist/lib/browser/chunk-LRE4VEZV.mjs.map +0 -7
- package/dist/lib/browser/chunk-NC2QNMBF.mjs +0 -176
- package/dist/lib/browser/chunk-NC2QNMBF.mjs.map +0 -7
- package/dist/lib/browser/chunk-PWSTPQUY.mjs +0 -1929
- package/dist/lib/browser/chunk-PWSTPQUY.mjs.map +0 -7
- package/dist/lib/browser/chunk-WBG5PTSX.mjs.map +0 -7
- package/dist/lib/browser/edge-model-resolver-O6OFYIO2.mjs +0 -18
- package/dist/lib/browser/edge-model-resolver-O6OFYIO2.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-EEYS2GJF.mjs +0 -143
- package/dist/lib/browser/intent-resolver-EEYS2GJF.mjs.map +0 -7
- package/dist/lib/browser/local-model-resolver-34MVHRKD.mjs +0 -17
- package/dist/lib/browser/local-model-resolver-34MVHRKD.mjs.map +0 -7
- package/dist/lib/browser/react-surface-ECKZNDSU.mjs.map +0 -7
- package/dist/lib/browser/repair-3MZXLUHO.mjs.map +0 -7
- package/dist/lib/browser/settings-HD5WA24I.mjs +0 -23
- package/dist/lib/browser/settings-HD5WA24I.mjs.map +0 -7
- package/dist/lib/browser/state-GG7Z3NB7.mjs +0 -25
- package/dist/lib/browser/state-GG7Z3NB7.mjs.map +0 -7
- package/dist/lib/browser/toolkit-VYDAWNE4.mjs +0 -17
- package/dist/lib/browser/toolkit-VYDAWNE4.mjs.map +0 -7
- package/dist/lib/node-esm/BlueprintArticle-R2XYBRCK.mjs +0 -37
- package/dist/lib/node-esm/BlueprintArticle-R2XYBRCK.mjs.map +0 -7
- package/dist/lib/node-esm/ChatCompanion-IUMU7WRQ.mjs +0 -159
- package/dist/lib/node-esm/ChatCompanion-IUMU7WRQ.mjs.map +0 -7
- package/dist/lib/node-esm/ChatContainer-CTUNUEU3.mjs +0 -78
- package/dist/lib/node-esm/ChatContainer-CTUNUEU3.mjs.map +0 -7
- package/dist/lib/node-esm/ChatDialog-X42ASXQD.mjs +0 -91
- package/dist/lib/node-esm/ChatDialog-X42ASXQD.mjs.map +0 -7
- package/dist/lib/node-esm/PromptArticle-IV7O5UZ3.mjs +0 -60
- package/dist/lib/node-esm/PromptArticle-IV7O5UZ3.mjs.map +0 -7
- package/dist/lib/node-esm/ai-service-MUYLV3NT.mjs +0 -20
- package/dist/lib/node-esm/ai-service-MUYLV3NT.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-6XUAGTRS.mjs +0 -200
- package/dist/lib/node-esm/app-graph-builder-6XUAGTRS.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-25GMMNY5.mjs +0 -178
- package/dist/lib/node-esm/chunk-25GMMNY5.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-3Q22TTXW.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-CKW4IYLY.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-E4JSYCWZ.mjs +0 -230
- package/dist/lib/node-esm/chunk-E4JSYCWZ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-WE6KTH72.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-YWFWT57N.mjs +0 -17
- package/dist/lib/node-esm/chunk-YWFWT57N.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-Z37USO4K.mjs +0 -1930
- package/dist/lib/node-esm/chunk-Z37USO4K.mjs.map +0 -7
- package/dist/lib/node-esm/edge-model-resolver-2ARXDOYS.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-4SRYLDK5.mjs +0 -144
- package/dist/lib/node-esm/intent-resolver-4SRYLDK5.mjs.map +0 -7
- package/dist/lib/node-esm/local-model-resolver-TP2NTSAX.mjs +0 -18
- package/dist/lib/node-esm/local-model-resolver-TP2NTSAX.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-NLIG5VAI.mjs.map +0 -7
- package/dist/lib/node-esm/repair-RER5H7Y6.mjs.map +0 -7
- package/dist/lib/node-esm/settings-YJQVKHH5.mjs +0 -24
- package/dist/lib/node-esm/settings-YJQVKHH5.mjs.map +0 -7
- package/dist/lib/node-esm/state-FSUHFMDM.mjs +0 -26
- package/dist/lib/node-esm/state-FSUHFMDM.mjs.map +0 -7
- package/dist/lib/node-esm/toolkit-HFJZLVIR.mjs +0 -18
- package/dist/lib/node-esm/toolkit-HFJZLVIR.mjs.map +0 -7
- package/dist/types/src/capabilities/ai-service.d.ts +0 -4
- package/dist/types/src/capabilities/ai-service.d.ts.map +0 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
- package/dist/types/src/capabilities/blueprint-definition.d.ts +0 -7
- package/dist/types/src/capabilities/blueprint-definition.d.ts.map +0 -1
- package/dist/types/src/capabilities/capabilities.d.ts +0 -10
- package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
- package/dist/types/src/capabilities/edge-model-resolver.d.ts +0 -4
- package/dist/types/src/capabilities/edge-model-resolver.d.ts.map +0 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
- package/dist/types/src/capabilities/local-model-resolver.d.ts +0 -10
- package/dist/types/src/capabilities/local-model-resolver.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-surface.d.ts +0 -4
- package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
- package/dist/types/src/capabilities/repair.d.ts +0 -4
- package/dist/types/src/capabilities/repair.d.ts.map +0 -1
- package/dist/types/src/capabilities/settings.d.ts +0 -4
- package/dist/types/src/capabilities/settings.d.ts.map +0 -1
- package/dist/types/src/capabilities/state.d.ts +0 -4
- package/dist/types/src/capabilities/state.d.ts.map +0 -1
- package/dist/types/src/capabilities/toolkit.d.ts +0 -4
- package/dist/types/src/capabilities/toolkit.d.ts.map +0 -1
- package/dist/types/src/components/ChatThread/reducers.d.ts +0 -40
- package/dist/types/src/components/ChatThread/reducers.d.ts.map +0 -1
- package/dist/types/src/events.d.ts +0 -4
- package/dist/types/src/events.d.ts.map +0 -1
- package/dist/types/src/functions/analysis.d.ts +0 -5
- package/dist/types/src/functions/analysis.d.ts.map +0 -1
- package/src/capabilities/ai-service.ts +0 -27
- package/src/capabilities/app-graph-builder.ts +0 -210
- package/src/capabilities/blueprint-definition.ts +0 -66
- package/src/capabilities/capabilities.ts +0 -17
- package/src/capabilities/edge-model-resolver.ts +0 -25
- package/src/capabilities/intent-resolver.ts +0 -135
- package/src/capabilities/local-model-resolver.ts +0 -30
- package/src/capabilities/react-surface.tsx +0 -87
- package/src/capabilities/settings.ts +0 -19
- package/src/capabilities/state.ts +0 -22
- package/src/capabilities/toolkit.ts +0 -17
- package/src/components/ChatThread/reducers.ts +0 -151
- package/src/events.ts +0 -11
- package/src/functions/analysis.ts +0 -22
- /package/dist/lib/browser/{blueprint-definition-VBEOXNBS.mjs.map → blueprint-definition-DGHH7MUU.mjs.map} +0 -0
- /package/dist/lib/{node-esm/blueprint-definition-RDCLLIQH.mjs.map → browser/blueprints/index.mjs.map} +0 -0
|
@@ -5,6 +5,7 @@ import * as Fiber from "effect/Fiber";
|
|
|
5
5
|
import * as Runtime from "effect/Runtime";
|
|
6
6
|
import { AiService, DEFAULT_EDGE_MODEL } from "@dxos/ai";
|
|
7
7
|
import { AiSession } from "@dxos/assistant";
|
|
8
|
+
import { Obj } from "@dxos/echo";
|
|
8
9
|
import { throwCause } from "@dxos/effect";
|
|
9
10
|
import { trim } from "@dxos/util";
|
|
10
11
|
var updateName = async (runtime, conversation, chat, model = DEFAULT_EDGE_MODEL) => {
|
|
@@ -25,7 +26,9 @@ var updateName = async (runtime, conversation, chat, model = DEFAULT_EDGE_MODEL)
|
|
|
25
26
|
const message = messages.find((message2) => message2.sender.role === "assistant");
|
|
26
27
|
const title = message?.blocks.find((block) => block._tag === "text")?.text;
|
|
27
28
|
if (title) {
|
|
28
|
-
chat
|
|
29
|
+
Obj.change(chat, (c) => {
|
|
30
|
+
c.name = title;
|
|
31
|
+
});
|
|
29
32
|
}
|
|
30
33
|
}), Runtime.runFork(runtime));
|
|
31
34
|
const response = await fiber.pipe(Fiber.join, Effect.runPromiseExit);
|
|
@@ -88,8 +91,8 @@ import * as Option from "effect/Option";
|
|
|
88
91
|
import * as Runtime2 from "effect/Runtime";
|
|
89
92
|
import { AiService as AiService2, DEFAULT_EDGE_MODEL as DEFAULT_EDGE_MODEL2 } from "@dxos/ai";
|
|
90
93
|
import { ArtifactDiffResolver, GenerationObserver, createSystemPrompt } from "@dxos/assistant";
|
|
91
|
-
import { Obj } from "@dxos/echo";
|
|
92
|
-
import { throwCause as throwCause2 } from "@dxos/effect";
|
|
94
|
+
import { Obj as Obj2 } from "@dxos/echo";
|
|
95
|
+
import { runAndForwardErrors, throwCause as throwCause2 } from "@dxos/effect";
|
|
93
96
|
import { log } from "@dxos/log";
|
|
94
97
|
import { Message } from "@dxos/types";
|
|
95
98
|
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-assistant/src/processor/processor.ts";
|
|
@@ -103,14 +106,14 @@ var AiChatProcessor = class {
|
|
|
103
106
|
_registry;
|
|
104
107
|
/** External observer. */
|
|
105
108
|
_observer;
|
|
106
|
-
/** Currently active request fiber. */
|
|
107
|
-
_fiber;
|
|
108
|
-
/** Last request (for retries). */
|
|
109
|
-
_lastRequest;
|
|
110
109
|
/** Pending messages (incl. the current user request). */
|
|
111
110
|
_pending = Atom.make([]);
|
|
112
111
|
/** Currently streaming message (from the AI service). */
|
|
113
112
|
_streaming = Atom.make(Option.none());
|
|
113
|
+
/** Currently active request fiber. */
|
|
114
|
+
_fiber;
|
|
115
|
+
/** Last request (for retries). */
|
|
116
|
+
_lastRequest;
|
|
114
117
|
/** Streaming state. */
|
|
115
118
|
streaming = Atom.make((get) => Option.isSome(get(this._streaming)));
|
|
116
119
|
/** Active state. */
|
|
@@ -151,26 +154,26 @@ var AiChatProcessor = class {
|
|
|
151
154
|
/**
|
|
152
155
|
* Initiates a new request.
|
|
153
156
|
*/
|
|
154
|
-
async request(
|
|
157
|
+
async request(requestProp) {
|
|
155
158
|
if (this._fiber) {
|
|
156
159
|
await this.cancel();
|
|
157
160
|
}
|
|
158
161
|
try {
|
|
159
|
-
this._lastRequest =
|
|
162
|
+
this._lastRequest = requestProp;
|
|
160
163
|
this._registry.set(this.error, Option.none());
|
|
161
164
|
this._registry.set(this.active, true);
|
|
165
|
+
const services = await this._services();
|
|
162
166
|
const request = this._conversation.createRequest({
|
|
163
167
|
system: this._options.system,
|
|
164
|
-
prompt:
|
|
168
|
+
prompt: requestProp.message,
|
|
165
169
|
observer: this._observer
|
|
166
170
|
});
|
|
167
|
-
const runtime = await this._services();
|
|
168
171
|
this._fiber = request.pipe(
|
|
169
172
|
Effect2.provide(AiService2.model(this._options.model ?? DEFAULT_EDGE_MODEL2)),
|
|
170
173
|
// TODO(dmaretskyi): Move ArtifactDiffResolver upstream.
|
|
171
174
|
Effect2.provideService(ArtifactDiffResolver, this._artifactDiffResolver),
|
|
172
175
|
Effect2.asVoid,
|
|
173
|
-
Runtime2.runFork(
|
|
176
|
+
Runtime2.runFork(services)
|
|
174
177
|
);
|
|
175
178
|
const response = await this._fiber.pipe(Fiber2.join, Effect2.runPromiseExit);
|
|
176
179
|
if (!Exit2.isSuccess(response) && !Cause.isInterruptedOnly(response.cause)) {
|
|
@@ -179,28 +182,28 @@ var AiChatProcessor = class {
|
|
|
179
182
|
this._registry.set(this.error, Option.none());
|
|
180
183
|
this._lastRequest = void 0;
|
|
181
184
|
this._fiber = void 0;
|
|
182
|
-
} catch (
|
|
185
|
+
} catch (err) {
|
|
183
186
|
log.error("request failed", {
|
|
184
|
-
error
|
|
187
|
+
error: err
|
|
185
188
|
}, {
|
|
186
189
|
F: __dxlog_file,
|
|
187
|
-
L:
|
|
190
|
+
L: 185,
|
|
188
191
|
S: this,
|
|
189
192
|
C: (f, a) => f(...a)
|
|
190
193
|
});
|
|
191
194
|
this._registry.set(this.error, Option.some(new Error("AI service error", {
|
|
192
|
-
cause:
|
|
195
|
+
cause: err
|
|
193
196
|
})));
|
|
194
197
|
} finally {
|
|
195
|
-
this._fiber = void 0;
|
|
196
198
|
this._registry.set(this.active, false);
|
|
199
|
+
this._fiber = void 0;
|
|
197
200
|
}
|
|
198
201
|
}
|
|
199
202
|
/**
|
|
200
203
|
* Cancels the current request.
|
|
201
204
|
*/
|
|
202
205
|
async cancel() {
|
|
203
|
-
await
|
|
206
|
+
await runAndForwardErrors(Effect2.gen(this, function* () {
|
|
204
207
|
if (this._fiber) {
|
|
205
208
|
yield* this._fiber.pipe(Fiber2.interrupt);
|
|
206
209
|
}
|
|
@@ -240,7 +243,7 @@ var AiChatProcessor = class {
|
|
|
240
243
|
_onBlock = Effect2.fn((function* (block) {
|
|
241
244
|
this._registry.update(this._streaming, (streaming) => {
|
|
242
245
|
const blocks = streaming.pipe(Option.map((streaming2) => streaming2.blocks.filter((b) => !b.pending)), Option.getOrElse(() => []));
|
|
243
|
-
return Option.some(
|
|
246
|
+
return Option.some(Obj2.make(Message.Message, {
|
|
244
247
|
created: (/* @__PURE__ */ new Date()).toISOString(),
|
|
245
248
|
sender: {
|
|
246
249
|
role: "assistant"
|
|
@@ -259,4 +262,4 @@ export {
|
|
|
259
262
|
updateName,
|
|
260
263
|
AiChatProcessor
|
|
261
264
|
};
|
|
262
|
-
//# sourceMappingURL=chunk-
|
|
265
|
+
//# sourceMappingURL=chunk-ML3QCFKA.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/processor/update-name.ts", "../../../src/processor/presets.ts", "../../../src/processor/processor.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Exit from 'effect/Exit';\nimport * as Fiber from 'effect/Fiber';\nimport * as Runtime from 'effect/Runtime';\n\nimport { AiService, DEFAULT_EDGE_MODEL, type ModelName } from '@dxos/ai';\nimport { type AiConversation, AiSession } from '@dxos/assistant';\nimport { Obj } from '@dxos/echo';\nimport { throwCause } from '@dxos/effect';\nimport { trim } from '@dxos/util';\n\nimport { type Assistant } from '../types';\n\nimport { type AiChatServices } from './processor';\n\n/**\n * Update the current chat's name.\n */\n// TODO(burdon): Convert this into a plugin tool.\nexport const updateName = async (\n runtime: Runtime.Runtime<AiChatServices>,\n conversation: AiConversation,\n chat: Assistant.Chat,\n model: ModelName = DEFAULT_EDGE_MODEL,\n): Promise<void> => {\n const history = await conversation.getHistory();\n const system = trim`\n It is extremely important that you respond only with the title and nothing else.\n If you cannot do this effectively respond with \"New Chat\".\n `;\n const prompt = 'Suggest a name for this chat';\n\n const fiber = Effect.gen(this, function* () {\n const session = new AiSession();\n return yield* session.run({ system, prompt, history });\n }).pipe(\n Effect.provide(AiService.model(model)),\n Effect.tap((messages) => {\n // TODO(burdon): Parse response (should update via tool).\n const message = messages.find((message) => message.sender.role === 'assistant');\n const title = message?.blocks.find((block) => block._tag === 'text')?.text;\n if (title) {\n Obj.change(chat, (c) => {\n c.name = title;\n });\n }\n }),\n Runtime.runFork(runtime), // Run in the background.\n );\n\n const response = await fiber.pipe(Fiber.join, Effect.runPromiseExit);\n if (!Exit.isSuccess(response)) {\n throwCause(response.cause);\n }\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { type ModelName } from '@dxos/ai';\n\nconst ModelProviders = ['dxos-local', 'dxos-remote', 'lm-studio'] as const;\n\nconst ModelProvider = Schema.Literal(...ModelProviders);\ntype ModelProvider = Schema.Schema.Type<typeof ModelProvider>;\n\nexport type AiServicePreset = {\n id: string;\n provider: ModelProvider;\n model: ModelName;\n label?: string;\n};\n\nconst createModelLabel = (model: ModelName) => {\n const parts = model.split('/');\n return parts[parts.length - 1];\n};\n\n// TODO(burdon): Users should be able to create and edit presets.\nexport const AiServicePresets: AiServicePreset[] = [\n {\n provider: 'dxos-remote' as const,\n model: '@anthropic/claude-opus-4-0' as const,\n },\n {\n provider: 'dxos-remote' as const,\n model: '@anthropic/claude-sonnet-4-0' as const,\n },\n {\n provider: 'dxos-remote' as const,\n model: '@anthropic/claude-3-5-haiku-20241022' as const,\n },\n {\n provider: 'lm-studio' as const,\n model: '@google/gemma-3-27b' as const,\n },\n {\n provider: 'lm-studio' as const,\n model: '@meta/llama-3.2-3b-instruct' as const,\n },\n {\n model: 'deepseek-r1:latest' as const,\n provider: 'dxos-local' as const,\n },\n].map(\n ({ model, provider }, i) =>\n ({\n id: `preset-${i}`,\n provider,\n model,\n label: createModelLabel(model),\n }) satisfies AiServicePreset,\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Atom, Registry } from '@effect-atom/atom-react';\nimport * as Cause from 'effect/Cause';\nimport * as Effect from 'effect/Effect';\nimport * as Exit from 'effect/Exit';\nimport * as Fiber from 'effect/Fiber';\nimport * as Option from 'effect/Option';\nimport * as Runtime from 'effect/Runtime';\n\nimport {\n AiService,\n DEFAULT_EDGE_MODEL,\n type ModelName,\n type ModelRegistry,\n type ToolExecutionService,\n type ToolResolverService,\n} from '@dxos/ai';\nimport {\n type AiConversation,\n type AiConversationRunProps,\n ArtifactDiffResolver,\n GenerationObserver,\n createSystemPrompt,\n} from '@dxos/assistant';\nimport { type Blueprint } from '@dxos/blueprints';\nimport { Obj } from '@dxos/echo';\nimport { type Database } from '@dxos/echo';\nimport { runAndForwardErrors, throwCause } from '@dxos/effect';\nimport {\n type CredentialsService,\n type FunctionInvocationService,\n type QueueService,\n type TracingService,\n} from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { type ContentBlock, Message } from '@dxos/types';\n\nimport { type Assistant } from '../types';\n\nimport { updateName } from './update-name';\n\nexport type AiChatServices =\n | CredentialsService\n | Database.Service\n | QueueService\n | FunctionInvocationService\n | AiService.AiService\n | ToolExecutionService\n | ToolResolverService\n | TracingService;\n\nexport type AiChatProcessorOptions = {\n model?: ModelName;\n modelRegistry?: ModelRegistry;\n blueprintRegistry?: Blueprint.Registry;\n observableRegistry?: Registry.Registry;\n extensions?: ToolContextExtensions;\n} & Pick<AiConversationRunProps, 'system'>;\n\nconst defaultOptions: Partial<AiChatProcessorOptions> = {\n model: DEFAULT_EDGE_MODEL,\n};\n\n// TODO(burdon): Retry, timeout?\nexport type AiRequestOptions = {};\n\nexport type AiRequest = {\n message: string;\n options?: AiRequestOptions;\n};\n\n/**\n * Handles interactions with the AI service.\n * Handles streaming responses from the conversation.\n */\nexport class AiChatProcessor {\n private readonly _registry: Registry.Registry;\n\n /** External observer. */\n private readonly _observer: GenerationObserver;\n\n /** Pending messages (incl. the current user request). */\n private readonly _pending = Atom.make<Message.Message[]>([]);\n\n /** Currently streaming message (from the AI service). */\n private readonly _streaming = Atom.make<Option.Option<Message.Message>>(Option.none());\n\n /** Currently active request fiber. */\n private _fiber: Fiber.Fiber<void, any> | undefined;\n\n /** Last request (for retries). */\n private _lastRequest: AiRequest | undefined;\n\n /** Streaming state. */\n public readonly streaming = Atom.make<boolean>((get) => Option.isSome(get(this._streaming)));\n\n /** Active state. */\n public readonly active = Atom.make(false);\n\n /** Array of Messages (incl. the current message being streamed). */\n public readonly messages = Atom.make<Message.Message[]>((get) =>\n Option.match(get(this._streaming), {\n onNone: () => get(this._pending),\n onSome: (streaming) => [...get(this._pending), streaming],\n }),\n );\n\n /** Last error. */\n public readonly error = Atom.make<Option.Option<Error>>(Option.none());\n\n constructor(\n private readonly _conversation: AiConversation,\n // TODO(dmaretskyi): Replace this with effect's ManagedRuntime wrapping this layer.\n private readonly _services: () => Promise<Runtime.Runtime<AiChatServices>>,\n private readonly _options: AiChatProcessorOptions = defaultOptions,\n ) {\n // Initialize registries and defaults before using in other logic.\n this._registry = this._options.observableRegistry ?? Registry.make();\n this._observer = GenerationObserver.make({\n onBlock: this._onBlock,\n onMessage: this._onMessage,\n });\n if (this._options.model && !this._options.system) {\n const capabilities = this._options.modelRegistry?.getCapabilities(this._options.model) ?? {};\n this._options.system = createSystemPrompt(capabilities);\n }\n }\n\n get context() {\n return this._conversation.context;\n }\n\n get conversation() {\n return this._conversation;\n }\n\n get blueprintRegistry() {\n return this._options.blueprintRegistry;\n }\n\n /**\n * Initiates a new request.\n */\n async request(requestProp: AiRequest): Promise<void> {\n if (this._fiber) {\n await this.cancel();\n }\n\n try {\n this._lastRequest = requestProp;\n this._registry.set(this.error, Option.none());\n this._registry.set(this.active, true);\n\n const services = await this._services();\n\n // Create request.\n const request = this._conversation.createRequest({\n system: this._options.system,\n prompt: requestProp.message,\n observer: this._observer,\n });\n\n // Create fiber.\n this._fiber = request.pipe(\n Effect.provide(AiService.model(this._options.model ?? DEFAULT_EDGE_MODEL)),\n // TODO(dmaretskyi): Move ArtifactDiffResolver upstream.\n Effect.provideService(ArtifactDiffResolver, this._artifactDiffResolver),\n Effect.asVoid,\n Runtime.runFork(services), // Runs in the background.\n );\n\n // Execute request.\n const response = await this._fiber.pipe(Fiber.join, Effect.runPromiseExit);\n if (!Exit.isSuccess(response) && !Cause.isInterruptedOnly(response.cause)) {\n throwCause(response.cause);\n }\n\n this._registry.set(this.error, Option.none());\n this._lastRequest = undefined;\n this._fiber = undefined;\n } catch (err) {\n log.error('request failed', { error: err });\n this._registry.set(this.error, Option.some(new Error('AI service error', { cause: err })));\n } finally {\n this._registry.set(this.active, false);\n this._fiber = undefined;\n }\n }\n\n /**\n * Cancels the current request.\n */\n async cancel(): Promise<void> {\n await runAndForwardErrors(\n Effect.gen(this, function* () {\n if (this._fiber) {\n yield* this._fiber.pipe(Fiber.interrupt);\n }\n }),\n );\n\n this._fiber = undefined;\n this._registry.set(this.active, false);\n }\n\n /**\n * Retry last failed request.\n */\n async retry(): Promise<void> {\n if (this._lastRequest) {\n return this.request(this._lastRequest);\n }\n }\n\n /**\n * Update the current chat's name.\n */\n async updateName(chat: Assistant.Chat): Promise<void> {\n const runtime = await this._services();\n await updateName(runtime, this._conversation, chat, this._options.model);\n }\n\n // TODO(burdon): Fix/factor out.\n private _artifactDiffResolver: ArtifactDiffResolver.Service = {\n resolve: async (_artifacts) => {\n const versions = new Map();\n // await Promise.all(\n // artifacts.map(async (artifact) => {\n // const {\n // objects: [object],\n // } = await space.db.query(Filter.id(artifact.id)).run();\n // if (!object) {\n // return;\n // }\n\n // versions.set(artifact.id, {\n // version: getVersion(object),\n // diff: `Current state: ${JSON.stringify(object)}`,\n // });\n // }),\n // );\n\n return versions;\n },\n };\n\n private _onMessage = Effect.fn(\n function* (this: AiChatProcessor, message: Message.Message) {\n this._registry.set(this._streaming, Option.none());\n this._registry.update(this._pending, (pending) => [...pending, message]);\n }.bind(this),\n );\n\n private _onBlock = Effect.fn(\n function* (this: AiChatProcessor, block: ContentBlock.Any) {\n this._registry.update(this._streaming, (streaming) => {\n const blocks = streaming.pipe(\n Option.map((streaming) => streaming.blocks.filter((b: ContentBlock.Any) => !b.pending)),\n Option.getOrElse(() => []),\n );\n\n return Option.some(\n Obj.make(Message.Message, {\n created: new Date().toISOString(),\n sender: { role: 'assistant' },\n blocks: [...blocks, block],\n }),\n );\n });\n }.bind(this),\n );\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Effect", "Exit", "Fiber", "Runtime", "AiService", "DEFAULT_EDGE_MODEL", "AiSession", "Obj", "throwCause", "trim", "updateName", "runtime", "conversation", "chat", "model", "DEFAULT_EDGE_MODEL", "history", "getHistory", "system", "trim", "prompt", "fiber", "gen", "session", "AiSession", "run", "pipe", "provide", "AiService", "tap", "messages", "message", "find", "sender", "role", "title", "blocks", "block", "_tag", "text", "Obj", "change", "c", "name", "runFork", "response", "join", "runPromiseExit", "isSuccess", "throwCause", "cause", "Schema", "ModelProviders", "ModelProvider", "Literal", "createModelLabel", "model", "parts", "split", "length", "AiServicePresets", "provider", "map", "i", "id", "label", "Atom", "Registry", "Cause", "Effect", "Exit", "Fiber", "Option", "Runtime", "AiService", "DEFAULT_EDGE_MODEL", "ArtifactDiffResolver", "GenerationObserver", "createSystemPrompt", "Obj", "runAndForwardErrors", "throwCause", "log", "Message", "defaultOptions", "model", "DEFAULT_EDGE_MODEL", "AiChatProcessor", "_registry", "_observer", "_pending", "Atom", "make", "_streaming", "none", "_fiber", "_lastRequest", "streaming", "get", "isSome", "active", "messages", "match", "onNone", "onSome", "error", "_conversation", "_services", "_options", "observableRegistry", "Registry", "GenerationObserver", "onBlock", "_onBlock", "onMessage", "_onMessage", "system", "capabilities", "modelRegistry", "getCapabilities", "createSystemPrompt", "context", "conversation", "blueprintRegistry", "request", "requestProp", "cancel", "set", "services", "createRequest", "prompt", "message", "observer", "pipe", "provide", "AiService", "provideService", "ArtifactDiffResolver", "_artifactDiffResolver", "asVoid", "runFork", "response", "join", "runPromiseExit", "isSuccess", "isInterruptedOnly", "cause", "throwCause", "undefined", "err", "log", "some", "Error", "runAndForwardErrors", "gen", "interrupt", "retry", "updateName", "chat", "runtime", "resolve", "_artifacts", "versions", "Map", "fn", "update", "pending", "bind", "block", "blocks", "map", "filter", "b", "getOrElse", "Obj", "Message", "created", "Date", "toISOString", "sender", "role"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__export
|
|
3
|
+
} from "./chunk-J5LGTIGS.mjs";
|
|
4
|
+
|
|
5
|
+
// src/blueprints/assistant-blueprint.ts
|
|
6
|
+
var assistant_blueprint_exports = {};
|
|
7
|
+
__export(assistant_blueprint_exports, {
|
|
8
|
+
Key: () => Key,
|
|
9
|
+
blueprint: () => blueprint,
|
|
10
|
+
blueprints: () => blueprints,
|
|
11
|
+
deckTools: () => deckTools,
|
|
12
|
+
functions: () => functions,
|
|
13
|
+
functions$: () => functions$,
|
|
14
|
+
make: () => make,
|
|
15
|
+
tools: () => tools
|
|
16
|
+
});
|
|
17
|
+
import { templates } from "@dxos/assistant";
|
|
18
|
+
import { Agent, AssistantToolkit, Discord, DiscordBlueprint, EntityExtraction, Linear, LinearBlueprint, Research, ResearchBlueprint, SystemToolkit, WebSearchBlueprint } from "@dxos/assistant-toolkit";
|
|
19
|
+
import { Blueprint } from "@dxos/blueprints";
|
|
20
|
+
|
|
21
|
+
// src/functions/object-list.ts
|
|
22
|
+
import * as Effect from "effect/Effect";
|
|
23
|
+
import * as Schema from "effect/Schema";
|
|
24
|
+
import { Filter, Obj, Query } from "@dxos/echo";
|
|
25
|
+
import { Database } from "@dxos/echo";
|
|
26
|
+
import { defineFunction } from "@dxos/functions";
|
|
27
|
+
import { trim } from "@dxos/util";
|
|
28
|
+
var object_list_default = defineFunction({
|
|
29
|
+
key: "dxos.org/function/assistant/object-list",
|
|
30
|
+
name: "List objects",
|
|
31
|
+
description: (
|
|
32
|
+
// TODO(wittjosiah): Find a better way to prompt for looking up typenames before querying with them.
|
|
33
|
+
trim`
|
|
34
|
+
Lists the objects of the given type.
|
|
35
|
+
Check the get-schemas tool for available types before calling this function.
|
|
36
|
+
`
|
|
37
|
+
),
|
|
38
|
+
inputSchema: Schema.Struct({
|
|
39
|
+
typename: Schema.String.annotations({
|
|
40
|
+
description: "The typename of the objects to list."
|
|
41
|
+
})
|
|
42
|
+
}),
|
|
43
|
+
outputSchema: Schema.Struct({
|
|
44
|
+
results: Schema.Array(Schema.Struct({
|
|
45
|
+
dxn: Schema.String.annotations({
|
|
46
|
+
description: "The DXN of the object."
|
|
47
|
+
}),
|
|
48
|
+
label: Schema.optional(Schema.String.annotations({
|
|
49
|
+
description: "The label of the object."
|
|
50
|
+
}))
|
|
51
|
+
}))
|
|
52
|
+
}),
|
|
53
|
+
handler: Effect.fn(function* ({ data: { typename } }) {
|
|
54
|
+
const [schema] = yield* Database.Service.runSchemaQuery({
|
|
55
|
+
typename
|
|
56
|
+
});
|
|
57
|
+
const filter = schema ? Filter.type(schema) : Filter.typename(typename);
|
|
58
|
+
const objects = yield* Database.Service.runQuery(Query.select(filter));
|
|
59
|
+
const results = objects.map((object) => ({
|
|
60
|
+
dxn: Obj.getDXN(object).toString(),
|
|
61
|
+
label: Obj.getLabel(object)
|
|
62
|
+
}));
|
|
63
|
+
return {
|
|
64
|
+
results
|
|
65
|
+
};
|
|
66
|
+
})
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
// src/functions/object-load.ts
|
|
70
|
+
import * as Effect2 from "effect/Effect";
|
|
71
|
+
import * as Function from "effect/Function";
|
|
72
|
+
import * as Option from "effect/Option";
|
|
73
|
+
import * as Schema2 from "effect/Schema";
|
|
74
|
+
import { ArtifactId } from "@dxos/assistant";
|
|
75
|
+
import { Entity } from "@dxos/echo";
|
|
76
|
+
import { Database as Database2 } from "@dxos/echo";
|
|
77
|
+
import { defineFunction as defineFunction2 } from "@dxos/functions";
|
|
78
|
+
var object_load_default = defineFunction2({
|
|
79
|
+
key: "dxos.org/function/assistant/object-load",
|
|
80
|
+
name: "Load object",
|
|
81
|
+
description: "Loads the object.",
|
|
82
|
+
inputSchema: Schema2.Struct({
|
|
83
|
+
// TODO(dmaretskyi): Use Ref.
|
|
84
|
+
id: ArtifactId.annotations({
|
|
85
|
+
description: "The ID of the object."
|
|
86
|
+
}),
|
|
87
|
+
typename: Schema2.String.annotations({
|
|
88
|
+
description: "The typename of the object."
|
|
89
|
+
})
|
|
90
|
+
}),
|
|
91
|
+
outputSchema: Schema2.Struct({
|
|
92
|
+
// TODO(wittjosiah): Type.Entity.Any
|
|
93
|
+
object: Schema2.Any
|
|
94
|
+
}),
|
|
95
|
+
handler: Effect2.fn(function* ({ data: { id, typename } }) {
|
|
96
|
+
const object = yield* Database2.Service.resolve(ArtifactId.toDXN(id));
|
|
97
|
+
return yield* Function.pipe(Option.fromNullable(object), Option.flatMap((object2) => Entity.getTypename(object2) === typename ? Option.some(object2) : Option.none()), Option.match({
|
|
98
|
+
onNone: () => Effect2.fail("Object not found."),
|
|
99
|
+
onSome: (object2) => {
|
|
100
|
+
return Effect2.succeed({
|
|
101
|
+
object: object2
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}));
|
|
105
|
+
})
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
// src/functions/object-search.ts
|
|
109
|
+
import * as Effect3 from "effect/Effect";
|
|
110
|
+
import * as Schema3 from "effect/Schema";
|
|
111
|
+
import { Filter as Filter2, Obj as Obj2, Query as Query2 } from "@dxos/echo";
|
|
112
|
+
import { Database as Database3 } from "@dxos/echo";
|
|
113
|
+
import { defineFunction as defineFunction3 } from "@dxos/functions";
|
|
114
|
+
import { trim as trim2 } from "@dxos/util";
|
|
115
|
+
var object_search_default = defineFunction3({
|
|
116
|
+
key: "dxos.org/function/assistant/object-search",
|
|
117
|
+
name: "Search objects",
|
|
118
|
+
description: (
|
|
119
|
+
// TODO(wittjosiah): Find a better way to prompt for looking up typenames before querying with them.
|
|
120
|
+
trim2`
|
|
121
|
+
Searches the objects using full-text search.
|
|
122
|
+
`
|
|
123
|
+
),
|
|
124
|
+
inputSchema: Schema3.Struct({
|
|
125
|
+
query: Schema3.String.annotations({
|
|
126
|
+
description: "The query to search for."
|
|
127
|
+
})
|
|
128
|
+
}),
|
|
129
|
+
outputSchema: Schema3.Struct({
|
|
130
|
+
results: Schema3.Array(Schema3.Struct({
|
|
131
|
+
dxn: Schema3.String.annotations({
|
|
132
|
+
description: "The DXN of the object."
|
|
133
|
+
}),
|
|
134
|
+
label: Schema3.optional(Schema3.String.annotations({
|
|
135
|
+
description: "The label of the object."
|
|
136
|
+
}))
|
|
137
|
+
}))
|
|
138
|
+
}),
|
|
139
|
+
handler: Effect3.fn(function* ({ data: { query } }) {
|
|
140
|
+
const objects = yield* Database3.Service.runQuery(Query2.select(Filter2.text(query, {
|
|
141
|
+
type: "full-text"
|
|
142
|
+
})).options({
|
|
143
|
+
allQueuesFromSpaces: true
|
|
144
|
+
}));
|
|
145
|
+
const results = objects.map((object) => ({
|
|
146
|
+
dxn: Obj2.getDXN(object).toString(),
|
|
147
|
+
label: Obj2.getLabel(object)
|
|
148
|
+
}));
|
|
149
|
+
return {
|
|
150
|
+
results
|
|
151
|
+
};
|
|
152
|
+
})
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
// src/blueprints/assistant-blueprint.ts
|
|
156
|
+
var deckTools = [
|
|
157
|
+
"open-item"
|
|
158
|
+
];
|
|
159
|
+
var functions$ = [
|
|
160
|
+
object_list_default,
|
|
161
|
+
object_load_default,
|
|
162
|
+
object_search_default
|
|
163
|
+
];
|
|
164
|
+
var functions = [
|
|
165
|
+
...functions$,
|
|
166
|
+
// Factor out.
|
|
167
|
+
Research.create,
|
|
168
|
+
Research.research,
|
|
169
|
+
Agent.prompt,
|
|
170
|
+
EntityExtraction.extract,
|
|
171
|
+
Discord.fetch,
|
|
172
|
+
Linear.sync
|
|
173
|
+
];
|
|
174
|
+
var tools = [
|
|
175
|
+
...AssistantToolkit.tools,
|
|
176
|
+
...SystemToolkit.tools,
|
|
177
|
+
...deckTools
|
|
178
|
+
];
|
|
179
|
+
var Key = "dxos.org/blueprint/assistant";
|
|
180
|
+
var make = () => Blueprint.make({
|
|
181
|
+
key: Key,
|
|
182
|
+
name: "Assistant",
|
|
183
|
+
tools: Blueprint.toolDefinitions({
|
|
184
|
+
functions,
|
|
185
|
+
tools
|
|
186
|
+
}),
|
|
187
|
+
instructions: templates.system
|
|
188
|
+
});
|
|
189
|
+
var blueprint = make();
|
|
190
|
+
var blueprints = [
|
|
191
|
+
blueprint,
|
|
192
|
+
// Factor out.
|
|
193
|
+
ResearchBlueprint,
|
|
194
|
+
WebSearchBlueprint,
|
|
195
|
+
DiscordBlueprint,
|
|
196
|
+
LinearBlueprint
|
|
197
|
+
];
|
|
198
|
+
|
|
199
|
+
// src/blueprints/index.ts
|
|
200
|
+
var blueprints2 = blueprints;
|
|
201
|
+
var functions2 = functions;
|
|
202
|
+
|
|
203
|
+
export {
|
|
204
|
+
assistant_blueprint_exports,
|
|
205
|
+
blueprints2 as blueprints,
|
|
206
|
+
functions2 as functions
|
|
207
|
+
};
|
|
208
|
+
//# sourceMappingURL=chunk-MRJVYGLU.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/blueprints/assistant-blueprint.ts", "../../../src/functions/object-list.ts", "../../../src/functions/object-load.ts", "../../../src/functions/object-search.ts", "../../../src/blueprints/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { templates } from '@dxos/assistant';\nimport {\n Agent,\n AssistantToolkit,\n Discord,\n DiscordBlueprint,\n EntityExtraction,\n Linear,\n LinearBlueprint,\n Research,\n ResearchBlueprint,\n SystemToolkit,\n WebSearchBlueprint,\n} from '@dxos/assistant-toolkit';\nimport { Blueprint } from '@dxos/blueprints';\nimport { type FunctionDefinition } from '@dxos/functions';\n\nimport { list, load, search } from '../functions';\n\n// TODO(burdon): Document plugin structure (blueprint, functions, toolkit.).\n// TODO(burdon): Test framework for developing functions. Error handling.\n// TODO(burdon): Function naming pattern (noun-verb); fully-qualified?\n\nexport const deckTools = ['open-item'];\n\nexport const functions$: FunctionDefinition[] = [list, load, search];\nexport const functions = [\n ...functions$,\n // Factor out.\n Research.create,\n Research.research,\n Agent.prompt,\n EntityExtraction.extract,\n Discord.fetch,\n Linear.sync,\n];\nexport const tools = [...AssistantToolkit.tools, ...SystemToolkit.tools, ...deckTools];\n\nexport const Key = 'dxos.org/blueprint/assistant';\n\nexport const make = (): Blueprint.Blueprint =>\n Blueprint.make({\n key: Key,\n name: 'Assistant',\n tools: Blueprint.toolDefinitions({ functions, tools }),\n instructions: templates.system,\n });\n\nexport const blueprint = make();\n\nexport const blueprints = [\n blueprint,\n // Factor out.\n ResearchBlueprint,\n WebSearchBlueprint,\n DiscordBlueprint,\n LinearBlueprint,\n];\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Schema from 'effect/Schema';\n\nimport { Filter, Obj, Query } from '@dxos/echo';\nimport { Database } from '@dxos/echo';\nimport { defineFunction } from '@dxos/functions';\nimport { trim } from '@dxos/util';\n\n// TODO(burdon): Move to toolkit (i.e., tool not function).\nexport default defineFunction({\n key: 'dxos.org/function/assistant/object-list',\n name: 'List objects',\n description:\n // TODO(wittjosiah): Find a better way to prompt for looking up typenames before querying with them.\n trim`\n Lists the objects of the given type.\n Check the get-schemas tool for available types before calling this function.\n `,\n inputSchema: Schema.Struct({\n typename: Schema.String.annotations({\n description: 'The typename of the objects to list.',\n }),\n }),\n outputSchema: Schema.Struct({\n results: Schema.Array(\n Schema.Struct({\n dxn: Schema.String.annotations({ description: 'The DXN of the object.' }),\n label: Schema.optional(Schema.String.annotations({ description: 'The label of the object.' })),\n }),\n ),\n }),\n handler: Effect.fn(function* ({ data: { typename } }) {\n // TODO(wittjosiah): Typename query is not working for dynamic schemas.\n const [schema] = yield* Database.Service.runSchemaQuery({ typename });\n const filter = schema ? Filter.type(schema) : Filter.typename(typename);\n\n const objects = yield* Database.Service.runQuery(Query.select(filter));\n const results = objects.map((object) => ({\n dxn: Obj.getDXN(object).toString(),\n label: Obj.getLabel(object),\n }));\n\n return { results };\n }),\n});\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Function from 'effect/Function';\nimport * as Option from 'effect/Option';\nimport * as Schema from 'effect/Schema';\n\nimport { ArtifactId } from '@dxos/assistant';\nimport { Entity } from '@dxos/echo';\nimport { Database } from '@dxos/echo';\nimport { defineFunction } from '@dxos/functions';\n\n// TODO(burdon): Move to toolkit (i.e., tool not function).\nexport default defineFunction({\n key: 'dxos.org/function/assistant/object-load',\n name: 'Load object',\n description: 'Loads the object.',\n inputSchema: Schema.Struct({\n // TODO(dmaretskyi): Use Ref.\n id: ArtifactId.annotations({\n description: 'The ID of the object.',\n }),\n typename: Schema.String.annotations({\n description: 'The typename of the object.',\n }),\n }),\n outputSchema: Schema.Struct({\n // TODO(wittjosiah): Type.Entity.Any\n object: Schema.Any,\n }),\n handler: Effect.fn(function* ({ data: { id, typename } }) {\n const object = yield* Database.Service.resolve(ArtifactId.toDXN(id));\n return yield* Function.pipe(\n Option.fromNullable(object),\n Option.flatMap((object) => (Entity.getTypename(object) === typename ? Option.some(object) : Option.none())),\n Option.match({\n onNone: () => Effect.fail('Object not found.'),\n onSome: (object) => {\n // log.info('object', { object });\n return Effect.succeed({ object });\n },\n }),\n );\n }),\n});\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Schema from 'effect/Schema';\n\nimport { Filter, Obj, Query } from '@dxos/echo';\nimport { Database } from '@dxos/echo';\nimport { defineFunction } from '@dxos/functions';\nimport { trim } from '@dxos/util';\n\n// TODO(burdon): Move to toolkit (i.e., tool not function).\nexport default defineFunction({\n key: 'dxos.org/function/assistant/object-search',\n name: 'Search objects',\n description:\n // TODO(wittjosiah): Find a better way to prompt for looking up typenames before querying with them.\n trim`\n Searches the objects using full-text search.\n `,\n inputSchema: Schema.Struct({\n query: Schema.String.annotations({\n description: 'The query to search for.',\n }),\n }),\n outputSchema: Schema.Struct({\n results: Schema.Array(\n Schema.Struct({\n dxn: Schema.String.annotations({ description: 'The DXN of the object.' }),\n label: Schema.optional(Schema.String.annotations({ description: 'The label of the object.' })),\n }),\n ),\n }),\n handler: Effect.fn(function* ({ data: { query } }) {\n const objects = yield* Database.Service.runQuery(\n Query.select(Filter.text(query, { type: 'full-text' })).options({ allQueuesFromSpaces: true }),\n );\n const results = objects.map((object) => ({\n dxn: Obj.getDXN(object).toString(),\n label: Obj.getLabel(object),\n }));\n\n return { results };\n }),\n});\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Blueprint } from '@dxos/blueprints';\nimport { type FunctionDefinition } from '@dxos/functions';\n\nimport * as AssistantBlueprint from './assistant-blueprint';\n\nexport { AssistantBlueprint };\nexport const blueprints: Blueprint.Blueprint[] = AssistantBlueprint.blueprints;\nexport const functions: FunctionDefinition[] = AssistantBlueprint.functions;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["templates", "Agent", "AssistantToolkit", "Discord", "DiscordBlueprint", "EntityExtraction", "Linear", "LinearBlueprint", "Research", "ResearchBlueprint", "SystemToolkit", "WebSearchBlueprint", "Blueprint", "Effect", "Schema", "Filter", "Obj", "Query", "Database", "defineFunction", "trim", "defineFunction", "key", "name", "description", "trim", "inputSchema", "Struct", "typename", "String", "annotations", "outputSchema", "results", "Array", "dxn", "label", "optional", "handler", "fn", "data", "schema", "Database", "Service", "runSchemaQuery", "filter", "Filter", "type", "objects", "runQuery", "Query", "select", "map", "object", "Obj", "getDXN", "toString", "getLabel", "Effect", "Function", "Option", "Schema", "ArtifactId", "Entity", "Database", "defineFunction", "defineFunction", "key", "name", "description", "inputSchema", "Struct", "id", "ArtifactId", "annotations", "typename", "String", "outputSchema", "object", "Any", "handler", "fn", "data", "Database", "Service", "resolve", "toDXN", "pipe", "fromNullable", "flatMap", "Entity", "getTypename", "some", "none", "match", "onNone", "fail", "onSome", "succeed", "Effect", "Schema", "Filter", "Obj", "Query", "Database", "defineFunction", "trim", "defineFunction", "key", "name", "description", "trim", "inputSchema", "Struct", "query", "String", "annotations", "outputSchema", "results", "Array", "dxn", "label", "optional", "handler", "fn", "data", "objects", "Database", "Service", "runQuery", "Query", "select", "Filter", "text", "type", "options", "allQueuesFromSpaces", "map", "object", "Obj", "getDXN", "toString", "getLabel", "deckTools", "functions$", "list", "load", "search", "functions", "Research", "create", "research", "Agent", "prompt", "EntityExtraction", "extract", "Discord", "fetch", "Linear", "sync", "tools", "AssistantToolkit", "SystemToolkit", "Key", "make", "Blueprint", "key", "name", "toolDefinitions", "instructions", "templates", "system", "blueprint", "blueprints", "ResearchBlueprint", "WebSearchBlueprint", "DiscordBlueprint", "LinearBlueprint", "blueprints", "functions"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
import {
|
|
2
|
+
meta
|
|
3
|
+
} from "./chunk-EXVT7D4B.mjs";
|
|
4
|
+
import {
|
|
5
|
+
__export
|
|
6
|
+
} from "./chunk-J5LGTIGS.mjs";
|
|
7
|
+
|
|
8
|
+
// src/types/Assistant.ts
|
|
9
|
+
var Assistant_exports = {};
|
|
10
|
+
__export(Assistant_exports, {
|
|
11
|
+
Chat: () => Chat,
|
|
12
|
+
CompanionTo: () => CompanionTo,
|
|
13
|
+
Settings: () => Settings,
|
|
14
|
+
make: () => make
|
|
15
|
+
});
|
|
16
|
+
import * as Schema from "effect/Schema";
|
|
17
|
+
import { Obj, Type } from "@dxos/echo";
|
|
18
|
+
import { FormInputAnnotation, LabelAnnotation } from "@dxos/echo/internal";
|
|
19
|
+
import { Queue } from "@dxos/echo-db";
|
|
20
|
+
|
|
21
|
+
// src/types/defs.ts
|
|
22
|
+
var LLM_PROVIDERS = [
|
|
23
|
+
"edge",
|
|
24
|
+
"ollama",
|
|
25
|
+
"lmstudio"
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
// src/types/Assistant.ts
|
|
29
|
+
var Chat = Schema.Struct({
|
|
30
|
+
name: Schema.String.pipe(Schema.optional),
|
|
31
|
+
queue: Type.Ref(Queue).pipe(FormInputAnnotation.set(false)),
|
|
32
|
+
// TODO(dmaretskyi): Eventually this and the message queue will be the same.
|
|
33
|
+
traceQueue: Type.Ref(Queue).pipe(FormInputAnnotation.set(false), Schema.optional)
|
|
34
|
+
}).pipe(Type.object({
|
|
35
|
+
typename: "dxos.org/type/assistant/Chat",
|
|
36
|
+
version: "0.2.0"
|
|
37
|
+
}), LabelAnnotation.set([
|
|
38
|
+
"name"
|
|
39
|
+
]));
|
|
40
|
+
var make = (props) => Obj.make(Chat, props);
|
|
41
|
+
var CompanionTo = Schema.Struct({
|
|
42
|
+
id: Obj.ID
|
|
43
|
+
}).pipe(Type.relation({
|
|
44
|
+
typename: "dxos.org/relation/assistant/CompanionTo",
|
|
45
|
+
version: "0.1.0",
|
|
46
|
+
source: Chat,
|
|
47
|
+
target: Type.Obj
|
|
48
|
+
}));
|
|
49
|
+
var Settings = Schema.mutable(Schema.Struct({
|
|
50
|
+
llmProvider: Schema.optional(Schema.Literal(...LLM_PROVIDERS)),
|
|
51
|
+
edgeModel: Schema.optional(Schema.String),
|
|
52
|
+
ollamaModel: Schema.optional(Schema.String),
|
|
53
|
+
lmstudioModel: Schema.optional(Schema.String),
|
|
54
|
+
customPrompts: Schema.optional(Schema.Boolean)
|
|
55
|
+
}));
|
|
56
|
+
|
|
57
|
+
// src/types/AssistantAction.ts
|
|
58
|
+
import * as Schema2 from "effect/Schema";
|
|
59
|
+
import { Capability } from "@dxos/app-framework";
|
|
60
|
+
import { SpaceSchema } from "@dxos/client/echo";
|
|
61
|
+
import { Database, Type as Type2 } from "@dxos/echo";
|
|
62
|
+
import { Operation } from "@dxos/operation";
|
|
63
|
+
import { Collection } from "@dxos/schema";
|
|
64
|
+
var ASSISTANT_OPERATION = `${meta.id}/operation`;
|
|
65
|
+
(function(AssistantOperation2) {
|
|
66
|
+
AssistantOperation2.OnCreateSpace = Operation.make({
|
|
67
|
+
meta: {
|
|
68
|
+
key: `${ASSISTANT_OPERATION}/on-create-space`,
|
|
69
|
+
name: "On Create Space"
|
|
70
|
+
},
|
|
71
|
+
services: [
|
|
72
|
+
Capability.Service
|
|
73
|
+
],
|
|
74
|
+
schema: {
|
|
75
|
+
input: Schema2.Struct({
|
|
76
|
+
space: SpaceSchema,
|
|
77
|
+
rootCollection: Collection.Collection
|
|
78
|
+
}),
|
|
79
|
+
output: Schema2.Void
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
AssistantOperation2.CreateChat = Operation.make({
|
|
83
|
+
meta: {
|
|
84
|
+
key: `${ASSISTANT_OPERATION}/create-chat`,
|
|
85
|
+
name: "Create Chat"
|
|
86
|
+
},
|
|
87
|
+
services: [
|
|
88
|
+
Capability.Service
|
|
89
|
+
],
|
|
90
|
+
schema: {
|
|
91
|
+
input: Schema2.Struct({
|
|
92
|
+
db: Database.Database,
|
|
93
|
+
name: Schema2.optional(Schema2.String)
|
|
94
|
+
}),
|
|
95
|
+
output: Schema2.Struct({
|
|
96
|
+
object: Chat
|
|
97
|
+
})
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
AssistantOperation2.UpdateChatName = Operation.make({
|
|
101
|
+
meta: {
|
|
102
|
+
key: `${ASSISTANT_OPERATION}/update-chat-name`,
|
|
103
|
+
name: "Update Chat Name"
|
|
104
|
+
},
|
|
105
|
+
services: [
|
|
106
|
+
Capability.Service
|
|
107
|
+
],
|
|
108
|
+
schema: {
|
|
109
|
+
input: Schema2.Struct({
|
|
110
|
+
chat: Chat
|
|
111
|
+
}),
|
|
112
|
+
output: Schema2.Void
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
AssistantOperation2.SetCurrentChat = Operation.make({
|
|
116
|
+
meta: {
|
|
117
|
+
key: `${ASSISTANT_OPERATION}/set-current-chat`,
|
|
118
|
+
name: "Set Current Chat"
|
|
119
|
+
},
|
|
120
|
+
services: [
|
|
121
|
+
Capability.Service
|
|
122
|
+
],
|
|
123
|
+
schema: {
|
|
124
|
+
input: Schema2.Struct({
|
|
125
|
+
companionTo: Type2.Obj,
|
|
126
|
+
chat: Chat.pipe(Schema2.optional)
|
|
127
|
+
}),
|
|
128
|
+
output: Schema2.Void
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
AssistantOperation2.BlueprintForm = Schema2.Struct({
|
|
132
|
+
key: Schema2.String,
|
|
133
|
+
name: Schema2.String,
|
|
134
|
+
description: Schema2.optional(Schema2.String)
|
|
135
|
+
});
|
|
136
|
+
})(AssistantOperation || (AssistantOperation = {}));
|
|
137
|
+
var AssistantOperation;
|
|
138
|
+
|
|
139
|
+
// src/types/capabilities.ts
|
|
140
|
+
import * as Schema3 from "effect/Schema";
|
|
141
|
+
import { Capability as Capability2 } from "@dxos/app-framework";
|
|
142
|
+
(function(AssistantCapabilities2) {
|
|
143
|
+
AssistantCapabilities2.Settings = Capability2.make(`${meta.id}/capability/settings`);
|
|
144
|
+
AssistantCapabilities2.StateSchema = Schema3.mutable(Schema3.Struct({
|
|
145
|
+
/** Map of primary object dxn to current chat dxn. */
|
|
146
|
+
currentChat: Schema3.Record({
|
|
147
|
+
key: Schema3.String,
|
|
148
|
+
value: Schema3.UndefinedOr(Schema3.String)
|
|
149
|
+
})
|
|
150
|
+
}));
|
|
151
|
+
AssistantCapabilities2.State = Capability2.make(`${meta.id}/capability/state`);
|
|
152
|
+
})(AssistantCapabilities || (AssistantCapabilities = {}));
|
|
153
|
+
var AssistantCapabilities;
|
|
154
|
+
|
|
155
|
+
// src/types/events.ts
|
|
156
|
+
import { ActivationEvent } from "@dxos/app-framework";
|
|
157
|
+
(function(AssistantEvents2) {
|
|
158
|
+
AssistantEvents2.SetupAiServiceProviders = ActivationEvent.make(`${meta.id}/event/setup-ai-service-providers`);
|
|
159
|
+
})(AssistantEvents || (AssistantEvents = {}));
|
|
160
|
+
var AssistantEvents;
|
|
161
|
+
|
|
162
|
+
// src/types/service.ts
|
|
163
|
+
import * as Schema4 from "effect/Schema";
|
|
164
|
+
import { ComputeGraph } from "@dxos/conductor";
|
|
165
|
+
import { Type as Type3 } from "@dxos/echo";
|
|
166
|
+
import { Function } from "@dxos/functions";
|
|
167
|
+
var ApiAuthorizationKey = Schema4.Struct({
|
|
168
|
+
type: Schema4.Literal("api-key"),
|
|
169
|
+
key: Schema4.String,
|
|
170
|
+
placement: Schema4.Union(Schema4.Struct({
|
|
171
|
+
type: Schema4.Literal("authorization-header")
|
|
172
|
+
}), Schema4.Struct({
|
|
173
|
+
type: Schema4.Literal("query"),
|
|
174
|
+
name: Schema4.String
|
|
175
|
+
}))
|
|
176
|
+
});
|
|
177
|
+
var ApiAuthorizationOauth = Schema4.Struct({
|
|
178
|
+
type: Schema4.Literal("oauth"),
|
|
179
|
+
clientId: Schema4.String,
|
|
180
|
+
clientSecret: Schema4.String,
|
|
181
|
+
tokenUrl: Schema4.String,
|
|
182
|
+
grantType: Schema4.String
|
|
183
|
+
});
|
|
184
|
+
var ApiAuthorization = Schema4.Union(ApiAuthorizationKey, ApiAuthorizationOauth);
|
|
185
|
+
var ServiceInterfaceFunction = Schema4.Struct({
|
|
186
|
+
kind: Schema4.Literal("function"),
|
|
187
|
+
fn: Type3.Ref(Function.Function)
|
|
188
|
+
});
|
|
189
|
+
var ServiceInterfaceWorkflow = Schema4.Struct({
|
|
190
|
+
kind: Schema4.Literal("workflow"),
|
|
191
|
+
workflow: Type3.Ref(ComputeGraph)
|
|
192
|
+
});
|
|
193
|
+
var ServiceInterfaceApi = Schema4.Struct({
|
|
194
|
+
kind: Schema4.Literal("api"),
|
|
195
|
+
/**
|
|
196
|
+
* URL to fetch the openapi schema.
|
|
197
|
+
*/
|
|
198
|
+
schemaUrl: Schema4.optional(Schema4.String),
|
|
199
|
+
/**
|
|
200
|
+
* Inlined openapi schema.
|
|
201
|
+
*/
|
|
202
|
+
schema: Schema4.optional(Schema4.Any),
|
|
203
|
+
/**
|
|
204
|
+
* Authorization configuration if required.
|
|
205
|
+
*/
|
|
206
|
+
authorization: Schema4.optional(ApiAuthorization)
|
|
207
|
+
});
|
|
208
|
+
var ServiceInterface = Schema4.Union(
|
|
209
|
+
// Service types.
|
|
210
|
+
ServiceInterfaceFunction,
|
|
211
|
+
ServiceInterfaceWorkflow,
|
|
212
|
+
ServiceInterfaceApi
|
|
213
|
+
);
|
|
214
|
+
var ServiceType = Schema4.Struct({
|
|
215
|
+
serviceId: Schema4.String,
|
|
216
|
+
name: Schema4.optional(Schema4.String),
|
|
217
|
+
description: Schema4.optional(Schema4.String),
|
|
218
|
+
category: Schema4.optional(Schema4.String),
|
|
219
|
+
enabled: Schema4.optional(Schema4.Boolean),
|
|
220
|
+
/**
|
|
221
|
+
* Entries exposed: functions, workflows, and APIs.
|
|
222
|
+
*/
|
|
223
|
+
interfaces: Schema4.optional(Schema4.Array(ServiceInterface))
|
|
224
|
+
}).pipe(Type3.object({
|
|
225
|
+
typename: "dxos.org/type/ServiceType",
|
|
226
|
+
version: "0.1.0"
|
|
227
|
+
}));
|
|
228
|
+
var categoryIcons = {
|
|
229
|
+
finance: "ph--bank--regular",
|
|
230
|
+
health: "ph--heart--regular",
|
|
231
|
+
geolocation: "ph--globe-simple--regular",
|
|
232
|
+
education: "ph--books--regular",
|
|
233
|
+
entertainment: "ph--music-notes--regular",
|
|
234
|
+
shopping: "ph--shopping-cart--regular",
|
|
235
|
+
travel: "ph--airplane-takeoff--regular",
|
|
236
|
+
utilities: "ph--lightning--regular",
|
|
237
|
+
weather: "ph--cloud-rain--regular"
|
|
238
|
+
};
|
|
239
|
+
|
|
240
|
+
export {
|
|
241
|
+
LLM_PROVIDERS,
|
|
242
|
+
Assistant_exports,
|
|
243
|
+
AssistantOperation,
|
|
244
|
+
AssistantCapabilities,
|
|
245
|
+
AssistantEvents,
|
|
246
|
+
ApiAuthorization,
|
|
247
|
+
ServiceType,
|
|
248
|
+
categoryIcons
|
|
249
|
+
};
|
|
250
|
+
//# sourceMappingURL=chunk-V772AMZM.mjs.map
|