@dxos/plugin-assistant 0.8.1-main.ae460ac → 0.8.1-staging.391c573

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 (127) hide show
  1. package/dist/lib/browser/{AssistantDialog-6KB6INZE.mjs → AssistantDialog-CM33SOCT.mjs} +3 -3
  2. package/dist/lib/browser/{ChatContainer-DQNUNADE.mjs → ChatContainer-VW73VNUY.mjs} +3 -3
  3. package/dist/lib/browser/{ai-client-PORKRZXM.mjs → ai-client-HZPB7E6M.mjs} +1 -12
  4. package/dist/lib/browser/ai-client-HZPB7E6M.mjs.map +7 -0
  5. package/dist/lib/browser/{app-graph-builder-AXAIFOGV.mjs → app-graph-builder-4DIOTGOG.mjs} +3 -10
  6. package/dist/lib/browser/app-graph-builder-4DIOTGOG.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-FRIKXDDQ.mjs → chunk-FPXC3LKK.mjs} +2 -2
  8. package/dist/lib/browser/{chunk-FRIKXDDQ.mjs.map → chunk-FPXC3LKK.mjs.map} +1 -1
  9. package/dist/lib/browser/{chunk-6F6FUSOV.mjs → chunk-M2SADJVS.mjs} +5 -5
  10. package/dist/lib/browser/{chunk-6F6FUSOV.mjs.map → chunk-M2SADJVS.mjs.map} +2 -2
  11. package/dist/lib/browser/{chunk-NIESO4DA.mjs → chunk-WVME6K4X.mjs} +35 -19
  12. package/dist/lib/browser/chunk-WVME6K4X.mjs.map +7 -0
  13. package/dist/lib/browser/index.mjs +3 -3
  14. package/dist/lib/browser/{intent-resolver-QRVRZL6K.mjs → intent-resolver-FQRN6747.mjs} +2 -2
  15. package/dist/lib/browser/meta.json +1 -1
  16. package/dist/lib/browser/{react-surface-UX6A7C24.mjs → react-surface-ZT6EQ7FJ.mjs} +4 -4
  17. package/dist/lib/browser/{settings-JTT62IHD.mjs → settings-VVQUGG56.mjs} +2 -2
  18. package/dist/lib/browser/types/index.mjs +1 -1
  19. package/dist/lib/node/{AssistantDialog-DSBHAWOS.cjs → AssistantDialog-5PVOCPE2.cjs} +7 -7
  20. package/dist/lib/node/{ChatContainer-3RAAOIWP.cjs → ChatContainer-I45I3ICI.cjs} +7 -7
  21. package/dist/lib/node/{ai-client-RBDOGK6W.cjs → ai-client-6CY35ZIR.cjs} +4 -15
  22. package/dist/lib/node/ai-client-6CY35ZIR.cjs.map +7 -0
  23. package/dist/lib/node/{app-graph-builder-D7SHQTZS.cjs → app-graph-builder-7O4U4RXH.cjs} +9 -16
  24. package/dist/lib/node/app-graph-builder-7O4U4RXH.cjs.map +7 -0
  25. package/dist/lib/node/{chunk-37GI4NYH.cjs → chunk-34WE2FD2.cjs} +6 -6
  26. package/dist/lib/node/{chunk-37GI4NYH.cjs.map → chunk-34WE2FD2.cjs.map} +2 -2
  27. package/dist/lib/node/{chunk-XANPLPBO.cjs → chunk-HFOUAFOW.cjs} +11 -11
  28. package/dist/lib/node/{chunk-XANPLPBO.cjs.map → chunk-HFOUAFOW.cjs.map} +2 -2
  29. package/dist/lib/node/{chunk-KOSGO3RY.cjs → chunk-JWUHUQ56.cjs} +50 -34
  30. package/dist/lib/node/chunk-JWUHUQ56.cjs.map +7 -0
  31. package/dist/lib/node/index.cjs +36 -36
  32. package/dist/lib/node/{intent-resolver-YMMAFVOB.cjs → intent-resolver-Z37RNNMC.cjs} +9 -9
  33. package/dist/lib/node/meta.json +1 -1
  34. package/dist/lib/node/{react-surface-HTFYCQUK.cjs → react-surface-KFXP3GGK.cjs} +14 -14
  35. package/dist/lib/node/{settings-4YEO7KXF.cjs → settings-TJHHVI6B.cjs} +6 -6
  36. package/dist/lib/node/types/index.cjs +10 -10
  37. package/dist/lib/node/types/index.cjs.map +1 -1
  38. package/dist/lib/node-esm/{AssistantDialog-Y2AN6UPH.mjs → AssistantDialog-Q2ZBOHOV.mjs} +3 -3
  39. package/dist/lib/node-esm/{ChatContainer-OZO2R4TX.mjs → ChatContainer-5ULBF3GW.mjs} +3 -3
  40. package/dist/lib/node-esm/{ai-client-OTZVBDUH.mjs → ai-client-GSA67EIB.mjs} +1 -12
  41. package/dist/lib/node-esm/ai-client-GSA67EIB.mjs.map +7 -0
  42. package/dist/lib/node-esm/{app-graph-builder-H2GC2AZA.mjs → app-graph-builder-SX3SREXF.mjs} +3 -10
  43. package/dist/lib/node-esm/app-graph-builder-SX3SREXF.mjs.map +7 -0
  44. package/dist/lib/node-esm/{chunk-KICG37HX.mjs → chunk-2OUUYMBT.mjs} +5 -5
  45. package/dist/lib/node-esm/{chunk-KICG37HX.mjs.map → chunk-2OUUYMBT.mjs.map} +2 -2
  46. package/dist/lib/node-esm/{chunk-GKBHTBON.mjs → chunk-ASMI7PQ2.mjs} +35 -19
  47. package/dist/lib/node-esm/chunk-ASMI7PQ2.mjs.map +7 -0
  48. package/dist/lib/node-esm/{chunk-CJ4Y3QW5.mjs → chunk-LELXJPGJ.mjs} +2 -2
  49. package/dist/lib/node-esm/{chunk-CJ4Y3QW5.mjs.map → chunk-LELXJPGJ.mjs.map} +1 -1
  50. package/dist/lib/node-esm/index.mjs +3 -3
  51. package/dist/lib/node-esm/{intent-resolver-MR7BOKEW.mjs → intent-resolver-LOTXWV4J.mjs} +2 -2
  52. package/dist/lib/node-esm/meta.json +1 -1
  53. package/dist/lib/node-esm/{react-surface-AMVW4HZ7.mjs → react-surface-NZNNP2QI.mjs} +4 -4
  54. package/dist/lib/node-esm/{settings-S7P5RWQI.mjs → settings-BVWR244C.mjs} +2 -2
  55. package/dist/lib/node-esm/types/index.mjs +1 -1
  56. package/dist/types/src/capabilities/ai-client.d.ts.map +1 -1
  57. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  58. package/dist/types/src/components/AmbientDialog/AmbientDialog.d.ts +2 -2
  59. package/dist/types/src/components/AmbientDialog/AmbientDialog.d.ts.map +1 -1
  60. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts +2 -1
  61. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +1 -1
  62. package/dist/types/src/components/ChatContainer.d.ts +2 -1
  63. package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
  64. package/dist/types/src/components/Prompt/PromptBar.d.ts +2 -1
  65. package/dist/types/src/components/Prompt/PromptBar.d.ts.map +1 -1
  66. package/dist/types/src/components/ServiceRegistry/ServiceRegistry.d.ts +2 -1
  67. package/dist/types/src/components/ServiceRegistry/ServiceRegistry.d.ts.map +1 -1
  68. package/dist/types/src/components/TemplateContainer.d.ts +2 -1
  69. package/dist/types/src/components/TemplateContainer.d.ts.map +1 -1
  70. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts +2 -1
  71. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +1 -1
  72. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts +2 -1
  73. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
  74. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +2 -1
  75. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
  76. package/dist/types/src/components/Thread/Thread.d.ts +2 -1
  77. package/dist/types/src/components/Thread/Thread.d.ts.map +1 -1
  78. package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts +2 -1
  79. package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts.map +1 -1
  80. package/dist/types/src/components/Toolbox/Toolbox.d.ts +4 -3
  81. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  82. package/dist/types/src/components/index.d.ts +2 -2
  83. package/dist/types/src/components/index.d.ts.map +1 -1
  84. package/dist/types/src/hooks/invocation-handler.d.ts +1 -1
  85. package/dist/types/src/hooks/invocation-handler.d.ts.map +1 -1
  86. package/dist/types/src/hooks/processor.d.ts +3 -0
  87. package/dist/types/src/hooks/processor.d.ts.map +1 -1
  88. package/dist/types/src/tools/function.d.ts +1 -1
  89. package/dist/types/src/tools/function.d.ts.map +1 -1
  90. package/dist/types/src/types/service.d.ts +1 -1
  91. package/dist/types/src/types/service.d.ts.map +1 -1
  92. package/package.json +55 -55
  93. package/src/capabilities/ai-client.ts +0 -2
  94. package/src/capabilities/app-graph-builder.ts +0 -2
  95. package/src/components/Prompt/PromptBar.tsx +15 -6
  96. package/src/components/Toolbox/Toolbox.tsx +1 -1
  97. package/src/components/index.ts +3 -0
  98. package/src/hooks/invocation-handler.ts +3 -5
  99. package/src/hooks/processor.ts +10 -1
  100. package/src/hooks/useChatProcessor.tsx +1 -1
  101. package/src/hooks/useLocalTriggerManager.ts +1 -1
  102. package/src/tools/function.ts +2 -2
  103. package/src/types/service.ts +1 -1
  104. package/dist/lib/browser/ai-client-PORKRZXM.mjs.map +0 -7
  105. package/dist/lib/browser/app-graph-builder-AXAIFOGV.mjs.map +0 -7
  106. package/dist/lib/browser/chunk-NIESO4DA.mjs.map +0 -7
  107. package/dist/lib/node/ai-client-RBDOGK6W.cjs.map +0 -7
  108. package/dist/lib/node/app-graph-builder-D7SHQTZS.cjs.map +0 -7
  109. package/dist/lib/node/chunk-KOSGO3RY.cjs.map +0 -7
  110. package/dist/lib/node-esm/ai-client-OTZVBDUH.mjs.map +0 -7
  111. package/dist/lib/node-esm/app-graph-builder-H2GC2AZA.mjs.map +0 -7
  112. package/dist/lib/node-esm/chunk-GKBHTBON.mjs.map +0 -7
  113. /package/dist/lib/browser/{AssistantDialog-6KB6INZE.mjs.map → AssistantDialog-CM33SOCT.mjs.map} +0 -0
  114. /package/dist/lib/browser/{ChatContainer-DQNUNADE.mjs.map → ChatContainer-VW73VNUY.mjs.map} +0 -0
  115. /package/dist/lib/browser/{intent-resolver-QRVRZL6K.mjs.map → intent-resolver-FQRN6747.mjs.map} +0 -0
  116. /package/dist/lib/browser/{react-surface-UX6A7C24.mjs.map → react-surface-ZT6EQ7FJ.mjs.map} +0 -0
  117. /package/dist/lib/browser/{settings-JTT62IHD.mjs.map → settings-VVQUGG56.mjs.map} +0 -0
  118. /package/dist/lib/node/{AssistantDialog-DSBHAWOS.cjs.map → AssistantDialog-5PVOCPE2.cjs.map} +0 -0
  119. /package/dist/lib/node/{ChatContainer-3RAAOIWP.cjs.map → ChatContainer-I45I3ICI.cjs.map} +0 -0
  120. /package/dist/lib/node/{intent-resolver-YMMAFVOB.cjs.map → intent-resolver-Z37RNNMC.cjs.map} +0 -0
  121. /package/dist/lib/node/{react-surface-HTFYCQUK.cjs.map → react-surface-KFXP3GGK.cjs.map} +0 -0
  122. /package/dist/lib/node/{settings-4YEO7KXF.cjs.map → settings-TJHHVI6B.cjs.map} +0 -0
  123. /package/dist/lib/node-esm/{AssistantDialog-Y2AN6UPH.mjs.map → AssistantDialog-Q2ZBOHOV.mjs.map} +0 -0
  124. /package/dist/lib/node-esm/{ChatContainer-OZO2R4TX.mjs.map → ChatContainer-5ULBF3GW.mjs.map} +0 -0
  125. /package/dist/lib/node-esm/{intent-resolver-MR7BOKEW.mjs.map → intent-resolver-LOTXWV4J.mjs.map} +0 -0
  126. /package/dist/lib/node-esm/{react-surface-AMVW4HZ7.mjs.map → react-surface-NZNNP2QI.mjs.map} +0 -0
  127. /package/dist/lib/node-esm/{settings-S7P5RWQI.mjs.map → settings-BVWR244C.mjs.map} +0 -0
@@ -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-GKBHTBON.mjs";
4
+ } from "./chunk-ASMI7PQ2.mjs";
5
5
  import "./chunk-ICQN3TDS.mjs";
6
- import "./chunk-CJ4Y3QW5.mjs";
6
+ import "./chunk-LELXJPGJ.mjs";
7
7
  import {
8
8
  ASSISTANT_PLUGIN
9
9
  } from "./chunk-7SV6X6XU.mjs";
@@ -114,4 +114,4 @@ export {
114
114
  AssistantDialog,
115
115
  AssistantDialog_default as default
116
116
  };
117
- //# sourceMappingURL=AssistantDialog-Y2AN6UPH.mjs.map
117
+ //# sourceMappingURL=AssistantDialog-Q2ZBOHOV.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-GKBHTBON.mjs";
4
+ } from "./chunk-ASMI7PQ2.mjs";
5
5
  import "./chunk-ICQN3TDS.mjs";
6
- import "./chunk-CJ4Y3QW5.mjs";
6
+ import "./chunk-LELXJPGJ.mjs";
7
7
  import {
8
8
  ASSISTANT_PLUGIN
9
9
  } from "./chunk-7SV6X6XU.mjs";
@@ -31,4 +31,4 @@ export {
31
31
  ChatContainer,
32
32
  ChatContainer_default as default
33
33
  };
34
- //# sourceMappingURL=ChatContainer-OZO2R4TX.mjs.map
34
+ //# sourceMappingURL=ChatContainer-5ULBF3GW.mjs.map
@@ -7,9 +7,7 @@ import "./chunk-7SV6X6XU.mjs";
7
7
  // packages/plugins/experimental/plugin-assistant/src/capabilities/ai-client.ts
8
8
  import { contributes } from "@dxos/app-framework";
9
9
  import { AIServiceEdgeClient } from "@dxos/assistant";
10
- import { log } from "@dxos/log";
11
10
  import { ClientCapabilities } from "@dxos/plugin-client";
12
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/capabilities/ai-client.ts";
13
11
  var DEFAULT_AI_SERVICE_URL = "http://localhost:8788";
14
12
  var ai_client_default = (context) => {
15
13
  const client = context.requestCapability(ClientCapabilities.Client);
@@ -17,18 +15,9 @@ var ai_client_default = (context) => {
17
15
  const ai = new AIServiceEdgeClient({
18
16
  endpoint
19
17
  });
20
- log.info("ai", {
21
- endpoint,
22
- context
23
- }, {
24
- F: __dxlog_file,
25
- L: 20,
26
- S: void 0,
27
- C: (f, a) => f(...a)
28
- });
29
18
  return contributes(AssistantCapabilities.AiClient, ai);
30
19
  };
31
20
  export {
32
21
  ai_client_default as default
33
22
  };
34
- //# sourceMappingURL=ai-client-OTZVBDUH.mjs.map
23
+ //# sourceMappingURL=ai-client-GSA67EIB.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/ai-client.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes, type PluginsContext } from '@dxos/app-framework';\nimport { AIServiceEdgeClient } from '@dxos/assistant';\nimport { ClientCapabilities } from '@dxos/plugin-client';\n\nimport { AssistantCapabilities } from './capabilities';\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 // TODO(burdon): Use prefs.\n const ai = new AIServiceEdgeClient({ endpoint });\n return contributes(AssistantCapabilities.AiClient, ai);\n};\n"],
5
+ "mappings": ";;;;;;;AAIA,SAASA,mBAAwC;AACjD,SAASC,2BAA2B;AACpC,SAASC,0BAA0B;AAKnC,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,KAAK,IAAIE,oBAAoB;IAAEP;EAAS,CAAA;AAC9C,SAAOQ,YAAYC,sBAAsBC,UAAUL,EAAAA;AACrD;",
6
+ "names": ["contributes", "AIServiceEdgeClient", "ClientCapabilities", "DEFAULT_AI_SERVICE_URL", "context", "client", "requestCapability", "ClientCapabilities", "Client", "endpoint", "config", "values", "runtime", "services", "ai", "server", "AIServiceEdgeClient", "contributes", "AssistantCapabilities", "AiClient"]
7
+ }
@@ -2,7 +2,7 @@ import { createRequire } from 'node:module';const require = createRequire(import
2
2
  import {
3
3
  AIChatType,
4
4
  AssistantAction
5
- } from "./chunk-CJ4Y3QW5.mjs";
5
+ } from "./chunk-LELXJPGJ.mjs";
6
6
  import {
7
7
  ASSISTANT_DIALOG,
8
8
  ASSISTANT_PLUGIN
@@ -11,7 +11,6 @@ import {
11
11
  // packages/plugins/experimental/plugin-assistant/src/capabilities/app-graph-builder.ts
12
12
  import { Capabilities, contributes, createIntent, LayoutAction } from "@dxos/app-framework";
13
13
  import { invariant } from "@dxos/invariant";
14
- import { log } from "@dxos/log";
15
14
  import { ClientCapabilities } from "@dxos/plugin-client";
16
15
  import { createExtension, ROOT_ID } from "@dxos/plugin-graph";
17
16
  import { SpaceAction } from "@dxos/plugin-space/types";
@@ -43,12 +42,6 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
43
42
  chat = await getOrCreateChat(dispatch, space);
44
43
  }
45
44
  if (!chat) {
46
- log.warn("no chat found", void 0, {
47
- F: __dxlog_file,
48
- L: 54,
49
- S: void 0,
50
- C: (f, a) => f(...a)
51
- });
52
45
  return;
53
46
  }
54
47
  await dispatch(createIntent(LayoutAction.UpdateDialog, {
@@ -92,7 +85,7 @@ var getOrCreateChat = async (dispatch, space) => {
92
85
  }));
93
86
  invariant(data?.object instanceof AIChatType, void 0, {
94
87
  F: __dxlog_file,
95
- L: 97,
88
+ L: 95,
96
89
  S: void 0,
97
90
  A: [
98
91
  "data?.object instanceof AIChatType",
@@ -108,4 +101,4 @@ var getOrCreateChat = async (dispatch, space) => {
108
101
  export {
109
102
  app_graph_builder_default as default
110
103
  };
111
- //# sourceMappingURL=app-graph-builder-H2GC2AZA.mjs.map
104
+ //# sourceMappingURL=app-graph-builder-SX3SREXF.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 { createExtension, type Node, ROOT_ID } from '@dxos/plugin-graph';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport { type Space, Filter, getSpace } from '@dxos/react-client/echo';\n\nimport { ASSISTANT_DIALOG, ASSISTANT_PLUGIN } from '../meta';\nimport { AIChatType, AssistantAction } 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--chat-centered-text--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\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,iBAA4BC,eAAe;AACpD,SAASC,mBAAmB;AAC5B,SAAqBC,QAAQC,gBAAgB;;AAK7C,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;CACD;AAGH,IAAMnB,kBAAkB,OAAOhB,UAAmCc,UAAAA;AAChE,QAAM,EAAEsB,QAAO,IAAK,MAAMtB,MAAMuB,GAAGC,MAAMC,OAAOC,OAAOC,UAAAA,CAAAA,EAAaC,IAAG;AAEvE,MAAIN,QAAQxB,SAAS,GAAG;AAEtB,WAAOwB,QAAQA,QAAQxB,SAAS,CAAA;EAClC;AAEA,QAAM,EAAEd,KAAI,IAAK,MAAME,SAASmB,aAAawB,gBAAgBC,YAAY;IAAEC,SAAS/B,MAAMzB;EAAG,CAAA,CAAA;AAC7FyD,YAAUhD,MAAMiD,kBAAkBN,YAAAA,QAAAA;;;;;;;;;AAClC,QAAMzC,SAASmB,aAAa6B,YAAYC,WAAW;IAAEC,QAAQpC;IAAOiC,QAAQjD,KAAKiD;EAAO,CAAA,CAAA;AACxF,SAAOjD,KAAKiD;AACd;",
6
+ "names": ["Capabilities", "contributes", "createIntent", "LayoutAction", "invariant", "ClientCapabilities", "createExtension", "ROOT_ID", "SpaceAction", "Filter", "getSpace", "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", "objects", "db", "query", "Filter", "schema", "AIChatType", "run", "AssistantAction", "CreateChat", "spaceId", "invariant", "object", "SpaceAction", "AddObject", "target"]
7
+ }
@@ -1,11 +1,11 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  useServices
4
- } from "./chunk-GKBHTBON.mjs";
4
+ } from "./chunk-ASMI7PQ2.mjs";
5
5
  import {
6
6
  ServiceType,
7
7
  categoryIcons
8
- } from "./chunk-CJ4Y3QW5.mjs";
8
+ } from "./chunk-LELXJPGJ.mjs";
9
9
  import {
10
10
  ASSISTANT_PLUGIN
11
11
  } from "./chunk-7SV6X6XU.mjs";
@@ -93,8 +93,8 @@ var ServiceItem = ({ service, enabled, setEnabled }) => {
93
93
 
94
94
  // packages/plugins/experimental/plugin-assistant/src/components/index.ts
95
95
  import { lazy } from "react";
96
- var AssistantDialog = lazy(() => import("./AssistantDialog-Y2AN6UPH.mjs"));
97
- var ChatContainer = lazy(() => import("./ChatContainer-OZO2R4TX.mjs"));
96
+ var AssistantDialog = lazy(() => import("./AssistantDialog-Q2ZBOHOV.mjs"));
97
+ var ChatContainer = lazy(() => import("./ChatContainer-5ULBF3GW.mjs"));
98
98
  var TemplateContainer = lazy(() => import("./TemplateContainer-WSHTZBB5.mjs"));
99
99
 
100
100
  export {
@@ -104,4 +104,4 @@ export {
104
104
  ChatContainer,
105
105
  TemplateContainer
106
106
  };
107
- //# sourceMappingURL=chunk-KICG37HX.mjs.map
107
+ //# sourceMappingURL=chunk-2OUUYMBT.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/AssistantSettings/AssistantSettings.tsx", "../../../src/components/ServiceRegistry/ServiceRegistry.tsx", "../../../src/components/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { DEFAULT_LLM_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 { type AssistantSettingsProps } from '../../types';\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 model label')}>\n <Select.Root\n value={settings.llmModel ?? 'default'}\n onValueChange={(value) => {\n settings.llmModel = value;\n }}\n >\n <Select.TriggerButton placeholder={t('settings default llm model label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {DEFAULT_LLM_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 React, { useMemo } from 'react';\n\nimport { Filter, type Space } from '@dxos/client/echo';\nimport { useQuery } from '@dxos/react-client/echo';\nimport { Icon, Input, List, ListItem } from '@dxos/react-ui';\n\nimport { useServices } from '../../hooks';\nimport { categoryIcons, ServiceType } from '../../types';\n\n// TODO(burdon): Option to show all/enabled/filter.\nexport const ServiceRegistry = ({ space }: { space: Space }) => {\n const matchingServices = useServices(space);\n const enabledServices = useQuery(space, Filter.schema(ServiceType));\n\n // Join matching services with enabled services.\n const services = useMemo(() => {\n return matchingServices.map((service) => enabledServices.find((s) => s.serviceId === service.serviceId) ?? service);\n }, [matchingServices, enabledServices]);\n\n // TODO(burdon): Reaplce with SpacePlugin intent.\n const handleSetEnabled = (service: ServiceType, enabled: boolean) => {\n if (enabled) {\n space.db.add(service);\n } else {\n // TODO(burdon): Remove or disable?\n space.db.remove(service);\n }\n };\n\n return (\n <List classNames='h-full grid auto-rows-[5rem] gap-2 p-2 pis-2 pie-2 overflow-y-auto scrollbar-thin'>\n {services.map((service) => (\n <ServiceItem\n key={service.serviceId}\n service={service}\n enabled={service.enabled}\n setEnabled={(enabled) => handleSetEnabled(service, enabled)}\n />\n ))}\n </List>\n );\n};\n\nconst ServiceItem = ({\n service,\n enabled,\n setEnabled,\n}: {\n service: ServiceType;\n enabled?: boolean;\n setEnabled?: (enabled: boolean) => void;\n}) => {\n return (\n <ListItem.Root classNames='flex flex-col gap-1 p-1 overflow-hidden rounded-md border border-separator'>\n <div className='grid grid-cols-[40px_1fr_40px]'>\n <div className='flex gow justify-center items-center'>\n <Icon icon={categoryIcons[service.category ?? 'default'] ?? 'ph--placeholder--regular'} size={6} />\n </div>\n <div className='grow items-center truncate mie-2'>{service.name}</div>\n <div className='flex gow justify-center items-center'>\n <Input.Root>\n <Input.Switch checked={enabled} onClick={() => setEnabled?.(!enabled)} />\n </Input.Root>\n </div>\n </div>\n <div className='grid grid-cols-[40px_1fr]'>\n <div />\n <div className='text-sm text-subdued line-clamp-2 mie-1'>{service.description}</div>\n </div>\n </ListItem.Root>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport * from './AssistantSettings';\nexport * from './ServiceRegistry';\nexport * from './TemplateEditor';\nexport * from './Thread';\nexport * from './Toolbox';\n\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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",
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { DEFAULT_LLM_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 { type AssistantSettingsProps } from '../../types';\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 model label')}>\n <Select.Root\n value={settings.llmModel ?? 'default'}\n onValueChange={(value) => {\n settings.llmModel = value;\n }}\n >\n <Select.TriggerButton placeholder={t('settings default llm model label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {DEFAULT_LLM_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 React, { useMemo } from 'react';\n\nimport { Filter, type Space } from '@dxos/client/echo';\nimport { useQuery } from '@dxos/react-client/echo';\nimport { Icon, Input, List, ListItem } from '@dxos/react-ui';\n\nimport { useServices } from '../../hooks';\nimport { categoryIcons, ServiceType } from '../../types';\n\n// TODO(burdon): Option to show all/enabled/filter.\nexport const ServiceRegistry = ({ space }: { space: Space }) => {\n const matchingServices = useServices(space);\n const enabledServices = useQuery(space, Filter.schema(ServiceType));\n\n // Join matching services with enabled services.\n const services = useMemo(() => {\n return matchingServices.map((service) => enabledServices.find((s) => s.serviceId === service.serviceId) ?? service);\n }, [matchingServices, enabledServices]);\n\n // TODO(burdon): Reaplce with SpacePlugin intent.\n const handleSetEnabled = (service: ServiceType, enabled: boolean) => {\n if (enabled) {\n space.db.add(service);\n } else {\n // TODO(burdon): Remove or disable?\n space.db.remove(service);\n }\n };\n\n return (\n <List classNames='h-full grid auto-rows-[5rem] gap-2 p-2 pis-2 pie-2 overflow-y-auto scrollbar-thin'>\n {services.map((service) => (\n <ServiceItem\n key={service.serviceId}\n service={service}\n enabled={service.enabled}\n setEnabled={(enabled) => handleSetEnabled(service, enabled)}\n />\n ))}\n </List>\n );\n};\n\nconst ServiceItem = ({\n service,\n enabled,\n setEnabled,\n}: {\n service: ServiceType;\n enabled?: boolean;\n setEnabled?: (enabled: boolean) => void;\n}) => {\n return (\n <ListItem.Root classNames='flex flex-col gap-1 p-1 overflow-hidden rounded-md border border-separator'>\n <div className='grid grid-cols-[40px_1fr_40px]'>\n <div className='flex gow justify-center items-center'>\n <Icon icon={categoryIcons[service.category ?? 'default'] ?? 'ph--placeholder--regular'} size={6} />\n </div>\n <div className='grow items-center truncate mie-2'>{service.name}</div>\n <div className='flex gow justify-center items-center'>\n <Input.Root>\n <Input.Switch checked={enabled} onClick={() => setEnabled?.(!enabled)} />\n </Input.Root>\n </div>\n </div>\n <div className='grid grid-cols-[40px_1fr]'>\n <div />\n <div className='text-sm text-subdued line-clamp-2 mie-1'>{service.description}</div>\n </div>\n </ListItem.Root>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport * from './AssistantSettings';\nexport * from './ServiceRegistry';\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
6
  "names": ["React", "DEFAULT_LLM_MODELS", "Input", "Select", "useTranslation", "DeprecatedFormContainer", "DeprecatedFormInput", "AssistantSettings", "settings", "t", "useTranslation", "ASSISTANT_PLUGIN", "DeprecatedFormContainer", "DeprecatedFormInput", "label", "Input", "Switch", "checked", "customPrompts", "onCheckedChange", "Select", "Root", "value", "llmModel", "onValueChange", "TriggerButton", "placeholder", "Portal", "Content", "Viewport", "DEFAULT_LLM_MODELS", "map", "model", "Option", "key", "React", "useMemo", "Filter", "useQuery", "Icon", "Input", "List", "ListItem", "ServiceRegistry", "space", "matchingServices", "useServices", "enabledServices", "useQuery", "Filter", "schema", "ServiceType", "services", "useMemo", "map", "service", "find", "s", "serviceId", "handleSetEnabled", "enabled", "db", "add", "remove", "React", "List", "classNames", "ServiceItem", "key", "setEnabled", "ListItem", "Root", "div", "className", "Icon", "icon", "categoryIcons", "category", "size", "name", "Input", "Switch", "checked", "onClick", "description", "lazy", "AssistantDialog", "lazy", "ChatContainer", "TemplateContainer"]
7
7
  }
@@ -5,7 +5,7 @@ import {
5
5
  import {
6
6
  ServiceType,
7
7
  categoryIcons
8
- } from "./chunk-CJ4Y3QW5.mjs";
8
+ } from "./chunk-LELXJPGJ.mjs";
9
9
  import {
10
10
  ASSISTANT_PLUGIN
11
11
  } from "./chunk-7SV6X6XU.mjs";
@@ -14,7 +14,7 @@ import {
14
14
  import React, { useState, useEffect, Fragment } from "react";
15
15
  import { Capabilities, useCapabilities } from "@dxos/app-framework";
16
16
  import { parseToolName } from "@dxos/artifact";
17
- import { FunctionType } from "@dxos/functions";
17
+ import { FunctionType } from "@dxos/functions/types";
18
18
  import { log as log3 } from "@dxos/log";
19
19
  import { Filter, useQuery } from "@dxos/react-client/echo";
20
20
  import { mx } from "@dxos/react-ui-theme";
@@ -22,7 +22,7 @@ import { mx } from "@dxos/react-ui-theme";
22
22
  // packages/plugins/experimental/plugin-assistant/src/tools/function.ts
23
23
  import { defineTool, ToolResult } from "@dxos/artifact";
24
24
  import { toEffectSchema } from "@dxos/echo-schema";
25
- import { getInvocationUrl, getUserFunctionUrlInMetadata } from "@dxos/functions";
25
+ import { getInvocationUrl, getUserFunctionUrlInMetadata } from "@dxos/functions/types";
26
26
  import { log } from "@dxos/log";
27
27
  import { getMeta } from "@dxos/react-client/echo";
28
28
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/tools/function.ts";
@@ -1123,7 +1123,7 @@ var Prompt = /* @__PURE__ */ forwardRef(({ classNames, autoFocus, lineWrapping =
1123
1123
  // packages/plugins/experimental/plugin-assistant/src/components/Prompt/PromptBar.tsx
1124
1124
  import React5, { useRef as useRef2, useState as useState3 } from "react";
1125
1125
  import { useVoiceInput } from "@dxos/plugin-transcription";
1126
- import { Icon as Icon2, IconButton as IconButton2, useTranslation } from "@dxos/react-ui";
1126
+ import { Icon as Icon2, IconButton as IconButton2, Tooltip, useTranslation } from "@dxos/react-ui";
1127
1127
  import { Spinner } from "@dxos/react-ui-sfx";
1128
1128
  import { errorText, mx as mx4 } from "@dxos/react-ui-theme";
1129
1129
  var PromptBar = ({ classNames, placeholder, processing, error, microphone, onCancel, ...props }) => {
@@ -1138,14 +1138,18 @@ var PromptBar = ({ classNames, placeholder, processing, error, microphone, onCan
1138
1138
  }
1139
1139
  });
1140
1140
  return /* @__PURE__ */ React5.createElement("div", {
1141
- className: mx4("flex shrink-0 w-full grid grid-cols-[var(--rail-action)_1fr_var(--rail-action)] overflow-hidden", classNames)
1141
+ className: mx4("shrink-0 w-full grid grid-cols-[var(--rail-action)_1fr_var(--rail-action)] overflow-hidden", classNames)
1142
1142
  }, /* @__PURE__ */ React5.createElement("div", {
1143
1143
  className: "flex w-[--rail-action] h-[--rail-action] items-center justify-center"
1144
- }, error && /* @__PURE__ */ React5.createElement(Icon2, {
1144
+ }, error && /* @__PURE__ */ React5.createElement(Tooltip.Root, {
1145
+ delayDuration: 0
1146
+ }, /* @__PURE__ */ React5.createElement(Tooltip.Trigger, null, /* @__PURE__ */ React5.createElement(Icon2, {
1145
1147
  icon: "ph--warning-circle--regular",
1146
1148
  classNames: errorText,
1147
1149
  size: 5
1148
- }) || /* @__PURE__ */ React5.createElement(Spinner, {
1150
+ })), /* @__PURE__ */ React5.createElement(Tooltip.Portal, null, /* @__PURE__ */ React5.createElement(Tooltip.Content, null, /* @__PURE__ */ React5.createElement("div", {
1151
+ className: "text-sm text-error-500"
1152
+ }, error.message), /* @__PURE__ */ React5.createElement(Tooltip.Arrow, null)))) || /* @__PURE__ */ React5.createElement(Spinner, {
1149
1153
  active: processing
1150
1154
  })), /* @__PURE__ */ React5.createElement(Prompt, {
1151
1155
  ref: promptRef,
@@ -1449,21 +1453,33 @@ var ChatProcessor = class {
1449
1453
  S: this,
1450
1454
  C: (f, a) => f(...a)
1451
1455
  });
1452
- this.error.value = new Error("AI service error", {
1453
- cause: err
1454
- });
1456
+ if (err instanceof Error && err.message.includes("Overloaded")) {
1457
+ this.error.value = new AIServiecOverloadedError("AI service overloaded", {
1458
+ cause: err
1459
+ });
1460
+ } else {
1461
+ this.error.value = new Error("AI service error", {
1462
+ cause: err
1463
+ });
1464
+ }
1455
1465
  } finally {
1456
1466
  this._stream = void 0;
1457
1467
  }
1458
1468
  }
1459
1469
  };
1470
+ var AIServiecOverloadedError = class extends Error {
1471
+ constructor() {
1472
+ super(...arguments);
1473
+ this.code = "AI_SERVICE_OVERLOADED";
1474
+ }
1475
+ };
1460
1476
 
1461
1477
  // packages/plugins/experimental/plugin-assistant/src/hooks/useChatProcessor.tsx
1462
1478
  import { useEffect as useEffect3, useMemo as useMemo3, useState as useState4 } from "react";
1463
1479
  import { Capabilities as Capabilities2, useCapabilities as useCapabilities2, useCapability, useIntentDispatcher } from "@dxos/app-framework";
1464
1480
  import { createSystemPrompt } from "@dxos/artifact";
1465
1481
  import { DEFAULT_LLM_MODEL as DEFAULT_LLM_MODEL2 } from "@dxos/assistant";
1466
- import { FunctionType as FunctionType2 } from "@dxos/functions";
1482
+ import { FunctionType as FunctionType2 } from "@dxos/functions/types";
1467
1483
  import { log as log6 } from "@dxos/log";
1468
1484
  import { useConfig } from "@dxos/react-client";
1469
1485
  import { Filter as Filter2, useQuery as useQuery2 } from "@dxos/react-client/echo";
@@ -1471,11 +1487,11 @@ import { isNonNullable as isNonNullable2 } from "@dxos/util";
1471
1487
 
1472
1488
  // packages/plugins/experimental/plugin-assistant/src/capabilities/index.ts
1473
1489
  import { lazy } from "@dxos/app-framework";
1474
- var AiClient = lazy(() => import("./ai-client-OTZVBDUH.mjs"));
1475
- var AppGraphBuilder = lazy(() => import("./app-graph-builder-H2GC2AZA.mjs"));
1476
- var IntentResolver = lazy(() => import("./intent-resolver-MR7BOKEW.mjs"));
1477
- var ReactSurface = lazy(() => import("./react-surface-AMVW4HZ7.mjs"));
1478
- var AssistantSettings = lazy(() => import("./settings-S7P5RWQI.mjs"));
1490
+ var AiClient = lazy(() => import("./ai-client-GSA67EIB.mjs"));
1491
+ var AppGraphBuilder = lazy(() => import("./app-graph-builder-SX3SREXF.mjs"));
1492
+ var IntentResolver = lazy(() => import("./intent-resolver-LOTXWV4J.mjs"));
1493
+ var ReactSurface = lazy(() => import("./react-surface-NZNNP2QI.mjs"));
1494
+ var AssistantSettings = lazy(() => import("./settings-BVWR244C.mjs"));
1479
1495
 
1480
1496
  // packages/plugins/experimental/plugin-assistant/src/hooks/useChatProcessor.tsx
1481
1497
  var __dxlog_file7 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/hooks/useChatProcessor.tsx";
@@ -1566,7 +1582,7 @@ import { useEffect as useEffect4, useState as useState5 } from "react";
1566
1582
  import { Mutex } from "@dxos/async";
1567
1583
  import { Context } from "@dxos/context";
1568
1584
  import { createSubscriptionTrigger } from "@dxos/functions";
1569
- import { FunctionTrigger } from "@dxos/functions";
1585
+ import { FunctionTrigger } from "@dxos/functions/types";
1570
1586
  import { invariant as invariant5 } from "@dxos/invariant";
1571
1587
  import { log as log8 } from "@dxos/log";
1572
1588
  import { useClient } from "@dxos/react-client";
@@ -1575,7 +1591,7 @@ import { Filter as Filter3, useQuery as useQuery3 } from "@dxos/react-client/ech
1575
1591
  // packages/plugins/experimental/plugin-assistant/src/hooks/invocation-handler.ts
1576
1592
  import { sleep } from "@dxos/async";
1577
1593
  import { getObjectCore, ResultFormat } from "@dxos/echo-db";
1578
- import { FunctionType as FunctionType3 } from "@dxos/functions";
1594
+ import { FunctionType as FunctionType3, getUserFunctionUrlInMetadata as getUserFunctionUrlInMetadata2 } from "@dxos/functions/types";
1579
1595
  import { invariant as invariant4 } from "@dxos/invariant";
1580
1596
  import { DXN, LOCAL_SPACE_TAG } from "@dxos/keys";
1581
1597
  import { log as log7 } from "@dxos/log";
@@ -1802,4 +1818,4 @@ export {
1802
1818
  Thread,
1803
1819
  ThreadContainer
1804
1820
  };
1805
- //# sourceMappingURL=chunk-GKBHTBON.mjs.map
1821
+ //# sourceMappingURL=chunk-ASMI7PQ2.mjs.map