@dxos/plugin-assistant 0.8.2-main.12df754 → 0.8.2-main.2f9c567

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.
Files changed (155) hide show
  1. package/dist/lib/browser/{AssistantDialog-77B4BSXR.mjs → AssistantDialog-WX6EKSXI.mjs} +3 -3
  2. package/dist/lib/browser/{ChatContainer-4AMJKO3T.mjs → ChatContainer-HMNWYDQ5.mjs} +3 -3
  3. package/dist/lib/browser/{ai-client-CDZLSNXE.mjs → ai-client-OK5SMYJC.mjs} +1 -1
  4. package/dist/lib/browser/{ai-client-CDZLSNXE.mjs.map → ai-client-OK5SMYJC.mjs.map} +2 -2
  5. package/dist/lib/browser/{app-graph-builder-GU6ZWSP4.mjs → app-graph-builder-J5ISIFTE.mjs} +5 -35
  6. package/dist/lib/browser/app-graph-builder-J5ISIFTE.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-FQ4L5NYW.mjs → chunk-4EXBK6UE.mjs} +95 -105
  8. package/dist/lib/browser/chunk-4EXBK6UE.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-5P7U35RJ.mjs +192 -0
  10. package/dist/lib/browser/chunk-5P7U35RJ.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-SBFJKCVU.mjs → chunk-J3V74ZRF.mjs} +24 -69
  12. package/dist/lib/browser/chunk-J3V74ZRF.mjs.map +7 -0
  13. package/dist/lib/browser/index.mjs +8 -8
  14. package/dist/lib/browser/index.mjs.map +2 -2
  15. package/dist/lib/browser/{intent-resolver-YAQELTFQ.mjs → intent-resolver-MGHOSZY3.mjs} +2 -2
  16. package/dist/lib/browser/meta.json +1 -1
  17. package/dist/lib/browser/{react-surface-JOATHBJ4.mjs → react-surface-VP4ABBMH.mjs} +5 -14
  18. package/dist/lib/browser/react-surface-VP4ABBMH.mjs.map +7 -0
  19. package/dist/lib/browser/{settings-PAJLJEVW.mjs → settings-OZX7J65A.mjs} +2 -2
  20. package/dist/lib/browser/types/index.mjs +3 -1
  21. package/dist/lib/node/{AssistantDialog-7V7RRSIL.cjs → AssistantDialog-2OTAZADX.cjs} +7 -7
  22. package/dist/lib/node/{ChatContainer-UWYNOALW.cjs → ChatContainer-3CTBKBS2.cjs} +7 -7
  23. package/dist/lib/node/{ai-client-URCCYU6B.cjs → ai-client-3EVTLXTT.cjs} +4 -4
  24. package/dist/lib/node/{ai-client-URCCYU6B.cjs.map → ai-client-3EVTLXTT.cjs.map} +2 -2
  25. package/dist/lib/node/{app-graph-builder-CEMLCKAF.cjs → app-graph-builder-BBNLIGYJ.cjs} +12 -42
  26. package/dist/lib/node/app-graph-builder-BBNLIGYJ.cjs.map +7 -0
  27. package/dist/lib/node/chunk-VG2UQY4S.cjs +216 -0
  28. package/dist/lib/node/chunk-VG2UQY4S.cjs.map +7 -0
  29. package/dist/lib/node/{chunk-KWBQ5P7D.cjs → chunk-WFSXNO4H.cjs} +28 -69
  30. package/dist/lib/node/chunk-WFSXNO4H.cjs.map +7 -0
  31. package/dist/lib/node/{chunk-ENBPNIJZ.cjs → chunk-XC7A3KUG.cjs} +103 -106
  32. package/dist/lib/node/chunk-XC7A3KUG.cjs.map +7 -0
  33. package/dist/lib/node/index.cjs +41 -41
  34. package/dist/lib/node/index.cjs.map +3 -3
  35. package/dist/lib/node/{intent-resolver-RNMYSJ3E.cjs → intent-resolver-Z2NTL2FV.cjs} +9 -9
  36. package/dist/lib/node/meta.json +1 -1
  37. package/dist/lib/node/{react-surface-7RIXMLMN.cjs → react-surface-HNXDAZ7C.cjs} +16 -24
  38. package/dist/lib/node/react-surface-HNXDAZ7C.cjs.map +7 -0
  39. package/dist/lib/node/{settings-JBEYMZ4S.cjs → settings-WLTC7XO5.cjs} +6 -6
  40. package/dist/lib/node/types/index.cjs +14 -12
  41. package/dist/lib/node/types/index.cjs.map +2 -2
  42. package/dist/lib/node-esm/{AssistantDialog-N24M73FW.mjs → AssistantDialog-GNLPYXY4.mjs} +3 -3
  43. package/dist/lib/node-esm/{ChatContainer-KPWY5UK4.mjs → ChatContainer-FGHDDORQ.mjs} +3 -3
  44. package/dist/lib/node-esm/{ai-client-WMHS5EGV.mjs → ai-client-LYCBXZI7.mjs} +1 -1
  45. package/dist/lib/node-esm/{ai-client-WMHS5EGV.mjs.map → ai-client-LYCBXZI7.mjs.map} +2 -2
  46. package/dist/lib/node-esm/{app-graph-builder-Y45WYAWL.mjs → app-graph-builder-245AWCPJ.mjs} +5 -35
  47. package/dist/lib/node-esm/app-graph-builder-245AWCPJ.mjs.map +7 -0
  48. package/dist/lib/node-esm/{chunk-PFWTW22U.mjs → chunk-G5LUEW72.mjs} +24 -69
  49. package/dist/lib/node-esm/chunk-G5LUEW72.mjs.map +7 -0
  50. package/dist/lib/node-esm/{chunk-JE47GNTB.mjs → chunk-JX73NOSL.mjs} +95 -105
  51. package/dist/lib/node-esm/chunk-JX73NOSL.mjs.map +7 -0
  52. package/dist/lib/node-esm/chunk-UZWYXNR5.mjs +193 -0
  53. package/dist/lib/node-esm/chunk-UZWYXNR5.mjs.map +7 -0
  54. package/dist/lib/node-esm/index.mjs +8 -8
  55. package/dist/lib/node-esm/index.mjs.map +2 -2
  56. package/dist/lib/node-esm/{intent-resolver-V2ZFI5C4.mjs → intent-resolver-DMQXPV2H.mjs} +2 -2
  57. package/dist/lib/node-esm/meta.json +1 -1
  58. package/dist/lib/node-esm/{react-surface-UUHNOYST.mjs → react-surface-NYXMBFPY.mjs} +5 -14
  59. package/dist/lib/node-esm/react-surface-NYXMBFPY.mjs.map +7 -0
  60. package/dist/lib/node-esm/{settings-KAMA6RIY.mjs → settings-CLE57WEP.mjs} +2 -2
  61. package/dist/lib/node-esm/types/index.mjs +3 -1
  62. package/dist/types/src/capabilities/ai-client.d.ts.map +1 -1
  63. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  64. package/dist/types/src/capabilities/index.d.ts +1 -1
  65. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  66. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  67. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +1 -1
  68. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +2 -2
  69. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
  70. package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts +2 -2
  71. package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts.map +1 -1
  72. package/dist/types/src/components/Toolbox/Toolbox.d.ts +1 -1
  73. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  74. package/dist/types/src/components/index.d.ts +0 -1
  75. package/dist/types/src/components/index.d.ts.map +1 -1
  76. package/dist/types/src/hooks/index.d.ts +0 -1
  77. package/dist/types/src/hooks/index.d.ts.map +1 -1
  78. package/dist/types/src/hooks/processor.d.ts.map +1 -1
  79. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
  80. package/dist/types/src/tools/function.d.ts +1 -1
  81. package/dist/types/src/tools/function.d.ts.map +1 -1
  82. package/dist/types/src/tools/openapi.d.ts.map +1 -1
  83. package/dist/types/src/types/service.d.ts +96 -95
  84. package/dist/types/src/types/service.d.ts.map +1 -1
  85. package/dist/types/src/types/template.d.ts +52 -52
  86. package/dist/types/src/types/template.d.ts.map +1 -1
  87. package/dist/types/src/types/types.d.ts +20 -18
  88. package/dist/types/src/types/types.d.ts.map +1 -1
  89. package/package.json +61 -58
  90. package/src/AssistantPlugin.tsx +2 -2
  91. package/src/capabilities/ai-client.ts +0 -1
  92. package/src/capabilities/app-graph-builder.ts +2 -26
  93. package/src/capabilities/index.ts +1 -1
  94. package/src/capabilities/react-surface.tsx +2 -15
  95. package/src/components/AssistantSettings/AssistantSettings.tsx +28 -6
  96. package/src/components/PromptSettings.tsx +2 -2
  97. package/src/components/TemplateEditor/TemplateForm.tsx +2 -2
  98. package/src/components/Thread/ThreadContainer.stories.tsx +6 -5
  99. package/src/components/Thread/ThreadMessage.tsx +5 -2
  100. package/src/components/Toolbox/Toolbox.tsx +1 -1
  101. package/src/components/index.ts +0 -1
  102. package/src/hooks/index.ts +0 -1
  103. package/src/hooks/processor.ts +25 -2
  104. package/src/hooks/useChatProcessor.tsx +3 -2
  105. package/src/tools/function.ts +2 -2
  106. package/src/tools/openapi.ts +4 -3
  107. package/src/translations.ts +1 -1
  108. package/src/types/service.ts +39 -37
  109. package/src/types/template.ts +27 -25
  110. package/src/types/types.ts +20 -17
  111. package/dist/lib/browser/app-graph-builder-GU6ZWSP4.mjs.map +0 -7
  112. package/dist/lib/browser/chunk-FQ4L5NYW.mjs.map +0 -7
  113. package/dist/lib/browser/chunk-IAMR2FAE.mjs +0 -183
  114. package/dist/lib/browser/chunk-IAMR2FAE.mjs.map +0 -7
  115. package/dist/lib/browser/chunk-SBFJKCVU.mjs.map +0 -7
  116. package/dist/lib/browser/react-surface-JOATHBJ4.mjs.map +0 -7
  117. package/dist/lib/node/app-graph-builder-CEMLCKAF.cjs.map +0 -7
  118. package/dist/lib/node/chunk-APRU3QWK.cjs +0 -206
  119. package/dist/lib/node/chunk-APRU3QWK.cjs.map +0 -7
  120. package/dist/lib/node/chunk-ENBPNIJZ.cjs.map +0 -7
  121. package/dist/lib/node/chunk-KWBQ5P7D.cjs.map +0 -7
  122. package/dist/lib/node/react-surface-7RIXMLMN.cjs.map +0 -7
  123. package/dist/lib/node-esm/app-graph-builder-Y45WYAWL.mjs.map +0 -7
  124. package/dist/lib/node-esm/chunk-JE47GNTB.mjs.map +0 -7
  125. package/dist/lib/node-esm/chunk-MXK2EANZ.mjs +0 -184
  126. package/dist/lib/node-esm/chunk-MXK2EANZ.mjs.map +0 -7
  127. package/dist/lib/node-esm/chunk-PFWTW22U.mjs.map +0 -7
  128. package/dist/lib/node-esm/react-surface-UUHNOYST.mjs.map +0 -7
  129. package/dist/types/src/components/ServiceRegistry/ServiceRegistry.d.ts +0 -6
  130. package/dist/types/src/components/ServiceRegistry/ServiceRegistry.d.ts.map +0 -1
  131. package/dist/types/src/components/ServiceRegistry/ServiceRegistry.stories.d.ts +0 -8
  132. package/dist/types/src/components/ServiceRegistry/ServiceRegistry.stories.d.ts.map +0 -1
  133. package/dist/types/src/components/ServiceRegistry/index.d.ts +0 -2
  134. package/dist/types/src/components/ServiceRegistry/index.d.ts.map +0 -1
  135. package/dist/types/src/hooks/invocation-handler.d.ts +0 -5
  136. package/dist/types/src/hooks/invocation-handler.d.ts.map +0 -1
  137. package/dist/types/src/hooks/useLocalTriggerManager.d.ts +0 -3
  138. package/dist/types/src/hooks/useLocalTriggerManager.d.ts.map +0 -1
  139. package/src/components/ServiceRegistry/ServiceRegistry.stories.tsx +0 -49
  140. package/src/components/ServiceRegistry/ServiceRegistry.tsx +0 -76
  141. package/src/components/ServiceRegistry/index.ts +0 -5
  142. package/src/hooks/invocation-handler.ts +0 -107
  143. package/src/hooks/useLocalTriggerManager.ts +0 -82
  144. /package/dist/lib/browser/{AssistantDialog-77B4BSXR.mjs.map → AssistantDialog-WX6EKSXI.mjs.map} +0 -0
  145. /package/dist/lib/browser/{ChatContainer-4AMJKO3T.mjs.map → ChatContainer-HMNWYDQ5.mjs.map} +0 -0
  146. /package/dist/lib/browser/{intent-resolver-YAQELTFQ.mjs.map → intent-resolver-MGHOSZY3.mjs.map} +0 -0
  147. /package/dist/lib/browser/{settings-PAJLJEVW.mjs.map → settings-OZX7J65A.mjs.map} +0 -0
  148. /package/dist/lib/node/{AssistantDialog-7V7RRSIL.cjs.map → AssistantDialog-2OTAZADX.cjs.map} +0 -0
  149. /package/dist/lib/node/{ChatContainer-UWYNOALW.cjs.map → ChatContainer-3CTBKBS2.cjs.map} +0 -0
  150. /package/dist/lib/node/{intent-resolver-RNMYSJ3E.cjs.map → intent-resolver-Z2NTL2FV.cjs.map} +0 -0
  151. /package/dist/lib/node/{settings-JBEYMZ4S.cjs.map → settings-WLTC7XO5.cjs.map} +0 -0
  152. /package/dist/lib/node-esm/{AssistantDialog-N24M73FW.mjs.map → AssistantDialog-GNLPYXY4.mjs.map} +0 -0
  153. /package/dist/lib/node-esm/{ChatContainer-KPWY5UK4.mjs.map → ChatContainer-FGHDDORQ.mjs.map} +0 -0
  154. /package/dist/lib/node-esm/{intent-resolver-V2ZFI5C4.mjs.map → intent-resolver-DMQXPV2H.mjs.map} +0 -0
  155. /package/dist/lib/node-esm/{settings-KAMA6RIY.mjs.map → settings-CLE57WEP.mjs.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/AssistantSettings/AssistantSettings.tsx", "../../../src/components/PromptSettings.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/assistant';\nimport { Input, Select, useTranslation } from '@dxos/react-ui';\nimport { DeprecatedFormContainer, DeprecatedFormInput } from '@dxos/react-ui-form';\n\nimport { ASSISTANT_PLUGIN } from '../../meta';\nimport { LLM_PROVIDERS, type AssistantSettingsProps } 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: AssistantSettingsProps }) => {\n const { t } = useTranslation(ASSISTANT_PLUGIN);\n\n return (\n <DeprecatedFormContainer>\n <DeprecatedFormInput label={t('settings custom prompts label')}>\n <Input.Switch\n checked={!!settings.customPrompts}\n onCheckedChange={(checked) => (settings.customPrompts = checked)}\n />\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={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.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={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.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={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.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n </DeprecatedFormContainer>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Match, type Schema } from 'effect';\nimport React, { type ChangeEvent, useCallback } from 'react';\n\nimport { debounce } from '@dxos/async';\nimport { Input, Select, Toolbar, useTranslation } from '@dxos/react-ui';\n\nimport { ASSISTANT_PLUGIN } from '../meta';\nimport { TemplateKinds, type TemplateType, type TemplateKindSchema } from '../types';\n\nexport const PromptSettings = ({ template }: { template: TemplateType }) => {\n const { t } = useTranslation(ASSISTANT_PLUGIN);\n\n const handleKindChange = useCallback(\n (value: string) => {\n const kind = Match.type<string>().pipe(\n Match.withReturnType<Schema.Schema.Type<typeof TemplateKindSchema>>(),\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='p-2 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 {TemplateKinds.map((kind) => (\n <Select.Option key={kind} value={kind}>\n {kind}\n </Select.Option>\n ))}\n </Select.Viewport>\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 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport * from './AssistantSettings';\nexport * from './PromptSettings';\nexport * from './TemplateEditor';\nexport * from './Thread';\nexport * from './Toolbox';\n\n// TODO(burdon): Lazy loading causes issues with Tabster.\n// Repro: open assistant dialog then close.\n// https://github.com/microsoft/fluentui/issues/34020\nexport const AssistantDialog = lazy(() => import('./AssistantDialog'));\nexport const ChatContainer = lazy(() => import('./ChatContainer'));\nexport const TemplateContainer = lazy(() => import('./TemplateContainer'));\n"],
5
+ "mappings": "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",
6
+ "names": ["import_react", "import_react_ui", "DEFAULT_VALUE", "LLM_PROVIDER_LABELS", "edge", "ollama", "lmstudio", "AssistantSettings", "settings", "t", "useTranslation", "ASSISTANT_PLUGIN", "React", "DeprecatedFormContainer", "DeprecatedFormInput", "label", "Input", "Switch", "checked", "customPrompts", "onCheckedChange", "Select", "Root", "value", "llmProvider", "onValueChange", "undefined", "TriggerButton", "placeholder", "Portal", "Content", "Viewport", "Option", "LLM_PROVIDERS", "map", "model", "key", "edgeModel", "DEFAULT_EDGE_MODELS", "ollamaModel", "DEFAULT_OLLAMA_MODELS", "PromptSettings", "template", "handleKindChange", "useCallback", "kind", "Match", "type", "pipe", "withReturnType", "when", "include", "typename", "description", "orElse", "handleTypenameChange", "debounce", "event", "target", "handleDescriptionChange", "div", "className", "h2", "Toolbar", "Button", "asChild", "TemplateKinds", "TextInput", "defaultValue", "onChange", "AssistantDialog", "lazy", "ChatContainer", "TemplateContainer"]
7
+ }
@@ -26,35 +26,35 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var chunk_ENBPNIJZ_exports = {};
30
- __export(chunk_ENBPNIJZ_exports, {
29
+ var chunk_XC7A3KUG_exports = {};
30
+ __export(chunk_XC7A3KUG_exports, {
31
31
  AiClient: () => AiClient,
32
32
  AppGraphBuilder: () => AppGraphBuilder,
33
- AssistantSettings: () => AssistantSettings,
34
33
  IntentResolver: () => IntentResolver,
35
34
  ReactSurface: () => ReactSurface,
35
+ Settings: () => Settings,
36
36
  Thread: () => Thread,
37
37
  ThreadContainer: () => ThreadContainer,
38
38
  Toolbox: () => Toolbox,
39
- ToolboxContainer: () => ToolboxContainer,
40
- useServices: () => useServices
39
+ ToolboxContainer: () => ToolboxContainer
41
40
  });
42
- module.exports = __toCommonJS(chunk_ENBPNIJZ_exports);
41
+ module.exports = __toCommonJS(chunk_XC7A3KUG_exports);
43
42
  var import_chunk_GBUNQ257 = require("./chunk-GBUNQ257.cjs");
44
- var import_chunk_APRU3QWK = require("./chunk-APRU3QWK.cjs");
43
+ var import_chunk_VG2UQY4S = require("./chunk-VG2UQY4S.cjs");
45
44
  var import_chunk_Q5XWEMHB = require("./chunk-Q5XWEMHB.cjs");
46
45
  var import_react = __toESM(require("react"));
47
46
  var import_app_framework = require("@dxos/app-framework");
48
47
  var import_artifact = require("@dxos/artifact");
49
- var import_types = require("@dxos/functions/types");
48
+ var import_functions = require("@dxos/functions");
50
49
  var import_log = require("@dxos/log");
51
50
  var import_echo = require("@dxos/react-client/echo");
52
51
  var import_react_ui_theme = require("@dxos/react-ui-theme");
53
52
  var import_artifact2 = require("@dxos/artifact");
54
53
  var import_echo_schema = require("@dxos/echo-schema");
55
- var import_types2 = require("@dxos/functions/types");
54
+ var import_functions2 = require("@dxos/functions");
56
55
  var import_log2 = require("@dxos/log");
57
56
  var import_echo2 = require("@dxos/react-client/echo");
57
+ var import_effect = require("effect");
58
58
  var import_jsonpointer = __toESM(require("jsonpointer"));
59
59
  var import_artifact3 = require("@dxos/artifact");
60
60
  var import_echo_schema2 = require("@dxos/echo-schema");
@@ -105,54 +105,40 @@ var import_signals_core = require("@preact/signals-core");
105
105
  var import_assistant = require("@dxos/assistant");
106
106
  var import_invariant4 = require("@dxos/invariant");
107
107
  var import_log6 = require("@dxos/log");
108
+ var import_echo4 = require("@dxos/react-client/echo");
108
109
  var import_react8 = require("react");
109
110
  var import_app_framework3 = require("@dxos/app-framework");
110
111
  var import_artifact4 = require("@dxos/artifact");
111
112
  var import_assistant2 = require("@dxos/assistant");
112
- var import_types3 = require("@dxos/functions/types");
113
+ var import_functions3 = require("@dxos/functions");
113
114
  var import_log7 = require("@dxos/log");
114
115
  var import_react_client = require("@dxos/react-client");
115
- var import_echo4 = require("@dxos/react-client/echo");
116
+ var import_echo5 = require("@dxos/react-client/echo");
116
117
  var import_util5 = require("@dxos/util");
117
118
  var import_app_framework4 = require("@dxos/app-framework");
118
119
  var import_react9 = require("react");
119
- var import_async2 = require("@dxos/async");
120
- var import_context = require("@dxos/context");
121
- var import_functions = require("@dxos/functions");
122
- var import_types4 = require("@dxos/functions/types");
123
- var import_invariant5 = require("@dxos/invariant");
124
- var import_log8 = require("@dxos/log");
125
- var import_react_client2 = require("@dxos/react-client");
126
- var import_echo5 = require("@dxos/react-client/echo");
127
- var import_async3 = require("@dxos/async");
128
- var import_echo_db = require("@dxos/echo-db");
129
- var import_types5 = require("@dxos/functions/types");
130
- var import_invariant6 = require("@dxos/invariant");
131
120
  var import_keys2 = require("@dxos/keys");
132
- var import_log9 = require("@dxos/log");
133
- var import_react10 = require("react");
134
- var import_keys3 = require("@dxos/keys");
135
121
  var import_echo6 = require("@dxos/react-client/echo");
136
- var import_react11 = require("react");
122
+ var import_react10 = require("react");
137
123
  var import_artifact5 = require("@dxos/artifact");
138
124
  var import_assistant3 = require("@dxos/assistant");
139
125
  var import_echo_schema3 = require("@dxos/echo-schema");
126
+ var import_react11 = require("react");
140
127
  var import_react12 = require("react");
141
- var import_react13 = require("react");
142
128
  var import_app_framework5 = require("@dxos/app-framework");
143
129
  var import_echo_schema4 = require("@dxos/echo-schema");
144
- var import_log10 = require("@dxos/log");
130
+ var import_log8 = require("@dxos/log");
145
131
  var import_echo7 = require("@dxos/react-client/echo");
146
132
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-assistant/src/tools/function.ts";
147
133
  var covertFunctionToTool = (fn, edgeUrl, spaceId) => {
148
134
  if (!fn.description || !fn.inputSchema) {
149
135
  return void 0;
150
136
  }
151
- const existingFunctionUrl = (0, import_types2.getUserFunctionUrlInMetadata)((0, import_echo2.getMeta)(fn));
137
+ const existingFunctionUrl = (0, import_functions2.getUserFunctionUrlInMetadata)((0, import_echo2.getMeta)(fn));
152
138
  if (!existingFunctionUrl) {
153
139
  return void 0;
154
140
  }
155
- const url = (0, import_types2.getInvocationUrl)(existingFunctionUrl, edgeUrl, {
141
+ const url = (0, import_functions2.getInvocationUrl)(existingFunctionUrl, edgeUrl, {
156
142
  spaceId
157
143
  });
158
144
  return (0, import_artifact2.defineTool)("user-function", {
@@ -185,7 +171,7 @@ var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-assista
185
171
  var createToolsFromService = async (service) => {
186
172
  (0, import_invariant.invariant)(service.interfaces?.length === 1 && service.interfaces[0].kind === "api", void 0, {
187
173
  F: __dxlog_file2,
188
- L: 22,
174
+ L: 23,
189
175
  S: void 0,
190
176
  A: [
191
177
  "service.interfaces?.length === 1 && service.interfaces[0].kind === 'api'",
@@ -195,7 +181,7 @@ var createToolsFromService = async (service) => {
195
181
  const iface = service.interfaces[0];
196
182
  (0, import_invariant.invariant)(iface.schemaUrl, void 0, {
197
183
  F: __dxlog_file2,
198
- L: 24,
184
+ L: 25,
199
185
  S: void 0,
200
186
  A: [
201
187
  "iface.schemaUrl",
@@ -204,7 +190,7 @@ var createToolsFromService = async (service) => {
204
190
  });
205
191
  (0, import_invariant.invariant)(iface.schemaUrl, void 0, {
206
192
  F: __dxlog_file2,
207
- L: 25,
193
+ L: 26,
208
194
  S: void 0,
209
195
  A: [
210
196
  "iface.schemaUrl",
@@ -222,7 +208,7 @@ var createToolsFromApi = async (url, options) => {
222
208
  spec
223
209
  }, {
224
210
  F: __dxlog_file2,
225
- L: 32,
211
+ L: 33,
226
212
  S: void 0,
227
213
  C: (f, a) => f(...a)
228
214
  });
@@ -240,7 +226,7 @@ var createToolsFromApi = async (url, options) => {
240
226
  methodItem
241
227
  }, {
242
228
  F: __dxlog_file2,
243
- L: 44,
229
+ L: 45,
244
230
  S: void 0,
245
231
  C: (f, a) => f(...a)
246
232
  });
@@ -258,7 +244,7 @@ var createToolsFromApi = async (url, options) => {
258
244
  parameter
259
245
  }, {
260
246
  F: __dxlog_file2,
261
- L: 59,
247
+ L: 60,
262
248
  S: void 0,
263
249
  C: (f, a) => f(...a)
264
250
  });
@@ -281,11 +267,11 @@ var createToolsFromApi = async (url, options) => {
281
267
  inputSchema
282
268
  }, {
283
269
  F: __dxlog_file2,
284
- L: 84,
270
+ L: 85,
285
271
  S: void 0,
286
272
  C: (f, a) => f(...a)
287
273
  });
288
- import_echo_schema2.S.validateSync(import_echo_schema2.JsonSchemaType)(inputSchema);
274
+ import_effect.Schema.validateSync(import_echo_schema2.JsonSchemaType)(inputSchema);
289
275
  const description = methodItem.description ?? methodItem.summary;
290
276
  if (!description) {
291
277
  import_log3.log.warn("no description", {
@@ -293,7 +279,7 @@ var createToolsFromApi = async (url, options) => {
293
279
  method
294
280
  }, {
295
281
  F: __dxlog_file2,
296
- L: 89,
282
+ L: 90,
297
283
  S: void 0,
298
284
  C: (f, a) => f(...a)
299
285
  });
@@ -369,7 +355,7 @@ var callApiEndpoint = async (endpoint, input) => {
369
355
  input
370
356
  }, {
371
357
  F: __dxlog_file2,
372
- L: 173,
358
+ L: 174,
373
359
  S: void 0,
374
360
  C: (f, a) => f(...a)
375
361
  });
@@ -398,7 +384,7 @@ var callApiEndpoint = async (endpoint, input) => {
398
384
  case "body": {
399
385
  const value = input[parameter.name];
400
386
  const effectSchema = (0, import_echo_schema2.toEffectSchema)(parameter.schema);
401
- import_echo_schema2.S.validateSync(effectSchema)(value);
387
+ import_effect.Schema.validateSync(effectSchema)(value);
402
388
  if (body) {
403
389
  throw new Error(`Duplicate body parameter: ${parameter.name}`);
404
390
  }
@@ -428,7 +414,7 @@ var callApiEndpoint = async (endpoint, input) => {
428
414
  request
429
415
  }, {
430
416
  F: __dxlog_file2,
431
- L: 236,
417
+ L: 237,
432
418
  S: void 0,
433
419
  C: (f, a) => f(...a)
434
420
  });
@@ -439,7 +425,7 @@ var callApiEndpoint = async (endpoint, input) => {
439
425
  statusText: response.statusText
440
426
  }, {
441
427
  F: __dxlog_file2,
442
- L: 239,
428
+ L: 240,
443
429
  S: void 0,
444
430
  C: (f, a) => f(...a)
445
431
  });
@@ -463,7 +449,7 @@ var callApiEndpoint = async (endpoint, input) => {
463
449
  error
464
450
  }, {
465
451
  F: __dxlog_file2,
466
- L: 257,
452
+ L: 258,
467
453
  S: void 0,
468
454
  C: (f, a) => f(...a)
469
455
  });
@@ -474,7 +460,7 @@ var callApiEndpoint = async (endpoint, input) => {
474
460
  error
475
461
  }, {
476
462
  F: __dxlog_file2,
477
- L: 261,
463
+ L: 262,
478
464
  S: void 0,
479
465
  C: (f, a) => f(...a)
480
466
  });
@@ -489,7 +475,7 @@ var getEndpointUrl = (endpoint) => {
489
475
  } else {
490
476
  (0, import_invariant.invariant)(!isV3_1(endpoint.document), void 0, {
491
477
  F: __dxlog_file2,
492
- L: 272,
478
+ L: 273,
493
479
  S: void 0,
494
480
  A: [
495
481
  "!isV3_1(endpoint.document)",
@@ -509,7 +495,7 @@ var resolveAuthorization = async (authorization) => {
509
495
  case "api-key": {
510
496
  (0, import_invariant.invariant)(authorization.placement.type === "authorization-header", void 0, {
511
497
  F: __dxlog_file2,
512
- L: 288,
498
+ L: 289,
513
499
  S: void 0,
514
500
  A: [
515
501
  "authorization.placement.type === 'authorization-header'",
@@ -547,7 +533,7 @@ var resolveJsonSchema = (schema, base) => {
547
533
  base
548
534
  }, {
549
535
  F: __dxlog_file2,
550
- L: 321,
536
+ L: 322,
551
537
  S: void 0,
552
538
  C: (f, a) => f(...a)
553
539
  });
@@ -619,7 +605,7 @@ var Section = ({ title, items, striped }) => {
619
605
  };
620
606
  var ToolboxContainer = ({ classNames, space }) => {
621
607
  const artifactDefinitions = (0, import_app_framework.useCapabilities)(import_app_framework.Capabilities.ArtifactDefinition);
622
- const services = (0, import_echo.useQuery)(space, import_echo.Filter.schema(import_chunk_APRU3QWK.ServiceType));
608
+ const services = (0, import_echo.useQuery)(space, import_echo.Filter.schema(import_chunk_VG2UQY4S.ServiceType));
623
609
  const [serviceTools, setServiceTools] = (0, import_react.useState)([]);
624
610
  (0, import_react.useEffect)(() => {
625
611
  (0, import_log.log)("creating service tools...", {
@@ -640,7 +626,7 @@ var ToolboxContainer = ({ classNames, space }) => {
640
626
  }, [
641
627
  services
642
628
  ]);
643
- const functions = (0, import_echo.useQuery)(space, import_echo.Filter.schema(import_types.FunctionType));
629
+ const functions = (0, import_echo.useQuery)(space, import_echo.Filter.schema(import_functions.FunctionType));
644
630
  return /* @__PURE__ */ import_react.default.createElement(Toolbox, {
645
631
  classNames,
646
632
  artifacts: artifactDefinitions,
@@ -837,7 +823,7 @@ var components = {
837
823
  }
838
824
  return /* @__PURE__ */ import_react3.default.createElement(ToggleContainer2, {
839
825
  // open={open}
840
- defaultOpen: block.disposition === "cot" && block.pending,
826
+ defaultOpen: systemDispositions.includes(block.disposition ?? "") && block.pending,
841
827
  title,
842
828
  icon: block.pending ? /* @__PURE__ */ import_react3.default.createElement(import_react_ui.Icon, {
843
829
  icon: "ph--circle-notch--regular",
@@ -848,7 +834,7 @@ var components = {
848
834
  content: block.text,
849
835
  classNames: [
850
836
  "pbe-2",
851
- block.disposition === "cot" && "text-sm text-subdued"
837
+ systemDispositions.includes(block.disposition ?? "") && "text-sm text-subdued"
852
838
  ]
853
839
  }));
854
840
  },
@@ -925,8 +911,13 @@ var titles = {
925
911
  ["artifact"]: "Artifact",
926
912
  ["tool_use"]: "Tool request",
927
913
  ["tool_result"]: "Tool result",
928
- ["tool_list"]: "Tools"
914
+ ["tool_list"]: "Tools",
915
+ ["artifact-update"]: "Artifact(s) changed"
929
916
  };
917
+ var systemDispositions = [
918
+ "cot",
919
+ "artifact-update"
920
+ ];
930
921
  var messageReducer = ({ current, messages }, message) => {
931
922
  let i = 0;
932
923
  for (const block of message.content) {
@@ -1490,7 +1481,7 @@ var ChatProcessor = class {
1490
1481
  */
1491
1482
  async request(message, options = {}) {
1492
1483
  this._session = new import_assistant.AISession({
1493
- operationModel: "immediate"
1484
+ operationModel: "configured"
1494
1485
  });
1495
1486
  this._session.message.on((message2) => {
1496
1487
  (0, import_signals_core.batch)(() => {
@@ -1517,10 +1508,31 @@ var ChatProcessor = class {
1517
1508
  client: this._ai,
1518
1509
  history: options.history ?? [],
1519
1510
  artifacts: this._artifacts ?? [],
1511
+ requiredArtifactIds: this._artifacts?.map((artifact) => artifact.id) ?? [],
1520
1512
  tools: this._tools ?? [],
1521
1513
  prompt: message,
1522
1514
  systemPrompt: this._options.systemPrompt,
1523
1515
  extensions: this._extensions,
1516
+ artifactDiffResolver: async (artifacts) => {
1517
+ const space = this._extensions?.space;
1518
+ if (!space) {
1519
+ return /* @__PURE__ */ new Map();
1520
+ }
1521
+ const versions = /* @__PURE__ */ new Map();
1522
+ await Promise.all(artifacts.map(async (artifact) => {
1523
+ const { objects: [object] } = await space.db.query({
1524
+ id: artifact.id
1525
+ }).run();
1526
+ if (!object) {
1527
+ return;
1528
+ }
1529
+ versions.set(artifact.id, {
1530
+ version: (0, import_echo4.getVersion)(object),
1531
+ diff: `Current state: ${JSON.stringify(object)}`
1532
+ });
1533
+ }));
1534
+ return versions;
1535
+ },
1524
1536
  generationOptions: {
1525
1537
  model: this._options.model
1526
1538
  }
@@ -1529,7 +1541,7 @@ var ChatProcessor = class {
1529
1541
  messages
1530
1542
  }, {
1531
1543
  F: __dxlog_file6,
1532
- L: 137,
1544
+ L: 160,
1533
1545
  S: this,
1534
1546
  C: (f, a) => f(...a)
1535
1547
  });
@@ -1537,7 +1549,7 @@ var ChatProcessor = class {
1537
1549
  } catch (err) {
1538
1550
  import_log6.log.catch(err, void 0, {
1539
1551
  F: __dxlog_file6,
1540
- L: 140,
1552
+ L: 163,
1541
1553
  S: this,
1542
1554
  C: (f, a) => f(...a)
1543
1555
  });
@@ -1562,7 +1574,7 @@ var ChatProcessor = class {
1562
1574
  async cancel() {
1563
1575
  import_log6.log.info("cancelling...", void 0, {
1564
1576
  F: __dxlog_file6,
1565
- L: 158,
1577
+ L: 181,
1566
1578
  S: this,
1567
1579
  C: (f, a) => f(...a)
1568
1580
  });
@@ -1584,23 +1596,30 @@ var AIServiceOverloadedError = class extends Error {
1584
1596
  this.code = "AI_SERVICE_OVERLOADED";
1585
1597
  }
1586
1598
  };
1587
- var AiClient = (0, import_app_framework4.lazy)(() => import("./ai-client-URCCYU6B.cjs"));
1588
- var AppGraphBuilder = (0, import_app_framework4.lazy)(() => import("./app-graph-builder-CEMLCKAF.cjs"));
1589
- var IntentResolver = (0, import_app_framework4.lazy)(() => import("./intent-resolver-RNMYSJ3E.cjs"));
1590
- var ReactSurface = (0, import_app_framework4.lazy)(() => import("./react-surface-7RIXMLMN.cjs"));
1591
- var AssistantSettings = (0, import_app_framework4.lazy)(() => import("./settings-JBEYMZ4S.cjs"));
1599
+ var AiClient = (0, import_app_framework4.lazy)(() => import("./ai-client-3EVTLXTT.cjs"));
1600
+ var AppGraphBuilder = (0, import_app_framework4.lazy)(() => import("./app-graph-builder-BBNLIGYJ.cjs"));
1601
+ var IntentResolver = (0, import_app_framework4.lazy)(() => import("./intent-resolver-Z2NTL2FV.cjs"));
1602
+ var ReactSurface = (0, import_app_framework4.lazy)(() => import("./react-surface-HNXDAZ7C.cjs"));
1603
+ var Settings = (0, import_app_framework4.lazy)(() => import("./settings-WLTC7XO5.cjs"));
1592
1604
  var __dxlog_file7 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-assistant/src/hooks/useChatProcessor.tsx";
1593
- var useChatProcessor = ({ chat, space, settings, part = "deck", associatedArtifact }) => {
1605
+ var useChatProcessor = ({
1606
+ chat,
1607
+ space,
1608
+ settings,
1609
+ // part = 'deck',
1610
+ part,
1611
+ associatedArtifact
1612
+ }) => {
1594
1613
  const aiClient = (0, import_app_framework3.useCapability)(import_chunk_GBUNQ257.AssistantCapabilities.AiClient);
1595
1614
  const globalTools = (0, import_app_framework3.useCapabilities)(import_app_framework3.Capabilities.Tools);
1596
1615
  const artifactDefinitions = (0, import_app_framework3.useCapabilities)(import_app_framework3.Capabilities.ArtifactDefinition);
1597
1616
  const { dispatchPromise: dispatch } = (0, import_app_framework3.useIntentDispatcher)();
1598
- const services = (0, import_echo4.useQuery)(space, import_echo4.Filter.schema(import_chunk_APRU3QWK.ServiceType));
1617
+ const services = (0, import_echo5.useQuery)(space, import_echo5.Filter.schema(import_chunk_VG2UQY4S.ServiceType));
1599
1618
  const [serviceTools, setServiceTools] = (0, import_react8.useState)([]);
1600
1619
  (0, import_react8.useEffect)(() => {
1601
1620
  (0, import_log7.log)("creating service tools...", void 0, {
1602
1621
  F: __dxlog_file7,
1603
- L: 48,
1622
+ L: 49,
1604
1623
  S: void 0,
1605
1624
  C: (f, a) => f(...a)
1606
1625
  });
@@ -1612,14 +1631,14 @@ var useChatProcessor = ({ chat, space, settings, part = "deck", associatedArtifa
1612
1631
  services
1613
1632
  ]);
1614
1633
  const config = (0, import_react_client.useConfig)();
1615
- const functions = (0, import_echo4.useQuery)(space, import_echo4.Filter.schema(import_types3.FunctionType));
1616
- const chatId = (0, import_react8.useMemo)(() => chat ? (0, import_echo4.fullyQualifiedId)(chat) : void 0, [
1634
+ const functions = (0, import_echo5.useQuery)(space, import_echo5.Filter.schema(import_functions3.FunctionType));
1635
+ const chatId = (0, import_react8.useMemo)(() => chat ? (0, import_echo5.fullyQualifiedId)(chat) : void 0, [
1617
1636
  chat
1618
1637
  ]);
1619
1638
  const [tools, extensions] = (0, import_react8.useMemo)(() => {
1620
1639
  (0, import_log7.log)("creating tools...", void 0, {
1621
1640
  F: __dxlog_file7,
1622
- L: 60,
1641
+ L: 61,
1623
1642
  S: void 0,
1624
1643
  C: (f, a) => f(...a)
1625
1644
  });
@@ -1660,7 +1679,7 @@ ${definition.instructions}`),
1660
1679
  settings
1661
1680
  }, {
1662
1681
  F: __dxlog_file7,
1663
- L: 91,
1682
+ L: 92,
1664
1683
  S: void 0,
1665
1684
  C: (f, a) => f(...a)
1666
1685
  });
@@ -1678,13 +1697,12 @@ ${definition.instructions}`),
1678
1697
  ]);
1679
1698
  return processor;
1680
1699
  };
1681
- var registerTriggersMutex = new import_async2.Mutex();
1682
1700
  var useMessageQueue = (chat) => {
1683
1701
  const space = (0, import_echo6.getSpace)(chat);
1684
- const queueDxn = (0, import_react10.useMemo)(() => {
1702
+ const queueDxn = (0, import_react9.useMemo)(() => {
1685
1703
  const dxn = space && chat?.assistantChatQueue.dxn;
1686
- return dxn ? new import_keys3.DXN(import_keys3.DXN.kind.QUEUE, [
1687
- import_keys3.QueueSubspaceTags.DATA,
1704
+ return dxn ? new import_keys2.DXN(import_keys2.DXN.kind.QUEUE, [
1705
+ import_keys2.QueueSubspaceTags.DATA,
1688
1706
  space.id,
1689
1707
  dxn.parts.at(-1)
1690
1708
  ]) : void 0;
@@ -1694,11 +1712,6 @@ var useMessageQueue = (chat) => {
1694
1712
  ]);
1695
1713
  return (0, import_echo6.useQueue)(queueDxn);
1696
1714
  };
1697
- var MockServiceRegistry = class {
1698
- async queryServices(query) {
1699
- return TEST_SERVICES;
1700
- }
1701
- };
1702
1715
  var AMADEUS_AUTH = {
1703
1716
  type: "oauth",
1704
1717
  clientId: "BOEnpLd1sMyKjAPGKYeAPFFy60u53QEG",
@@ -1715,7 +1728,7 @@ var VISUAL_CROSSING_CREDENTIALS = {
1715
1728
  }
1716
1729
  };
1717
1730
  var TEST_SERVICES = [
1718
- (0, import_echo_schema3.create)(import_chunk_APRU3QWK.ServiceType, {
1731
+ (0, import_echo_schema3.create)(import_chunk_VG2UQY4S.ServiceType, {
1719
1732
  serviceId: "amadeus.com/service/FlightSearch",
1720
1733
  name: "Amadeus Flight Search",
1721
1734
  description: "Search for local and international flights.",
@@ -1728,7 +1741,7 @@ var TEST_SERVICES = [
1728
1741
  }
1729
1742
  ]
1730
1743
  }),
1731
- (0, import_echo_schema3.create)(import_chunk_APRU3QWK.ServiceType, {
1744
+ (0, import_echo_schema3.create)(import_chunk_VG2UQY4S.ServiceType, {
1732
1745
  serviceId: "amadeus.com/service/HotelSearch",
1733
1746
  name: "Amadeus Hotel Search",
1734
1747
  description: "Search for local and international hotels.",
@@ -1741,7 +1754,7 @@ var TEST_SERVICES = [
1741
1754
  }
1742
1755
  ]
1743
1756
  }),
1744
- (0, import_echo_schema3.create)(import_chunk_APRU3QWK.ServiceType, {
1757
+ (0, import_echo_schema3.create)(import_chunk_VG2UQY4S.ServiceType, {
1745
1758
  serviceId: "visualcrossing.com/service/Weather",
1746
1759
  name: "Visual Crossing Weather",
1747
1760
  description: "Search for global weather forecasts.",
@@ -1755,7 +1768,7 @@ var TEST_SERVICES = [
1755
1768
  ]
1756
1769
  }),
1757
1770
  // TODO(burdon): Needs auth.
1758
- (0, import_echo_schema3.create)(import_chunk_APRU3QWK.ServiceType, {
1771
+ (0, import_echo_schema3.create)(import_chunk_VG2UQY4S.ServiceType, {
1759
1772
  serviceId: "abstractapi.com/service/GeoLocation",
1760
1773
  name: "Abstract GeoLocation",
1761
1774
  description: "Get the location of any IP address.",
@@ -1772,11 +1785,11 @@ var TEST_SERVICES = [
1772
1785
  //
1773
1786
  ...Array.from({
1774
1787
  length: 20
1775
- }, (_, i) => (0, import_echo_schema3.create)(import_chunk_APRU3QWK.ServiceType, {
1788
+ }, (_, i) => (0, import_echo_schema3.create)(import_chunk_VG2UQY4S.ServiceType, {
1776
1789
  serviceId: `example.com/service/test-${i}`,
1777
1790
  name: `Test ${i}`,
1778
1791
  description: `Test ${i}`,
1779
- category: Object.keys(import_chunk_APRU3QWK.categoryIcons)[Math.floor(Math.random() * Object.keys(import_chunk_APRU3QWK.categoryIcons).length)],
1792
+ category: Object.keys(import_chunk_VG2UQY4S.categoryIcons)[Math.floor(Math.random() * Object.keys(import_chunk_VG2UQY4S.categoryIcons).length)],
1780
1793
  interfaces: [
1781
1794
  {
1782
1795
  kind: "api",
@@ -1785,26 +1798,11 @@ var TEST_SERVICES = [
1785
1798
  ]
1786
1799
  }))
1787
1800
  ];
1788
- var useServices = (space, query) => {
1789
- const registry = (0, import_react11.useMemo)(() => new MockServiceRegistry(), []);
1790
- const [services, setServices] = (0, import_react11.useState)([]);
1791
- (0, import_react11.useEffect)(() => {
1792
- const t = setTimeout(async () => {
1793
- const services2 = await registry.queryServices(query);
1794
- setServices(services2);
1795
- });
1796
- return () => clearTimeout(t);
1797
- }, [
1798
- query,
1799
- registry
1800
- ]);
1801
- return services;
1802
- };
1803
1801
  var __dxlog_file8 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-assistant/src/hooks/useContextProvider.ts";
1804
1802
  var stringMatch = (query, label) => label.toLowerCase().startsWith(query.toLowerCase());
1805
1803
  var useContextProvider = (space) => {
1806
1804
  const artifactDefinitions = (0, import_app_framework5.useCapabilities)(import_app_framework5.Capabilities.ArtifactDefinition);
1807
- return (0, import_react13.useMemo)(() => {
1805
+ return (0, import_react12.useMemo)(() => {
1808
1806
  if (!space) {
1809
1807
  return void 0;
1810
1808
  }
@@ -1813,7 +1811,7 @@ var useContextProvider = (space) => {
1813
1811
  const artifactSchemas = artifactDefinitions.map((artifact) => artifact.schema);
1814
1812
  const { objects } = await space.db.query(import_echo7.Filter.or(...artifactSchemas.map((schema) => import_echo7.Filter.schema(schema)))).run();
1815
1813
  return objects.map((object) => {
1816
- import_log10.log.info("object", {
1814
+ import_log8.log.info("object", {
1817
1815
  object,
1818
1816
  label: (0, import_echo_schema4.getLabel)((0, import_echo_schema4.getSchema)(object), object)
1819
1817
  }, {
@@ -1938,13 +1936,12 @@ var ThreadContainer = ({ classNames, chat, settings, part, associatedArtifact, o
1938
1936
  0 && (module.exports = {
1939
1937
  AiClient,
1940
1938
  AppGraphBuilder,
1941
- AssistantSettings,
1942
1939
  IntentResolver,
1943
1940
  ReactSurface,
1941
+ Settings,
1944
1942
  Thread,
1945
1943
  ThreadContainer,
1946
1944
  Toolbox,
1947
- ToolboxContainer,
1948
- useServices
1945
+ ToolboxContainer
1949
1946
  });
1950
- //# sourceMappingURL=chunk-ENBPNIJZ.cjs.map
1947
+ //# sourceMappingURL=chunk-XC7A3KUG.cjs.map