@dxos/plugin-assistant 0.8.4-main.28f8d3d → 0.8.4-main.406dc2a
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/{BlueprintContainer-H7H4BQ2C.mjs → BlueprintContainer-WX2SSDVI.mjs} +6 -7
- package/dist/lib/browser/{BlueprintContainer-H7H4BQ2C.mjs.map → BlueprintContainer-WX2SSDVI.mjs.map} +3 -3
- package/dist/lib/browser/ChatCompanion-BDZ55ZRF.mjs +150 -0
- package/dist/lib/browser/ChatCompanion-BDZ55ZRF.mjs.map +7 -0
- package/dist/lib/browser/{ChatContainer-OUVSX5V5.mjs → ChatContainer-RYGNN73X.mjs} +20 -23
- package/dist/lib/browser/ChatContainer-RYGNN73X.mjs.map +7 -0
- package/dist/lib/browser/{ChatDialog-P4FLEOHG.mjs → ChatDialog-MVHH2U66.mjs} +12 -12
- package/dist/lib/browser/ChatDialog-MVHH2U66.mjs.map +7 -0
- package/dist/lib/browser/{SequenceContainer-627OQ557.mjs → SequenceContainer-2FEWMQGW.mjs} +6 -19
- package/dist/lib/browser/SequenceContainer-2FEWMQGW.mjs.map +7 -0
- package/dist/lib/browser/ai-service-ERTZBTP3.mjs +19 -0
- package/dist/lib/browser/ai-service-ERTZBTP3.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-builder-AVHHQ3KV.mjs → app-graph-builder-2U7SLCRX.mjs} +22 -34
- package/dist/lib/browser/app-graph-builder-2U7SLCRX.mjs.map +7 -0
- package/dist/lib/browser/blueprint-definition-NSJARW5U.mjs +12 -0
- package/dist/lib/browser/blueprint-definition-NSJARW5U.mjs.map +7 -0
- package/dist/lib/browser/{blueprint-definition-CMGIZAOW.mjs → chunk-2CE2KPKZ.mjs} +69 -40
- package/dist/lib/browser/chunk-2CE2KPKZ.mjs.map +7 -0
- package/dist/lib/browser/chunk-43I2LR6O.mjs +216 -0
- package/dist/lib/browser/chunk-43I2LR6O.mjs.map +7 -0
- package/dist/lib/browser/chunk-5EGXHCAZ.mjs +16 -0
- package/dist/lib/browser/chunk-5EGXHCAZ.mjs.map +7 -0
- package/dist/lib/browser/chunk-5RICKAMN.mjs +18 -0
- package/dist/lib/browser/chunk-5RICKAMN.mjs.map +7 -0
- package/dist/lib/browser/chunk-CQ7UHYTT.mjs +296 -0
- package/dist/lib/browser/chunk-CQ7UHYTT.mjs.map +7 -0
- package/dist/lib/browser/{chunk-HRLMD35M.mjs → chunk-FP56WB24.mjs} +36 -15
- package/dist/lib/browser/chunk-FP56WB24.mjs.map +7 -0
- package/dist/lib/browser/chunk-JZRZVB2A.mjs +170 -0
- package/dist/lib/browser/chunk-JZRZVB2A.mjs.map +7 -0
- package/dist/lib/browser/chunk-WRJGOT5P.mjs +1794 -0
- package/dist/lib/browser/chunk-WRJGOT5P.mjs.map +7 -0
- package/dist/lib/browser/edge-model-resolver-O6OFYIO2.mjs +18 -0
- package/dist/lib/browser/edge-model-resolver-O6OFYIO2.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +127 -54
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/{intent-resolver-MVOIEJXZ.mjs → intent-resolver-3GOJMBXJ.mjs} +48 -15
- package/dist/lib/browser/intent-resolver-3GOJMBXJ.mjs.map +7 -0
- package/dist/lib/browser/local-model-resolver-GO6ZEMLL.mjs +17 -0
- package/dist/lib/browser/local-model-resolver-GO6ZEMLL.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-4HXS3YLT.mjs → react-surface-FTKCE6GG.mjs} +20 -76
- package/dist/lib/browser/react-surface-FTKCE6GG.mjs.map +7 -0
- package/dist/lib/browser/{settings-G2EZXMWT.mjs → settings-HBF32KV6.mjs} +5 -5
- package/dist/lib/browser/{settings-G2EZXMWT.mjs.map → settings-HBF32KV6.mjs.map} +1 -1
- package/dist/lib/browser/state-LXTS54DI.mjs +21 -0
- package/dist/lib/browser/state-LXTS54DI.mjs.map +7 -0
- package/dist/lib/browser/toolkit-NQ2GXCF5.mjs +199 -0
- package/dist/lib/browser/toolkit-NQ2GXCF5.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +2 -2
- package/dist/lib/node-esm/{BlueprintContainer-VH4EE4CM.mjs → BlueprintContainer-4MKN6ZRB.mjs} +6 -7
- package/dist/lib/node-esm/{BlueprintContainer-VH4EE4CM.mjs.map → BlueprintContainer-4MKN6ZRB.mjs.map} +3 -3
- package/dist/lib/node-esm/ChatCompanion-XFNXVZIP.mjs +151 -0
- package/dist/lib/node-esm/ChatCompanion-XFNXVZIP.mjs.map +7 -0
- package/dist/lib/node-esm/{ChatContainer-D5FABDNE.mjs → ChatContainer-UTJGCQXF.mjs} +20 -23
- package/dist/lib/node-esm/ChatContainer-UTJGCQXF.mjs.map +7 -0
- package/dist/lib/node-esm/{ChatDialog-NKWVXHJP.mjs → ChatDialog-QEYZ4IOV.mjs} +12 -12
- package/dist/lib/node-esm/ChatDialog-QEYZ4IOV.mjs.map +7 -0
- package/dist/lib/node-esm/{SequenceContainer-EQ5NP2PG.mjs → SequenceContainer-PGGJUQ46.mjs} +6 -19
- package/dist/lib/node-esm/SequenceContainer-PGGJUQ46.mjs.map +7 -0
- package/dist/lib/node-esm/ai-service-MUYLV3NT.mjs +20 -0
- package/dist/lib/node-esm/ai-service-MUYLV3NT.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-builder-RMOUJMMG.mjs → app-graph-builder-OKNLR7H2.mjs} +22 -34
- package/dist/lib/node-esm/app-graph-builder-OKNLR7H2.mjs.map +7 -0
- package/dist/lib/node-esm/blueprint-definition-WD2IVMAI.mjs +13 -0
- package/dist/lib/node-esm/blueprint-definition-WD2IVMAI.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-73ABYRYX.mjs +20 -0
- package/dist/lib/node-esm/chunk-73ABYRYX.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-DSE2IILK.mjs +217 -0
- package/dist/lib/node-esm/chunk-DSE2IILK.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-E2WXZND7.mjs +297 -0
- package/dist/lib/node-esm/chunk-E2WXZND7.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-HXIBCBH4.mjs +171 -0
- package/dist/lib/node-esm/chunk-HXIBCBH4.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-F7RXCX5Y.mjs → chunk-TNR46C3L.mjs} +36 -15
- package/dist/lib/node-esm/chunk-TNR46C3L.mjs.map +7 -0
- package/dist/lib/node-esm/{blueprint-definition-AEWYMW6I.mjs → chunk-U2NYUS2N.mjs} +69 -39
- package/dist/lib/node-esm/chunk-U2NYUS2N.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-UFKLCEAE.mjs +1795 -0
- package/dist/lib/node-esm/chunk-UFKLCEAE.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-X6AANUHZ.mjs → chunk-XQGWSZ4T.mjs} +4 -4
- package/dist/lib/node-esm/chunk-XQGWSZ4T.mjs.map +7 -0
- package/dist/lib/node-esm/edge-model-resolver-2ARXDOYS.mjs +19 -0
- package/dist/lib/node-esm/edge-model-resolver-2ARXDOYS.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +127 -54
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/{intent-resolver-DTDNCX3C.mjs → intent-resolver-6XLVTRDJ.mjs} +48 -15
- package/dist/lib/node-esm/intent-resolver-6XLVTRDJ.mjs.map +7 -0
- package/dist/lib/node-esm/local-model-resolver-WOQ2D2R2.mjs +18 -0
- package/dist/lib/node-esm/local-model-resolver-WOQ2D2R2.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-V6JNEZVO.mjs → react-surface-K7ZXQLAP.mjs} +20 -76
- package/dist/lib/node-esm/react-surface-K7ZXQLAP.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-AIP5FOJG.mjs → settings-CWP6MTWP.mjs} +5 -5
- package/dist/lib/node-esm/{settings-AIP5FOJG.mjs.map → settings-CWP6MTWP.mjs.map} +1 -1
- package/dist/lib/node-esm/state-BO6GUFLB.mjs +22 -0
- package/dist/lib/node-esm/state-BO6GUFLB.mjs.map +7 -0
- package/dist/lib/node-esm/toolkit-V57PRJNG.mjs +200 -0
- package/dist/lib/node-esm/toolkit-V57PRJNG.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +2 -2
- package/dist/types/src/AssistantPlugin.d.ts +1 -1
- package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/ai-service.d.ts +2 -3
- package/dist/types/src/capabilities/ai-service.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -1
- package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts +8 -8
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/edge-model-resolver.d.ts +2 -3
- package/dist/types/src/capabilities/edge-model-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +7 -4
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/local-model-resolver.d.ts +10 -0
- package/dist/types/src/capabilities/local-model-resolver.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.d.ts +1 -1
- package/dist/types/src/capabilities/state.d.ts +4 -0
- package/dist/types/src/capabilities/state.d.ts.map +1 -0
- package/dist/types/src/capabilities/toolkit.d.ts +2 -3
- package/dist/types/src/capabilities/toolkit.d.ts.map +1 -1
- package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +1 -1
- package/dist/types/src/components/Chat/Chat.d.ts +16 -10
- package/dist/types/src/components/Chat/Chat.d.ts.map +1 -1
- package/dist/types/src/components/Chat/events.d.ts +5 -0
- package/dist/types/src/components/Chat/events.d.ts.map +1 -1
- package/dist/types/src/components/ChatCompanion.d.ts +13 -0
- package/dist/types/src/components/ChatCompanion.d.ts.map +1 -0
- package/dist/types/src/components/ChatContainer.d.ts +3 -4
- package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
- package/dist/types/src/components/ChatProgress/ChatProgress.d.ts +7 -0
- package/dist/types/src/components/ChatProgress/ChatProgress.d.ts.map +1 -0
- package/dist/types/src/components/ChatProgress/index.d.ts +2 -0
- package/dist/types/src/components/ChatProgress/index.d.ts.map +1 -0
- package/dist/types/src/components/ChatPrompt/ChatActions.d.ts.map +1 -1
- package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts +11 -4
- package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts.map +1 -1
- package/dist/types/src/components/ChatPrompt/ChatPresets.d.ts.map +1 -1
- package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts +3 -4
- package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts.map +1 -1
- package/dist/types/src/components/ChatPrompt/ChatStatusIndicator.d.ts +6 -4
- package/dist/types/src/components/ChatPrompt/ChatStatusIndicator.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/ChatThread.d.ts +12 -7
- package/dist/types/src/components/ChatThread/ChatThread.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts +112 -56
- package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/Link.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/reducers.d.ts +40 -0
- package/dist/types/src/components/ChatThread/reducers.d.ts.map +1 -0
- package/dist/types/src/components/ChatThread/registry.d.ts +11 -0
- package/dist/types/src/components/ChatThread/registry.d.ts.map +1 -0
- package/dist/types/src/components/ChatThread/sync.d.ts +36 -0
- package/dist/types/src/components/ChatThread/sync.d.ts.map +1 -0
- package/dist/types/src/components/ChatThread/sync.test.d.ts +2 -0
- package/dist/types/src/components/ChatThread/sync.test.d.ts.map +1 -0
- package/dist/types/src/components/PromptSettings.d.ts.map +1 -1
- package/dist/types/src/components/SequenceContainer.d.ts.map +1 -1
- package/dist/types/src/components/SequenceEditor/SequenceEditor.d.ts +1 -1
- package/dist/types/src/components/SequenceEditor/SequenceEditor.d.ts.map +1 -1
- package/dist/types/src/components/SequenceEditor/SequenceEditor.stories.d.ts +264 -3
- package/dist/types/src/components/SequenceEditor/SequenceEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts +0 -5
- package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +1 -1
- package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts +262 -7
- package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +1 -1
- package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
- package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts +259 -2
- package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts.map +1 -1
- package/dist/types/src/components/TemplateEditor/handlebars-extension.d.ts +12 -0
- package/dist/types/src/components/TemplateEditor/handlebars-extension.d.ts.map +1 -0
- package/dist/types/src/components/ToolBlock/ToolBlock.d.ts +19 -0
- package/dist/types/src/components/ToolBlock/ToolBlock.d.ts.map +1 -0
- package/dist/types/src/components/ToolBlock/ToolBlockWidget.d.ts +2 -0
- package/dist/types/src/components/ToolBlock/ToolBlockWidget.d.ts.map +1 -0
- package/dist/types/src/components/ToolBlock/index.d.ts +3 -0
- package/dist/types/src/components/ToolBlock/index.d.ts.map +1 -0
- package/dist/types/src/components/Toolbar/Toolbar.d.ts +5 -0
- package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -0
- package/dist/types/src/components/Toolbar/index.d.ts +2 -0
- package/dist/types/src/components/Toolbar/index.d.ts.map +1 -0
- package/dist/types/src/components/Toolbar/useChatToolbarActions.d.ts +11 -0
- package/dist/types/src/components/Toolbar/useChatToolbarActions.d.ts.map +1 -0
- package/dist/types/src/components/Toolbox/Toolbox.d.ts +1 -3
- package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
- package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts +263 -5
- package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +4 -2
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/functions/analysis.d.ts.map +1 -1
- package/dist/types/src/functions/list.d.ts.map +1 -1
- package/dist/types/src/functions/load.d.ts +1 -1
- package/dist/types/src/functions/load.d.ts.map +1 -1
- package/dist/types/src/hooks/index.d.ts +4 -4
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useBlueprintRegistry.d.ts +5 -1
- package/dist/types/src/hooks/useBlueprintRegistry.d.ts.map +1 -1
- package/dist/types/src/hooks/useChatProcessor.d.ts +4 -10
- package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
- package/dist/types/src/hooks/useChatServices.d.ts +5 -5
- package/dist/types/src/hooks/useChatServices.d.ts.map +1 -1
- package/dist/types/src/hooks/useContextBinder.d.ts +4 -0
- package/dist/types/src/hooks/useContextBinder.d.ts.map +1 -0
- package/dist/types/src/hooks/useContextObjects.d.ts +15 -0
- package/dist/types/src/hooks/useContextObjects.d.ts.map +1 -0
- package/dist/types/src/hooks/useFlush.d.ts.map +1 -0
- package/dist/types/src/hooks/useItemTypes.d.ts +4 -0
- package/dist/types/src/hooks/useItemTypes.d.ts.map +1 -0
- package/dist/types/src/hooks/usePresets.d.ts +2 -2
- package/dist/types/src/hooks/usePresets.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +2 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +1 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/processor/index.d.ts +3 -0
- package/dist/types/src/processor/index.d.ts.map +1 -0
- package/dist/types/src/{hooks → processor}/presets.d.ts +1 -1
- package/dist/types/src/processor/presets.d.ts.map +1 -0
- package/dist/types/src/processor/processor.d.ts +74 -0
- package/dist/types/src/processor/processor.d.ts.map +1 -0
- package/dist/types/src/processor/processor.test.d.ts +2 -0
- package/dist/types/src/processor/processor.test.d.ts.map +1 -0
- package/dist/types/src/testing/index.d.ts +1 -1
- package/dist/types/src/testing/index.d.ts.map +1 -1
- package/dist/types/src/testing/test-generator.d.ts +7 -0
- package/dist/types/src/testing/test-generator.d.ts.map +1 -0
- package/dist/types/src/testing/test-sequence.d.ts +0 -4
- package/dist/types/src/testing/test-sequence.d.ts.map +1 -1
- package/dist/types/src/testing/test-services.d.ts +2 -2
- package/dist/types/src/testing/test-services.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +27 -16
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Assistant.d.ts +16 -5
- package/dist/types/src/types/Assistant.d.ts.map +1 -1
- package/dist/types/src/types/AssistantAction.d.ts +23 -6
- package/dist/types/src/types/AssistantAction.d.ts.map +1 -1
- package/dist/types/src/types/service.d.ts +21 -18
- package/dist/types/src/types/service.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +90 -96
- package/src/AssistantPlugin.tsx +138 -116
- package/src/capabilities/ai-service.ts +6 -7
- package/src/capabilities/app-graph-builder.ts +39 -45
- package/src/capabilities/blueprint-definition.ts +51 -19
- package/src/capabilities/capabilities.ts +8 -12
- package/src/capabilities/edge-model-resolver.ts +17 -21
- package/src/capabilities/index.ts +5 -2
- package/src/capabilities/intent-resolver.ts +38 -15
- package/src/capabilities/local-model-resolver.ts +30 -0
- package/src/capabilities/react-surface.tsx +9 -63
- package/src/capabilities/state.ts +20 -0
- package/src/capabilities/toolkit.ts +93 -31
- package/src/components/AssistantSettings/AssistantSettings.tsx +82 -75
- package/src/components/BlueprintContainer.tsx +2 -2
- package/src/components/Chat/Chat.tsx +167 -172
- package/src/components/Chat/events.ts +7 -0
- package/src/components/ChatCompanion.tsx +136 -0
- package/src/components/ChatContainer.tsx +13 -31
- package/src/components/ChatDialog.tsx +11 -11
- package/src/components/ChatProgress/ChatProgress.tsx +67 -0
- package/src/components/ChatProgress/index.ts +5 -0
- package/src/components/ChatPrompt/ChatActions.tsx +10 -24
- package/src/components/ChatPrompt/ChatOptions.tsx +200 -34
- package/src/components/ChatPrompt/ChatPresets.tsx +1 -0
- package/src/components/ChatPrompt/ChatReferences.tsx +29 -36
- package/src/components/ChatPrompt/ChatStatusIndicator.tsx +25 -22
- package/src/components/ChatThread/ChatThread.stories.tsx +74 -205
- package/src/components/ChatThread/ChatThread.tsx +69 -29
- package/src/components/ChatThread/Link.tsx +8 -21
- package/src/components/ChatThread/reducers.ts +151 -0
- package/src/components/ChatThread/registry.tsx +184 -0
- package/src/components/ChatThread/sync.test.ts +81 -0
- package/src/components/ChatThread/sync.ts +113 -0
- package/src/components/PromptSettings.tsx +1 -0
- package/src/components/SequenceContainer.tsx +27 -29
- package/src/components/SequenceEditor/SequenceEditor.stories.tsx +8 -6
- package/src/components/SequenceEditor/SequenceEditor.tsx +2 -2
- package/src/components/TemplateEditor/TemplateEditor.stories.tsx +17 -13
- package/src/components/TemplateEditor/TemplateEditor.tsx +16 -50
- package/src/components/TemplateEditor/TemplateForm.stories.tsx +6 -8
- package/src/components/TemplateEditor/TemplateForm.tsx +2 -1
- package/src/components/TemplateEditor/handlebars-extension.ts +165 -0
- package/src/components/ToolBlock/ToolBlock.tsx +152 -0
- package/src/components/ToolBlock/ToolBlockWidget.tsx +5 -0
- package/src/components/ToolBlock/index.ts +6 -0
- package/src/components/Toolbar/Toolbar.tsx +21 -0
- package/src/components/{Timeline → Toolbar}/index.ts +1 -1
- package/src/components/Toolbar/useChatToolbarActions.ts +126 -0
- package/src/components/Toolbox/Toolbox.stories.tsx +9 -12
- package/src/components/Toolbox/Toolbox.tsx +10 -16
- package/src/components/index.ts +3 -1
- package/src/functions/analysis.ts +6 -4
- package/src/functions/list.ts +9 -3
- package/src/functions/load.ts +8 -5
- package/src/hooks/index.ts +4 -5
- package/src/hooks/useBlueprintRegistry.ts +24 -9
- package/src/hooks/useChatProcessor.ts +19 -26
- package/src/hooks/useChatServices.ts +30 -53
- package/src/hooks/useContextBinder.ts +30 -0
- package/src/hooks/useContextObjects.ts +58 -0
- package/src/hooks/useItemTypes.ts +37 -0
- package/src/hooks/usePresets.ts +4 -5
- package/src/index.ts +2 -0
- package/src/meta.ts +4 -6
- package/src/processor/index.ts +6 -0
- package/src/{hooks → processor}/presets.ts +10 -3
- package/src/processor/processor.test.ts +81 -0
- package/src/processor/processor.ts +302 -0
- package/src/queue-logger.ts +5 -5
- package/src/testing/index.ts +1 -1
- package/src/testing/test-generator.ts +261 -0
- package/src/testing/test-sequence.ts +1 -26
- package/src/testing/test-services.ts +2 -8
- package/src/translations.ts +29 -17
- package/src/types/Assistant.ts +9 -4
- package/src/types/AssistantAction.ts +11 -3
- package/src/types/service.ts +15 -7
- package/src/vite-env.d.ts +30 -0
- package/dist/lib/browser/ChatContainer-OUVSX5V5.mjs.map +0 -7
- package/dist/lib/browser/ChatDialog-P4FLEOHG.mjs.map +0 -7
- package/dist/lib/browser/SequenceContainer-627OQ557.mjs.map +0 -7
- package/dist/lib/browser/ai-service-7KJ5LXBT.mjs +0 -22
- package/dist/lib/browser/ai-service-7KJ5LXBT.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-AVHHQ3KV.mjs.map +0 -7
- package/dist/lib/browser/blueprint-definition-CMGIZAOW.mjs.map +0 -7
- package/dist/lib/browser/chunk-BRLHDHOF.mjs +0 -244
- package/dist/lib/browser/chunk-BRLHDHOF.mjs.map +0 -7
- package/dist/lib/browser/chunk-HRLMD35M.mjs.map +0 -7
- package/dist/lib/browser/chunk-LKP65RPA.mjs +0 -20
- package/dist/lib/browser/chunk-LKP65RPA.mjs.map +0 -7
- package/dist/lib/browser/chunk-NZDCKQ6W.mjs +0 -89
- package/dist/lib/browser/chunk-NZDCKQ6W.mjs.map +0 -7
- package/dist/lib/browser/chunk-QB7OVS6Z.mjs +0 -16
- package/dist/lib/browser/chunk-QB7OVS6Z.mjs.map +0 -7
- package/dist/lib/browser/chunk-VEBVAHNM.mjs +0 -2231
- package/dist/lib/browser/chunk-VEBVAHNM.mjs.map +0 -7
- package/dist/lib/browser/edge-model-resolver-2HB4PCWH.mjs +0 -24
- package/dist/lib/browser/edge-model-resolver-2HB4PCWH.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-MVOIEJXZ.mjs.map +0 -7
- package/dist/lib/browser/react-surface-4HXS3YLT.mjs.map +0 -7
- package/dist/lib/browser/toolkit-IW4FBLLB.mjs +0 -105
- package/dist/lib/browser/toolkit-IW4FBLLB.mjs.map +0 -7
- package/dist/lib/node-esm/ChatContainer-D5FABDNE.mjs.map +0 -7
- package/dist/lib/node-esm/ChatDialog-NKWVXHJP.mjs.map +0 -7
- package/dist/lib/node-esm/SequenceContainer-EQ5NP2PG.mjs.map +0 -7
- package/dist/lib/node-esm/ai-service-LDD32477.mjs +0 -23
- package/dist/lib/node-esm/ai-service-LDD32477.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-RMOUJMMG.mjs.map +0 -7
- package/dist/lib/node-esm/blueprint-definition-AEWYMW6I.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-3SOC5GOP.mjs +0 -2232
- package/dist/lib/node-esm/chunk-3SOC5GOP.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-F7RXCX5Y.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-GAWXJ7K5.mjs +0 -90
- package/dist/lib/node-esm/chunk-GAWXJ7K5.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-KOC6ESG7.mjs +0 -22
- package/dist/lib/node-esm/chunk-KOC6ESG7.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-RD755HN3.mjs +0 -245
- package/dist/lib/node-esm/chunk-RD755HN3.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-X6AANUHZ.mjs.map +0 -7
- package/dist/lib/node-esm/edge-model-resolver-UDDR2IA6.mjs +0 -25
- package/dist/lib/node-esm/edge-model-resolver-UDDR2IA6.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-DTDNCX3C.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-V6JNEZVO.mjs.map +0 -7
- package/dist/lib/node-esm/toolkit-2VNUL77B.mjs +0 -106
- package/dist/lib/node-esm/toolkit-2VNUL77B.mjs.map +0 -7
- package/dist/types/src/components/ChatThread/ChatMessage.d.ts +0 -18
- package/dist/types/src/components/ChatThread/ChatMessage.d.ts.map +0 -1
- package/dist/types/src/components/ChatThread/ToolBlock.d.ts +0 -19
- package/dist/types/src/components/ChatThread/ToolBlock.d.ts.map +0 -1
- package/dist/types/src/components/ChatThread/reducer.d.ts +0 -12
- package/dist/types/src/components/ChatThread/reducer.d.ts.map +0 -1
- package/dist/types/src/components/Timeline/Timeline.d.ts +0 -24
- package/dist/types/src/components/Timeline/Timeline.d.ts.map +0 -1
- package/dist/types/src/components/Timeline/Timeline.stories.d.ts +0 -9
- package/dist/types/src/components/Timeline/Timeline.stories.d.ts.map +0 -1
- package/dist/types/src/components/Timeline/index.d.ts +0 -2
- package/dist/types/src/components/Timeline/index.d.ts.map +0 -1
- package/dist/types/src/hooks/chat-processor.d.ts +0 -72
- package/dist/types/src/hooks/chat-processor.d.ts.map +0 -1
- package/dist/types/src/hooks/errors.d.ts +0 -4
- package/dist/types/src/hooks/errors.d.ts.map +0 -1
- package/dist/types/src/hooks/presets.d.ts.map +0 -1
- package/dist/types/src/hooks/useResolveRef.d.ts +0 -4
- package/dist/types/src/hooks/useResolveRef.d.ts.map +0 -1
- package/dist/types/src/parser/filter-generator.d.ts +0 -4
- package/dist/types/src/parser/filter-generator.d.ts.map +0 -1
- package/dist/types/src/parser/filter-generator.test.d.ts +0 -2
- package/dist/types/src/parser/filter-generator.test.d.ts.map +0 -1
- package/dist/types/src/parser/index.d.ts +0 -4
- package/dist/types/src/parser/index.d.ts.map +0 -1
- package/dist/types/src/parser/query-parser.d.ts +0 -15
- package/dist/types/src/parser/query-parser.d.ts.map +0 -1
- package/dist/types/src/parser/query-parser.test.d.ts +0 -2
- package/dist/types/src/parser/query-parser.test.d.ts.map +0 -1
- package/dist/types/src/parser/types.d.ts +0 -24
- package/dist/types/src/parser/types.d.ts.map +0 -1
- package/dist/types/src/stories/Chat.stories.d.ts +0 -268
- package/dist/types/src/stories/Chat.stories.d.ts.map +0 -1
- package/dist/types/src/stories/components/BlueprintContainer.d.ts +0 -5
- package/dist/types/src/stories/components/BlueprintContainer.d.ts.map +0 -1
- package/dist/types/src/stories/components/ChatContainer.d.ts +0 -5
- package/dist/types/src/stories/components/ChatContainer.d.ts.map +0 -1
- package/dist/types/src/stories/components/GraphContainer.d.ts +0 -6
- package/dist/types/src/stories/components/GraphContainer.d.ts.map +0 -1
- package/dist/types/src/stories/components/LoggingContainer.d.ts +0 -5
- package/dist/types/src/stories/components/LoggingContainer.d.ts.map +0 -1
- package/dist/types/src/stories/components/SurfaceContainer.d.ts +0 -8
- package/dist/types/src/stories/components/SurfaceContainer.d.ts.map +0 -1
- package/dist/types/src/stories/components/TasksContainer.d.ts +0 -5
- package/dist/types/src/stories/components/TasksContainer.d.ts.map +0 -1
- package/dist/types/src/stories/components/index.d.ts +0 -8
- package/dist/types/src/stories/components/index.d.ts.map +0 -1
- package/dist/types/src/stories/components/types.d.ts +0 -7
- package/dist/types/src/stories/components/types.d.ts.map +0 -1
- package/dist/types/src/stories/hooks/index.d.ts +0 -3
- package/dist/types/src/stories/hooks/index.d.ts.map +0 -1
- package/dist/types/src/stories/hooks/useFlush.d.ts.map +0 -1
- package/dist/types/src/stories/hooks/useMatcherExtension.d.ts +0 -3
- package/dist/types/src/stories/hooks/useMatcherExtension.d.ts.map +0 -1
- package/dist/types/src/stories/testing/data.d.ts +0 -142
- package/dist/types/src/stories/testing/data.d.ts.map +0 -1
- package/dist/types/src/stories/testing/index.d.ts +0 -3
- package/dist/types/src/stories/testing/index.d.ts.map +0 -1
- package/dist/types/src/stories/testing/testing.d.ts +0 -26
- package/dist/types/src/stories/testing/testing.d.ts.map +0 -1
- package/dist/types/src/testing/test-functions.d.ts +0 -6
- package/dist/types/src/testing/test-functions.d.ts.map +0 -1
- package/dist/types/src/tools/function.d.ts +0 -5
- package/dist/types/src/tools/function.d.ts.map +0 -1
- package/dist/types/src/tools/index.d.ts +0 -3
- package/dist/types/src/tools/index.d.ts.map +0 -1
- package/dist/types/src/tools/openapi.d.ts +0 -10
- package/dist/types/src/tools/openapi.d.ts.map +0 -1
- package/dist/types/src/tools/openapi.test.d.ts +0 -2
- package/dist/types/src/tools/openapi.test.d.ts.map +0 -1
- package/src/components/ChatThread/ChatMessage.tsx +0 -282
- package/src/components/ChatThread/ToolBlock.tsx +0 -125
- package/src/components/ChatThread/reducer.ts +0 -52
- package/src/components/Timeline/Timeline.stories.tsx +0 -53
- package/src/components/Timeline/Timeline.tsx +0 -159
- package/src/hooks/chat-processor.ts +0 -260
- package/src/hooks/errors.ts +0 -8
- package/src/hooks/useResolveRef.ts +0 -33
- package/src/parser/filter-generator.test.ts +0 -32
- package/src/parser/filter-generator.ts +0 -74
- package/src/parser/index.ts +0 -7
- package/src/parser/query-parser.test.ts +0 -139
- package/src/parser/query-parser.ts +0 -199
- package/src/parser/types.ts +0 -34
- package/src/shims.d.ts +0 -8
- package/src/stories/Chat.stories.tsx +0 -317
- package/src/stories/components/BlueprintContainer.tsx +0 -34
- package/src/stories/components/ChatContainer.tsx +0 -80
- package/src/stories/components/GraphContainer.tsx +0 -118
- package/src/stories/components/LoggingContainer.tsx +0 -22
- package/src/stories/components/SurfaceContainer.tsx +0 -62
- package/src/stories/components/TasksContainer.tsx +0 -51
- package/src/stories/components/index.ts +0 -12
- package/src/stories/components/types.ts +0 -11
- package/src/stories/hooks/index.ts +0 -6
- package/src/stories/hooks/useMatcherExtension.ts +0 -45
- package/src/stories/testing/data.ts +0 -130
- package/src/stories/testing/index.ts +0 -6
- package/src/stories/testing/testing.tsx +0 -162
- package/src/testing/test-functions.ts +0 -16
- package/src/tools/function.ts +0 -49
- package/src/tools/index.ts +0 -6
- package/src/tools/openapi.test.ts +0 -219
- package/src/tools/openapi.ts +0 -341
- package/src/typings.d.ts +0 -9
- /package/dist/types/src/{stories/hooks → hooks}/useFlush.d.ts +0 -0
- /package/src/{stories/hooks → hooks}/useFlush.ts +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/AssistantSettings/AssistantSettings.tsx", "../../../src/components/ChatProgress/ChatProgress.tsx", "../../../src/components/PromptSettings.tsx", "../../../src/components/Toolbox/Toolbox.tsx", "../../../src/components/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { DEFAULT_EDGE_MODELS, DEFAULT_OLLAMA_MODELS } from '@dxos/ai';\nimport { Input, Select, useTranslation } from '@dxos/react-ui';\nimport { ControlGroup, ControlItemInput, ControlPage, ControlSection } from '@dxos/react-ui-form';\n\nimport { meta } from '../../meta';\nimport { type Assistant, LLM_PROVIDERS } from '../../types';\n\n// TODO(burdon): Factor out default Selector.\nconst DEFAULT_VALUE = '__default';\n\nconst LLM_PROVIDER_LABELS = {\n edge: 'DXOS',\n ollama: 'Ollama',\n lmstudio: 'LM Studio',\n} as const;\n\nexport const AssistantSettings = ({ settings }: { settings: Assistant.Settings }) => {\n const { t } = useTranslation(meta.id);\n\n return (\n <ControlPage>\n <ControlSection title={t('settings title', { ns: meta.id })}>\n <ControlGroup>\n <ControlItemInput title={t('settings custom prompts label')}>\n <Input.Switch\n checked={!!settings.customPrompts}\n onCheckedChange={(checked) => (settings.customPrompts = checked)}\n />\n </ControlItemInput>\n\n <ControlItemInput title={t('settings llm provider label')}>\n <Select.Root\n value={settings.llmProvider ?? 'edge'}\n onValueChange={(value) => {\n settings.llmProvider = value === DEFAULT_VALUE ? undefined : (value as any);\n }}\n >\n <Select.TriggerButton placeholder={t('settings llm provider label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n <Select.Option value={DEFAULT_VALUE}>{t('settings default label')}</Select.Option>\n {LLM_PROVIDERS.map((model) => (\n <Select.Option key={model} value={model}>\n {LLM_PROVIDER_LABELS[model]}\n </Select.Option>\n ))}\n </Select.Viewport>\n <Select.Arrow />\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </ControlItemInput>\n\n <ControlItemInput title={t('settings edge llm model label')}>\n <Select.Root\n value={settings.edgeModel ?? DEFAULT_VALUE}\n onValueChange={(value) => {\n settings.edgeModel = value === DEFAULT_VALUE ? undefined : value;\n }}\n >\n <Select.TriggerButton placeholder={t('settings default llm model label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n <Select.Option value={DEFAULT_VALUE}>{t('settings default label')}</Select.Option>\n {DEFAULT_EDGE_MODELS.map((model) => (\n <Select.Option key={model} value={model}>\n {model}\n </Select.Option>\n ))}\n </Select.Viewport>\n <Select.Arrow />\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </ControlItemInput>\n\n <ControlItemInput title={t('settings ollama llm model label')}>\n <Select.Root\n value={settings.ollamaModel ?? DEFAULT_VALUE}\n onValueChange={(value) => {\n settings.ollamaModel = value === DEFAULT_VALUE ? undefined : value;\n }}\n >\n <Select.TriggerButton placeholder={t('settings default llm model label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n <Select.Option value={DEFAULT_VALUE}>{t('settings default label')}</Select.Option>\n {DEFAULT_OLLAMA_MODELS.map((model) => (\n <Select.Option key={model} value={model}>\n {model}\n </Select.Option>\n ))}\n </Select.Viewport>\n <Select.Arrow />\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </ControlItemInput>\n </ControlGroup>\n </ControlSection>\n </ControlPage>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { addEventListener } from '@dxos/async';\nimport { Flex, ProgressBar, type ProgressBarProps, TextCrawl, useExecutionGraph } from '@dxos/react-ui-components';\n\nimport { type Assistant } from '../../types';\n\n// TODO(burdon): Reset after each session.\n// TODO(burdon): Show after delay.\n// TODO(burdon): Test with errors.\n// TODO(burdon): Filter out empty trace messages.\n\n// {\n// \"id\": \"01K3TE3C2VAXETP500QKDHK3C4_block_3\",\n// \"branch\": \"main\",\n// \"parents\": [],\n// \"icon\": \"ph--robot--regular\",\n// \"message\": \"\\n\"\n// }\n\nexport type ChatProgressProps = {\n chat: Assistant.Chat;\n};\n\nexport const ChatProgress = ({ chat }: ChatProgressProps) => {\n const { commits } = useExecutionGraph(chat.traceQueue?.target, true);\n const nodes = useMemo(() => commits.map((commit) => ({ id: commit.id, message: commit.message })), [commits]);\n const lines = useMemo(() => commits.map((commit) => commit.message), [commits]);\n\n const [index, setIndex] = useState<number | undefined>(undefined);\n const handleSelect = useCallback<NonNullable<ProgressBarProps['onSelect']>>(({ index }) => {\n setIndex((current) => {\n return current === index ? undefined : index;\n });\n }, []);\n\n const ref = useRef<HTMLDivElement>(null);\n useEffect(() => {\n if (!ref.current) {\n return;\n }\n\n return addEventListener(ref.current, 'keydown', (event) => {\n switch (event.key) {\n case 'ArrowLeft': {\n setIndex((current) => (current === undefined || current <= 0 ? 0 : current - 1));\n break;\n }\n case 'ArrowRight': {\n setIndex((current) => (current === undefined || current >= nodes.length ? nodes.length - 1 : current + 1));\n break;\n }\n }\n });\n }, [nodes.length]);\n\n return (\n <Flex column tabIndex={0} ref={ref} classNames='outline-none'>\n <ProgressBar nodes={nodes} index={index} onSelect={handleSelect} />\n <TextCrawl lines={lines} index={index} autoAdvance classNames='pis-4 text-sm text-subdued' />\n </Flex>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type Template } from '@dxos/blueprints';\nimport { Toolbar, useTranslation } from '@dxos/react-ui';\n\nimport { meta } from '../meta';\n\nexport const PromptSettings = ({ template }: { template: Template.Template }) => {\n const { t } = useTranslation(meta.id);\n\n // const handleKindChange = useCallback(\n // (value: string) => {\n // const kind = Match.type<string>().pipe(\n // Match.withReturnType<Schema.Schema.Type<typeof Template.Template>>(),\n // Match.when('always', () => ({ include: 'always' })),\n // Match.when('schema-matching', () => ({ include: 'schema-matching', typename: '' })),\n // Match.when('automatically', () => ({ include: 'automatically', description: '' })),\n // Match.orElse(() => ({ include: 'manual' })),\n // )(value);\n //\n // template.kind = kind;\n // },\n // [template],\n // );\n\n // const handleTypenameChange = useCallback(\n // debounce((event: ChangeEvent<HTMLInputElement>) => {\n // if (template.kind.include === 'schema-matching') {\n // template.kind.typename = event.target.value;\n // }\n // }, 300),\n // [template.kind.include],\n // );\n\n // const handleDescriptionChange = useCallback(\n // debounce((event: ChangeEvent<HTMLInputElement>) => {\n // if (template.kind.include === 'automatically') {\n // template.kind.description = event.target.value;\n // }\n // }, 300),\n // [template.kind.include],\n // );\n\n return (\n <div className='flex flex-col gap-4'>\n <h2>{t('prompt rules label')}</h2>\n <Toolbar.Root>\n {/* <Select.Root value={template.kind.include} onValueChange={handleKindChange}>\n <Toolbar.Button asChild>\n <Select.TriggerButton />\n </Toolbar.Button>\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {Template.Kinds.map((kind) => (\n <Select.Option key={kind} value={kind}>\n {kind}\n </Select.Option>\n ))}\n </Select.Viewport>\n <Select.Arrow />\n </Select.Content>\n </Select.Portal>\n </Select.Root> */}\n {/* {template.kind.include === 'schema-matching' && (\n <Input.Root>\n <Input.TextInput\n placeholder={t('typename placeholder')}\n defaultValue={template.kind.typename}\n onChange={handleTypenameChange}\n />\n </Input.Root>\n )} */}\n {/* {template.kind.include === 'automatically' && (\n <Input.Root>\n <Input.TextInput\n placeholder={t('description placeholder')}\n defaultValue={template.kind.description}\n onChange={handleDescriptionChange}\n />\n </Input.Root>\n )} */}\n </Toolbar.Root>\n </div>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { type FC, Fragment, useEffect, useState } from 'react';\n\nimport { type Blueprint } from '@dxos/blueprints';\nimport { type Ref } from '@dxos/echo';\nimport { FunctionType } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { Filter, type Space, useQuery } from '@dxos/react-client/echo';\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { useTranslation } from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { meta } from '../../meta';\nimport { type AiChatProcessor } from '../../processor';\nimport { ServiceType } from '../../types';\n\nexport type ToolboxProps = ThemedClassName<{\n services?: { service: ServiceType }[];\n functions?: FunctionType[];\n // TODO(burdon): Combine into single array.\n blueprints?: readonly Ref.Ref<Blueprint.Blueprint>[];\n activeBlueprints?: readonly Ref.Ref<Blueprint.Blueprint>[];\n}>;\n\nexport const Toolbox = ({ classNames, functions, services, blueprints, activeBlueprints }: ToolboxProps) => {\n const { t } = useTranslation(meta.id);\n\n return (\n <div className={mx('flex flex-col overflow-y-auto box-content', classNames)}>\n {blueprints && blueprints.length > 0 && (\n <Section\n title='Blueprints'\n items={blueprints.map(({ target }) => ({\n name: target?.name ?? '',\n description: target?.description ?? '',\n subitems: target?.tools.map((toolId) => ({ name: `∙ ${safeToolId(toolId)}` })),\n }))}\n />\n )}\n\n {activeBlueprints && activeBlueprints.length > 0 && (\n <Section\n title='Blueprints'\n items={activeBlueprints.map(({ target }) => ({\n name: target?.name ?? '',\n description: target?.description ?? '',\n subitems: target?.tools.map((toolId) => ({ name: `∙ ${safeToolId(toolId)}` })),\n }))}\n />\n )}\n\n {services && services.length > 0 && (\n <Section\n title='Services'\n items={services.map(({ service: { serviceId, name, description } }) => ({\n name: name ?? serviceId,\n description,\n // subitems: tools.map(({ name, description }) => ({ name: `∙ ${name}`, description })),\n }))}\n />\n )}\n\n {functions && functions.length > 0 && (\n <Section title='Functions' items={functions.map(({ name, description }) => ({ name, description }))} />\n )}\n </div>\n );\n};\n\nconst Section: FC<{\n title: string;\n items: { name: string; description?: string; subitems?: { name: string; description?: string }[] }[];\n striped?: boolean;\n}> = ({ title, items, striped }) => {\n const stripeClassNames = 'odd:bg-neutral-50 dark:odd:bg-neutral-800';\n const gridClassNames = 'grid grid-cols-[8rem_1fr]';\n const subGridClassNames = mx('col-span-full grid grid-cols-subgrid text-xs px-2', striped && stripeClassNames);\n\n return (\n <div>\n <h1 className='px-2 text-sm'>{title}</h1>\n <div className={gridClassNames}>\n {items.map(({ name, description, subitems }, i) => (\n <Fragment key={i}>\n {name && (\n <div className={subGridClassNames}>\n <div className='truncate text-primary-500'>{name}</div>\n <div className='line-clamp-2'>{description}</div>\n </div>\n )}\n {subitems?.map(({ name, description }, i) => (\n <div key={i} className={mx(subGridClassNames, striped && stripeClassNames)}>\n <div className='truncate'>{name}</div>\n <div className='line-clamp-3 text-subdued'>{description}</div>\n </div>\n ))}\n </Fragment>\n ))}\n </div>\n </div>\n );\n};\n\nexport type ToolboxContainerProps = ThemedClassName<{\n space?: Space;\n processor?: AiChatProcessor;\n}>;\n\nexport const ToolboxContainer = ({ classNames, space, processor }: ToolboxContainerProps) => {\n // Registered services.\n const services = useQuery(space, Filter.type(ServiceType));\n const [serviceTools, setServiceTools] = useState<{ service: ServiceType }[]>([]);\n useEffect(() => {\n log('creating service tools...', { services: services.length });\n queueMicrotask(async () => {\n // TODO(burdon): Fix.\n // const tools = await Promise.all(\n // services.map(async (service) => ({ service, tools: await createToolsFromService(service) })),\n // );\n // setServiceTools(tools);\n });\n }, [services]);\n\n // Deployed functions.\n const functions = useQuery(space, Filter.type(FunctionType));\n\n return (\n <Toolbox\n classNames={classNames}\n blueprints={processor?.context.blueprints.value}\n services={serviceTools}\n functions={functions}\n />\n );\n};\n\nconst safeToolId = (name: string) => {\n return name.split('_').pop();\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport * from './AssistantSettings';\nexport * from './Chat';\nexport * from './ChatProgress';\nexport * from './PromptSettings';\nexport * from './TemplateEditor';\nexport * from './Toolbar';\nexport * from './Toolbox';\n\nexport const BlueprintContainer = lazy(() => import('./BlueprintContainer'));\nexport const ChatCompanion = lazy(() => import('./ChatCompanion'));\nexport const ChatContainer = lazy(() => import('./ChatContainer'));\nexport const ChatDialog = lazy(() => import('./ChatDialog'));\nexport const SequenceContainer = lazy(() => import('./SequenceContainer'));\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "DEFAULT_EDGE_MODELS", "DEFAULT_OLLAMA_MODELS", "Input", "Select", "useTranslation", "ControlGroup", "ControlItemInput", "ControlPage", "ControlSection", "DEFAULT_VALUE", "LLM_PROVIDER_LABELS", "edge", "ollama", "lmstudio", "AssistantSettings", "settings", "t", "useTranslation", "meta", "id", "ControlPage", "ControlSection", "title", "ns", "ControlGroup", "ControlItemInput", "Input", "Switch", "checked", "customPrompts", "onCheckedChange", "Select", "Root", "value", "llmProvider", "onValueChange", "undefined", "TriggerButton", "placeholder", "Portal", "Content", "Viewport", "Option", "LLM_PROVIDERS", "map", "model", "key", "Arrow", "edgeModel", "DEFAULT_EDGE_MODELS", "ollamaModel", "DEFAULT_OLLAMA_MODELS", "React", "useCallback", "useEffect", "useMemo", "useRef", "useState", "addEventListener", "Flex", "ProgressBar", "TextCrawl", "useExecutionGraph", "ChatProgress", "chat", "commits", "useExecutionGraph", "traceQueue", "target", "nodes", "useMemo", "map", "commit", "id", "message", "lines", "index", "setIndex", "useState", "undefined", "handleSelect", "useCallback", "current", "ref", "useRef", "useEffect", "addEventListener", "event", "key", "length", "React", "Flex", "column", "tabIndex", "classNames", "ProgressBar", "onSelect", "TextCrawl", "autoAdvance", "React", "Toolbar", "useTranslation", "PromptSettings", "template", "t", "useTranslation", "meta", "id", "React", "div", "className", "h2", "Toolbar", "Root", "React", "Fragment", "useEffect", "useState", "FunctionType", "log", "Filter", "useQuery", "useTranslation", "mx", "Toolbox", "classNames", "functions", "services", "blueprints", "activeBlueprints", "t", "useTranslation", "meta", "id", "React", "div", "className", "mx", "length", "Section", "title", "items", "map", "target", "name", "description", "subitems", "tools", "toolId", "safeToolId", "service", "serviceId", "striped", "stripeClassNames", "gridClassNames", "subGridClassNames", "h1", "i", "Fragment", "key", "ToolboxContainer", "space", "processor", "useQuery", "Filter", "type", "ServiceType", "serviceTools", "setServiceTools", "useState", "useEffect", "log", "queueMicrotask", "FunctionType", "context", "value", "split", "pop", "lazy", "BlueprintContainer", "lazy", "ChatCompanion", "ChatContainer", "ChatDialog", "SequenceContainer"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
AssistantAction_exports,
|
|
4
|
+
Assistant_exports
|
|
5
|
+
} from "./chunk-TNR46C3L.mjs";
|
|
6
|
+
import {
|
|
7
|
+
meta
|
|
8
|
+
} from "./chunk-73ABYRYX.mjs";
|
|
9
|
+
|
|
10
|
+
// src/components/Toolbar/Toolbar.tsx
|
|
11
|
+
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
12
|
+
import React from "react";
|
|
13
|
+
import { fullyQualifiedId } from "@dxos/react-client/echo";
|
|
14
|
+
import { MenuProvider, ToolbarMenu } from "@dxos/react-ui-menu";
|
|
15
|
+
|
|
16
|
+
// src/components/Toolbar/useChatToolbarActions.ts
|
|
17
|
+
import { Rx } from "@effect-rx/rx-react";
|
|
18
|
+
import * as Effect from "effect/Effect";
|
|
19
|
+
import { useMemo } from "react";
|
|
20
|
+
import { createIntent, useIntentDispatcher } from "@dxos/app-framework";
|
|
21
|
+
import { Filter, Obj, Query } from "@dxos/echo";
|
|
22
|
+
import { invariant } from "@dxos/invariant";
|
|
23
|
+
import { SpaceAction } from "@dxos/plugin-space/types";
|
|
24
|
+
import { getSpace, useQuery } from "@dxos/react-client/echo";
|
|
25
|
+
import { MenuBuilder, useMenuActions } from "@dxos/react-ui-menu";
|
|
26
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-assistant/src/components/Toolbar/useChatToolbarActions.ts";
|
|
27
|
+
var useChatToolbarActions = ({ chat, companionTo, onReset }) => {
|
|
28
|
+
const { dispatch } = useIntentDispatcher();
|
|
29
|
+
const space = getSpace(chat);
|
|
30
|
+
const query = companionTo ? Query.select(Filter.ids(companionTo.id)).targetOf(Assistant_exports.CompanionTo).source() : Query.select(Filter.nothing());
|
|
31
|
+
const chats = useQuery(space, query);
|
|
32
|
+
return useMenuActions(useMemo(() => Rx.make(() => {
|
|
33
|
+
const builder = MenuBuilder.make().root({
|
|
34
|
+
label: [
|
|
35
|
+
"chat toolbar title",
|
|
36
|
+
{
|
|
37
|
+
ns: meta.id
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
}).action("new", {
|
|
41
|
+
label: [
|
|
42
|
+
"button new thread",
|
|
43
|
+
{
|
|
44
|
+
ns: meta.id
|
|
45
|
+
}
|
|
46
|
+
],
|
|
47
|
+
icon: "ph--plus--regular",
|
|
48
|
+
type: "new"
|
|
49
|
+
}, () => Effect.gen(function* () {
|
|
50
|
+
invariant(space, void 0, {
|
|
51
|
+
F: __dxlog_file,
|
|
52
|
+
L: 51,
|
|
53
|
+
S: this,
|
|
54
|
+
A: [
|
|
55
|
+
"space",
|
|
56
|
+
""
|
|
57
|
+
]
|
|
58
|
+
});
|
|
59
|
+
const { object } = yield* dispatch(createIntent(AssistantAction_exports.CreateChat, {
|
|
60
|
+
space
|
|
61
|
+
}));
|
|
62
|
+
yield* dispatch(createIntent(SpaceAction.AddObject, {
|
|
63
|
+
object,
|
|
64
|
+
target: space,
|
|
65
|
+
hidden: true
|
|
66
|
+
}));
|
|
67
|
+
if (companionTo) {
|
|
68
|
+
yield* dispatch(createIntent(SpaceAction.AddRelation, {
|
|
69
|
+
space,
|
|
70
|
+
schema: Assistant_exports.CompanionTo,
|
|
71
|
+
source: object,
|
|
72
|
+
target: companionTo
|
|
73
|
+
}));
|
|
74
|
+
yield* dispatch(createIntent(AssistantAction_exports.SetCurrentChat, {
|
|
75
|
+
companionTo,
|
|
76
|
+
chat: object
|
|
77
|
+
}));
|
|
78
|
+
}
|
|
79
|
+
}).pipe(Effect.runPromise)).action("branch", {
|
|
80
|
+
label: [
|
|
81
|
+
"button branch thread",
|
|
82
|
+
{
|
|
83
|
+
ns: meta.id
|
|
84
|
+
}
|
|
85
|
+
],
|
|
86
|
+
icon: "ph--git-branch--regular",
|
|
87
|
+
type: "branch",
|
|
88
|
+
disabled: true
|
|
89
|
+
}, () => {
|
|
90
|
+
});
|
|
91
|
+
if (chats.length > 0) {
|
|
92
|
+
builder.group("chats", {
|
|
93
|
+
label: [
|
|
94
|
+
"chat history label",
|
|
95
|
+
{
|
|
96
|
+
ns: meta.id
|
|
97
|
+
}
|
|
98
|
+
],
|
|
99
|
+
icon: "ph--clock-counter-clockwise--regular",
|
|
100
|
+
selectCardinality: "single",
|
|
101
|
+
variant: "dropdownMenu"
|
|
102
|
+
}, (builder2) => {
|
|
103
|
+
chats.toSorted((a, b) => a.id.localeCompare(b.id)).forEach((chat2) => {
|
|
104
|
+
builder2.action(chat2.id, {
|
|
105
|
+
label: Obj.getLabel(chat2) ?? [
|
|
106
|
+
"object name placeholder",
|
|
107
|
+
{
|
|
108
|
+
ns: Assistant_exports.Chat.typename
|
|
109
|
+
}
|
|
110
|
+
]
|
|
111
|
+
}, () => Effect.gen(function* () {
|
|
112
|
+
invariant(companionTo, void 0, {
|
|
113
|
+
F: __dxlog_file,
|
|
114
|
+
L: 100,
|
|
115
|
+
S: this,
|
|
116
|
+
A: [
|
|
117
|
+
"companionTo",
|
|
118
|
+
""
|
|
119
|
+
]
|
|
120
|
+
});
|
|
121
|
+
yield* dispatch(createIntent(AssistantAction_exports.SetCurrentChat, {
|
|
122
|
+
companionTo,
|
|
123
|
+
chat: chat2
|
|
124
|
+
}));
|
|
125
|
+
}).pipe(Effect.runPromise));
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
if (onReset) {
|
|
130
|
+
builder.action("reset", {
|
|
131
|
+
label: [
|
|
132
|
+
"button reset",
|
|
133
|
+
{
|
|
134
|
+
ns: meta.id
|
|
135
|
+
}
|
|
136
|
+
],
|
|
137
|
+
icon: "ph--trash--regular",
|
|
138
|
+
type: "reset"
|
|
139
|
+
}, onReset);
|
|
140
|
+
}
|
|
141
|
+
return builder.build();
|
|
142
|
+
}), [
|
|
143
|
+
chats
|
|
144
|
+
]));
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
// src/components/Toolbar/Toolbar.tsx
|
|
148
|
+
var Toolbar = ({ chat, companionTo, onReset, classNames }) => {
|
|
149
|
+
var _effect = _useSignals();
|
|
150
|
+
try {
|
|
151
|
+
const menu = useChatToolbarActions({
|
|
152
|
+
chat,
|
|
153
|
+
companionTo,
|
|
154
|
+
onReset
|
|
155
|
+
});
|
|
156
|
+
return /* @__PURE__ */ React.createElement(MenuProvider, {
|
|
157
|
+
...menu,
|
|
158
|
+
attendableId: companionTo ? fullyQualifiedId(companionTo) : fullyQualifiedId(chat)
|
|
159
|
+
}, /* @__PURE__ */ React.createElement(ToolbarMenu, {
|
|
160
|
+
classNames,
|
|
161
|
+
textBlockWidth: true
|
|
162
|
+
}));
|
|
163
|
+
} finally {
|
|
164
|
+
_effect.f();
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
export {
|
|
169
|
+
Toolbar
|
|
170
|
+
};
|
|
171
|
+
//# sourceMappingURL=chunk-HXIBCBH4.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/Toolbar/Toolbar.tsx", "../../../src/components/Toolbar/useChatToolbarActions.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { MenuProvider, ToolbarMenu } from '@dxos/react-ui-menu';\n\nimport { type ChatToolbarActionsProps, useChatToolbarActions } from './useChatToolbarActions';\n\nexport const Toolbar = ({ chat, companionTo, onReset, classNames }: ThemedClassName<ChatToolbarActionsProps>) => {\n const menu = useChatToolbarActions({ chat, companionTo, onReset });\n\n return (\n <MenuProvider {...menu} attendableId={companionTo ? fullyQualifiedId(companionTo) : fullyQualifiedId(chat)}>\n <ToolbarMenu classNames={classNames} textBlockWidth />\n </MenuProvider>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport * as Effect from 'effect/Effect';\nimport { useMemo } from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { Filter, Obj, Query } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport { getSpace, useQuery } from '@dxos/react-client/echo';\nimport { MenuBuilder, useMenuActions } from '@dxos/react-ui-menu';\n\nimport { meta } from '../../meta';\nimport { Assistant, AssistantAction } from '../../types';\n\nexport type ChatToolbarActionsProps = {\n chat: Assistant.Chat;\n companionTo?: Obj.Any;\n onReset?: () => void;\n};\n\nexport const useChatToolbarActions = ({ chat, companionTo, onReset }: ChatToolbarActionsProps) => {\n const { dispatch } = useIntentDispatcher();\n const space = getSpace(chat);\n const query = companionTo\n ? Query.select(Filter.ids(companionTo.id)).targetOf(Assistant.CompanionTo).source()\n : Query.select(Filter.nothing());\n // TODO(wittjosiah): Query in react vs query in rx?\n const chats = useQuery(space, query);\n\n return useMenuActions(\n useMemo(\n () =>\n Rx.make(() => {\n const builder = MenuBuilder.make()\n .root({\n label: ['chat toolbar title', { ns: meta.id }],\n })\n .action(\n 'new',\n {\n label: ['button new thread', { ns: meta.id }],\n icon: 'ph--plus--regular',\n type: 'new',\n },\n () =>\n Effect.gen(function* () {\n invariant(space);\n const { object } = yield* dispatch(createIntent(AssistantAction.CreateChat, { space }));\n yield* dispatch(createIntent(SpaceAction.AddObject, { object, target: space, hidden: true }));\n if (companionTo) {\n yield* dispatch(\n createIntent(SpaceAction.AddRelation, {\n space,\n schema: Assistant.CompanionTo,\n source: object,\n target: companionTo,\n }),\n );\n\n yield* dispatch(createIntent(AssistantAction.SetCurrentChat, { companionTo, chat: object }));\n }\n }).pipe(Effect.runPromise),\n )\n .action(\n 'branch',\n {\n label: ['button branch thread', { ns: meta.id }],\n icon: 'ph--git-branch--regular',\n type: 'branch',\n disabled: true,\n },\n () => {},\n );\n\n if (chats.length > 0) {\n builder.group(\n 'chats',\n {\n label: ['chat history label', { ns: meta.id }],\n icon: 'ph--clock-counter-clockwise--regular',\n selectCardinality: 'single',\n variant: 'dropdownMenu',\n },\n (builder) => {\n chats\n // TODO(wittjosiah): This should be the default sort order.\n .toSorted((a, b) => a.id.localeCompare(b.id))\n .forEach((chat) => {\n builder.action(\n chat.id,\n {\n label: Obj.getLabel(chat) ?? ['object name placeholder', { ns: Assistant.Chat.typename }],\n },\n () =>\n Effect.gen(function* () {\n invariant(companionTo);\n yield* dispatch(createIntent(AssistantAction.SetCurrentChat, { companionTo, chat }));\n }).pipe(Effect.runPromise),\n );\n });\n },\n );\n }\n\n if (onReset) {\n builder.action(\n 'reset',\n {\n label: ['button reset', { ns: meta.id }],\n icon: 'ph--trash--regular',\n type: 'reset',\n },\n onReset,\n );\n }\n\n return builder.build();\n }),\n [chats],\n ),\n );\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "fullyQualifiedId", "MenuProvider", "ToolbarMenu", "Rx", "Effect", "useMemo", "createIntent", "useIntentDispatcher", "Filter", "Obj", "Query", "invariant", "SpaceAction", "getSpace", "useQuery", "MenuBuilder", "useMenuActions", "useChatToolbarActions", "chat", "companionTo", "onReset", "dispatch", "useIntentDispatcher", "space", "getSpace", "query", "Query", "select", "Filter", "ids", "id", "targetOf", "Assistant", "CompanionTo", "source", "nothing", "chats", "useQuery", "useMenuActions", "useMemo", "Rx", "make", "builder", "MenuBuilder", "root", "label", "ns", "meta", "action", "icon", "type", "gen", "invariant", "object", "createIntent", "AssistantAction", "CreateChat", "SpaceAction", "AddObject", "target", "hidden", "AddRelation", "schema", "SetCurrentChat", "pipe", "runPromise", "disabled", "length", "group", "selectCardinality", "variant", "toSorted", "a", "b", "localeCompare", "forEach", "Obj", "getLabel", "Chat", "typename", "build", "Toolbar", "chat", "companionTo", "onReset", "classNames", "menu", "useChatToolbarActions", "MenuProvider", "attendableId", "fullyQualifiedId", "ToolbarMenu", "textBlockWidth"]
|
|
7
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
meta
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-73ABYRYX.mjs";
|
|
5
5
|
import {
|
|
6
6
|
__export
|
|
7
7
|
} from "./chunk-HSLMI22Q.mjs";
|
|
@@ -11,12 +11,13 @@ var Assistant_exports = {};
|
|
|
11
11
|
__export(Assistant_exports, {
|
|
12
12
|
Chat: () => Chat,
|
|
13
13
|
CompanionTo: () => CompanionTo,
|
|
14
|
-
Settings: () => Settings
|
|
14
|
+
Settings: () => Settings,
|
|
15
|
+
makeChat: () => makeChat
|
|
15
16
|
});
|
|
16
|
-
import
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
17
|
+
import * as Schema from "effect/Schema";
|
|
18
|
+
import { Obj, Ref, Type } from "@dxos/echo";
|
|
19
|
+
import { LabelAnnotation } from "@dxos/echo/internal";
|
|
20
|
+
import { Queue } from "@dxos/echo-db";
|
|
20
21
|
|
|
21
22
|
// src/types/defs.ts
|
|
22
23
|
var LLM_PROVIDERS = [
|
|
@@ -29,13 +30,19 @@ var LLM_PROVIDERS = [
|
|
|
29
30
|
var Chat = Schema.Struct({
|
|
30
31
|
id: Type.ObjectId,
|
|
31
32
|
name: Schema.optional(Schema.String),
|
|
32
|
-
queue: Type.Ref(Queue)
|
|
33
|
+
queue: Type.Ref(Queue),
|
|
34
|
+
// TODO(dmaretskyi): Eventually this and the message queue will be the same.
|
|
35
|
+
traceQueue: Schema.optional(Type.Ref(Queue))
|
|
33
36
|
}).pipe(Type.Obj({
|
|
34
37
|
typename: "dxos.org/type/assistant/Chat",
|
|
35
38
|
version: "0.2.0"
|
|
36
39
|
}), LabelAnnotation.set([
|
|
37
40
|
"name"
|
|
38
41
|
]));
|
|
42
|
+
var makeChat = ({ name, queue }) => Obj.make(Chat, {
|
|
43
|
+
name,
|
|
44
|
+
queue: Ref.fromDXN(queue.dxn)
|
|
45
|
+
});
|
|
39
46
|
var CompanionTo = Schema.Struct({
|
|
40
47
|
id: Type.ObjectId
|
|
41
48
|
}).pipe(Type.Relation({
|
|
@@ -59,14 +66,15 @@ __export(AssistantAction_exports, {
|
|
|
59
66
|
CreateBlueprint: () => CreateBlueprint,
|
|
60
67
|
CreateChat: () => CreateChat,
|
|
61
68
|
CreateSequence: () => CreateSequence,
|
|
62
|
-
|
|
69
|
+
SetCurrentChat: () => SetCurrentChat,
|
|
70
|
+
onCreateSpace: () => onCreateSpace
|
|
63
71
|
});
|
|
64
|
-
import
|
|
72
|
+
import * as Schema2 from "effect/Schema";
|
|
65
73
|
import { Blueprint } from "@dxos/blueprints";
|
|
66
|
-
import { SpaceSchema } from "@dxos/client/echo";
|
|
74
|
+
import { EchoObjectSchema, SpaceSchema } from "@dxos/client/echo";
|
|
67
75
|
import { Sequence } from "@dxos/conductor";
|
|
68
76
|
import { DataType } from "@dxos/schema";
|
|
69
|
-
var
|
|
77
|
+
var onCreateSpace = class extends Schema2.TaggedClass()(`${meta.id}/on-space-created`, {
|
|
70
78
|
input: Schema2.Struct({
|
|
71
79
|
space: SpaceSchema,
|
|
72
80
|
rootCollection: DataType.Collection
|
|
@@ -105,12 +113,20 @@ var CreateSequence = class extends Schema2.TaggedClass()(`${meta.id}/action/crea
|
|
|
105
113
|
})
|
|
106
114
|
}) {
|
|
107
115
|
};
|
|
116
|
+
var SetCurrentChat = class extends Schema2.TaggedClass()(`${meta.id}/action/set-current-chat`, {
|
|
117
|
+
input: Schema2.Struct({
|
|
118
|
+
companionTo: EchoObjectSchema,
|
|
119
|
+
chat: Chat
|
|
120
|
+
}),
|
|
121
|
+
output: Schema2.Void
|
|
122
|
+
}) {
|
|
123
|
+
};
|
|
108
124
|
|
|
109
125
|
// src/types/service.ts
|
|
110
|
-
import
|
|
126
|
+
import * as Schema3 from "effect/Schema";
|
|
111
127
|
import { ComputeGraph } from "@dxos/conductor";
|
|
112
128
|
import { Type as Type2 } from "@dxos/echo";
|
|
113
|
-
import { TypedObject } from "@dxos/echo
|
|
129
|
+
import { TypedObject } from "@dxos/echo/internal";
|
|
114
130
|
import { FunctionType } from "@dxos/functions";
|
|
115
131
|
var ApiAuthorizationKey = Schema3.Struct({
|
|
116
132
|
type: Schema3.Literal("api-key"),
|
|
@@ -153,7 +169,12 @@ var ServiceInterfaceApi = Schema3.Struct({
|
|
|
153
169
|
*/
|
|
154
170
|
authorization: Schema3.optional(ApiAuthorization)
|
|
155
171
|
});
|
|
156
|
-
var ServiceInterface = Schema3.Union(
|
|
172
|
+
var ServiceInterface = Schema3.Union(
|
|
173
|
+
// Service types.
|
|
174
|
+
ServiceInterfaceFunction,
|
|
175
|
+
ServiceInterfaceWorkflow,
|
|
176
|
+
ServiceInterfaceApi
|
|
177
|
+
);
|
|
157
178
|
var ServiceType = class extends TypedObject({
|
|
158
179
|
typename: "dxos.org/type/ServiceType",
|
|
159
180
|
version: "0.1.0"
|
|
@@ -189,4 +210,4 @@ export {
|
|
|
189
210
|
ServiceType,
|
|
190
211
|
categoryIcons
|
|
191
212
|
};
|
|
192
|
-
//# sourceMappingURL=chunk-
|
|
213
|
+
//# sourceMappingURL=chunk-TNR46C3L.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/types/Assistant.ts", "../../../src/types/defs.ts", "../../../src/types/AssistantAction.ts", "../../../src/types/service.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Obj, Ref, Type } from '@dxos/echo';\nimport { LabelAnnotation } from '@dxos/echo/internal';\nimport { Queue } from '@dxos/echo-db';\n\nimport { LLM_PROVIDERS } from './defs';\n\n/**\n * AI chat.\n */\nexport const Chat = Schema.Struct({\n id: Type.ObjectId,\n name: Schema.optional(Schema.String),\n queue: Type.Ref(Queue),\n // TODO(dmaretskyi): Eventually this and the message queue will be the same.\n traceQueue: Schema.optional(Type.Ref(Queue)),\n}).pipe(\n Type.Obj({\n typename: 'dxos.org/type/assistant/Chat',\n version: '0.2.0',\n }),\n LabelAnnotation.set(['name']),\n);\n\nexport interface Chat extends Schema.Schema.Type<typeof Chat> {}\n\nexport const makeChat = ({ name, queue }: { name?: string; queue: Queue }) =>\n Obj.make(Chat, { name, queue: Ref.fromDXN(queue.dxn) });\n\n/**\n * Relation between a Chat and companion objects (e.g., artifacts).\n */\nexport const CompanionTo = Schema.Struct({\n id: Type.ObjectId,\n}).pipe(\n Type.Relation({\n typename: 'dxos.org/relation/assistant/CompanionTo',\n version: '0.1.0',\n source: Chat,\n target: Type.Expando,\n }),\n);\n\nexport interface CompanionTo extends Schema.Schema.Type<typeof CompanionTo> {}\n\n/**\n * Plugin settings.\n */\nexport const Settings = Schema.mutable(\n Schema.Struct({\n llmProvider: Schema.optional(Schema.Literal(...LLM_PROVIDERS)),\n edgeModel: Schema.optional(Schema.String),\n ollamaModel: Schema.optional(Schema.String),\n lmstudioModel: Schema.optional(Schema.String),\n customPrompts: Schema.optional(Schema.Boolean),\n }),\n);\n\nexport type Settings = Schema.Schema.Type<typeof Settings>;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nexport const LLM_PROVIDERS = ['edge', 'ollama', 'lmstudio'] as const;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Blueprint } from '@dxos/blueprints';\nimport { EchoObjectSchema, SpaceSchema } from '@dxos/client/echo';\nimport { Sequence } from '@dxos/conductor';\nimport { DataType } from '@dxos/schema';\n\nimport { meta } from '../meta';\n\nimport { Chat } from './Assistant';\n\nexport class onCreateSpace extends Schema.TaggedClass<onCreateSpace>()(`${meta.id}/on-space-created`, {\n input: Schema.Struct({\n space: SpaceSchema,\n rootCollection: DataType.Collection,\n }),\n output: Schema.Void,\n}) {}\n\nexport class CreateChat extends Schema.TaggedClass<CreateChat>()(`${meta.id}/action/create-chat`, {\n input: Schema.Struct({\n space: SpaceSchema,\n name: Schema.optional(Schema.String),\n }),\n output: Schema.Struct({\n object: Chat,\n }),\n}) {}\n\nexport const BlueprintForm = Schema.Struct({\n key: Schema.String,\n name: Schema.String,\n description: Schema.optional(Schema.String),\n});\n\nexport class CreateBlueprint extends Schema.TaggedClass<CreateBlueprint>()(`${meta.id}/action/create-blueprint`, {\n input: BlueprintForm,\n output: Schema.Struct({\n object: Blueprint.Blueprint,\n }),\n}) {}\n\nexport class CreateSequence extends Schema.TaggedClass<CreateSequence>()(`${meta.id}/action/create-sequence`, {\n input: Schema.Struct({\n name: Schema.optional(Schema.String),\n }),\n output: Schema.Struct({\n object: Sequence,\n }),\n}) {}\n\nexport class SetCurrentChat extends Schema.TaggedClass<SetCurrentChat>()(`${meta.id}/action/set-current-chat`, {\n input: Schema.Struct({\n companionTo: EchoObjectSchema,\n chat: Chat,\n }),\n output: Schema.Void,\n}) {}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { ComputeGraph } from '@dxos/conductor';\nimport { Type } from '@dxos/echo';\nimport { TypedObject } from '@dxos/echo/internal';\nimport { FunctionType } from '@dxos/functions';\n\n// TODO(burdon): Factor out and reconcile with https://github.com/dxos/dxos/blob/main/packages/plugins/plugin-token-manager/src/defs/presets.ts#L7\n\nconst ApiAuthorizationKey = Schema.Struct({\n type: Schema.Literal('api-key'),\n key: Schema.String,\n placement: Schema.Union(\n Schema.Struct({\n type: Schema.Literal('authorization-header'),\n }),\n Schema.Struct({\n type: Schema.Literal('query'),\n name: Schema.String,\n }),\n ),\n});\n\nconst ApiAuthorizationOauth = Schema.Struct({\n type: Schema.Literal('oauth'),\n clientId: Schema.String,\n clientSecret: Schema.String,\n tokenUrl: Schema.String,\n grantType: Schema.String,\n});\n\nexport const ApiAuthorization = Schema.Union(ApiAuthorizationKey, ApiAuthorizationOauth);\nexport type ApiAuthorization = Schema.Schema.Type<typeof ApiAuthorization>;\n\nconst ServiceInterfaceFunction = Schema.Struct({\n kind: Schema.Literal('function'),\n fn: Type.Ref(FunctionType),\n});\n\nconst ServiceInterfaceWorkflow = Schema.Struct({\n kind: Schema.Literal('workflow'),\n workflow: Type.Ref(ComputeGraph),\n});\n\nconst ServiceInterfaceApi = Schema.Struct({\n kind: Schema.Literal('api'),\n\n /**\n * URL to fetch the openapi schema.\n */\n schemaUrl: Schema.optional(Schema.String),\n\n /**\n * Inlined openapi schema.\n */\n schema: Schema.optional(Schema.Any),\n\n /**\n * Authorization configuration if required.\n */\n authorization: Schema.optional(ApiAuthorization),\n});\n\nconst ServiceInterface = Schema.Union(\n // Service types.\n ServiceInterfaceFunction,\n ServiceInterfaceWorkflow,\n ServiceInterfaceApi,\n);\n\nexport type ServiceInterface = Schema.Schema.Type<typeof ServiceInterface>;\n\nexport class ServiceType extends TypedObject({\n typename: 'dxos.org/type/ServiceType',\n version: '0.1.0',\n})({\n serviceId: Schema.String,\n name: Schema.optional(Schema.String),\n description: Schema.optional(Schema.String),\n category: Schema.optional(Schema.String),\n enabled: Schema.optional(Schema.Boolean),\n\n /**\n * Entries exposed: functions, workflows, and APIs.\n */\n interfaces: Schema.optional(Schema.Array(ServiceInterface)),\n}) {}\n\n//\n// Service Registry\n//\n\nexport interface BaseServiceRegistry {\n queryServices(query?: ServiceQuery): Promise<ServiceType[]>;\n}\n\nexport type ServiceQuery = {\n name?: string;\n category?: string;\n};\n\nexport const categoryIcons: Record<string, string> = {\n finance: 'ph--bank--regular',\n health: 'ph--heart--regular',\n geolocation: 'ph--globe-simple--regular',\n education: 'ph--books--regular',\n entertainment: 'ph--music-notes--regular',\n shopping: 'ph--shopping-cart--regular',\n travel: 'ph--airplane-takeoff--regular',\n utilities: 'ph--lightning--regular',\n weather: 'ph--cloud-rain--regular',\n} as const;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Schema", "Obj", "Ref", "Type", "LabelAnnotation", "Queue", "LLM_PROVIDERS", "Chat", "Struct", "id", "Type", "ObjectId", "name", "optional", "String", "queue", "Ref", "Queue", "traceQueue", "pipe", "Obj", "typename", "version", "LabelAnnotation", "set", "makeChat", "make", "fromDXN", "dxn", "CompanionTo", "Relation", "source", "target", "Expando", "Settings", "mutable", "llmProvider", "Literal", "LLM_PROVIDERS", "edgeModel", "ollamaModel", "lmstudioModel", "customPrompts", "Boolean", "Schema", "Blueprint", "EchoObjectSchema", "SpaceSchema", "Sequence", "DataType", "onCreateSpace", "TaggedClass", "meta", "id", "input", "Struct", "space", "SpaceSchema", "rootCollection", "DataType", "Collection", "output", "Void", "CreateChat", "name", "optional", "String", "object", "Chat", "BlueprintForm", "key", "description", "CreateBlueprint", "Blueprint", "CreateSequence", "Sequence", "SetCurrentChat", "companionTo", "EchoObjectSchema", "chat", "Schema", "ComputeGraph", "Type", "TypedObject", "FunctionType", "ApiAuthorizationKey", "Struct", "type", "Literal", "key", "String", "placement", "Union", "name", "ApiAuthorizationOauth", "clientId", "clientSecret", "tokenUrl", "grantType", "ApiAuthorization", "ServiceInterfaceFunction", "kind", "fn", "Type", "Ref", "FunctionType", "ServiceInterfaceWorkflow", "workflow", "ComputeGraph", "ServiceInterfaceApi", "schemaUrl", "optional", "schema", "Any", "authorization", "ServiceInterface", "ServiceType", "TypedObject", "typename", "version", "serviceId", "description", "category", "enabled", "Boolean", "interfaces", "Array", "categoryIcons", "finance", "health", "geolocation", "education", "entertainment", "shopping", "travel", "utilities", "weather"]
|
|
7
|
+
}
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
-
import "./chunk-HSLMI22Q.mjs";
|
|
3
2
|
|
|
4
3
|
// src/capabilities/blueprint-definition.ts
|
|
5
|
-
import { ToolId } from "@dxos/ai";
|
|
6
4
|
import { Capabilities, contributes } from "@dxos/app-framework";
|
|
7
5
|
import { templates } from "@dxos/assistant";
|
|
6
|
+
import { DISCORD_BLUEPRINT, LINEAR_BLUEPRINT, RESEARCH_BLUEPRINT, WEB_SEARCH_BLUEPRINT, agent, createResearchNote, entityExtraction, fetchDiscordMessages, research, syncLinearIssues } from "@dxos/assistant-testing";
|
|
8
7
|
import { Blueprint } from "@dxos/blueprints";
|
|
9
8
|
|
|
10
9
|
// src/functions/analysis.ts
|
|
11
|
-
import
|
|
10
|
+
import * as Effect from "effect/Effect";
|
|
11
|
+
import * as Schema from "effect/Schema";
|
|
12
12
|
import { defineFunction } from "@dxos/functions";
|
|
13
13
|
import { log } from "@dxos/log";
|
|
14
14
|
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-assistant/src/functions/analysis.ts";
|
|
15
15
|
var analysis_default = defineFunction({
|
|
16
|
-
|
|
16
|
+
key: "dxos.org/function/assistant-analysis",
|
|
17
|
+
name: "Assistant analysis",
|
|
17
18
|
description: "Enter analysis analysis mode.",
|
|
18
19
|
inputSchema: Schema.Struct({
|
|
19
20
|
enable: Schema.Boolean.annotations({
|
|
@@ -21,12 +22,13 @@ var analysis_default = defineFunction({
|
|
|
21
22
|
})
|
|
22
23
|
}),
|
|
23
24
|
outputSchema: Schema.Void,
|
|
24
|
-
handler: Effect.fn(function* ({ data: { enable } }) {
|
|
25
|
+
handler: Effect.fn(function* ({ context, data: { enable } }) {
|
|
25
26
|
log.info("analysis mode", {
|
|
27
|
+
space: context.space?.id,
|
|
26
28
|
enable
|
|
27
29
|
}, {
|
|
28
30
|
F: __dxlog_file,
|
|
29
|
-
L:
|
|
31
|
+
L: 20,
|
|
30
32
|
S: this,
|
|
31
33
|
C: (f, a) => f(...a)
|
|
32
34
|
});
|
|
@@ -34,12 +36,14 @@ var analysis_default = defineFunction({
|
|
|
34
36
|
});
|
|
35
37
|
|
|
36
38
|
// src/functions/list.ts
|
|
37
|
-
import
|
|
39
|
+
import * as Effect2 from "effect/Effect";
|
|
40
|
+
import * as Schema2 from "effect/Schema";
|
|
38
41
|
import { Filter, Obj, Query } from "@dxos/echo";
|
|
39
42
|
import { DatabaseService, defineFunction as defineFunction2 } from "@dxos/functions";
|
|
40
43
|
import { trim } from "@dxos/util";
|
|
41
44
|
var list_default = defineFunction2({
|
|
42
|
-
|
|
45
|
+
key: "dxos.org/function/assistant/list",
|
|
46
|
+
name: "Assistant list",
|
|
43
47
|
description: (
|
|
44
48
|
// TODO(wittjosiah): Find a better way to prompt for looking up typenames before querying with them.
|
|
45
49
|
trim`
|
|
@@ -63,7 +67,11 @@ var list_default = defineFunction2({
|
|
|
63
67
|
}))
|
|
64
68
|
}),
|
|
65
69
|
handler: Effect2.fn(function* ({ data: { typename } }) {
|
|
66
|
-
const
|
|
70
|
+
const [schema] = yield* DatabaseService.runSchemaQuery({
|
|
71
|
+
typename
|
|
72
|
+
});
|
|
73
|
+
const filter = schema ? Filter.type(schema) : Filter.typename(typename);
|
|
74
|
+
const { objects } = yield* DatabaseService.runQuery(Query.select(filter));
|
|
67
75
|
const results = objects.map((object) => ({
|
|
68
76
|
dxn: Obj.getDXN(object).toString(),
|
|
69
77
|
label: Obj.getLabel(object)
|
|
@@ -75,14 +83,16 @@ var list_default = defineFunction2({
|
|
|
75
83
|
});
|
|
76
84
|
|
|
77
85
|
// src/functions/load.ts
|
|
78
|
-
import
|
|
86
|
+
import * as Effect3 from "effect/Effect";
|
|
87
|
+
import * as Function from "effect/Function";
|
|
88
|
+
import * as Option from "effect/Option";
|
|
89
|
+
import * as Schema3 from "effect/Schema";
|
|
79
90
|
import { ArtifactId } from "@dxos/assistant";
|
|
80
91
|
import { Obj as Obj2 } from "@dxos/echo";
|
|
81
92
|
import { DatabaseService as DatabaseService2, defineFunction as defineFunction3 } from "@dxos/functions";
|
|
82
|
-
import { log as log2 } from "@dxos/log";
|
|
83
|
-
var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-assistant/src/functions/load.ts";
|
|
84
93
|
var load_default = defineFunction3({
|
|
85
|
-
|
|
94
|
+
key: "dxos.org/function/assistant/load",
|
|
95
|
+
name: "Assistant load",
|
|
86
96
|
description: "Loads the object.",
|
|
87
97
|
inputSchema: Schema3.Struct({
|
|
88
98
|
id: ArtifactId.annotations({
|
|
@@ -98,17 +108,9 @@ var load_default = defineFunction3({
|
|
|
98
108
|
}),
|
|
99
109
|
handler: Effect3.fn(function* ({ data: { id, typename } }) {
|
|
100
110
|
const object = yield* DatabaseService2.resolve(ArtifactId.toDXN(id));
|
|
101
|
-
return yield* pipe(Option.fromNullable(object), Option.flatMap((object2) => Obj2.getTypename(object2) === typename ? Option.some(object2) : Option.none()), Option.match({
|
|
111
|
+
return yield* Function.pipe(Option.fromNullable(object), Option.flatMap((object2) => Obj2.getTypename(object2) === typename ? Option.some(object2) : Option.none()), Option.match({
|
|
102
112
|
onNone: () => Effect3.fail("Object not found."),
|
|
103
113
|
onSome: (object2) => {
|
|
104
|
-
log2.info("object", {
|
|
105
|
-
object: object2
|
|
106
|
-
}, {
|
|
107
|
-
F: __dxlog_file2,
|
|
108
|
-
L: 37,
|
|
109
|
-
S: this,
|
|
110
|
-
C: (f, a) => f(...a)
|
|
111
|
-
});
|
|
112
114
|
return Effect3.succeed({
|
|
113
115
|
object: object2
|
|
114
116
|
});
|
|
@@ -124,24 +126,52 @@ var functions = [
|
|
|
124
126
|
load_default
|
|
125
127
|
];
|
|
126
128
|
var tools = [
|
|
129
|
+
"add-to-context",
|
|
130
|
+
// TODO(wittjosiah): Factor out to an ECHO blueprint.
|
|
127
131
|
"get-schemas",
|
|
128
|
-
"
|
|
132
|
+
"add-schema",
|
|
133
|
+
"create-record",
|
|
134
|
+
// TODO(wittjosiah): Factor out to a generic app-framework blueprint.
|
|
135
|
+
"open-item"
|
|
129
136
|
];
|
|
130
|
-
var
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
137
|
+
var BLUEPRINT_KEY = "dxos.org/blueprint/assistant";
|
|
138
|
+
var createBlueprint = () => Blueprint.make({
|
|
139
|
+
key: BLUEPRINT_KEY,
|
|
140
|
+
name: "Assistant",
|
|
141
|
+
tools: Blueprint.toolDefinitions({
|
|
142
|
+
functions,
|
|
143
|
+
tools
|
|
144
|
+
}),
|
|
145
|
+
instructions: templates.system
|
|
146
|
+
});
|
|
147
|
+
var blueprint = createBlueprint();
|
|
148
|
+
var blueprint_definition_default = (() => [
|
|
149
|
+
contributes(Capabilities.Functions, functions),
|
|
150
|
+
contributes(Capabilities.Functions, [
|
|
151
|
+
agent
|
|
152
|
+
]),
|
|
153
|
+
contributes(Capabilities.Functions, [
|
|
154
|
+
research,
|
|
155
|
+
createResearchNote,
|
|
156
|
+
entityExtraction
|
|
157
|
+
]),
|
|
158
|
+
contributes(Capabilities.BlueprintDefinition, blueprint),
|
|
159
|
+
contributes(Capabilities.BlueprintDefinition, RESEARCH_BLUEPRINT),
|
|
160
|
+
// TODO(burdon): Move out of assistant.
|
|
161
|
+
contributes(Capabilities.Functions, [
|
|
162
|
+
syncLinearIssues
|
|
163
|
+
]),
|
|
164
|
+
contributes(Capabilities.Functions, [
|
|
165
|
+
fetchDiscordMessages
|
|
166
|
+
]),
|
|
167
|
+
contributes(Capabilities.BlueprintDefinition, LINEAR_BLUEPRINT),
|
|
168
|
+
contributes(Capabilities.BlueprintDefinition, DISCORD_BLUEPRINT),
|
|
169
|
+
contributes(Capabilities.BlueprintDefinition, WEB_SEARCH_BLUEPRINT)
|
|
170
|
+
]);
|
|
171
|
+
|
|
144
172
|
export {
|
|
145
|
-
|
|
173
|
+
BLUEPRINT_KEY,
|
|
174
|
+
createBlueprint,
|
|
175
|
+
blueprint_definition_default
|
|
146
176
|
};
|
|
147
|
-
//# sourceMappingURL=
|
|
177
|
+
//# sourceMappingURL=chunk-U2NYUS2N.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/blueprint-definition.ts", "../../../src/functions/analysis.ts", "../../../src/functions/list.ts", "../../../src/functions/load.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, type Capability, contributes } from '@dxos/app-framework';\nimport { templates } from '@dxos/assistant';\nimport {\n DISCORD_BLUEPRINT,\n LINEAR_BLUEPRINT,\n RESEARCH_BLUEPRINT,\n WEB_SEARCH_BLUEPRINT,\n agent,\n createResearchNote,\n entityExtraction,\n fetchDiscordMessages,\n research,\n syncLinearIssues,\n} from '@dxos/assistant-testing';\nimport { Blueprint } from '@dxos/blueprints';\nimport { type FunctionDefinition } from '@dxos/functions';\n\nimport { analysis, list, load } from '../functions';\n\nconst functions: FunctionDefinition[] = [analysis, list, load];\nconst tools = [\n 'add-to-context',\n // TODO(wittjosiah): Factor out to an ECHO blueprint.\n 'get-schemas',\n 'add-schema',\n 'create-record',\n // TODO(wittjosiah): Factor out to a generic app-framework blueprint.\n 'open-item',\n // TODO(burdon): Anthropic only.\n // https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/text-editor-tool#example-str-replace-command\n // AI_TOOL_NOT_FOUND: str_replace_based_edit_tool\n // 'str_replace_based_edit_tool',\n];\n\nexport const BLUEPRINT_KEY = 'dxos.org/blueprint/assistant';\n\nexport const createBlueprint = (): Blueprint.Blueprint =>\n Blueprint.make({\n key: BLUEPRINT_KEY,\n name: 'Assistant',\n tools: Blueprint.toolDefinitions({ functions, tools }),\n instructions: templates.system,\n });\n\nconst blueprint = createBlueprint();\n\n// TODO(dmaretskyi): Consider splitting into multiple modules.\nexport default (): Capability<any>[] => [\n contributes(Capabilities.Functions, functions),\n contributes(Capabilities.Functions, [agent]),\n contributes(Capabilities.Functions, [research, createResearchNote, entityExtraction]),\n contributes(Capabilities.BlueprintDefinition, blueprint),\n contributes(Capabilities.BlueprintDefinition, RESEARCH_BLUEPRINT),\n // TODO(burdon): Move out of assistant.\n contributes(Capabilities.Functions, [syncLinearIssues]),\n contributes(Capabilities.Functions, [fetchDiscordMessages]),\n contributes(Capabilities.BlueprintDefinition, LINEAR_BLUEPRINT),\n contributes(Capabilities.BlueprintDefinition, DISCORD_BLUEPRINT),\n contributes(Capabilities.BlueprintDefinition, WEB_SEARCH_BLUEPRINT),\n];\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Schema from 'effect/Schema';\n\nimport { defineFunction } from '@dxos/functions';\nimport { log } from '@dxos/log';\n\nexport default defineFunction({\n key: 'dxos.org/function/assistant-analysis',\n name: 'Assistant analysis',\n description: 'Enter analysis analysis mode.',\n inputSchema: Schema.Struct({\n enable: Schema.Boolean.annotations({ description: 'Enable or disable analysis mode.' }),\n }),\n outputSchema: Schema.Void,\n handler: Effect.fn(function* ({ context, data: { enable } }) {\n log.info('analysis mode', { space: context.space?.id, enable });\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 { DatabaseService, defineFunction } from '@dxos/functions';\nimport { trim } from '@dxos/util';\n\n// TODO(burdon): Factor out to space plugin.\nexport default defineFunction({\n key: 'dxos.org/function/assistant/list',\n name: 'Assistant list',\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 list-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* DatabaseService.runSchemaQuery({ typename });\n const filter = schema ? Filter.type(schema) : Filter.typename(typename);\n\n const { objects } = yield* DatabaseService.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 { Obj } from '@dxos/echo';\nimport { DatabaseService, defineFunction } from '@dxos/functions';\n\n// TODO(burdon): Common error handling.\n// TODO(burdon): Factor out to space plugin.\nexport default defineFunction({\n key: 'dxos.org/function/assistant/load',\n name: 'Assistant load',\n description: 'Loads the object.',\n inputSchema: Schema.Struct({\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.Obj.Any | Type.Relation.Any\n object: Schema.Any,\n }),\n handler: Effect.fn(function* ({ data: { id, typename } }) {\n const object = yield* DatabaseService.resolve(ArtifactId.toDXN(id));\n return yield* Function.pipe(\n Option.fromNullable(object),\n Option.flatMap((object) => (Obj.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"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Capabilities", "contributes", "templates", "DISCORD_BLUEPRINT", "LINEAR_BLUEPRINT", "RESEARCH_BLUEPRINT", "WEB_SEARCH_BLUEPRINT", "agent", "createResearchNote", "entityExtraction", "fetchDiscordMessages", "research", "syncLinearIssues", "Blueprint", "Effect", "Schema", "defineFunction", "log", "key", "name", "description", "inputSchema", "Struct", "enable", "Boolean", "annotations", "outputSchema", "Void", "handler", "fn", "context", "data", "info", "space", "id", "Effect", "Schema", "Filter", "Obj", "Query", "DatabaseService", "defineFunction", "trim", "defineFunction", "key", "name", "description", "trim", "inputSchema", "Struct", "typename", "String", "annotations", "outputSchema", "results", "Array", "dxn", "label", "optional", "handler", "fn", "data", "schema", "DatabaseService", "runSchemaQuery", "filter", "Filter", "type", "objects", "runQuery", "Query", "select", "map", "object", "Obj", "getDXN", "toString", "getLabel", "Effect", "Function", "Option", "Schema", "ArtifactId", "Obj", "DatabaseService", "defineFunction", "defineFunction", "key", "name", "description", "inputSchema", "Struct", "id", "ArtifactId", "annotations", "typename", "String", "outputSchema", "object", "Any", "handler", "fn", "data", "DatabaseService", "resolve", "toDXN", "pipe", "fromNullable", "flatMap", "Obj", "getTypename", "some", "none", "match", "onNone", "fail", "onSome", "succeed", "functions", "analysis", "list", "load", "tools", "BLUEPRINT_KEY", "createBlueprint", "Blueprint", "make", "key", "name", "toolDefinitions", "instructions", "templates", "system", "blueprint", "contributes", "Capabilities", "Functions", "agent", "research", "createResearchNote", "entityExtraction", "BlueprintDefinition", "RESEARCH_BLUEPRINT", "syncLinearIssues", "fetchDiscordMessages", "LINEAR_BLUEPRINT", "DISCORD_BLUEPRINT", "WEB_SEARCH_BLUEPRINT"]
|
|
7
|
+
}
|