@dxos/plugin-assistant 0.8.2-main.f081794 → 0.8.2-main.f11618f

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 (120) hide show
  1. package/dist/lib/browser/{AssistantDialog-77B4BSXR.mjs → AssistantDialog-I47GUXWR.mjs} +3 -3
  2. package/dist/lib/browser/{ChatContainer-4AMJKO3T.mjs → ChatContainer-GAYN3FEF.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-ZXKGE3H5.mjs} +5 -35
  6. package/dist/lib/browser/app-graph-builder-ZXKGE3H5.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-FQ4L5NYW.mjs → chunk-7CAHKTZQ.mjs} +56 -45
  8. package/dist/lib/browser/chunk-7CAHKTZQ.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-SBFJKCVU.mjs → chunk-BGMQ2YYP.mjs} +24 -69
  10. package/dist/lib/browser/chunk-BGMQ2YYP.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-IAMR2FAE.mjs → chunk-E7BN4QKP.mjs} +9 -2
  12. package/dist/lib/browser/{chunk-IAMR2FAE.mjs.map → chunk-E7BN4QKP.mjs.map} +3 -3
  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-W6XREK5F.mjs} +2 -2
  16. package/dist/lib/browser/meta.json +1 -1
  17. package/dist/lib/browser/{react-surface-JOATHBJ4.mjs → react-surface-QMI5KG4H.mjs} +5 -14
  18. package/dist/lib/browser/react-surface-QMI5KG4H.mjs.map +7 -0
  19. package/dist/lib/browser/{settings-PAJLJEVW.mjs → settings-LAJZQI4H.mjs} +2 -2
  20. package/dist/lib/browser/types/index.mjs +3 -1
  21. package/dist/lib/node/{AssistantDialog-7V7RRSIL.cjs → AssistantDialog-SDS2TE5L.cjs} +7 -7
  22. package/dist/lib/node/{ChatContainer-UWYNOALW.cjs → ChatContainer-U6AVMAHY.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-TXHPXIIC.cjs} +12 -42
  26. package/dist/lib/node/app-graph-builder-TXHPXIIC.cjs.map +7 -0
  27. package/dist/lib/node/{chunk-APRU3QWK.cjs → chunk-5UELRDHQ.cjs} +13 -5
  28. package/dist/lib/node/{chunk-APRU3QWK.cjs.map → chunk-5UELRDHQ.cjs.map} +3 -3
  29. package/dist/lib/node/{chunk-ENBPNIJZ.cjs → chunk-CWHFK36A.cjs} +76 -64
  30. package/dist/lib/node/chunk-CWHFK36A.cjs.map +7 -0
  31. package/dist/lib/node/{chunk-KWBQ5P7D.cjs → chunk-XBJO453B.cjs} +28 -69
  32. package/dist/lib/node/chunk-XBJO453B.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-MUJMV7II.cjs} +9 -9
  36. package/dist/lib/node/meta.json +1 -1
  37. package/dist/lib/node/{react-surface-7RIXMLMN.cjs → react-surface-SAJF4XBB.cjs} +16 -24
  38. package/dist/lib/node/react-surface-SAJF4XBB.cjs.map +7 -0
  39. package/dist/lib/node/{settings-JBEYMZ4S.cjs → settings-NPXTE6ND.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-KGA5HBFO.mjs} +3 -3
  43. package/dist/lib/node-esm/{ChatContainer-KPWY5UK4.mjs → ChatContainer-XPNXNPSW.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-SV4WC2E2.mjs} +5 -35
  47. package/dist/lib/node-esm/app-graph-builder-SV4WC2E2.mjs.map +7 -0
  48. package/dist/lib/node-esm/{chunk-MXK2EANZ.mjs → chunk-ECYNZYEG.mjs} +9 -2
  49. package/dist/lib/node-esm/{chunk-MXK2EANZ.mjs.map → chunk-ECYNZYEG.mjs.map} +3 -3
  50. package/dist/lib/node-esm/{chunk-PFWTW22U.mjs → chunk-R7Q3OHWG.mjs} +24 -69
  51. package/dist/lib/node-esm/chunk-R7Q3OHWG.mjs.map +7 -0
  52. package/dist/lib/node-esm/{chunk-JE47GNTB.mjs → chunk-XFUXN5QU.mjs} +56 -45
  53. package/dist/lib/node-esm/chunk-XFUXN5QU.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-DZY2O2DG.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-R43NHNMC.mjs} +5 -14
  59. package/dist/lib/node-esm/react-surface-R43NHNMC.mjs.map +7 -0
  60. package/dist/lib/node-esm/{settings-KAMA6RIY.mjs → settings-K3JDH2I5.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/index.d.ts +0 -1
  69. package/dist/types/src/components/index.d.ts.map +1 -1
  70. package/dist/types/src/hooks/processor.d.ts.map +1 -1
  71. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
  72. package/dist/types/src/types/types.d.ts +3 -1
  73. package/dist/types/src/types/types.d.ts.map +1 -1
  74. package/package.json +57 -57
  75. package/src/AssistantPlugin.tsx +2 -2
  76. package/src/capabilities/ai-client.ts +0 -1
  77. package/src/capabilities/app-graph-builder.ts +2 -26
  78. package/src/capabilities/index.ts +1 -1
  79. package/src/capabilities/react-surface.tsx +2 -15
  80. package/src/components/AssistantSettings/AssistantSettings.tsx +28 -6
  81. package/src/components/Thread/ThreadContainer.stories.tsx +3 -3
  82. package/src/components/Thread/ThreadMessage.tsx +5 -2
  83. package/src/components/index.ts +0 -1
  84. package/src/hooks/processor.ts +25 -2
  85. package/src/hooks/useChatProcessor.tsx +2 -1
  86. package/src/translations.ts +1 -1
  87. package/src/types/types.ts +4 -1
  88. package/dist/lib/browser/app-graph-builder-GU6ZWSP4.mjs.map +0 -7
  89. package/dist/lib/browser/chunk-FQ4L5NYW.mjs.map +0 -7
  90. package/dist/lib/browser/chunk-SBFJKCVU.mjs.map +0 -7
  91. package/dist/lib/browser/react-surface-JOATHBJ4.mjs.map +0 -7
  92. package/dist/lib/node/app-graph-builder-CEMLCKAF.cjs.map +0 -7
  93. package/dist/lib/node/chunk-ENBPNIJZ.cjs.map +0 -7
  94. package/dist/lib/node/chunk-KWBQ5P7D.cjs.map +0 -7
  95. package/dist/lib/node/react-surface-7RIXMLMN.cjs.map +0 -7
  96. package/dist/lib/node-esm/app-graph-builder-Y45WYAWL.mjs.map +0 -7
  97. package/dist/lib/node-esm/chunk-JE47GNTB.mjs.map +0 -7
  98. package/dist/lib/node-esm/chunk-PFWTW22U.mjs.map +0 -7
  99. package/dist/lib/node-esm/react-surface-UUHNOYST.mjs.map +0 -7
  100. package/dist/types/src/components/ServiceRegistry/ServiceRegistry.d.ts +0 -6
  101. package/dist/types/src/components/ServiceRegistry/ServiceRegistry.d.ts.map +0 -1
  102. package/dist/types/src/components/ServiceRegistry/ServiceRegistry.stories.d.ts +0 -8
  103. package/dist/types/src/components/ServiceRegistry/ServiceRegistry.stories.d.ts.map +0 -1
  104. package/dist/types/src/components/ServiceRegistry/index.d.ts +0 -2
  105. package/dist/types/src/components/ServiceRegistry/index.d.ts.map +0 -1
  106. package/src/components/ServiceRegistry/ServiceRegistry.stories.tsx +0 -49
  107. package/src/components/ServiceRegistry/ServiceRegistry.tsx +0 -76
  108. package/src/components/ServiceRegistry/index.ts +0 -5
  109. /package/dist/lib/browser/{AssistantDialog-77B4BSXR.mjs.map → AssistantDialog-I47GUXWR.mjs.map} +0 -0
  110. /package/dist/lib/browser/{ChatContainer-4AMJKO3T.mjs.map → ChatContainer-GAYN3FEF.mjs.map} +0 -0
  111. /package/dist/lib/browser/{intent-resolver-YAQELTFQ.mjs.map → intent-resolver-W6XREK5F.mjs.map} +0 -0
  112. /package/dist/lib/browser/{settings-PAJLJEVW.mjs.map → settings-LAJZQI4H.mjs.map} +0 -0
  113. /package/dist/lib/node/{AssistantDialog-7V7RRSIL.cjs.map → AssistantDialog-SDS2TE5L.cjs.map} +0 -0
  114. /package/dist/lib/node/{ChatContainer-UWYNOALW.cjs.map → ChatContainer-U6AVMAHY.cjs.map} +0 -0
  115. /package/dist/lib/node/{intent-resolver-RNMYSJ3E.cjs.map → intent-resolver-MUJMV7II.cjs.map} +0 -0
  116. /package/dist/lib/node/{settings-JBEYMZ4S.cjs.map → settings-NPXTE6ND.cjs.map} +0 -0
  117. /package/dist/lib/node-esm/{AssistantDialog-N24M73FW.mjs.map → AssistantDialog-KGA5HBFO.mjs.map} +0 -0
  118. /package/dist/lib/node-esm/{ChatContainer-KPWY5UK4.mjs.map → ChatContainer-XPNXNPSW.mjs.map} +0 -0
  119. /package/dist/lib/node-esm/{intent-resolver-V2ZFI5C4.mjs.map → intent-resolver-DZY2O2DG.mjs.map} +0 -0
  120. /package/dist/lib/node-esm/{settings-KAMA6RIY.mjs.map → settings-K3JDH2I5.mjs.map} +0 -0
@@ -18,20 +18,21 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var types_exports = {};
20
20
  __export(types_exports, {
21
- AIChatType: () => import_chunk_APRU3QWK.AIChatType,
22
- ApiAuthorization: () => import_chunk_APRU3QWK.ApiAuthorization,
23
- AssistantAction: () => import_chunk_APRU3QWK.AssistantAction,
24
- AssistantSettingsSchema: () => import_chunk_APRU3QWK.AssistantSettingsSchema,
25
- ServiceType: () => import_chunk_APRU3QWK.ServiceType,
26
- TemplateInputSchema: () => import_chunk_APRU3QWK.TemplateInputSchema,
27
- TemplateInputType: () => import_chunk_APRU3QWK.TemplateInputType,
28
- TemplateKindSchema: () => import_chunk_APRU3QWK.TemplateKindSchema,
29
- TemplateKinds: () => import_chunk_APRU3QWK.TemplateKinds,
30
- TemplateType: () => import_chunk_APRU3QWK.TemplateType,
31
- categoryIcons: () => import_chunk_APRU3QWK.categoryIcons
21
+ AIChatType: () => import_chunk_5UELRDHQ.AIChatType,
22
+ ApiAuthorization: () => import_chunk_5UELRDHQ.ApiAuthorization,
23
+ AssistantAction: () => import_chunk_5UELRDHQ.AssistantAction,
24
+ AssistantSettingsSchema: () => import_chunk_5UELRDHQ.AssistantSettingsSchema,
25
+ LLM_PROVIDERS: () => import_chunk_5UELRDHQ.LLM_PROVIDERS,
26
+ ServiceType: () => import_chunk_5UELRDHQ.ServiceType,
27
+ TemplateInputSchema: () => import_chunk_5UELRDHQ.TemplateInputSchema,
28
+ TemplateInputType: () => import_chunk_5UELRDHQ.TemplateInputType,
29
+ TemplateKindSchema: () => import_chunk_5UELRDHQ.TemplateKindSchema,
30
+ TemplateKinds: () => import_chunk_5UELRDHQ.TemplateKinds,
31
+ TemplateType: () => import_chunk_5UELRDHQ.TemplateType,
32
+ categoryIcons: () => import_chunk_5UELRDHQ.categoryIcons
32
33
  });
33
34
  module.exports = __toCommonJS(types_exports);
34
- var import_chunk_APRU3QWK = require("../chunk-APRU3QWK.cjs");
35
+ var import_chunk_5UELRDHQ = require("../chunk-5UELRDHQ.cjs");
35
36
  var import_chunk_Q5XWEMHB = require("../chunk-Q5XWEMHB.cjs");
36
37
  // Annotate the CommonJS export names for ESM import in node:
37
38
  0 && (module.exports = {
@@ -39,6 +40,7 @@ var import_chunk_Q5XWEMHB = require("../chunk-Q5XWEMHB.cjs");
39
40
  ApiAuthorization,
40
41
  AssistantAction,
41
42
  AssistantSettingsSchema,
43
+ LLM_PROVIDERS,
42
44
  ServiceType,
43
45
  TemplateInputSchema,
44
46
  TemplateInputType,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["index.cjs"],
4
- "sourcesContent": ["import {\n AIChatType,\n ApiAuthorization,\n AssistantAction,\n AssistantSettingsSchema,\n ServiceType,\n TemplateInputSchema,\n TemplateInputType,\n TemplateKindSchema,\n TemplateKinds,\n TemplateType,\n categoryIcons\n} from \"../chunk-APRU3QWK.cjs\";\nimport \"../chunk-Q5XWEMHB.cjs\";\nexport {\n AIChatType,\n ApiAuthorization,\n AssistantAction,\n AssistantSettingsSchema,\n ServiceType,\n TemplateInputSchema,\n TemplateInputType,\n TemplateKindSchema,\n TemplateKinds,\n TemplateType,\n categoryIcons\n};\n//# sourceMappingURL=index.cjs.map\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAYO;AACP,4BAAO;",
4
+ "sourcesContent": ["import {\n AIChatType,\n ApiAuthorization,\n AssistantAction,\n AssistantSettingsSchema,\n LLM_PROVIDERS,\n ServiceType,\n TemplateInputSchema,\n TemplateInputType,\n TemplateKindSchema,\n TemplateKinds,\n TemplateType,\n categoryIcons\n} from \"../chunk-5UELRDHQ.cjs\";\nimport \"../chunk-Q5XWEMHB.cjs\";\nexport {\n AIChatType,\n ApiAuthorization,\n AssistantAction,\n AssistantSettingsSchema,\n LLM_PROVIDERS,\n ServiceType,\n TemplateInputSchema,\n TemplateInputType,\n TemplateKindSchema,\n TemplateKinds,\n TemplateType,\n categoryIcons\n};\n//# sourceMappingURL=index.cjs.map\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAaO;AACP,4BAAO;",
6
6
  "names": []
7
7
  }
@@ -1,9 +1,9 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  ThreadContainer
4
- } from "./chunk-JE47GNTB.mjs";
4
+ } from "./chunk-XFUXN5QU.mjs";
5
5
  import "./chunk-6JK5HEUQ.mjs";
6
- import "./chunk-MXK2EANZ.mjs";
6
+ import "./chunk-ECYNZYEG.mjs";
7
7
  import {
8
8
  ASSISTANT_PLUGIN
9
9
  } from "./chunk-ECRK6TUQ.mjs";
@@ -115,4 +115,4 @@ export {
115
115
  AssistantDialog,
116
116
  AssistantDialog_default as default
117
117
  };
118
- //# sourceMappingURL=AssistantDialog-N24M73FW.mjs.map
118
+ //# sourceMappingURL=AssistantDialog-KGA5HBFO.mjs.map
@@ -1,9 +1,9 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  ThreadContainer
4
- } from "./chunk-JE47GNTB.mjs";
4
+ } from "./chunk-XFUXN5QU.mjs";
5
5
  import "./chunk-6JK5HEUQ.mjs";
6
- import "./chunk-MXK2EANZ.mjs";
6
+ import "./chunk-ECYNZYEG.mjs";
7
7
  import {
8
8
  ASSISTANT_PLUGIN
9
9
  } from "./chunk-ECRK6TUQ.mjs";
@@ -31,4 +31,4 @@ export {
31
31
  ChatContainer,
32
32
  ChatContainer_default as default
33
33
  };
34
- //# sourceMappingURL=ChatContainer-KPWY5UK4.mjs.map
34
+ //# sourceMappingURL=ChatContainer-XPNXNPSW.mjs.map
@@ -33,4 +33,4 @@ var ai_client_default = (context) => {
33
33
  export {
34
34
  ai_client_default as default
35
35
  };
36
- //# sourceMappingURL=ai-client-WMHS5EGV.mjs.map
36
+ //# sourceMappingURL=ai-client-LYCBXZI7.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/capabilities/ai-client.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { effect, signal } from '@preact/signals-core';\n\nimport { Capabilities, contributes, type PluginsContext } from '@dxos/app-framework';\nimport { type AIServiceClient, AIServiceEdgeClient, OllamaClient } from '@dxos/assistant';\nimport { ClientCapabilities } from '@dxos/plugin-client';\n\nimport { AssistantCapabilities } from './capabilities';\nimport { ASSISTANT_PLUGIN } from '../meta';\nimport { type AssistantSettingsProps } from '../types';\n\n// TODO(wittjosiah): Factor out.\nconst DEFAULT_AI_SERVICE_URL = 'http://localhost:8788';\n\nexport default (context: PluginsContext) => {\n const client = context.requestCapability(ClientCapabilities.Client);\n const endpoint = client.config.values.runtime?.services?.ai?.server ?? DEFAULT_AI_SERVICE_URL;\n\n const ai = signal<AIServiceClient>(new AIServiceEdgeClient({ endpoint }));\n\n const unsubscribe = effect(() => {\n // TODO(burdon): Could be undefined.\n const settings = context\n .requestCapability(Capabilities.SettingsStore)\n .getStore<AssistantSettingsProps>(ASSISTANT_PLUGIN)?.value;\n\n if (settings?.llmProvider === 'ollama') {\n ai.value = new OllamaClient();\n } else {\n ai.value = new AIServiceEdgeClient({ endpoint });\n }\n });\n\n return contributes(AssistantCapabilities.AiClient, ai, () => unsubscribe());\n};\n"],
5
- "mappings": ";;;;;;;;;AAIA,SAASA,QAAQC,cAAc;AAE/B,SAASC,cAAcC,mBAAwC;AAC/D,SAA+BC,qBAAqBC,oBAAoB;AACxE,SAASC,0BAA0B;AAOnC,IAAMC,yBAAyB;AAE/B,IAAA,oBAAe,CAACC,YAAAA;AACd,QAAMC,SAASD,QAAQE,kBAAkBC,mBAAmBC,MAAM;AAClE,QAAMC,WAAWJ,OAAOK,OAAOC,OAAOC,SAASC,UAAUC,IAAIC,UAAUZ;AAEvE,QAAMW,KAAKE,OAAwB,IAAIC,oBAAoB;IAAER;EAAS,CAAA,CAAA;AAEtE,QAAMS,cAAcC,OAAO,MAAA;AAEzB,UAAMC,WAAWhB,QACdE,kBAAkBe,aAAaC,aAAa,EAC5CC,SAAiCC,gBAAAA,GAAmBC;AAEvD,QAAIL,UAAUM,gBAAgB,UAAU;AACtCZ,SAAGW,QAAQ,IAAIE,aAAAA;IACjB,OAAO;AACLb,SAAGW,QAAQ,IAAIR,oBAAoB;QAAER;MAAS,CAAA;IAChD;EACF,CAAA;AAEA,SAAOmB,YAAYC,sBAAsBC,UAAUhB,IAAI,MAAMI,YAAAA,CAAAA;AAC/D;",
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { effect, signal } from '@preact/signals-core';\n\nimport { Capabilities, contributes, type PluginsContext } from '@dxos/app-framework';\nimport { type AIServiceClient, AIServiceEdgeClient, OllamaClient } from '@dxos/assistant';\nimport { ClientCapabilities } from '@dxos/plugin-client';\n\nimport { AssistantCapabilities } from './capabilities';\nimport { ASSISTANT_PLUGIN } from '../meta';\nimport { type AssistantSettingsProps } from '../types';\n\n// TODO(wittjosiah): Factor out.\nconst DEFAULT_AI_SERVICE_URL = 'http://localhost:8788';\n\nexport default (context: PluginsContext) => {\n const client = context.requestCapability(ClientCapabilities.Client);\n const endpoint = client.config.values.runtime?.services?.ai?.server ?? DEFAULT_AI_SERVICE_URL;\n\n const ai = signal<AIServiceClient>(new AIServiceEdgeClient({ endpoint }));\n\n const unsubscribe = effect(() => {\n const settings = context\n .requestCapability(Capabilities.SettingsStore)\n .getStore<AssistantSettingsProps>(ASSISTANT_PLUGIN)?.value;\n\n if (settings?.llmProvider === 'ollama') {\n ai.value = new OllamaClient();\n } else {\n ai.value = new AIServiceEdgeClient({ endpoint });\n }\n });\n\n return contributes(AssistantCapabilities.AiClient, ai, () => unsubscribe());\n};\n"],
5
+ "mappings": ";;;;;;;;;AAIA,SAASA,QAAQC,cAAc;AAE/B,SAASC,cAAcC,mBAAwC;AAC/D,SAA+BC,qBAAqBC,oBAAoB;AACxE,SAASC,0BAA0B;AAOnC,IAAMC,yBAAyB;AAE/B,IAAA,oBAAe,CAACC,YAAAA;AACd,QAAMC,SAASD,QAAQE,kBAAkBC,mBAAmBC,MAAM;AAClE,QAAMC,WAAWJ,OAAOK,OAAOC,OAAOC,SAASC,UAAUC,IAAIC,UAAUZ;AAEvE,QAAMW,KAAKE,OAAwB,IAAIC,oBAAoB;IAAER;EAAS,CAAA,CAAA;AAEtE,QAAMS,cAAcC,OAAO,MAAA;AACzB,UAAMC,WAAWhB,QACdE,kBAAkBe,aAAaC,aAAa,EAC5CC,SAAiCC,gBAAAA,GAAmBC;AAEvD,QAAIL,UAAUM,gBAAgB,UAAU;AACtCZ,SAAGW,QAAQ,IAAIE,aAAAA;IACjB,OAAO;AACLb,SAAGW,QAAQ,IAAIR,oBAAoB;QAAER;MAAS,CAAA;IAChD;EACF,CAAA;AAEA,SAAOmB,YAAYC,sBAAsBC,UAAUhB,IAAI,MAAMI,YAAAA,CAAAA;AAC/D;",
6
6
  "names": ["effect", "signal", "Capabilities", "contributes", "AIServiceEdgeClient", "OllamaClient", "ClientCapabilities", "DEFAULT_AI_SERVICE_URL", "context", "client", "requestCapability", "ClientCapabilities", "Client", "endpoint", "config", "values", "runtime", "services", "ai", "server", "signal", "AIServiceEdgeClient", "unsubscribe", "effect", "settings", "Capabilities", "SettingsStore", "getStore", "ASSISTANT_PLUGIN", "value", "llmProvider", "OllamaClient", "contributes", "AssistantCapabilities", "AiClient"]
7
7
  }
@@ -3,7 +3,7 @@ import {
3
3
  AIChatType,
4
4
  AssistantAction,
5
5
  TemplateType
6
- } from "./chunk-MXK2EANZ.mjs";
6
+ } from "./chunk-ECYNZYEG.mjs";
7
7
  import {
8
8
  ASSISTANT_DIALOG,
9
9
  ASSISTANT_PLUGIN
@@ -13,11 +13,11 @@ import {
13
13
  import { Capabilities, contributes, createIntent, LayoutAction } from "@dxos/app-framework";
14
14
  import { invariant } from "@dxos/invariant";
15
15
  import { ClientCapabilities } from "@dxos/plugin-client";
16
- import { PLANK_COMPANION_TYPE, ATTENDABLE_PATH_SEPARATOR, DECK_COMPANION_TYPE } from "@dxos/plugin-deck/types";
16
+ import { PLANK_COMPANION_TYPE, ATTENDABLE_PATH_SEPARATOR } from "@dxos/plugin-deck/types";
17
17
  import { createExtension, ROOT_ID } from "@dxos/plugin-graph";
18
18
  import { memoizeQuery } from "@dxos/plugin-space";
19
19
  import { SPACE_TYPE, SpaceAction } from "@dxos/plugin-space/types";
20
- import { Filter, fullyQualifiedId, getSpace, isLiveObject, parseId } from "@dxos/react-client/echo";
20
+ import { Filter, fullyQualifiedId, getSpace, isLiveObject } from "@dxos/react-client/echo";
21
21
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-assistant/src/capabilities/app-graph-builder.ts";
22
22
  var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBuilder, [
23
23
  createExtension({
@@ -77,36 +77,6 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
77
77
  }
78
78
  ]
79
79
  }),
80
- createExtension({
81
- id: `${ASSISTANT_PLUGIN}/service-registry`,
82
- filter: (node) => node.id === "root",
83
- connector: ({ node }) => {
84
- const layout = context.requestCapability(Capabilities.Layout);
85
- const client = context.requestCapability(ClientCapabilities.Client);
86
- const { spaceId } = parseId(layout.workspace);
87
- const space = spaceId ? client.spaces.get(spaceId) : null;
88
- return [
89
- {
90
- id: [
91
- node.id,
92
- "service-registry"
93
- ].join(ATTENDABLE_PATH_SEPARATOR),
94
- type: DECK_COMPANION_TYPE,
95
- data: space,
96
- properties: {
97
- label: [
98
- "service registry label",
99
- {
100
- ns: ASSISTANT_PLUGIN
101
- }
102
- ],
103
- icon: "ph--plugs--regular",
104
- disposition: "hidden"
105
- }
106
- }
107
- ];
108
- }
109
- }),
110
80
  createExtension({
111
81
  id: `${ASSISTANT_PLUGIN}/object-chat-companion`,
112
82
  filter: (node) => isLiveObject(node.data) && node.data.assistantChatQueue && node.data.type !== AIChatType.typename,
@@ -191,7 +161,7 @@ var getOrCreateChat = async (dispatch, space) => {
191
161
  }));
192
162
  invariant(data?.object instanceof AIChatType, void 0, {
193
163
  F: __dxlog_file,
194
- L: 184,
164
+ L: 160,
195
165
  S: void 0,
196
166
  A: [
197
167
  "data?.object instanceof AIChatType",
@@ -207,4 +177,4 @@ var getOrCreateChat = async (dispatch, space) => {
207
177
  export {
208
178
  app_graph_builder_default as default
209
179
  };
210
- //# sourceMappingURL=app-graph-builder-Y45WYAWL.mjs.map
180
+ //# sourceMappingURL=app-graph-builder-SV4WC2E2.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n Capabilities,\n contributes,\n createIntent,\n LayoutAction,\n type PromiseIntentDispatcher,\n type PluginsContext,\n} from '@dxos/app-framework';\nimport { invariant } from '@dxos/invariant';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { PLANK_COMPANION_TYPE, ATTENDABLE_PATH_SEPARATOR } from '@dxos/plugin-deck/types';\nimport { createExtension, type Node, ROOT_ID } from '@dxos/plugin-graph';\nimport { memoizeQuery } from '@dxos/plugin-space';\nimport { SPACE_TYPE, SpaceAction } from '@dxos/plugin-space/types';\nimport { type Space, Filter, fullyQualifiedId, getSpace, isLiveObject } from '@dxos/react-client/echo';\n\nimport { ASSISTANT_DIALOG, ASSISTANT_PLUGIN } from '../meta';\nimport { AIChatType, AssistantAction, TemplateType } from '../types';\n\nexport default (context: PluginsContext) =>\n contributes(Capabilities.AppGraphBuilder, [\n createExtension({\n id: `${ASSISTANT_PLUGIN}/assistant`,\n filter: (node): node is Node<null> => node.id === ROOT_ID,\n actions: () => [\n {\n id: `${LayoutAction.UpdateDialog._tag}/assistant/open`,\n data: async () => {\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n const client = context.requestCapability(ClientCapabilities.Client);\n const layout = context.requestCapability(Capabilities.Layout);\n const { graph } = context.requestCapability(Capabilities.AppGraph);\n\n // TODO(burdon): Get space from workspace.\n // TODO(burdon): If need to create chat, then add to dispatch stack below.\n let chat: AIChatType | undefined;\n if (layout.active.length > 0) {\n const node = graph.findNode(layout.active[0]);\n if (node) {\n const space = getSpace(node.data);\n if (space) {\n chat = await getOrCreateChat(dispatch, space);\n }\n }\n } else {\n const space = client.spaces.default;\n chat = await getOrCreateChat(dispatch, space);\n }\n\n if (!chat) {\n return;\n }\n\n await dispatch(\n createIntent(LayoutAction.UpdateDialog, {\n part: 'dialog',\n subject: ASSISTANT_DIALOG,\n options: {\n state: true,\n blockAlign: 'end',\n props: {\n chat,\n },\n },\n }),\n );\n },\n properties: {\n label: ['open assistant label', { ns: ASSISTANT_PLUGIN }],\n icon: 'ph--star-four--regular',\n disposition: 'pin-end',\n position: 'hoist',\n keyBinding: {\n macos: 'shift+meta+k',\n windows: 'shift+ctrl+k',\n },\n },\n },\n ],\n }),\n\n createExtension({\n id: `${ASSISTANT_PLUGIN}/object-chat-companion`,\n filter: (node): node is Node<AIChatType> =>\n isLiveObject(node.data) && node.data.assistantChatQueue && node.data.type !== AIChatType.typename,\n connector: ({ node }) => [\n {\n id: [node.id, 'assistant-chat'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: 'assistant-chat',\n properties: {\n label: ['assistant chat label', { ns: ASSISTANT_PLUGIN }],\n icon: 'ph--star-four--regular',\n position: 'hoist',\n },\n },\n ],\n }),\n\n createExtension({\n id: `${ASSISTANT_PLUGIN}/root`,\n filter: (node): node is Node<Space> => node.type === SPACE_TYPE,\n connector: ({ node }) => {\n const templates = memoizeQuery(node.data, Filter.schema(TemplateType));\n return templates.length > 0\n ? [\n {\n id: `${ASSISTANT_PLUGIN}/templates`,\n type: `${ASSISTANT_PLUGIN}/templates`,\n data: null,\n properties: {\n label: ['templates label', { ns: ASSISTANT_PLUGIN }],\n icon: 'ph--file-code--regular',\n space: node.data,\n },\n },\n ]\n : [];\n },\n }),\n\n createExtension({\n id: `${ASSISTANT_PLUGIN}/templates`,\n filter: (node): node is Node<null, { space: Space }> => node.id === `${ASSISTANT_PLUGIN}/templates`,\n connector: ({ node }) => {\n const templates = memoizeQuery(node.properties.space, Filter.schema(TemplateType));\n return templates\n .toSorted((a, b) => {\n const nameA = a.name ?? '';\n const nameB = b.name ?? '';\n return nameA.localeCompare(nameB);\n })\n .map((template) => ({\n id: fullyQualifiedId(template),\n type: `${ASSISTANT_PLUGIN}/template`,\n data: template,\n properties: {\n label: template.name ?? ['object placeholder', { ns: ASSISTANT_PLUGIN }],\n icon: 'ph--file-code--regular',\n },\n }));\n },\n }),\n ]);\n\n// TODO(burdon): Factor out.\nconst getOrCreateChat = async (dispatch: PromiseIntentDispatcher, space: Space): Promise<AIChatType | undefined> => {\n const { objects } = await space.db.query(Filter.schema(AIChatType)).run();\n // console.log('objects', JSON.stringify(objects, null, 2));\n if (objects.length > 0) {\n // TODO(burdon): Is this the most recent?\n return objects[objects.length - 1];\n }\n\n const { data } = await dispatch(createIntent(AssistantAction.CreateChat, { spaceId: space.id }));\n invariant(data?.object instanceof AIChatType);\n await dispatch(createIntent(SpaceAction.AddObject, { target: space, object: data.object }));\n return data.object;\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["Capabilities", "contributes", "createIntent", "LayoutAction", "invariant", "ClientCapabilities", "PLANK_COMPANION_TYPE", "ATTENDABLE_PATH_SEPARATOR", "createExtension", "ROOT_ID", "memoizeQuery", "SPACE_TYPE", "SpaceAction", "Filter", "fullyQualifiedId", "getSpace", "isLiveObject", "context", "contributes", "Capabilities", "AppGraphBuilder", "createExtension", "id", "ASSISTANT_PLUGIN", "filter", "node", "ROOT_ID", "actions", "LayoutAction", "UpdateDialog", "_tag", "data", "dispatchPromise", "dispatch", "requestCapability", "IntentDispatcher", "client", "ClientCapabilities", "Client", "layout", "Layout", "graph", "AppGraph", "chat", "active", "length", "findNode", "space", "getSpace", "getOrCreateChat", "spaces", "default", "createIntent", "part", "subject", "ASSISTANT_DIALOG", "options", "state", "blockAlign", "props", "properties", "label", "ns", "icon", "disposition", "position", "keyBinding", "macos", "windows", "isLiveObject", "assistantChatQueue", "type", "AIChatType", "typename", "connector", "join", "ATTENDABLE_PATH_SEPARATOR", "PLANK_COMPANION_TYPE", "SPACE_TYPE", "templates", "memoizeQuery", "Filter", "schema", "TemplateType", "toSorted", "a", "b", "nameA", "name", "nameB", "localeCompare", "map", "template", "fullyQualifiedId", "objects", "db", "query", "run", "AssistantAction", "CreateChat", "spaceId", "invariant", "object", "SpaceAction", "AddObject", "target"]
7
+ }
@@ -161,10 +161,16 @@ var AssistantAction;
161
161
  }
162
162
  AssistantAction2.CreateTemplate = CreateTemplate;
163
163
  })(AssistantAction || (AssistantAction = {}));
164
+ var LLM_PROVIDERS = [
165
+ "edge",
166
+ "ollama",
167
+ "lmstudio"
168
+ ];
164
169
  var AssistantSettingsSchema = S3.mutable(S3.Struct({
165
- llmProvider: S3.optional(S3.Literal("edge", "ollama")),
170
+ llmProvider: S3.optional(S3.Literal(...LLM_PROVIDERS)),
166
171
  edgeModel: S3.optional(S3.String),
167
172
  ollamaModel: S3.optional(S3.String),
173
+ lmstudioModel: S3.optional(S3.String),
168
174
  customPrompts: S3.optional(S3.Boolean)
169
175
  }));
170
176
 
@@ -179,6 +185,7 @@ export {
179
185
  TemplateKindSchema,
180
186
  TemplateType,
181
187
  AssistantAction,
188
+ LLM_PROVIDERS,
182
189
  AssistantSettingsSchema
183
190
  };
184
- //# sourceMappingURL=chunk-MXK2EANZ.mjs.map
191
+ //# sourceMappingURL=chunk-ECYNZYEG.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/types/chat.ts", "../../../src/types/service.ts", "../../../src/types/template.ts", "../../../src/types/types.ts"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Expando, Ref, TypedObject } from '@dxos/echo-schema';\n\nexport class AIChatType extends TypedObject({ typename: 'dxos.org/type/AIChat', version: '0.1.0' })({\n // TODO(wittjosiah): Should be a ref to a Queue.\n assistantChatQueue: Ref(Expando),\n}) {}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { ComputeGraph } from '@dxos/conductor';\nimport { Ref, S, TypedObject, type Ref$ } from '@dxos/echo-schema';\nimport { FunctionType } from '@dxos/functions/types';\n\nconst ApiAuthorizationKey = S.Struct({\n type: S.Literal('api-key'),\n key: S.String,\n placement: S.Union(\n S.Struct({\n type: S.Literal('authorization-header'),\n }),\n S.Struct({\n type: S.Literal('query'),\n name: S.String,\n }),\n ),\n});\n\nconst ApiAuthorizationOauth = S.Struct({\n type: S.Literal('oauth'),\n clientId: S.String,\n clientSecret: S.String,\n tokenUrl: S.String,\n grantType: S.String,\n});\n\nexport const ApiAuthorization = S.Union(ApiAuthorizationKey, ApiAuthorizationOauth);\nexport type ApiAuthorization = S.Schema.Type<typeof ApiAuthorization>;\n\nconst ServiceInterfaceFunction = S.Struct({\n kind: S.Literal('function'),\n fn: Ref(FunctionType) as Ref$<FunctionType>,\n});\n\nconst ServiceInterfaceWorkflow = S.Struct({\n kind: S.Literal('workflow'),\n workflow: Ref(ComputeGraph) as Ref$<ComputeGraph>,\n});\n\nconst ServiceInterfaceApi = S.Struct({\n kind: S.Literal('api'),\n\n /**\n * URL to fetch the openapi schema.\n */\n schemaUrl: S.optional(S.String),\n\n /**\n * Inlined openapi schema.\n */\n schema: S.optional(S.Any),\n\n /**\n * Authorization configuration if required.\n */\n authorization: S.optional(ApiAuthorization),\n});\n\nconst ServiceInterface = S.Union(ServiceInterfaceFunction, ServiceInterfaceWorkflow, ServiceInterfaceApi);\nexport type ServiceInterface = S.Schema.Type<typeof ServiceInterface>;\n\nexport class ServiceType extends TypedObject({ typename: 'dxos.org/type/ServiceType', version: '0.1.0' })({\n serviceId: S.String,\n name: S.optional(S.String),\n description: S.optional(S.String),\n category: S.optional(S.String),\n enabled: S.optional(S.Boolean),\n\n /**\n * Entries exposed: functions, workflows, and APIs.\n */\n interfaces: S.optional(S.Array(ServiceInterface)),\n}) {}\n\n//\n// Service Registry\n//\n\nexport type ServiceQuery = {\n name?: string;\n category?: string;\n};\n\nexport interface BaseServiceRegistry {\n queryServices(query?: ServiceQuery): Promise<ServiceType[]>;\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", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { S, TypedObject } from '@dxos/echo-schema';\n\n// TODO(burdon): Change to S.Literal (and discriminated union).\nexport enum TemplateInputType {\n VALUE = 0,\n PASS_THROUGH = 1,\n RETRIEVER = 2,\n FUNCTION = 3,\n QUERY = 4,\n RESOLVER = 5,\n CONTEXT = 6,\n SCHEMA = 7,\n}\n\nexport const TemplateInputSchema = S.mutable(\n S.Struct({\n name: S.String,\n type: S.optional(S.Enums(TemplateInputType)),\n value: S.optional(S.String),\n }),\n);\n\nexport type TemplateInput = S.Schema.Type<typeof TemplateInputSchema>;\n\nexport const TemplateKinds = ['always', 'schema-matching', 'automatically', 'manual'] as const;\nexport type TemplateKind = (typeof TemplateKinds)[number];\n\nexport const TemplateKindSchema = S.Union(\n S.Struct({\n include: S.Literal('always'),\n }),\n S.Struct({\n include: S.Literal('schema-matching'),\n typename: S.String,\n }),\n S.Struct({\n include: S.Literal('automatically'),\n description: S.String,\n }),\n S.Struct({\n include: S.Literal('manual'),\n }),\n);\n\nexport type TemplateKindType = S.Schema.Type<typeof TemplateKindSchema>;\nexport class TemplateType extends TypedObject({ typename: 'dxos.org/type/Template', version: '0.1.0' })({\n name: S.optional(S.String),\n kind: S.mutable(TemplateKindSchema),\n source: S.String,\n inputs: S.optional(S.mutable(S.Array(TemplateInputSchema))),\n command: S.optional(S.String),\n}) {}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { S } from '@dxos/echo-schema';\n\nimport { AIChatType } from './chat';\nimport { TemplateType } from './template';\nimport { ASSISTANT_PLUGIN } from '../meta';\n\nexport namespace AssistantAction {\n const ASSISTANT_ACTION = `${ASSISTANT_PLUGIN}/action`;\n\n export class CreateChat extends S.TaggedClass<CreateChat>()(`${ASSISTANT_ACTION}/create-chat`, {\n input: S.Struct({\n spaceId: S.optional(S.String),\n name: S.optional(S.String),\n }),\n output: S.Struct({\n object: AIChatType,\n }),\n }) {}\n\n export class CreateTemplate extends S.TaggedClass<CreateTemplate>()(`${ASSISTANT_ACTION}/create-template`, {\n input: S.Struct({\n name: S.optional(S.String),\n }),\n output: S.Struct({\n object: TemplateType,\n }),\n }) {}\n}\n\nexport const AssistantSettingsSchema = S.mutable(\n S.Struct({\n llmProvider: S.optional(S.Literal('edge', 'ollama')),\n edgeModel: S.optional(S.String),\n ollamaModel: S.optional(S.String),\n customPrompts: S.optional(S.Boolean),\n }),\n);\n\nexport type AssistantSettingsProps = S.Schema.Type<typeof AssistantSettingsSchema>;\n"],
5
- "mappings": "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",
6
- "names": ["Expando", "Ref", "TypedObject", "AIChatType", "TypedObject", "typename", "version", "assistantChatQueue", "Ref", "Expando", "ComputeGraph", "Ref", "S", "TypedObject", "FunctionType", "ApiAuthorizationKey", "S", "Struct", "type", "Literal", "key", "String", "placement", "Union", "name", "ApiAuthorizationOauth", "clientId", "clientSecret", "tokenUrl", "grantType", "ApiAuthorization", "ServiceInterfaceFunction", "kind", "fn", "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", "S", "TypedObject", "TemplateInputType", "TemplateInputSchema", "S", "mutable", "Struct", "name", "String", "type", "optional", "Enums", "value", "TemplateKinds", "TemplateKindSchema", "Union", "include", "Literal", "typename", "description", "TemplateType", "TypedObject", "version", "kind", "source", "inputs", "Array", "command", "S", "AssistantAction", "ASSISTANT_ACTION", "ASSISTANT_PLUGIN", "CreateChat", "S", "TaggedClass", "input", "Struct", "spaceId", "optional", "String", "name", "output", "object", "AIChatType", "CreateTemplate", "TemplateType", "AssistantSettingsSchema", "mutable", "llmProvider", "Literal", "edgeModel", "ollamaModel", "customPrompts", "Boolean"]
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Expando, Ref, TypedObject } from '@dxos/echo-schema';\n\nexport class AIChatType extends TypedObject({ typename: 'dxos.org/type/AIChat', version: '0.1.0' })({\n // TODO(wittjosiah): Should be a ref to a Queue.\n assistantChatQueue: Ref(Expando),\n}) {}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { ComputeGraph } from '@dxos/conductor';\nimport { Ref, S, TypedObject, type Ref$ } from '@dxos/echo-schema';\nimport { FunctionType } from '@dxos/functions/types';\n\nconst ApiAuthorizationKey = S.Struct({\n type: S.Literal('api-key'),\n key: S.String,\n placement: S.Union(\n S.Struct({\n type: S.Literal('authorization-header'),\n }),\n S.Struct({\n type: S.Literal('query'),\n name: S.String,\n }),\n ),\n});\n\nconst ApiAuthorizationOauth = S.Struct({\n type: S.Literal('oauth'),\n clientId: S.String,\n clientSecret: S.String,\n tokenUrl: S.String,\n grantType: S.String,\n});\n\nexport const ApiAuthorization = S.Union(ApiAuthorizationKey, ApiAuthorizationOauth);\nexport type ApiAuthorization = S.Schema.Type<typeof ApiAuthorization>;\n\nconst ServiceInterfaceFunction = S.Struct({\n kind: S.Literal('function'),\n fn: Ref(FunctionType) as Ref$<FunctionType>,\n});\n\nconst ServiceInterfaceWorkflow = S.Struct({\n kind: S.Literal('workflow'),\n workflow: Ref(ComputeGraph) as Ref$<ComputeGraph>,\n});\n\nconst ServiceInterfaceApi = S.Struct({\n kind: S.Literal('api'),\n\n /**\n * URL to fetch the openapi schema.\n */\n schemaUrl: S.optional(S.String),\n\n /**\n * Inlined openapi schema.\n */\n schema: S.optional(S.Any),\n\n /**\n * Authorization configuration if required.\n */\n authorization: S.optional(ApiAuthorization),\n});\n\nconst ServiceInterface = S.Union(ServiceInterfaceFunction, ServiceInterfaceWorkflow, ServiceInterfaceApi);\nexport type ServiceInterface = S.Schema.Type<typeof ServiceInterface>;\n\nexport class ServiceType extends TypedObject({ typename: 'dxos.org/type/ServiceType', version: '0.1.0' })({\n serviceId: S.String,\n name: S.optional(S.String),\n description: S.optional(S.String),\n category: S.optional(S.String),\n enabled: S.optional(S.Boolean),\n\n /**\n * Entries exposed: functions, workflows, and APIs.\n */\n interfaces: S.optional(S.Array(ServiceInterface)),\n}) {}\n\n//\n// Service Registry\n//\n\nexport type ServiceQuery = {\n name?: string;\n category?: string;\n};\n\nexport interface BaseServiceRegistry {\n queryServices(query?: ServiceQuery): Promise<ServiceType[]>;\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", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { S, TypedObject } from '@dxos/echo-schema';\n\n// TODO(burdon): Change to S.Literal (and discriminated union).\nexport enum TemplateInputType {\n VALUE = 0,\n PASS_THROUGH = 1,\n RETRIEVER = 2,\n FUNCTION = 3,\n QUERY = 4,\n RESOLVER = 5,\n CONTEXT = 6,\n SCHEMA = 7,\n}\n\nexport const TemplateInputSchema = S.mutable(\n S.Struct({\n name: S.String,\n type: S.optional(S.Enums(TemplateInputType)),\n value: S.optional(S.String),\n }),\n);\n\nexport type TemplateInput = S.Schema.Type<typeof TemplateInputSchema>;\n\nexport const TemplateKinds = ['always', 'schema-matching', 'automatically', 'manual'] as const;\nexport type TemplateKind = (typeof TemplateKinds)[number];\n\nexport const TemplateKindSchema = S.Union(\n S.Struct({\n include: S.Literal('always'),\n }),\n S.Struct({\n include: S.Literal('schema-matching'),\n typename: S.String,\n }),\n S.Struct({\n include: S.Literal('automatically'),\n description: S.String,\n }),\n S.Struct({\n include: S.Literal('manual'),\n }),\n);\n\nexport type TemplateKindType = S.Schema.Type<typeof TemplateKindSchema>;\nexport class TemplateType extends TypedObject({ typename: 'dxos.org/type/Template', version: '0.1.0' })({\n name: S.optional(S.String),\n kind: S.mutable(TemplateKindSchema),\n source: S.String,\n inputs: S.optional(S.mutable(S.Array(TemplateInputSchema))),\n command: S.optional(S.String),\n}) {}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { S } from '@dxos/echo-schema';\n\nimport { AIChatType } from './chat';\nimport { TemplateType } from './template';\nimport { ASSISTANT_PLUGIN } from '../meta';\n\nexport namespace AssistantAction {\n const ASSISTANT_ACTION = `${ASSISTANT_PLUGIN}/action`;\n\n export class CreateChat extends S.TaggedClass<CreateChat>()(`${ASSISTANT_ACTION}/create-chat`, {\n input: S.Struct({\n spaceId: S.optional(S.String),\n name: S.optional(S.String),\n }),\n output: S.Struct({\n object: AIChatType,\n }),\n }) {}\n\n export class CreateTemplate extends S.TaggedClass<CreateTemplate>()(`${ASSISTANT_ACTION}/create-template`, {\n input: S.Struct({\n name: S.optional(S.String),\n }),\n output: S.Struct({\n object: TemplateType,\n }),\n }) {}\n}\n\nexport const LLM_PROVIDERS = ['edge', 'ollama', 'lmstudio'] as const;\n\nexport const AssistantSettingsSchema = S.mutable(\n S.Struct({\n llmProvider: S.optional(S.Literal(...LLM_PROVIDERS)),\n edgeModel: S.optional(S.String),\n ollamaModel: S.optional(S.String),\n lmstudioModel: S.optional(S.String),\n customPrompts: S.optional(S.Boolean),\n }),\n);\n\nexport type AssistantSettingsProps = S.Schema.Type<typeof AssistantSettingsSchema>;\n"],
5
+ "mappings": "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",
6
+ "names": ["Expando", "Ref", "TypedObject", "AIChatType", "TypedObject", "typename", "version", "assistantChatQueue", "Ref", "Expando", "ComputeGraph", "Ref", "S", "TypedObject", "FunctionType", "ApiAuthorizationKey", "S", "Struct", "type", "Literal", "key", "String", "placement", "Union", "name", "ApiAuthorizationOauth", "clientId", "clientSecret", "tokenUrl", "grantType", "ApiAuthorization", "ServiceInterfaceFunction", "kind", "fn", "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", "S", "TypedObject", "TemplateInputType", "TemplateInputSchema", "S", "mutable", "Struct", "name", "String", "type", "optional", "Enums", "value", "TemplateKinds", "TemplateKindSchema", "Union", "include", "Literal", "typename", "description", "TemplateType", "TypedObject", "version", "kind", "source", "inputs", "Array", "command", "S", "AssistantAction", "ASSISTANT_ACTION", "ASSISTANT_PLUGIN", "CreateChat", "S", "TaggedClass", "input", "Struct", "spaceId", "optional", "String", "name", "output", "object", "AIChatType", "CreateTemplate", "TemplateType", "LLM_PROVIDERS", "AssistantSettingsSchema", "mutable", "llmProvider", "Literal", "edgeModel", "ollamaModel", "lmstudioModel", "customPrompts", "Boolean"]
7
7
  }
@@ -1,12 +1,8 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
- useServices
4
- } from "./chunk-JE47GNTB.mjs";
5
- import {
6
- ServiceType,
7
- TemplateKinds,
8
- categoryIcons
9
- } from "./chunk-MXK2EANZ.mjs";
3
+ LLM_PROVIDERS,
4
+ TemplateKinds
5
+ } from "./chunk-ECYNZYEG.mjs";
10
6
  import {
11
7
  ASSISTANT_PLUGIN
12
8
  } from "./chunk-ECRK6TUQ.mjs";
@@ -17,6 +13,11 @@ import { DEFAULT_EDGE_MODELS, DEFAULT_OLLAMA_MODELS } from "@dxos/assistant";
17
13
  import { Input, Select, useTranslation } from "@dxos/react-ui";
18
14
  import { DeprecatedFormContainer, DeprecatedFormInput } from "@dxos/react-ui-form";
19
15
  var DEFAULT_VALUE = "__default";
16
+ var LLM_PROVIDER_LABELS = {
17
+ edge: "DXOS",
18
+ ollama: "Ollama",
19
+ lmstudio: "LM Studio"
20
+ };
20
21
  var AssistantSettings = ({ settings }) => {
21
22
  const { t } = useTranslation(ASSISTANT_PLUGIN);
22
23
  return /* @__PURE__ */ React.createElement(DeprecatedFormContainer, null, /* @__PURE__ */ React.createElement(DeprecatedFormInput, {
@@ -26,10 +27,19 @@ var AssistantSettings = ({ settings }) => {
26
27
  onCheckedChange: (checked) => settings.customPrompts = checked
27
28
  })), /* @__PURE__ */ React.createElement(DeprecatedFormInput, {
28
29
  label: t("settings llm provider label")
29
- }, /* @__PURE__ */ React.createElement(Input.Switch, {
30
- checked: settings.llmProvider === "ollama",
31
- onCheckedChange: (checked) => settings.llmProvider = checked ? "ollama" : "edge"
32
- })), /* @__PURE__ */ React.createElement(DeprecatedFormInput, {
30
+ }, /* @__PURE__ */ React.createElement(Select.Root, {
31
+ value: settings.llmProvider ?? "edge",
32
+ onValueChange: (value) => {
33
+ settings.llmProvider = value === DEFAULT_VALUE ? void 0 : value;
34
+ }
35
+ }, /* @__PURE__ */ React.createElement(Select.TriggerButton, {
36
+ placeholder: t("settings llm provider label")
37
+ }), /* @__PURE__ */ React.createElement(Select.Portal, null, /* @__PURE__ */ React.createElement(Select.Content, null, /* @__PURE__ */ React.createElement(Select.Viewport, null, /* @__PURE__ */ React.createElement(Select.Option, {
38
+ value: DEFAULT_VALUE
39
+ }, t("settings default label")), LLM_PROVIDERS.map((model) => /* @__PURE__ */ React.createElement(Select.Option, {
40
+ key: model,
41
+ value: model
42
+ }, LLM_PROVIDER_LABELS[model]))))))), /* @__PURE__ */ React.createElement(DeprecatedFormInput, {
33
43
  label: t("settings edge llm model label")
34
44
  }, /* @__PURE__ */ React.createElement(Select.Root, {
35
45
  value: settings.edgeModel ?? DEFAULT_VALUE,
@@ -118,72 +128,17 @@ var PromptSettings = ({ template }) => {
118
128
  }))));
119
129
  };
120
130
 
121
- // packages/plugins/plugin-assistant/src/components/ServiceRegistry/ServiceRegistry.tsx
122
- import React3, { useMemo } from "react";
123
- import { Filter } from "@dxos/client/echo";
124
- import { useQuery } from "@dxos/react-client/echo";
125
- import { Icon, Input as Input3, List, ListItem } from "@dxos/react-ui";
126
- var ServiceRegistry = ({ space }) => {
127
- const matchingServices = useServices(space);
128
- const enabledServices = useQuery(space, Filter.schema(ServiceType));
129
- const services = useMemo(() => {
130
- return matchingServices.map((service) => enabledServices.find((s) => s.serviceId === service.serviceId) ?? service);
131
- }, [
132
- matchingServices,
133
- enabledServices
134
- ]);
135
- const handleSetEnabled = (service, enabled) => {
136
- if (enabled) {
137
- space.db.add(service);
138
- } else {
139
- space.db.remove(service);
140
- }
141
- };
142
- return /* @__PURE__ */ React3.createElement(List, {
143
- classNames: "h-full grid auto-rows-[5rem] gap-2 p-2 pis-2 pie-2 overflow-y-auto scrollbar-thin"
144
- }, services.map((service) => /* @__PURE__ */ React3.createElement(ServiceItem, {
145
- key: service.serviceId,
146
- service,
147
- enabled: service.enabled,
148
- setEnabled: (enabled) => handleSetEnabled(service, enabled)
149
- })));
150
- };
151
- var ServiceItem = ({ service, enabled, setEnabled }) => {
152
- return /* @__PURE__ */ React3.createElement(ListItem.Root, {
153
- classNames: "flex flex-col gap-1 p-1 overflow-hidden rounded-md border border-separator"
154
- }, /* @__PURE__ */ React3.createElement("div", {
155
- className: "grid grid-cols-[40px_1fr_40px]"
156
- }, /* @__PURE__ */ React3.createElement("div", {
157
- className: "flex gow justify-center items-center"
158
- }, /* @__PURE__ */ React3.createElement(Icon, {
159
- icon: categoryIcons[service.category ?? "default"] ?? "ph--placeholder--regular",
160
- size: 6
161
- })), /* @__PURE__ */ React3.createElement("div", {
162
- className: "grow items-center truncate mie-2"
163
- }, service.name), /* @__PURE__ */ React3.createElement("div", {
164
- className: "flex gow justify-center items-center"
165
- }, /* @__PURE__ */ React3.createElement(Input3.Root, null, /* @__PURE__ */ React3.createElement(Input3.Switch, {
166
- checked: enabled,
167
- onClick: () => setEnabled?.(!enabled)
168
- })))), /* @__PURE__ */ React3.createElement("div", {
169
- className: "grid grid-cols-[40px_1fr]"
170
- }, /* @__PURE__ */ React3.createElement("div", null), /* @__PURE__ */ React3.createElement("div", {
171
- className: "text-sm text-subdued line-clamp-2 mie-1"
172
- }, service.description)));
173
- };
174
-
175
131
  // packages/plugins/plugin-assistant/src/components/index.ts
176
132
  import { lazy } from "react";
177
- var AssistantDialog = lazy(() => import("./AssistantDialog-N24M73FW.mjs"));
178
- var ChatContainer = lazy(() => import("./ChatContainer-KPWY5UK4.mjs"));
133
+ var AssistantDialog = lazy(() => import("./AssistantDialog-KGA5HBFO.mjs"));
134
+ var ChatContainer = lazy(() => import("./ChatContainer-XPNXNPSW.mjs"));
179
135
  var TemplateContainer = lazy(() => import("./TemplateContainer-3LEBT5ZC.mjs"));
180
136
 
181
137
  export {
182
138
  AssistantSettings,
183
139
  PromptSettings,
184
- ServiceRegistry,
185
140
  AssistantDialog,
186
141
  ChatContainer,
187
142
  TemplateContainer
188
143
  };
189
- //# sourceMappingURL=chunk-PFWTW22U.mjs.map
144
+ //# sourceMappingURL=chunk-R7Q3OHWG.mjs.map
@@ -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 as S } 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<S.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": ["React", "DEFAULT_EDGE_MODELS", "DEFAULT_OLLAMA_MODELS", "Input", "Select", "useTranslation", "DeprecatedFormContainer", "DeprecatedFormInput", "DEFAULT_VALUE", "LLM_PROVIDER_LABELS", "edge", "ollama", "lmstudio", "AssistantSettings", "settings", "t", "useTranslation", "ASSISTANT_PLUGIN", "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", "Match", "React", "useCallback", "debounce", "Input", "Select", "Toolbar", "useTranslation", "PromptSettings", "template", "t", "useTranslation", "ASSISTANT_PLUGIN", "handleKindChange", "useCallback", "value", "kind", "Match", "type", "pipe", "withReturnType", "when", "include", "typename", "description", "orElse", "handleTypenameChange", "debounce", "event", "target", "handleDescriptionChange", "React", "div", "className", "h2", "Toolbar", "Root", "Select", "onValueChange", "Button", "asChild", "TriggerButton", "Portal", "Content", "Viewport", "TemplateKinds", "map", "Option", "key", "Input", "TextInput", "placeholder", "defaultValue", "onChange", "lazy", "AssistantDialog", "lazy", "ChatContainer", "TemplateContainer"]
7
+ }