@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
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  ThreadContainer
3
- } from "./chunk-FQ4L5NYW.mjs";
3
+ } from "./chunk-7CAHKTZQ.mjs";
4
4
  import "./chunk-TXJWGWJ7.mjs";
5
- import "./chunk-IAMR2FAE.mjs";
5
+ import "./chunk-E7BN4QKP.mjs";
6
6
  import {
7
7
  ASSISTANT_PLUGIN
8
8
  } from "./chunk-3HCI5FIL.mjs";
@@ -114,4 +114,4 @@ export {
114
114
  AssistantDialog,
115
115
  AssistantDialog_default as default
116
116
  };
117
- //# sourceMappingURL=AssistantDialog-77B4BSXR.mjs.map
117
+ //# sourceMappingURL=AssistantDialog-I47GUXWR.mjs.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  ThreadContainer
3
- } from "./chunk-FQ4L5NYW.mjs";
3
+ } from "./chunk-7CAHKTZQ.mjs";
4
4
  import "./chunk-TXJWGWJ7.mjs";
5
- import "./chunk-IAMR2FAE.mjs";
5
+ import "./chunk-E7BN4QKP.mjs";
6
6
  import {
7
7
  ASSISTANT_PLUGIN
8
8
  } from "./chunk-3HCI5FIL.mjs";
@@ -30,4 +30,4 @@ export {
30
30
  ChatContainer,
31
31
  ChatContainer_default as default
32
32
  };
33
- //# sourceMappingURL=ChatContainer-4AMJKO3T.mjs.map
33
+ //# sourceMappingURL=ChatContainer-GAYN3FEF.mjs.map
@@ -32,4 +32,4 @@ var ai_client_default = (context) => {
32
32
  export {
33
33
  ai_client_default as default
34
34
  };
35
- //# sourceMappingURL=ai-client-CDZLSNXE.mjs.map
35
+ //# sourceMappingURL=ai-client-OK5SMYJC.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
  }
@@ -2,7 +2,7 @@ import {
2
2
  AIChatType,
3
3
  AssistantAction,
4
4
  TemplateType
5
- } from "./chunk-IAMR2FAE.mjs";
5
+ } from "./chunk-E7BN4QKP.mjs";
6
6
  import {
7
7
  ASSISTANT_DIALOG,
8
8
  ASSISTANT_PLUGIN
@@ -12,11 +12,11 @@ import {
12
12
  import { Capabilities, contributes, createIntent, LayoutAction } from "@dxos/app-framework";
13
13
  import { invariant } from "@dxos/invariant";
14
14
  import { ClientCapabilities } from "@dxos/plugin-client";
15
- import { PLANK_COMPANION_TYPE, ATTENDABLE_PATH_SEPARATOR, DECK_COMPANION_TYPE } from "@dxos/plugin-deck/types";
15
+ import { PLANK_COMPANION_TYPE, ATTENDABLE_PATH_SEPARATOR } from "@dxos/plugin-deck/types";
16
16
  import { createExtension, ROOT_ID } from "@dxos/plugin-graph";
17
17
  import { memoizeQuery } from "@dxos/plugin-space";
18
18
  import { SPACE_TYPE, SpaceAction } from "@dxos/plugin-space/types";
19
- import { Filter, fullyQualifiedId, getSpace, isLiveObject, parseId } from "@dxos/react-client/echo";
19
+ import { Filter, fullyQualifiedId, getSpace, isLiveObject } from "@dxos/react-client/echo";
20
20
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-assistant/src/capabilities/app-graph-builder.ts";
21
21
  var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBuilder, [
22
22
  createExtension({
@@ -76,36 +76,6 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
76
76
  }
77
77
  ]
78
78
  }),
79
- createExtension({
80
- id: `${ASSISTANT_PLUGIN}/service-registry`,
81
- filter: (node) => node.id === "root",
82
- connector: ({ node }) => {
83
- const layout = context.requestCapability(Capabilities.Layout);
84
- const client = context.requestCapability(ClientCapabilities.Client);
85
- const { spaceId } = parseId(layout.workspace);
86
- const space = spaceId ? client.spaces.get(spaceId) : null;
87
- return [
88
- {
89
- id: [
90
- node.id,
91
- "service-registry"
92
- ].join(ATTENDABLE_PATH_SEPARATOR),
93
- type: DECK_COMPANION_TYPE,
94
- data: space,
95
- properties: {
96
- label: [
97
- "service registry label",
98
- {
99
- ns: ASSISTANT_PLUGIN
100
- }
101
- ],
102
- icon: "ph--plugs--regular",
103
- disposition: "hidden"
104
- }
105
- }
106
- ];
107
- }
108
- }),
109
79
  createExtension({
110
80
  id: `${ASSISTANT_PLUGIN}/object-chat-companion`,
111
81
  filter: (node) => isLiveObject(node.data) && node.data.assistantChatQueue && node.data.type !== AIChatType.typename,
@@ -190,7 +160,7 @@ var getOrCreateChat = async (dispatch, space) => {
190
160
  }));
191
161
  invariant(data?.object instanceof AIChatType, void 0, {
192
162
  F: __dxlog_file,
193
- L: 184,
163
+ L: 160,
194
164
  S: void 0,
195
165
  A: [
196
166
  "data?.object instanceof AIChatType",
@@ -206,4 +176,4 @@ var getOrCreateChat = async (dispatch, space) => {
206
176
  export {
207
177
  app_graph_builder_default as default
208
178
  };
209
- //# sourceMappingURL=app-graph-builder-GU6ZWSP4.mjs.map
179
+ //# sourceMappingURL=app-graph-builder-ZXKGE3H5.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": ";;;;;;;;;;;AAIA,SACEA,cACAC,aACAC,cACAC,oBAGK;AACP,SAASC,iBAAiB;AAC1B,SAASC,0BAA0B;AACnC,SAASC,sBAAsBC,iCAAiC;AAChE,SAASC,iBAA4BC,eAAe;AACpD,SAASC,oBAAoB;AAC7B,SAASC,YAAYC,mBAAmB;AACxC,SAAqBC,QAAQC,kBAAkBC,UAAUC,oBAAoB;;AAK7E,IAAA,4BAAe,CAACC,YACdC,YAAYC,aAAaC,iBAAiB;EACxCC,gBAAgB;IACdC,IAAI,GAAGC,gBAAAA;IACPC,QAAQ,CAACC,SAA6BA,KAAKH,OAAOI;IAClDC,SAAS,MAAM;MACb;QACEL,IAAI,GAAGM,aAAaC,aAAaC,IAAI;QACrCC,MAAM,YAAA;AACJ,gBAAM,EAAEC,iBAAiBC,SAAQ,IAAKhB,QAAQiB,kBAAkBf,aAAagB,gBAAgB;AAC7F,gBAAMC,SAASnB,QAAQiB,kBAAkBG,mBAAmBC,MAAM;AAClE,gBAAMC,SAAStB,QAAQiB,kBAAkBf,aAAaqB,MAAM;AAC5D,gBAAM,EAAEC,MAAK,IAAKxB,QAAQiB,kBAAkBf,aAAauB,QAAQ;AAIjE,cAAIC;AACJ,cAAIJ,OAAOK,OAAOC,SAAS,GAAG;AAC5B,kBAAMpB,OAAOgB,MAAMK,SAASP,OAAOK,OAAO,CAAA,CAAE;AAC5C,gBAAInB,MAAM;AACR,oBAAMsB,QAAQC,SAASvB,KAAKM,IAAI;AAChC,kBAAIgB,OAAO;AACTJ,uBAAO,MAAMM,gBAAgBhB,UAAUc,KAAAA;cACzC;YACF;UACF,OAAO;AACL,kBAAMA,QAAQX,OAAOc,OAAOC;AAC5BR,mBAAO,MAAMM,gBAAgBhB,UAAUc,KAAAA;UACzC;AAEA,cAAI,CAACJ,MAAM;AACT;UACF;AAEA,gBAAMV,SACJmB,aAAaxB,aAAaC,cAAc;YACtCwB,MAAM;YACNC,SAASC;YACTC,SAAS;cACPC,OAAO;cACPC,YAAY;cACZC,OAAO;gBACLhB;cACF;YACF;UACF,CAAA,CAAA;QAEJ;QACAiB,YAAY;UACVC,OAAO;YAAC;YAAwB;cAAEC,IAAIvC;YAAiB;;UACvDwC,MAAM;UACNC,aAAa;UACbC,UAAU;UACVC,YAAY;YACVC,OAAO;YACPC,SAAS;UACX;QACF;MACF;;EAEJ,CAAA;EAEA/C,gBAAgB;IACdC,IAAI,GAAGC,gBAAAA;IACPC,QAAQ,CAACC,SACP4C,aAAa5C,KAAKM,IAAI,KAAKN,KAAKM,KAAKuC,sBAAsB7C,KAAKM,KAAKwC,SAASC,WAAWC;IAC3FC,WAAW,CAAC,EAAEjD,KAAI,MAAO;MACvB;QACEH,IAAI;UAACG,KAAKH;UAAI;UAAkBqD,KAAKC,yBAAAA;QACrCL,MAAMM;QACN9C,MAAM;QACN6B,YAAY;UACVC,OAAO;YAAC;YAAwB;cAAEC,IAAIvC;YAAiB;;UACvDwC,MAAM;UACNE,UAAU;QACZ;MACF;;EAEJ,CAAA;EAEA5C,gBAAgB;IACdC,IAAI,GAAGC,gBAAAA;IACPC,QAAQ,CAACC,SAA8BA,KAAK8C,SAASO;IACrDJ,WAAW,CAAC,EAAEjD,KAAI,MAAE;AAClB,YAAMsD,YAAYC,aAAavD,KAAKM,MAAMkD,OAAOC,OAAOC,YAAAA,CAAAA;AACxD,aAAOJ,UAAUlC,SAAS,IACtB;QACE;UACEvB,IAAI,GAAGC,gBAAAA;UACPgD,MAAM,GAAGhD,gBAAAA;UACTQ,MAAM;UACN6B,YAAY;YACVC,OAAO;cAAC;cAAmB;gBAAEC,IAAIvC;cAAiB;;YAClDwC,MAAM;YACNhB,OAAOtB,KAAKM;UACd;QACF;UAEF,CAAA;IACN;EACF,CAAA;EAEAV,gBAAgB;IACdC,IAAI,GAAGC,gBAAAA;IACPC,QAAQ,CAACC,SAA+CA,KAAKH,OAAO,GAAGC,gBAAAA;IACvEmD,WAAW,CAAC,EAAEjD,KAAI,MAAE;AAClB,YAAMsD,YAAYC,aAAavD,KAAKmC,WAAWb,OAAOkC,OAAOC,OAAOC,YAAAA,CAAAA;AACpE,aAAOJ,UACJK,SAAS,CAACC,GAAGC,MAAAA;AACZ,cAAMC,QAAQF,EAAEG,QAAQ;AACxB,cAAMC,QAAQH,EAAEE,QAAQ;AACxB,eAAOD,MAAMG,cAAcD,KAAAA;MAC7B,CAAA,EACCE,IAAI,CAACC,cAAc;QAClBtE,IAAIuE,iBAAiBD,QAAAA;QACrBrB,MAAM,GAAGhD,gBAAAA;QACTQ,MAAM6D;QACNhC,YAAY;UACVC,OAAO+B,SAASJ,QAAQ;YAAC;YAAsB;cAAE1B,IAAIvC;YAAiB;;UACtEwC,MAAM;QACR;MACF,EAAA;IACJ;EACF,CAAA;CACD;AAGH,IAAMd,kBAAkB,OAAOhB,UAAmCc,UAAAA;AAChE,QAAM,EAAE+C,QAAO,IAAK,MAAM/C,MAAMgD,GAAGC,MAAMf,OAAOC,OAAOV,UAAAA,CAAAA,EAAayB,IAAG;AAEvE,MAAIH,QAAQjD,SAAS,GAAG;AAEtB,WAAOiD,QAAQA,QAAQjD,SAAS,CAAA;EAClC;AAEA,QAAM,EAAEd,KAAI,IAAK,MAAME,SAASmB,aAAa8C,gBAAgBC,YAAY;IAAEC,SAASrD,MAAMzB;EAAG,CAAA,CAAA;AAC7F+E,YAAUtE,MAAMuE,kBAAkB9B,YAAAA,QAAAA;;;;;;;;;AAClC,QAAMvC,SAASmB,aAAamD,YAAYC,WAAW;IAAEC,QAAQ1D;IAAOuD,QAAQvE,KAAKuE;EAAO,CAAA,CAAA;AACxF,SAAOvE,KAAKuE;AACd;",
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
+ }
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  ServiceType,
6
6
  categoryIcons
7
- } from "./chunk-IAMR2FAE.mjs";
7
+ } from "./chunk-E7BN4QKP.mjs";
8
8
  import {
9
9
  ASSISTANT_PLUGIN
10
10
  } from "./chunk-3HCI5FIL.mjs";
@@ -753,7 +753,7 @@ var components = {
753
753
  }
754
754
  return /* @__PURE__ */ React3.createElement(ToggleContainer2, {
755
755
  // open={open}
756
- defaultOpen: block.disposition === "cot" && block.pending,
756
+ defaultOpen: systemDispositions.includes(block.disposition ?? "") && block.pending,
757
757
  title,
758
758
  icon: block.pending ? /* @__PURE__ */ React3.createElement(Icon, {
759
759
  icon: "ph--circle-notch--regular",
@@ -764,7 +764,7 @@ var components = {
764
764
  content: block.text,
765
765
  classNames: [
766
766
  "pbe-2",
767
- block.disposition === "cot" && "text-sm text-subdued"
767
+ systemDispositions.includes(block.disposition ?? "") && "text-sm text-subdued"
768
768
  ]
769
769
  }));
770
770
  },
@@ -841,8 +841,13 @@ var titles = {
841
841
  ["artifact"]: "Artifact",
842
842
  ["tool_use"]: "Tool request",
843
843
  ["tool_result"]: "Tool result",
844
- ["tool_list"]: "Tools"
844
+ ["tool_list"]: "Tools",
845
+ ["artifact-update"]: "Artifact(s) changed"
845
846
  };
847
+ var systemDispositions = [
848
+ "cot",
849
+ "artifact-update"
850
+ ];
846
851
 
847
852
  // packages/plugins/plugin-assistant/src/components/Thread/reducer.ts
848
853
  var messageReducer = ({ current, messages }, message) => {
@@ -1393,6 +1398,7 @@ import { batch, computed, signal } from "@preact/signals-core";
1393
1398
  import { AISession, DEFAULT_EDGE_MODEL } from "@dxos/assistant";
1394
1399
  import { invariant as invariant3 } from "@dxos/invariant";
1395
1400
  import { log as log5 } from "@dxos/log";
1401
+ import { getVersion } from "@dxos/react-client/echo";
1396
1402
  var __dxlog_file6 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-assistant/src/hooks/processor.ts";
1397
1403
  var defaultOptions = {
1398
1404
  model: DEFAULT_EDGE_MODEL,
@@ -1451,7 +1457,7 @@ var ChatProcessor = class {
1451
1457
  */
1452
1458
  async request(message, options = {}) {
1453
1459
  this._session = new AISession({
1454
- operationModel: "immediate"
1460
+ operationModel: "configured"
1455
1461
  });
1456
1462
  this._session.message.on((message2) => {
1457
1463
  batch(() => {
@@ -1478,10 +1484,31 @@ var ChatProcessor = class {
1478
1484
  client: this._ai,
1479
1485
  history: options.history ?? [],
1480
1486
  artifacts: this._artifacts ?? [],
1487
+ requiredArtifactIds: this._artifacts?.map((artifact) => artifact.id) ?? [],
1481
1488
  tools: this._tools ?? [],
1482
1489
  prompt: message,
1483
1490
  systemPrompt: this._options.systemPrompt,
1484
1491
  extensions: this._extensions,
1492
+ artifactDiffResolver: async (artifacts) => {
1493
+ const space = this._extensions?.space;
1494
+ if (!space) {
1495
+ return /* @__PURE__ */ new Map();
1496
+ }
1497
+ const versions = /* @__PURE__ */ new Map();
1498
+ await Promise.all(artifacts.map(async (artifact) => {
1499
+ const { objects: [object] } = await space.db.query({
1500
+ id: artifact.id
1501
+ }).run();
1502
+ if (!object) {
1503
+ return;
1504
+ }
1505
+ versions.set(artifact.id, {
1506
+ version: getVersion(object),
1507
+ diff: `Current state: ${JSON.stringify(object)}`
1508
+ });
1509
+ }));
1510
+ return versions;
1511
+ },
1485
1512
  generationOptions: {
1486
1513
  model: this._options.model
1487
1514
  }
@@ -1490,7 +1517,7 @@ var ChatProcessor = class {
1490
1517
  messages
1491
1518
  }, {
1492
1519
  F: __dxlog_file6,
1493
- L: 137,
1520
+ L: 160,
1494
1521
  S: this,
1495
1522
  C: (f, a) => f(...a)
1496
1523
  });
@@ -1498,7 +1525,7 @@ var ChatProcessor = class {
1498
1525
  } catch (err) {
1499
1526
  log5.catch(err, void 0, {
1500
1527
  F: __dxlog_file6,
1501
- L: 140,
1528
+ L: 163,
1502
1529
  S: this,
1503
1530
  C: (f, a) => f(...a)
1504
1531
  });
@@ -1523,7 +1550,7 @@ var ChatProcessor = class {
1523
1550
  async cancel() {
1524
1551
  log5.info("cancelling...", void 0, {
1525
1552
  F: __dxlog_file6,
1526
- L: 158,
1553
+ L: 181,
1527
1554
  S: this,
1528
1555
  C: (f, a) => f(...a)
1529
1556
  });
@@ -1559,15 +1586,22 @@ import { isNonNullable as isNonNullable2 } from "@dxos/util";
1559
1586
 
1560
1587
  // packages/plugins/plugin-assistant/src/capabilities/index.ts
1561
1588
  import { lazy } from "@dxos/app-framework";
1562
- var AiClient = lazy(() => import("./ai-client-CDZLSNXE.mjs"));
1563
- var AppGraphBuilder = lazy(() => import("./app-graph-builder-GU6ZWSP4.mjs"));
1564
- var IntentResolver = lazy(() => import("./intent-resolver-YAQELTFQ.mjs"));
1565
- var ReactSurface = lazy(() => import("./react-surface-JOATHBJ4.mjs"));
1566
- var AssistantSettings = lazy(() => import("./settings-PAJLJEVW.mjs"));
1589
+ var AiClient = lazy(() => import("./ai-client-OK5SMYJC.mjs"));
1590
+ var AppGraphBuilder = lazy(() => import("./app-graph-builder-ZXKGE3H5.mjs"));
1591
+ var IntentResolver = lazy(() => import("./intent-resolver-W6XREK5F.mjs"));
1592
+ var ReactSurface = lazy(() => import("./react-surface-QMI5KG4H.mjs"));
1593
+ var Settings = lazy(() => import("./settings-LAJZQI4H.mjs"));
1567
1594
 
1568
1595
  // packages/plugins/plugin-assistant/src/hooks/useChatProcessor.tsx
1569
1596
  var __dxlog_file7 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-assistant/src/hooks/useChatProcessor.tsx";
1570
- var useChatProcessor = ({ chat, space, settings, part = "deck", associatedArtifact }) => {
1597
+ var useChatProcessor = ({
1598
+ chat,
1599
+ space,
1600
+ settings,
1601
+ // part = 'deck',
1602
+ part,
1603
+ associatedArtifact
1604
+ }) => {
1571
1605
  const aiClient = useCapability(AssistantCapabilities.AiClient);
1572
1606
  const globalTools = useCapabilities2(Capabilities2.Tools);
1573
1607
  const artifactDefinitions = useCapabilities2(Capabilities2.ArtifactDefinition);
@@ -1577,7 +1611,7 @@ var useChatProcessor = ({ chat, space, settings, part = "deck", associatedArtifa
1577
1611
  useEffect3(() => {
1578
1612
  log6("creating service tools...", void 0, {
1579
1613
  F: __dxlog_file7,
1580
- L: 48,
1614
+ L: 49,
1581
1615
  S: void 0,
1582
1616
  C: (f, a) => f(...a)
1583
1617
  });
@@ -1596,7 +1630,7 @@ var useChatProcessor = ({ chat, space, settings, part = "deck", associatedArtifa
1596
1630
  const [tools, extensions] = useMemo3(() => {
1597
1631
  log6("creating tools...", void 0, {
1598
1632
  F: __dxlog_file7,
1599
- L: 60,
1633
+ L: 61,
1600
1634
  S: void 0,
1601
1635
  C: (f, a) => f(...a)
1602
1636
  });
@@ -1637,7 +1671,7 @@ ${definition.instructions}`),
1637
1671
  settings
1638
1672
  }, {
1639
1673
  F: __dxlog_file7,
1640
- L: 91,
1674
+ L: 92,
1641
1675
  S: void 0,
1642
1676
  C: (f, a) => f(...a)
1643
1677
  });
@@ -1707,11 +1741,6 @@ import { DEFAULT_EDGE_MODEL as DEFAULT_EDGE_MODEL3 } from "@dxos/assistant";
1707
1741
 
1708
1742
  // packages/plugins/plugin-assistant/src/testing/test-services.ts
1709
1743
  import { create } from "@dxos/echo-schema";
1710
- var MockServiceRegistry = class {
1711
- async queryServices(query) {
1712
- return TEST_SERVICES;
1713
- }
1714
- };
1715
1744
  var AMADEUS_AUTH = {
1716
1745
  type: "oauth",
1717
1746
  clientId: "BOEnpLd1sMyKjAPGKYeAPFFy60u53QEG",
@@ -1799,23 +1828,6 @@ var TEST_SERVICES = [
1799
1828
  }))
1800
1829
  ];
1801
1830
 
1802
- // packages/plugins/plugin-assistant/src/hooks/useServices.ts
1803
- var useServices = (space, query) => {
1804
- const registry = useMemo5(() => new MockServiceRegistry(), []);
1805
- const [services, setServices] = useState6([]);
1806
- useEffect5(() => {
1807
- const t = setTimeout(async () => {
1808
- const services2 = await registry.queryServices(query);
1809
- setServices(services2);
1810
- });
1811
- return () => clearTimeout(t);
1812
- }, [
1813
- query,
1814
- registry
1815
- ]);
1816
- return services;
1817
- };
1818
-
1819
1831
  // packages/plugins/plugin-assistant/src/hooks/useTextInputEvents.ts
1820
1832
  import { useState as useState7, useCallback as useCallback2 } from "react";
1821
1833
 
@@ -1963,15 +1975,14 @@ var ThreadContainer = ({ classNames, chat, settings, part, associatedArtifact, o
1963
1975
  };
1964
1976
 
1965
1977
  export {
1978
+ Toolbox,
1979
+ ToolboxContainer,
1980
+ Thread,
1966
1981
  AiClient,
1967
1982
  AppGraphBuilder,
1968
1983
  IntentResolver,
1969
1984
  ReactSurface,
1970
- AssistantSettings,
1971
- useServices,
1972
- Toolbox,
1973
- ToolboxContainer,
1974
- Thread,
1985
+ Settings,
1975
1986
  ThreadContainer
1976
1987
  };
1977
- //# sourceMappingURL=chunk-FQ4L5NYW.mjs.map
1988
+ //# sourceMappingURL=chunk-7CAHKTZQ.mjs.map