@dxos/plugin-assistant 0.8.2-main.5885341 → 0.8.2-main.600d381

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 (148) hide show
  1. package/dist/lib/browser/{AssistantDialog-I47GUXWR.mjs → AssistantDialog-BUHPFIHN.mjs} +3 -3
  2. package/dist/lib/browser/{ChatContainer-GAYN3FEF.mjs → ChatContainer-X7JBCLFK.mjs} +3 -3
  3. package/dist/lib/browser/{app-graph-builder-ZXKGE3H5.mjs → app-graph-builder-JJCBQZGC.mjs} +4 -4
  4. package/dist/lib/browser/{app-graph-builder-ZXKGE3H5.mjs.map → app-graph-builder-JJCBQZGC.mjs.map} +1 -1
  5. package/dist/lib/browser/chunk-5P7U35RJ.mjs +192 -0
  6. package/dist/lib/browser/chunk-5P7U35RJ.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-BGMQ2YYP.mjs → chunk-PFIXSSN2.mjs} +4 -4
  8. package/dist/lib/browser/{chunk-BGMQ2YYP.mjs.map → chunk-PFIXSSN2.mjs.map} +2 -2
  9. package/dist/lib/browser/{chunk-7CAHKTZQ.mjs → chunk-QGZETTI3.mjs} +61 -82
  10. package/dist/lib/browser/chunk-QGZETTI3.mjs.map +7 -0
  11. package/dist/lib/browser/index.mjs +3 -3
  12. package/dist/lib/browser/{intent-resolver-W6XREK5F.mjs → intent-resolver-54SA6LXM.mjs} +4 -4
  13. package/dist/lib/browser/intent-resolver-54SA6LXM.mjs.map +7 -0
  14. package/dist/lib/browser/meta.json +1 -1
  15. package/dist/lib/browser/{react-surface-QMI5KG4H.mjs → react-surface-JSHNKGXY.mjs} +9 -9
  16. package/dist/lib/browser/react-surface-JSHNKGXY.mjs.map +7 -0
  17. package/dist/lib/browser/{settings-LAJZQI4H.mjs → settings-OZX7J65A.mjs} +2 -2
  18. package/dist/lib/browser/types/index.mjs +1 -1
  19. package/dist/lib/node/{AssistantDialog-SDS2TE5L.cjs → AssistantDialog-XIAFCAGB.cjs} +7 -7
  20. package/dist/lib/node/{ChatContainer-U6AVMAHY.cjs → ChatContainer-MAGI5QD6.cjs} +7 -7
  21. package/dist/lib/node/{app-graph-builder-TXHPXIIC.cjs → app-graph-builder-7EJJHBRH.cjs} +13 -13
  22. package/dist/lib/node/{app-graph-builder-TXHPXIIC.cjs.map → app-graph-builder-7EJJHBRH.cjs.map} +1 -1
  23. package/dist/lib/node/{chunk-CWHFK36A.cjs → chunk-EWY6HDMS.cjs} +69 -84
  24. package/dist/lib/node/chunk-EWY6HDMS.cjs.map +7 -0
  25. package/dist/lib/node/{chunk-XBJO453B.cjs → chunk-V4WPZXN2.cjs} +9 -9
  26. package/dist/lib/node/{chunk-XBJO453B.cjs.map → chunk-V4WPZXN2.cjs.map} +2 -2
  27. package/dist/lib/node/{chunk-5UELRDHQ.cjs → chunk-VG2UQY4S.cjs} +74 -72
  28. package/dist/lib/node/chunk-VG2UQY4S.cjs.map +7 -0
  29. package/dist/lib/node/index.cjs +39 -39
  30. package/dist/lib/node/{intent-resolver-MUJMV7II.cjs → intent-resolver-UP5FPVWP.cjs} +11 -11
  31. package/dist/lib/node/intent-resolver-UP5FPVWP.cjs.map +7 -0
  32. package/dist/lib/node/meta.json +1 -1
  33. package/dist/lib/node/{react-surface-SAJF4XBB.cjs → react-surface-M3OXAXKR.cjs} +22 -22
  34. package/dist/lib/node/react-surface-M3OXAXKR.cjs.map +7 -0
  35. package/dist/lib/node/{settings-NPXTE6ND.cjs → settings-WLTC7XO5.cjs} +6 -6
  36. package/dist/lib/node/types/index.cjs +13 -13
  37. package/dist/lib/node/types/index.cjs.map +1 -1
  38. package/dist/lib/node-esm/{AssistantDialog-KGA5HBFO.mjs → AssistantDialog-SDGQK5TF.mjs} +3 -3
  39. package/dist/lib/node-esm/{ChatContainer-XPNXNPSW.mjs → ChatContainer-AM4BDTXU.mjs} +3 -3
  40. package/dist/lib/node-esm/{app-graph-builder-SV4WC2E2.mjs → app-graph-builder-ZDI7EVEN.mjs} +4 -4
  41. package/dist/lib/node-esm/{app-graph-builder-SV4WC2E2.mjs.map → app-graph-builder-ZDI7EVEN.mjs.map} +1 -1
  42. package/dist/lib/node-esm/{chunk-XFUXN5QU.mjs → chunk-RDU7QEFL.mjs} +61 -82
  43. package/dist/lib/node-esm/chunk-RDU7QEFL.mjs.map +7 -0
  44. package/dist/lib/node-esm/{chunk-R7Q3OHWG.mjs → chunk-RN3I3BVC.mjs} +4 -4
  45. package/dist/lib/node-esm/{chunk-R7Q3OHWG.mjs.map → chunk-RN3I3BVC.mjs.map} +2 -2
  46. package/dist/lib/node-esm/chunk-UZWYXNR5.mjs +193 -0
  47. package/dist/lib/node-esm/chunk-UZWYXNR5.mjs.map +7 -0
  48. package/dist/lib/node-esm/index.mjs +3 -3
  49. package/dist/lib/node-esm/{intent-resolver-DZY2O2DG.mjs → intent-resolver-JKWFZYLN.mjs} +4 -4
  50. package/dist/lib/node-esm/intent-resolver-JKWFZYLN.mjs.map +7 -0
  51. package/dist/lib/node-esm/meta.json +1 -1
  52. package/dist/lib/node-esm/{react-surface-R43NHNMC.mjs → react-surface-RZBDBP42.mjs} +9 -9
  53. package/dist/lib/node-esm/react-surface-RZBDBP42.mjs.map +7 -0
  54. package/dist/lib/node-esm/{settings-K3JDH2I5.mjs → settings-CLE57WEP.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/capabilities/index.d.ts.map +1 -1
  59. package/dist/types/src/components/AmbientDialog/AmbientDialog.d.ts.map +1 -1
  60. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +1 -1
  61. package/dist/types/src/components/Prompt/PromptBar.d.ts.map +1 -1
  62. package/dist/types/src/components/Prompt/autocomplete.d.ts.map +1 -1
  63. package/dist/types/src/components/Prompt/references.d.ts.map +1 -1
  64. package/dist/types/src/components/PromptSettings.d.ts.map +1 -1
  65. package/dist/types/src/components/TemplateContainer.d.ts.map +1 -1
  66. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +1 -1
  67. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
  68. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +2 -2
  69. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
  70. package/dist/types/src/components/Thread/Thread.d.ts.map +1 -1
  71. package/dist/types/src/components/Thread/Thread.stories.d.ts.map +1 -1
  72. package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts +2 -2
  73. package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts.map +1 -1
  74. package/dist/types/src/components/Thread/ToolInvocations.d.ts.map +1 -1
  75. package/dist/types/src/components/Toolbox/Toolbox.d.ts +1 -1
  76. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  77. package/dist/types/src/hooks/index.d.ts +0 -1
  78. package/dist/types/src/hooks/index.d.ts.map +1 -1
  79. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
  80. package/dist/types/src/hooks/useContextProvider.d.ts +1 -1
  81. package/dist/types/src/hooks/useContextProvider.d.ts.map +1 -1
  82. package/dist/types/src/hooks/useMessageQueue.d.ts.map +1 -1
  83. package/dist/types/src/hooks/useServices.d.ts.map +1 -1
  84. package/dist/types/src/hooks/useTextInputEvents.d.ts.map +1 -1
  85. package/dist/types/src/testing/test-functions.d.ts.map +1 -1
  86. package/dist/types/src/tools/function.d.ts +2 -2
  87. package/dist/types/src/tools/function.d.ts.map +1 -1
  88. package/dist/types/src/tools/openapi.d.ts.map +1 -1
  89. package/dist/types/src/translations.d.ts +6 -60
  90. package/dist/types/src/translations.d.ts.map +1 -1
  91. package/dist/types/src/types/service.d.ts +96 -95
  92. package/dist/types/src/types/service.d.ts.map +1 -1
  93. package/dist/types/src/types/template.d.ts +52 -52
  94. package/dist/types/src/types/template.d.ts.map +1 -1
  95. package/dist/types/src/types/types.d.ts +19 -19
  96. package/dist/types/src/types/types.d.ts.map +1 -1
  97. package/dist/types/tsconfig.tsbuildinfo +1 -1
  98. package/package.json +60 -57
  99. package/src/capabilities/app-graph-builder.ts +2 -2
  100. package/src/capabilities/intent-resolver.ts +2 -2
  101. package/src/capabilities/react-surface.tsx +5 -5
  102. package/src/components/AmbientDialog/AmbientDialog.stories.tsx +1 -1
  103. package/src/components/Prompt/Prompt.stories.tsx +1 -1
  104. package/src/components/Prompt/PromptBar.tsx +4 -12
  105. package/src/components/PromptSettings.tsx +2 -2
  106. package/src/components/TemplateEditor/TemplateForm.tsx +2 -2
  107. package/src/components/Thread/Thread.stories.tsx +12 -15
  108. package/src/components/Thread/ThreadContainer.stories.tsx +6 -6
  109. package/src/components/Thread/ThreadMessage.tsx +1 -1
  110. package/src/components/Toolbox/Toolbox.stories.tsx +1 -1
  111. package/src/components/Toolbox/Toolbox.tsx +1 -1
  112. package/src/hooks/index.ts +0 -1
  113. package/src/hooks/useChatProcessor.tsx +3 -3
  114. package/src/hooks/useContextProvider.ts +9 -9
  115. package/src/tools/function.ts +4 -6
  116. package/src/tools/openapi.ts +4 -3
  117. package/src/types/service.ts +39 -37
  118. package/src/types/template.ts +27 -25
  119. package/src/types/types.ts +18 -18
  120. package/dist/lib/browser/chunk-7CAHKTZQ.mjs.map +0 -7
  121. package/dist/lib/browser/chunk-E7BN4QKP.mjs +0 -190
  122. package/dist/lib/browser/chunk-E7BN4QKP.mjs.map +0 -7
  123. package/dist/lib/browser/intent-resolver-W6XREK5F.mjs.map +0 -7
  124. package/dist/lib/browser/react-surface-QMI5KG4H.mjs.map +0 -7
  125. package/dist/lib/node/chunk-5UELRDHQ.cjs.map +0 -7
  126. package/dist/lib/node/chunk-CWHFK36A.cjs.map +0 -7
  127. package/dist/lib/node/intent-resolver-MUJMV7II.cjs.map +0 -7
  128. package/dist/lib/node/react-surface-SAJF4XBB.cjs.map +0 -7
  129. package/dist/lib/node-esm/chunk-ECYNZYEG.mjs +0 -191
  130. package/dist/lib/node-esm/chunk-ECYNZYEG.mjs.map +0 -7
  131. package/dist/lib/node-esm/chunk-XFUXN5QU.mjs.map +0 -7
  132. package/dist/lib/node-esm/intent-resolver-DZY2O2DG.mjs.map +0 -7
  133. package/dist/lib/node-esm/react-surface-R43NHNMC.mjs.map +0 -7
  134. package/dist/types/src/hooks/invocation-handler.d.ts +0 -5
  135. package/dist/types/src/hooks/invocation-handler.d.ts.map +0 -1
  136. package/dist/types/src/hooks/useLocalTriggerManager.d.ts +0 -3
  137. package/dist/types/src/hooks/useLocalTriggerManager.d.ts.map +0 -1
  138. package/src/hooks/invocation-handler.ts +0 -107
  139. package/src/hooks/useLocalTriggerManager.ts +0 -82
  140. /package/dist/lib/browser/{AssistantDialog-I47GUXWR.mjs.map → AssistantDialog-BUHPFIHN.mjs.map} +0 -0
  141. /package/dist/lib/browser/{ChatContainer-GAYN3FEF.mjs.map → ChatContainer-X7JBCLFK.mjs.map} +0 -0
  142. /package/dist/lib/browser/{settings-LAJZQI4H.mjs.map → settings-OZX7J65A.mjs.map} +0 -0
  143. /package/dist/lib/node/{AssistantDialog-SDS2TE5L.cjs.map → AssistantDialog-XIAFCAGB.cjs.map} +0 -0
  144. /package/dist/lib/node/{ChatContainer-U6AVMAHY.cjs.map → ChatContainer-MAGI5QD6.cjs.map} +0 -0
  145. /package/dist/lib/node/{settings-NPXTE6ND.cjs.map → settings-WLTC7XO5.cjs.map} +0 -0
  146. /package/dist/lib/node-esm/{AssistantDialog-KGA5HBFO.mjs.map → AssistantDialog-SDGQK5TF.mjs.map} +0 -0
  147. /package/dist/lib/node-esm/{ChatContainer-XPNXNPSW.mjs.map → ChatContainer-AM4BDTXU.mjs.map} +0 -0
  148. /package/dist/lib/node-esm/{settings-K3JDH2I5.mjs.map → settings-CLE57WEP.mjs.map} +0 -0
@@ -26,15 +26,15 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var ChatContainer_U6AVMAHY_exports = {};
30
- __export(ChatContainer_U6AVMAHY_exports, {
29
+ var ChatContainer_MAGI5QD6_exports = {};
30
+ __export(ChatContainer_MAGI5QD6_exports, {
31
31
  ChatContainer: () => ChatContainer,
32
32
  default: () => ChatContainer_default
33
33
  });
34
- module.exports = __toCommonJS(ChatContainer_U6AVMAHY_exports);
35
- var import_chunk_CWHFK36A = require("./chunk-CWHFK36A.cjs");
34
+ module.exports = __toCommonJS(ChatContainer_MAGI5QD6_exports);
35
+ var import_chunk_EWY6HDMS = require("./chunk-EWY6HDMS.cjs");
36
36
  var import_chunk_GBUNQ257 = require("./chunk-GBUNQ257.cjs");
37
- var import_chunk_5UELRDHQ = require("./chunk-5UELRDHQ.cjs");
37
+ var import_chunk_VG2UQY4S = require("./chunk-VG2UQY4S.cjs");
38
38
  var import_chunk_Q5XWEMHB = require("./chunk-Q5XWEMHB.cjs");
39
39
  var import_react = __toESM(require("react"));
40
40
  var import_app_framework = require("@dxos/app-framework");
@@ -46,7 +46,7 @@ var ChatContainer = ({ role, chat, associatedArtifact }) => {
46
46
  return /* @__PURE__ */ import_react.default.createElement(import_react_ui_stack.StackItem.Content, {
47
47
  role,
48
48
  classNames: "container-max-width"
49
- }, /* @__PURE__ */ import_react.default.createElement(import_chunk_CWHFK36A.ThreadContainer, {
49
+ }, /* @__PURE__ */ import_react.default.createElement(import_chunk_EWY6HDMS.ThreadContainer, {
50
50
  chat,
51
51
  settings,
52
52
  transcription,
@@ -58,4 +58,4 @@ var ChatContainer_default = ChatContainer;
58
58
  0 && (module.exports = {
59
59
  ChatContainer
60
60
  });
61
- //# sourceMappingURL=ChatContainer-U6AVMAHY.cjs.map
61
+ //# sourceMappingURL=ChatContainer-MAGI5QD6.cjs.map
@@ -16,12 +16,12 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var app_graph_builder_TXHPXIIC_exports = {};
20
- __export(app_graph_builder_TXHPXIIC_exports, {
19
+ var app_graph_builder_7EJJHBRH_exports = {};
20
+ __export(app_graph_builder_7EJJHBRH_exports, {
21
21
  default: () => app_graph_builder_default
22
22
  });
23
- module.exports = __toCommonJS(app_graph_builder_TXHPXIIC_exports);
24
- var import_chunk_5UELRDHQ = require("./chunk-5UELRDHQ.cjs");
23
+ module.exports = __toCommonJS(app_graph_builder_7EJJHBRH_exports);
24
+ var import_chunk_VG2UQY4S = require("./chunk-VG2UQY4S.cjs");
25
25
  var import_chunk_Q5XWEMHB = require("./chunk-Q5XWEMHB.cjs");
26
26
  var import_app_framework = require("@dxos/app-framework");
27
27
  var import_invariant = require("@dxos/invariant");
@@ -79,7 +79,7 @@ var app_graph_builder_default = (context) => (0, import_app_framework.contribute
79
79
  ns: import_chunk_Q5XWEMHB.ASSISTANT_PLUGIN
80
80
  }
81
81
  ],
82
- icon: "ph--star-four--regular",
82
+ icon: "ph--sparkle--regular",
83
83
  disposition: "pin-end",
84
84
  position: "hoist",
85
85
  keyBinding: {
@@ -92,7 +92,7 @@ var app_graph_builder_default = (context) => (0, import_app_framework.contribute
92
92
  }),
93
93
  (0, import_plugin_graph.createExtension)({
94
94
  id: `${import_chunk_Q5XWEMHB.ASSISTANT_PLUGIN}/object-chat-companion`,
95
- filter: (node) => (0, import_echo.isLiveObject)(node.data) && node.data.assistantChatQueue && node.data.type !== import_chunk_5UELRDHQ.AIChatType.typename,
95
+ filter: (node) => (0, import_echo.isLiveObject)(node.data) && node.data.assistantChatQueue && node.data.type !== import_chunk_VG2UQY4S.AIChatType.typename,
96
96
  connector: ({ node }) => [
97
97
  {
98
98
  id: [
@@ -108,7 +108,7 @@ var app_graph_builder_default = (context) => (0, import_app_framework.contribute
108
108
  ns: import_chunk_Q5XWEMHB.ASSISTANT_PLUGIN
109
109
  }
110
110
  ],
111
- icon: "ph--star-four--regular",
111
+ icon: "ph--sparkle--regular",
112
112
  position: "hoist"
113
113
  }
114
114
  }
@@ -118,7 +118,7 @@ var app_graph_builder_default = (context) => (0, import_app_framework.contribute
118
118
  id: `${import_chunk_Q5XWEMHB.ASSISTANT_PLUGIN}/root`,
119
119
  filter: (node) => node.type === import_types2.SPACE_TYPE,
120
120
  connector: ({ node }) => {
121
- const templates = (0, import_plugin_space.memoizeQuery)(node.data, import_echo.Filter.schema(import_chunk_5UELRDHQ.TemplateType));
121
+ const templates = (0, import_plugin_space.memoizeQuery)(node.data, import_echo.Filter.schema(import_chunk_VG2UQY4S.TemplateType));
122
122
  return templates.length > 0 ? [
123
123
  {
124
124
  id: `${import_chunk_Q5XWEMHB.ASSISTANT_PLUGIN}/templates`,
@@ -142,7 +142,7 @@ var app_graph_builder_default = (context) => (0, import_app_framework.contribute
142
142
  id: `${import_chunk_Q5XWEMHB.ASSISTANT_PLUGIN}/templates`,
143
143
  filter: (node) => node.id === `${import_chunk_Q5XWEMHB.ASSISTANT_PLUGIN}/templates`,
144
144
  connector: ({ node }) => {
145
- const templates = (0, import_plugin_space.memoizeQuery)(node.properties.space, import_echo.Filter.schema(import_chunk_5UELRDHQ.TemplateType));
145
+ const templates = (0, import_plugin_space.memoizeQuery)(node.properties.space, import_echo.Filter.schema(import_chunk_VG2UQY4S.TemplateType));
146
146
  return templates.toSorted((a, b) => {
147
147
  const nameA = a.name ?? "";
148
148
  const nameB = b.name ?? "";
@@ -165,14 +165,14 @@ var app_graph_builder_default = (context) => (0, import_app_framework.contribute
165
165
  })
166
166
  ]);
167
167
  var getOrCreateChat = async (dispatch, space) => {
168
- const { objects } = await space.db.query(import_echo.Filter.schema(import_chunk_5UELRDHQ.AIChatType)).run();
168
+ const { objects } = await space.db.query(import_echo.Filter.schema(import_chunk_VG2UQY4S.AIChatType)).run();
169
169
  if (objects.length > 0) {
170
170
  return objects[objects.length - 1];
171
171
  }
172
- const { data } = await dispatch((0, import_app_framework.createIntent)(import_chunk_5UELRDHQ.AssistantAction.CreateChat, {
172
+ const { data } = await dispatch((0, import_app_framework.createIntent)(import_chunk_VG2UQY4S.AssistantAction.CreateChat, {
173
173
  spaceId: space.id
174
174
  }));
175
- (0, import_invariant.invariant)(data?.object instanceof import_chunk_5UELRDHQ.AIChatType, void 0, {
175
+ (0, import_invariant.invariant)(data?.object instanceof import_chunk_VG2UQY4S.AIChatType, void 0, {
176
176
  F: __dxlog_file,
177
177
  L: 160,
178
178
  S: void 0,
@@ -187,4 +187,4 @@ var getOrCreateChat = async (dispatch, space) => {
187
187
  }));
188
188
  return data.object;
189
189
  };
190
- //# sourceMappingURL=app-graph-builder-TXHPXIIC.cjs.map
190
+ //# sourceMappingURL=app-graph-builder-7EJJHBRH.cjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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"],
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--sparkle--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--sparkle--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
5
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAIA,2BAOO;AACP,uBAA0B;AAC1B,2BAAmC;AACnC,mBAAgE;AAChE,0BAAoD;AACpD,0BAA6B;AAC7B,IAAAA,gBAAwC;AACxC,kBAA6E;;AAK7E,IAAA,4BAAe,CAACC,gBACdC,kCAAYC,kCAAaC,iBAAiB;MACxCC,qCAAgB;IACdC,IAAI,GAAGC,sCAAAA;IACPC,QAAQ,CAACC,SAA6BA,KAAKH,OAAOI;IAClDC,SAAS,MAAM;MACb;QACEL,IAAI,GAAGM,kCAAaC,aAAaC,IAAI;QACrCC,MAAM,YAAA;AACJ,gBAAM,EAAEC,iBAAiBC,SAAQ,IAAKhB,QAAQiB,kBAAkBf,kCAAagB,gBAAgB;AAC7F,gBAAMC,SAASnB,QAAQiB,kBAAkBG,wCAAmBC,MAAM;AAClE,gBAAMC,SAAStB,QAAQiB,kBAAkBf,kCAAaqB,MAAM;AAC5D,gBAAM,EAAEC,MAAK,IAAKxB,QAAQiB,kBAAkBf,kCAAauB,QAAQ;AAIjE,cAAIC;AACJ,cAAIJ,OAAOK,OAAOC,SAAS,GAAG;AAC5B,kBAAMpB,OAAOgB,MAAMK,SAASP,OAAOK,OAAO,CAAA,CAAE;AAC5C,gBAAInB,MAAM;AACR,oBAAMsB,YAAQC,sBAASvB,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,aACJmB,mCAAaxB,kCAAaC,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;MAEA/C,qCAAgB;IACdC,IAAI,GAAGC,sCAAAA;IACPC,QAAQ,CAACC,aACP4C,0BAAa5C,KAAKM,IAAI,KAAKN,KAAKM,KAAKuC,sBAAsB7C,KAAKM,KAAKwC,SAASC,iCAAWC;IAC3FC,WAAW,CAAC,EAAEjD,KAAI,MAAO;MACvB;QACEH,IAAI;UAACG,KAAKH;UAAI;UAAkBqD,KAAKC,sCAAAA;QACrCL,MAAMM;QACN9C,MAAM;QACN6B,YAAY;UACVC,OAAO;YAAC;YAAwB;cAAEC,IAAIvC;YAAiB;;UACvDwC,MAAM;UACNE,UAAU;QACZ;MACF;;EAEJ,CAAA;MAEA5C,qCAAgB;IACdC,IAAI,GAAGC,sCAAAA;IACPC,QAAQ,CAACC,SAA8BA,KAAK8C,SAASO;IACrDJ,WAAW,CAAC,EAAEjD,KAAI,MAAE;AAClB,YAAMsD,gBAAYC,kCAAavD,KAAKM,MAAMkD,mBAAOC,OAAOC,kCAAAA,CAAAA;AACxD,aAAOJ,UAAUlC,SAAS,IACtB;QACE;UACEvB,IAAI,GAAGC,sCAAAA;UACPgD,MAAM,GAAGhD,sCAAAA;UACTQ,MAAM;UACN6B,YAAY;YACVC,OAAO;cAAC;cAAmB;gBAAEC,IAAIvC;cAAiB;;YAClDwC,MAAM;YACNhB,OAAOtB,KAAKM;UACd;QACF;UAEF,CAAA;IACN;EACF,CAAA;MAEAV,qCAAgB;IACdC,IAAI,GAAGC,sCAAAA;IACPC,QAAQ,CAACC,SAA+CA,KAAKH,OAAO,GAAGC,sCAAAA;IACvEmD,WAAW,CAAC,EAAEjD,KAAI,MAAE;AAClB,YAAMsD,gBAAYC,kCAAavD,KAAKmC,WAAWb,OAAOkC,mBAAOC,OAAOC,kCAAAA,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,QAAIuE,8BAAiBD,QAAAA;QACrBrB,MAAM,GAAGhD,sCAAAA;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,mBAAOC,OAAOV,gCAAAA,CAAAA,EAAayB,IAAG;AAEvE,MAAIH,QAAQjD,SAAS,GAAG;AAEtB,WAAOiD,QAAQA,QAAQjD,SAAS,CAAA;EAClC;AAEA,QAAM,EAAEd,KAAI,IAAK,MAAME,aAASmB,mCAAa8C,sCAAgBC,YAAY;IAAEC,SAASrD,MAAMzB;EAAG,CAAA,CAAA;AAC7F+E,kCAAUtE,MAAMuE,kBAAkB9B,kCAAAA,QAAAA;;;;;;;;;AAClC,QAAMvC,aAASmB,mCAAamD,0BAAYC,WAAW;IAAEC,QAAQ1D;IAAOuD,QAAQvE,KAAKuE;EAAO,CAAA,CAAA;AACxF,SAAOvE,KAAKuE;AACd;",
6
6
  "names": ["import_types", "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
7
  }
@@ -26,8 +26,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var chunk_CWHFK36A_exports = {};
30
- __export(chunk_CWHFK36A_exports, {
29
+ var chunk_EWY6HDMS_exports = {};
30
+ __export(chunk_EWY6HDMS_exports, {
31
31
  AiClient: () => AiClient,
32
32
  AppGraphBuilder: () => AppGraphBuilder,
33
33
  IntentResolver: () => IntentResolver,
@@ -38,22 +38,23 @@ __export(chunk_CWHFK36A_exports, {
38
38
  Toolbox: () => Toolbox,
39
39
  ToolboxContainer: () => ToolboxContainer
40
40
  });
41
- module.exports = __toCommonJS(chunk_CWHFK36A_exports);
41
+ module.exports = __toCommonJS(chunk_EWY6HDMS_exports);
42
42
  var import_chunk_GBUNQ257 = require("./chunk-GBUNQ257.cjs");
43
- var import_chunk_5UELRDHQ = require("./chunk-5UELRDHQ.cjs");
43
+ var import_chunk_VG2UQY4S = require("./chunk-VG2UQY4S.cjs");
44
44
  var import_chunk_Q5XWEMHB = require("./chunk-Q5XWEMHB.cjs");
45
45
  var import_react = __toESM(require("react"));
46
46
  var import_app_framework = require("@dxos/app-framework");
47
47
  var import_artifact = require("@dxos/artifact");
48
- var import_types = require("@dxos/functions/types");
48
+ var import_functions = require("@dxos/functions");
49
49
  var import_log = require("@dxos/log");
50
50
  var import_echo = require("@dxos/react-client/echo");
51
51
  var import_react_ui_theme = require("@dxos/react-ui-theme");
52
52
  var import_artifact2 = require("@dxos/artifact");
53
53
  var import_echo_schema = require("@dxos/echo-schema");
54
- var import_types2 = require("@dxos/functions/types");
54
+ var import_functions2 = require("@dxos/functions");
55
55
  var import_log2 = require("@dxos/log");
56
56
  var import_echo2 = require("@dxos/react-client/echo");
57
+ var import_effect = require("effect");
57
58
  var import_jsonpointer = __toESM(require("jsonpointer"));
58
59
  var import_artifact3 = require("@dxos/artifact");
59
60
  var import_echo_schema2 = require("@dxos/echo-schema");
@@ -109,50 +110,36 @@ var import_react8 = require("react");
109
110
  var import_app_framework3 = require("@dxos/app-framework");
110
111
  var import_artifact4 = require("@dxos/artifact");
111
112
  var import_assistant2 = require("@dxos/assistant");
112
- var import_types3 = require("@dxos/functions/types");
113
+ var import_functions3 = require("@dxos/functions");
113
114
  var import_log7 = require("@dxos/log");
114
115
  var import_react_client = require("@dxos/react-client");
115
116
  var import_echo5 = require("@dxos/react-client/echo");
116
117
  var import_util5 = require("@dxos/util");
117
118
  var import_app_framework4 = require("@dxos/app-framework");
118
119
  var import_react9 = require("react");
119
- var import_async2 = require("@dxos/async");
120
- var import_context = require("@dxos/context");
121
- var import_functions = require("@dxos/functions");
122
- var import_types4 = require("@dxos/functions/types");
123
- var import_invariant5 = require("@dxos/invariant");
124
- var import_log8 = require("@dxos/log");
125
- var import_react_client2 = require("@dxos/react-client");
126
- var import_echo6 = require("@dxos/react-client/echo");
127
- var import_async3 = require("@dxos/async");
128
- var import_echo_db = require("@dxos/echo-db");
129
- var import_types5 = require("@dxos/functions/types");
130
- var import_invariant6 = require("@dxos/invariant");
131
120
  var import_keys2 = require("@dxos/keys");
132
- var import_log9 = require("@dxos/log");
121
+ var import_echo6 = require("@dxos/react-client/echo");
133
122
  var import_react10 = require("react");
134
- var import_keys3 = require("@dxos/keys");
135
- var import_echo7 = require("@dxos/react-client/echo");
136
- var import_react11 = require("react");
137
123
  var import_artifact5 = require("@dxos/artifact");
138
124
  var import_assistant3 = require("@dxos/assistant");
139
125
  var import_echo_schema3 = require("@dxos/echo-schema");
126
+ var import_react11 = require("react");
140
127
  var import_react12 = require("react");
141
- var import_react13 = require("react");
142
128
  var import_app_framework5 = require("@dxos/app-framework");
129
+ var import_echo7 = require("@dxos/client/echo");
130
+ var import_echo8 = require("@dxos/echo");
143
131
  var import_echo_schema4 = require("@dxos/echo-schema");
144
- var import_log10 = require("@dxos/log");
145
- var import_echo8 = require("@dxos/react-client/echo");
132
+ var import_log8 = require("@dxos/log");
146
133
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-assistant/src/tools/function.ts";
147
- var covertFunctionToTool = (fn, edgeUrl, spaceId) => {
134
+ var convertFunctionToTool = (fn, edgeUrl, spaceId) => {
148
135
  if (!fn.description || !fn.inputSchema) {
149
136
  return void 0;
150
137
  }
151
- const existingFunctionUrl = (0, import_types2.getUserFunctionUrlInMetadata)((0, import_echo2.getMeta)(fn));
138
+ const existingFunctionUrl = (0, import_functions2.getUserFunctionUrlInMetadata)((0, import_echo2.getMeta)(fn));
152
139
  if (!existingFunctionUrl) {
153
140
  return void 0;
154
141
  }
155
- const url = (0, import_types2.getInvocationUrl)(existingFunctionUrl, edgeUrl, {
142
+ const url = (0, import_functions2.getInvocationUrl)(existingFunctionUrl, edgeUrl, {
156
143
  spaceId
157
144
  });
158
145
  return (0, import_artifact2.defineTool)("user-function", {
@@ -166,7 +153,7 @@ var covertFunctionToTool = (fn, edgeUrl, spaceId) => {
166
153
  input
167
154
  }, {
168
155
  F: __dxlog_file,
169
- L: 36,
156
+ L: 34,
170
157
  S: void 0,
171
158
  C: (f, a) => f(...a)
172
159
  });
@@ -185,7 +172,7 @@ var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-assista
185
172
  var createToolsFromService = async (service) => {
186
173
  (0, import_invariant.invariant)(service.interfaces?.length === 1 && service.interfaces[0].kind === "api", void 0, {
187
174
  F: __dxlog_file2,
188
- L: 22,
175
+ L: 23,
189
176
  S: void 0,
190
177
  A: [
191
178
  "service.interfaces?.length === 1 && service.interfaces[0].kind === 'api'",
@@ -195,7 +182,7 @@ var createToolsFromService = async (service) => {
195
182
  const iface = service.interfaces[0];
196
183
  (0, import_invariant.invariant)(iface.schemaUrl, void 0, {
197
184
  F: __dxlog_file2,
198
- L: 24,
185
+ L: 25,
199
186
  S: void 0,
200
187
  A: [
201
188
  "iface.schemaUrl",
@@ -204,7 +191,7 @@ var createToolsFromService = async (service) => {
204
191
  });
205
192
  (0, import_invariant.invariant)(iface.schemaUrl, void 0, {
206
193
  F: __dxlog_file2,
207
- L: 25,
194
+ L: 26,
208
195
  S: void 0,
209
196
  A: [
210
197
  "iface.schemaUrl",
@@ -222,7 +209,7 @@ var createToolsFromApi = async (url, options) => {
222
209
  spec
223
210
  }, {
224
211
  F: __dxlog_file2,
225
- L: 32,
212
+ L: 33,
226
213
  S: void 0,
227
214
  C: (f, a) => f(...a)
228
215
  });
@@ -240,7 +227,7 @@ var createToolsFromApi = async (url, options) => {
240
227
  methodItem
241
228
  }, {
242
229
  F: __dxlog_file2,
243
- L: 44,
230
+ L: 45,
244
231
  S: void 0,
245
232
  C: (f, a) => f(...a)
246
233
  });
@@ -258,7 +245,7 @@ var createToolsFromApi = async (url, options) => {
258
245
  parameter
259
246
  }, {
260
247
  F: __dxlog_file2,
261
- L: 59,
248
+ L: 60,
262
249
  S: void 0,
263
250
  C: (f, a) => f(...a)
264
251
  });
@@ -281,11 +268,11 @@ var createToolsFromApi = async (url, options) => {
281
268
  inputSchema
282
269
  }, {
283
270
  F: __dxlog_file2,
284
- L: 84,
271
+ L: 85,
285
272
  S: void 0,
286
273
  C: (f, a) => f(...a)
287
274
  });
288
- import_echo_schema2.S.validateSync(import_echo_schema2.JsonSchemaType)(inputSchema);
275
+ import_effect.Schema.validateSync(import_echo_schema2.JsonSchemaType)(inputSchema);
289
276
  const description = methodItem.description ?? methodItem.summary;
290
277
  if (!description) {
291
278
  import_log3.log.warn("no description", {
@@ -293,7 +280,7 @@ var createToolsFromApi = async (url, options) => {
293
280
  method
294
281
  }, {
295
282
  F: __dxlog_file2,
296
- L: 89,
283
+ L: 90,
297
284
  S: void 0,
298
285
  C: (f, a) => f(...a)
299
286
  });
@@ -369,7 +356,7 @@ var callApiEndpoint = async (endpoint, input) => {
369
356
  input
370
357
  }, {
371
358
  F: __dxlog_file2,
372
- L: 173,
359
+ L: 174,
373
360
  S: void 0,
374
361
  C: (f, a) => f(...a)
375
362
  });
@@ -398,7 +385,7 @@ var callApiEndpoint = async (endpoint, input) => {
398
385
  case "body": {
399
386
  const value = input[parameter.name];
400
387
  const effectSchema = (0, import_echo_schema2.toEffectSchema)(parameter.schema);
401
- import_echo_schema2.S.validateSync(effectSchema)(value);
388
+ import_effect.Schema.validateSync(effectSchema)(value);
402
389
  if (body) {
403
390
  throw new Error(`Duplicate body parameter: ${parameter.name}`);
404
391
  }
@@ -428,7 +415,7 @@ var callApiEndpoint = async (endpoint, input) => {
428
415
  request
429
416
  }, {
430
417
  F: __dxlog_file2,
431
- L: 236,
418
+ L: 237,
432
419
  S: void 0,
433
420
  C: (f, a) => f(...a)
434
421
  });
@@ -439,7 +426,7 @@ var callApiEndpoint = async (endpoint, input) => {
439
426
  statusText: response.statusText
440
427
  }, {
441
428
  F: __dxlog_file2,
442
- L: 239,
429
+ L: 240,
443
430
  S: void 0,
444
431
  C: (f, a) => f(...a)
445
432
  });
@@ -463,7 +450,7 @@ var callApiEndpoint = async (endpoint, input) => {
463
450
  error
464
451
  }, {
465
452
  F: __dxlog_file2,
466
- L: 257,
453
+ L: 258,
467
454
  S: void 0,
468
455
  C: (f, a) => f(...a)
469
456
  });
@@ -474,7 +461,7 @@ var callApiEndpoint = async (endpoint, input) => {
474
461
  error
475
462
  }, {
476
463
  F: __dxlog_file2,
477
- L: 261,
464
+ L: 262,
478
465
  S: void 0,
479
466
  C: (f, a) => f(...a)
480
467
  });
@@ -489,7 +476,7 @@ var getEndpointUrl = (endpoint) => {
489
476
  } else {
490
477
  (0, import_invariant.invariant)(!isV3_1(endpoint.document), void 0, {
491
478
  F: __dxlog_file2,
492
- L: 272,
479
+ L: 273,
493
480
  S: void 0,
494
481
  A: [
495
482
  "!isV3_1(endpoint.document)",
@@ -509,7 +496,7 @@ var resolveAuthorization = async (authorization) => {
509
496
  case "api-key": {
510
497
  (0, import_invariant.invariant)(authorization.placement.type === "authorization-header", void 0, {
511
498
  F: __dxlog_file2,
512
- L: 288,
499
+ L: 289,
513
500
  S: void 0,
514
501
  A: [
515
502
  "authorization.placement.type === 'authorization-header'",
@@ -547,7 +534,7 @@ var resolveJsonSchema = (schema, base) => {
547
534
  base
548
535
  }, {
549
536
  F: __dxlog_file2,
550
- L: 321,
537
+ L: 322,
551
538
  S: void 0,
552
539
  C: (f, a) => f(...a)
553
540
  });
@@ -619,7 +606,7 @@ var Section = ({ title, items, striped }) => {
619
606
  };
620
607
  var ToolboxContainer = ({ classNames, space }) => {
621
608
  const artifactDefinitions = (0, import_app_framework.useCapabilities)(import_app_framework.Capabilities.ArtifactDefinition);
622
- const services = (0, import_echo.useQuery)(space, import_echo.Filter.schema(import_chunk_5UELRDHQ.ServiceType));
609
+ const services = (0, import_echo.useQuery)(space, import_echo.Filter.schema(import_chunk_VG2UQY4S.ServiceType));
623
610
  const [serviceTools, setServiceTools] = (0, import_react.useState)([]);
624
611
  (0, import_react.useEffect)(() => {
625
612
  (0, import_log.log)("creating service tools...", {
@@ -640,7 +627,7 @@ var ToolboxContainer = ({ classNames, space }) => {
640
627
  }, [
641
628
  services
642
629
  ]);
643
- const functions = (0, import_echo.useQuery)(space, import_echo.Filter.schema(import_types.FunctionType));
630
+ const functions = (0, import_echo.useQuery)(space, import_echo.Filter.schema(import_functions.FunctionType));
644
631
  return /* @__PURE__ */ import_react.default.createElement(Toolbox, {
645
632
  classNames,
646
633
  artifacts: artifactDefinitions,
@@ -765,7 +752,7 @@ var ToolContainer = ({ classNames, items }) => {
765
752
  };
766
753
  var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-assistant/src/components/Thread/ThreadMessage.tsx";
767
754
  var panelClassNames = "flex flex-col w-full px-2 bg-groupSurface rounded-md";
768
- var userClassNames = "bg-[--user-fill] text-inverse";
755
+ var userClassNames = "bg-[--user-fill] text-accentSurfaceText";
769
756
  var ToggleContainer2 = (props) => {
770
757
  return /* @__PURE__ */ import_react3.default.createElement(import_react_ui_components2.ToggleContainer, {
771
758
  ...props,
@@ -1326,15 +1313,14 @@ var PromptBar = ({ classNames, placeholder, processing, error, microphone, onCan
1326
1313
  className: (0, import_react_ui_theme5.mx)("shrink-0 w-full grid grid-cols-[var(--rail-action)_1fr_var(--rail-action)] overflow-hidden", classNames)
1327
1314
  }, /* @__PURE__ */ import_react6.default.createElement("div", {
1328
1315
  className: "flex w-[--rail-action] h-[--rail-action] items-center justify-center"
1329
- }, error && /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.Tooltip.Root, {
1316
+ }, error && /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.Tooltip.Trigger, {
1317
+ content: error.message,
1330
1318
  delayDuration: 0
1331
- }, /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.Tooltip.Trigger, null, /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.Icon, {
1319
+ }, /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.Icon, {
1332
1320
  icon: "ph--warning-circle--regular",
1333
1321
  classNames: import_react_ui_theme5.errorText,
1334
1322
  size: 5
1335
- })), /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.Tooltip.Portal, null, /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.Tooltip.Content, null, /* @__PURE__ */ import_react6.default.createElement("div", {
1336
- className: (0, import_react_ui_theme5.mx)("text-sm", import_react_ui_theme5.errorMessageColors)
1337
- }, error.message), /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.Tooltip.Arrow, null)))) || /* @__PURE__ */ import_react6.default.createElement(import_react_ui_sfx.Spinner, {
1323
+ })) || /* @__PURE__ */ import_react6.default.createElement(import_react_ui_sfx.Spinner, {
1338
1324
  active: processing
1339
1325
  })), /* @__PURE__ */ import_react6.default.createElement(Prompt, {
1340
1326
  ref: promptRef,
@@ -1611,10 +1597,10 @@ var AIServiceOverloadedError = class extends Error {
1611
1597
  }
1612
1598
  };
1613
1599
  var AiClient = (0, import_app_framework4.lazy)(() => import("./ai-client-3EVTLXTT.cjs"));
1614
- var AppGraphBuilder = (0, import_app_framework4.lazy)(() => import("./app-graph-builder-TXHPXIIC.cjs"));
1615
- var IntentResolver = (0, import_app_framework4.lazy)(() => import("./intent-resolver-MUJMV7II.cjs"));
1616
- var ReactSurface = (0, import_app_framework4.lazy)(() => import("./react-surface-SAJF4XBB.cjs"));
1617
- var Settings = (0, import_app_framework4.lazy)(() => import("./settings-NPXTE6ND.cjs"));
1600
+ var AppGraphBuilder = (0, import_app_framework4.lazy)(() => import("./app-graph-builder-7EJJHBRH.cjs"));
1601
+ var IntentResolver = (0, import_app_framework4.lazy)(() => import("./intent-resolver-UP5FPVWP.cjs"));
1602
+ var ReactSurface = (0, import_app_framework4.lazy)(() => import("./react-surface-M3OXAXKR.cjs"));
1603
+ var Settings = (0, import_app_framework4.lazy)(() => import("./settings-WLTC7XO5.cjs"));
1618
1604
  var __dxlog_file7 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-assistant/src/hooks/useChatProcessor.tsx";
1619
1605
  var useChatProcessor = ({
1620
1606
  chat,
@@ -1628,7 +1614,7 @@ var useChatProcessor = ({
1628
1614
  const globalTools = (0, import_app_framework3.useCapabilities)(import_app_framework3.Capabilities.Tools);
1629
1615
  const artifactDefinitions = (0, import_app_framework3.useCapabilities)(import_app_framework3.Capabilities.ArtifactDefinition);
1630
1616
  const { dispatchPromise: dispatch } = (0, import_app_framework3.useIntentDispatcher)();
1631
- const services = (0, import_echo5.useQuery)(space, import_echo5.Filter.schema(import_chunk_5UELRDHQ.ServiceType));
1617
+ const services = (0, import_echo5.useQuery)(space, import_echo5.Filter.schema(import_chunk_VG2UQY4S.ServiceType));
1632
1618
  const [serviceTools, setServiceTools] = (0, import_react8.useState)([]);
1633
1619
  (0, import_react8.useEffect)(() => {
1634
1620
  (0, import_log7.log)("creating service tools...", void 0, {
@@ -1645,7 +1631,7 @@ var useChatProcessor = ({
1645
1631
  services
1646
1632
  ]);
1647
1633
  const config = (0, import_react_client.useConfig)();
1648
- const functions = (0, import_echo5.useQuery)(space, import_echo5.Filter.schema(import_types3.FunctionType));
1634
+ const functions = (0, import_echo5.useQuery)(space, import_echo5.Filter.schema(import_functions3.FunctionType));
1649
1635
  const chatId = (0, import_react8.useMemo)(() => chat ? (0, import_echo5.fullyQualifiedId)(chat) : void 0, [
1650
1636
  chat
1651
1637
  ]);
@@ -1659,7 +1645,7 @@ var useChatProcessor = ({
1659
1645
  const tools2 = [
1660
1646
  ...globalTools.flat(),
1661
1647
  ...serviceTools,
1662
- ...functions.map((fn) => covertFunctionToTool(fn, config.values.runtime?.services?.edge?.url ?? "", space?.id)).filter(import_util5.isNonNullable)
1648
+ ...functions.map((fn) => convertFunctionToTool(fn, config.values.runtime?.services?.edge?.url ?? "", space?.id)).filter(import_util5.isNonNullable)
1663
1649
  ];
1664
1650
  const extensions2 = {
1665
1651
  space,
@@ -1711,13 +1697,12 @@ ${definition.instructions}`),
1711
1697
  ]);
1712
1698
  return processor;
1713
1699
  };
1714
- var registerTriggersMutex = new import_async2.Mutex();
1715
1700
  var useMessageQueue = (chat) => {
1716
- const space = (0, import_echo7.getSpace)(chat);
1717
- const queueDxn = (0, import_react10.useMemo)(() => {
1701
+ const space = (0, import_echo6.getSpace)(chat);
1702
+ const queueDxn = (0, import_react9.useMemo)(() => {
1718
1703
  const dxn = space && chat?.assistantChatQueue.dxn;
1719
- return dxn ? new import_keys3.DXN(import_keys3.DXN.kind.QUEUE, [
1720
- import_keys3.QueueSubspaceTags.DATA,
1704
+ return dxn ? new import_keys2.DXN(import_keys2.DXN.kind.QUEUE, [
1705
+ import_keys2.QueueSubspaceTags.DATA,
1721
1706
  space.id,
1722
1707
  dxn.parts.at(-1)
1723
1708
  ]) : void 0;
@@ -1725,7 +1710,7 @@ var useMessageQueue = (chat) => {
1725
1710
  space,
1726
1711
  chat?.assistantChatQueue.dxn
1727
1712
  ]);
1728
- return (0, import_echo7.useQueue)(queueDxn);
1713
+ return (0, import_echo6.useQueue)(queueDxn);
1729
1714
  };
1730
1715
  var AMADEUS_AUTH = {
1731
1716
  type: "oauth",
@@ -1743,7 +1728,7 @@ var VISUAL_CROSSING_CREDENTIALS = {
1743
1728
  }
1744
1729
  };
1745
1730
  var TEST_SERVICES = [
1746
- (0, import_echo_schema3.create)(import_chunk_5UELRDHQ.ServiceType, {
1731
+ (0, import_echo_schema3.create)(import_chunk_VG2UQY4S.ServiceType, {
1747
1732
  serviceId: "amadeus.com/service/FlightSearch",
1748
1733
  name: "Amadeus Flight Search",
1749
1734
  description: "Search for local and international flights.",
@@ -1756,7 +1741,7 @@ var TEST_SERVICES = [
1756
1741
  }
1757
1742
  ]
1758
1743
  }),
1759
- (0, import_echo_schema3.create)(import_chunk_5UELRDHQ.ServiceType, {
1744
+ (0, import_echo_schema3.create)(import_chunk_VG2UQY4S.ServiceType, {
1760
1745
  serviceId: "amadeus.com/service/HotelSearch",
1761
1746
  name: "Amadeus Hotel Search",
1762
1747
  description: "Search for local and international hotels.",
@@ -1769,7 +1754,7 @@ var TEST_SERVICES = [
1769
1754
  }
1770
1755
  ]
1771
1756
  }),
1772
- (0, import_echo_schema3.create)(import_chunk_5UELRDHQ.ServiceType, {
1757
+ (0, import_echo_schema3.create)(import_chunk_VG2UQY4S.ServiceType, {
1773
1758
  serviceId: "visualcrossing.com/service/Weather",
1774
1759
  name: "Visual Crossing Weather",
1775
1760
  description: "Search for global weather forecasts.",
@@ -1783,7 +1768,7 @@ var TEST_SERVICES = [
1783
1768
  ]
1784
1769
  }),
1785
1770
  // TODO(burdon): Needs auth.
1786
- (0, import_echo_schema3.create)(import_chunk_5UELRDHQ.ServiceType, {
1771
+ (0, import_echo_schema3.create)(import_chunk_VG2UQY4S.ServiceType, {
1787
1772
  serviceId: "abstractapi.com/service/GeoLocation",
1788
1773
  name: "Abstract GeoLocation",
1789
1774
  description: "Get the location of any IP address.",
@@ -1800,11 +1785,11 @@ var TEST_SERVICES = [
1800
1785
  //
1801
1786
  ...Array.from({
1802
1787
  length: 20
1803
- }, (_, i) => (0, import_echo_schema3.create)(import_chunk_5UELRDHQ.ServiceType, {
1788
+ }, (_, i) => (0, import_echo_schema3.create)(import_chunk_VG2UQY4S.ServiceType, {
1804
1789
  serviceId: `example.com/service/test-${i}`,
1805
1790
  name: `Test ${i}`,
1806
1791
  description: `Test ${i}`,
1807
- category: Object.keys(import_chunk_5UELRDHQ.categoryIcons)[Math.floor(Math.random() * Object.keys(import_chunk_5UELRDHQ.categoryIcons).length)],
1792
+ category: Object.keys(import_chunk_VG2UQY4S.categoryIcons)[Math.floor(Math.random() * Object.keys(import_chunk_VG2UQY4S.categoryIcons).length)],
1808
1793
  interfaces: [
1809
1794
  {
1810
1795
  kind: "api",
@@ -1817,18 +1802,18 @@ var __dxlog_file8 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-assista
1817
1802
  var stringMatch = (query, label) => label.toLowerCase().startsWith(query.toLowerCase());
1818
1803
  var useContextProvider = (space) => {
1819
1804
  const artifactDefinitions = (0, import_app_framework5.useCapabilities)(import_app_framework5.Capabilities.ArtifactDefinition);
1820
- return (0, import_react13.useMemo)(() => {
1805
+ return (0, import_react12.useMemo)(() => {
1821
1806
  if (!space) {
1822
1807
  return void 0;
1823
1808
  }
1824
1809
  return {
1825
1810
  query: async ({ query }) => {
1826
1811
  const artifactSchemas = artifactDefinitions.map((artifact) => artifact.schema);
1827
- const { objects } = await space.db.query(import_echo8.Filter.or(...artifactSchemas.map((schema) => import_echo8.Filter.schema(schema)))).run();
1812
+ const { objects } = await space.db.query(import_echo7.Filter.or(...artifactSchemas.map((schema) => import_echo7.Filter.schema(schema)))).run();
1828
1813
  return objects.map((object) => {
1829
- import_log10.log.info("object", {
1814
+ import_log8.log.info("object", {
1830
1815
  object,
1831
- label: (0, import_echo_schema4.getLabel)((0, import_echo_schema4.getSchema)(object), object)
1816
+ label: (0, import_echo_schema4.getLabel)(import_echo8.Type.getSchema(object), object)
1832
1817
  }, {
1833
1818
  F: __dxlog_file8,
1834
1819
  L: 36,
@@ -1836,9 +1821,9 @@ var useContextProvider = (space) => {
1836
1821
  C: (f, a) => f(...a)
1837
1822
  });
1838
1823
  return object;
1839
- }).filter((object) => stringMatch(query, (0, import_echo_schema4.getLabel)((0, import_echo_schema4.getSchema)(object), object) ?? "")).filter((object) => !!(0, import_echo_schema4.getDXN)(object)).map((object) => ({
1840
- uri: (0, import_echo_schema4.getDXN)(object).toString(),
1841
- label: (0, import_echo_schema4.getLabel)((0, import_echo_schema4.getSchema)(object), object) ?? ""
1824
+ }).filter((object) => stringMatch(query, (0, import_echo_schema4.getLabel)(import_echo8.Type.getSchema(object), object) ?? "")).filter((object) => !!import_echo8.Type.getDXN(object)).map((object) => ({
1825
+ uri: import_echo8.Type.getDXN(object).toString(),
1826
+ label: (0, import_echo_schema4.getLabel)(import_echo8.Type.getSchema(object), object) ?? ""
1842
1827
  }));
1843
1828
  },
1844
1829
  resolveMetadata: async ({ uri }) => {
@@ -1847,7 +1832,7 @@ var useContextProvider = (space) => {
1847
1832
  }).first();
1848
1833
  return {
1849
1834
  uri,
1850
- label: (0, import_echo_schema4.getLabel)((0, import_echo_schema4.getSchema)(object), object) ?? ""
1835
+ label: (0, import_echo_schema4.getLabel)(import_echo8.Type.getSchema(object), object) ?? ""
1851
1836
  };
1852
1837
  }
1853
1838
  };
@@ -1959,4 +1944,4 @@ var ThreadContainer = ({ classNames, chat, settings, part, associatedArtifact, o
1959
1944
  Toolbox,
1960
1945
  ToolboxContainer
1961
1946
  });
1962
- //# sourceMappingURL=chunk-CWHFK36A.cjs.map
1947
+ //# sourceMappingURL=chunk-EWY6HDMS.cjs.map