@dxos/plugin-assistant 0.8.2-main.2f9c567 → 0.8.2-main.30e4dbb

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 (103) hide show
  1. package/dist/lib/browser/{AssistantDialog-WX6EKSXI.mjs → AssistantDialog-BUHPFIHN.mjs} +2 -2
  2. package/dist/lib/browser/{ChatContainer-HMNWYDQ5.mjs → ChatContainer-X7JBCLFK.mjs} +2 -2
  3. package/dist/lib/browser/{app-graph-builder-J5ISIFTE.mjs → app-graph-builder-JJCBQZGC.mjs} +3 -3
  4. package/dist/lib/browser/{app-graph-builder-J5ISIFTE.mjs.map → app-graph-builder-JJCBQZGC.mjs.map} +1 -1
  5. package/dist/lib/browser/{chunk-J3V74ZRF.mjs → chunk-PFIXSSN2.mjs} +3 -3
  6. package/dist/lib/browser/{chunk-4EXBK6UE.mjs → chunk-QGZETTI3.mjs} +21 -21
  7. package/dist/lib/browser/chunk-QGZETTI3.mjs.map +7 -0
  8. package/dist/lib/browser/index.mjs +2 -2
  9. package/dist/lib/browser/{intent-resolver-MGHOSZY3.mjs → intent-resolver-54SA6LXM.mjs} +3 -3
  10. package/dist/lib/browser/intent-resolver-54SA6LXM.mjs.map +7 -0
  11. package/dist/lib/browser/meta.json +1 -1
  12. package/dist/lib/browser/{react-surface-VP4ABBMH.mjs → react-surface-JSHNKGXY.mjs} +8 -8
  13. package/dist/lib/browser/react-surface-JSHNKGXY.mjs.map +7 -0
  14. package/dist/lib/node/{AssistantDialog-2OTAZADX.cjs → AssistantDialog-XIAFCAGB.cjs} +6 -6
  15. package/dist/lib/node/{ChatContainer-3CTBKBS2.cjs → ChatContainer-MAGI5QD6.cjs} +6 -6
  16. package/dist/lib/node/{app-graph-builder-BBNLIGYJ.cjs → app-graph-builder-7EJJHBRH.cjs} +6 -6
  17. package/dist/lib/node/{app-graph-builder-BBNLIGYJ.cjs.map → app-graph-builder-7EJJHBRH.cjs.map} +1 -1
  18. package/dist/lib/node/{chunk-XC7A3KUG.cjs → chunk-EWY6HDMS.cjs} +22 -22
  19. package/dist/lib/node/chunk-EWY6HDMS.cjs.map +7 -0
  20. package/dist/lib/node/{chunk-WFSXNO4H.cjs → chunk-V4WPZXN2.cjs} +6 -6
  21. package/dist/lib/node/index.cjs +16 -16
  22. package/dist/lib/node/{intent-resolver-Z2NTL2FV.cjs → intent-resolver-UP5FPVWP.cjs} +6 -6
  23. package/dist/lib/node/intent-resolver-UP5FPVWP.cjs.map +7 -0
  24. package/dist/lib/node/meta.json +1 -1
  25. package/dist/lib/node/{react-surface-HNXDAZ7C.cjs → react-surface-M3OXAXKR.cjs} +21 -21
  26. package/dist/lib/node/react-surface-M3OXAXKR.cjs.map +7 -0
  27. package/dist/lib/node-esm/{AssistantDialog-GNLPYXY4.mjs → AssistantDialog-SDGQK5TF.mjs} +2 -2
  28. package/dist/lib/node-esm/{ChatContainer-FGHDDORQ.mjs → ChatContainer-AM4BDTXU.mjs} +2 -2
  29. package/dist/lib/node-esm/{app-graph-builder-245AWCPJ.mjs → app-graph-builder-ZDI7EVEN.mjs} +3 -3
  30. package/dist/lib/node-esm/{app-graph-builder-245AWCPJ.mjs.map → app-graph-builder-ZDI7EVEN.mjs.map} +1 -1
  31. package/dist/lib/node-esm/{chunk-JX73NOSL.mjs → chunk-RDU7QEFL.mjs} +21 -21
  32. package/dist/lib/node-esm/chunk-RDU7QEFL.mjs.map +7 -0
  33. package/dist/lib/node-esm/{chunk-G5LUEW72.mjs → chunk-RN3I3BVC.mjs} +3 -3
  34. package/dist/lib/node-esm/index.mjs +2 -2
  35. package/dist/lib/node-esm/{intent-resolver-DMQXPV2H.mjs → intent-resolver-JKWFZYLN.mjs} +3 -3
  36. package/dist/lib/node-esm/intent-resolver-JKWFZYLN.mjs.map +7 -0
  37. package/dist/lib/node-esm/meta.json +1 -1
  38. package/dist/lib/node-esm/{react-surface-NYXMBFPY.mjs → react-surface-RZBDBP42.mjs} +8 -8
  39. package/dist/lib/node-esm/react-surface-RZBDBP42.mjs.map +7 -0
  40. package/dist/types/src/capabilities/ai-client.d.ts.map +1 -1
  41. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  42. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  43. package/dist/types/src/components/AmbientDialog/AmbientDialog.d.ts.map +1 -1
  44. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +1 -1
  45. package/dist/types/src/components/Prompt/PromptBar.d.ts.map +1 -1
  46. package/dist/types/src/components/Prompt/autocomplete.d.ts.map +1 -1
  47. package/dist/types/src/components/Prompt/references.d.ts.map +1 -1
  48. package/dist/types/src/components/PromptSettings.d.ts.map +1 -1
  49. package/dist/types/src/components/TemplateContainer.d.ts.map +1 -1
  50. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +1 -1
  51. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
  52. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
  53. package/dist/types/src/components/Thread/Thread.d.ts.map +1 -1
  54. package/dist/types/src/components/Thread/Thread.stories.d.ts.map +1 -1
  55. package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts +1 -1
  56. package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts.map +1 -1
  57. package/dist/types/src/components/Thread/ToolInvocations.d.ts.map +1 -1
  58. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  59. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
  60. package/dist/types/src/hooks/useContextProvider.d.ts +1 -1
  61. package/dist/types/src/hooks/useContextProvider.d.ts.map +1 -1
  62. package/dist/types/src/hooks/useMessageQueue.d.ts.map +1 -1
  63. package/dist/types/src/hooks/useServices.d.ts.map +1 -1
  64. package/dist/types/src/hooks/useTextInputEvents.d.ts.map +1 -1
  65. package/dist/types/src/testing/test-functions.d.ts.map +1 -1
  66. package/dist/types/src/tools/function.d.ts +1 -1
  67. package/dist/types/src/tools/function.d.ts.map +1 -1
  68. package/dist/types/src/tools/openapi.d.ts.map +1 -1
  69. package/dist/types/src/translations.d.ts +6 -60
  70. package/dist/types/src/translations.d.ts.map +1 -1
  71. package/dist/types/tsconfig.tsbuildinfo +1 -1
  72. package/package.json +58 -58
  73. package/src/capabilities/app-graph-builder.ts +2 -2
  74. package/src/capabilities/intent-resolver.ts +2 -2
  75. package/src/capabilities/react-surface.tsx +5 -5
  76. package/src/components/AmbientDialog/AmbientDialog.stories.tsx +1 -1
  77. package/src/components/Prompt/Prompt.stories.tsx +1 -1
  78. package/src/components/Prompt/PromptBar.tsx +4 -12
  79. package/src/components/Thread/Thread.stories.tsx +12 -15
  80. package/src/components/Thread/ThreadContainer.stories.tsx +4 -5
  81. package/src/components/Thread/ThreadMessage.tsx +1 -1
  82. package/src/components/Toolbox/Toolbox.stories.tsx +1 -1
  83. package/src/hooks/useChatProcessor.tsx +2 -2
  84. package/src/hooks/useContextProvider.ts +9 -9
  85. package/src/tools/function.ts +2 -4
  86. package/dist/lib/browser/chunk-4EXBK6UE.mjs.map +0 -7
  87. package/dist/lib/browser/intent-resolver-MGHOSZY3.mjs.map +0 -7
  88. package/dist/lib/browser/react-surface-VP4ABBMH.mjs.map +0 -7
  89. package/dist/lib/node/chunk-XC7A3KUG.cjs.map +0 -7
  90. package/dist/lib/node/intent-resolver-Z2NTL2FV.cjs.map +0 -7
  91. package/dist/lib/node/react-surface-HNXDAZ7C.cjs.map +0 -7
  92. package/dist/lib/node-esm/chunk-JX73NOSL.mjs.map +0 -7
  93. package/dist/lib/node-esm/intent-resolver-DMQXPV2H.mjs.map +0 -7
  94. package/dist/lib/node-esm/react-surface-NYXMBFPY.mjs.map +0 -7
  95. /package/dist/lib/browser/{AssistantDialog-WX6EKSXI.mjs.map → AssistantDialog-BUHPFIHN.mjs.map} +0 -0
  96. /package/dist/lib/browser/{ChatContainer-HMNWYDQ5.mjs.map → ChatContainer-X7JBCLFK.mjs.map} +0 -0
  97. /package/dist/lib/browser/{chunk-J3V74ZRF.mjs.map → chunk-PFIXSSN2.mjs.map} +0 -0
  98. /package/dist/lib/node/{AssistantDialog-2OTAZADX.cjs.map → AssistantDialog-XIAFCAGB.cjs.map} +0 -0
  99. /package/dist/lib/node/{ChatContainer-3CTBKBS2.cjs.map → ChatContainer-MAGI5QD6.cjs.map} +0 -0
  100. /package/dist/lib/node/{chunk-WFSXNO4H.cjs.map → chunk-V4WPZXN2.cjs.map} +0 -0
  101. /package/dist/lib/node-esm/{AssistantDialog-GNLPYXY4.mjs.map → AssistantDialog-SDGQK5TF.mjs.map} +0 -0
  102. /package/dist/lib/node-esm/{ChatContainer-FGHDDORQ.mjs.map → ChatContainer-AM4BDTXU.mjs.map} +0 -0
  103. /package/dist/lib/node-esm/{chunk-G5LUEW72.mjs.map → chunk-RN3I3BVC.mjs.map} +0 -0
@@ -26,28 +26,28 @@ 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 react_surface_HNXDAZ7C_exports = {};
30
- __export(react_surface_HNXDAZ7C_exports, {
29
+ var react_surface_M3OXAXKR_exports = {};
30
+ __export(react_surface_M3OXAXKR_exports, {
31
31
  default: () => react_surface_default
32
32
  });
33
- module.exports = __toCommonJS(react_surface_HNXDAZ7C_exports);
34
- var import_chunk_WFSXNO4H = require("./chunk-WFSXNO4H.cjs");
33
+ module.exports = __toCommonJS(react_surface_M3OXAXKR_exports);
34
+ var import_chunk_V4WPZXN2 = require("./chunk-V4WPZXN2.cjs");
35
35
  var import_chunk_XI2ARIEO = require("./chunk-XI2ARIEO.cjs");
36
- var import_chunk_XC7A3KUG = require("./chunk-XC7A3KUG.cjs");
36
+ var import_chunk_EWY6HDMS = require("./chunk-EWY6HDMS.cjs");
37
37
  var import_chunk_GBUNQ257 = require("./chunk-GBUNQ257.cjs");
38
38
  var import_chunk_VG2UQY4S = require("./chunk-VG2UQY4S.cjs");
39
39
  var import_chunk_Q5XWEMHB = require("./chunk-Q5XWEMHB.cjs");
40
40
  var import_react = __toESM(require("react"));
41
41
  var import_app_framework = require("@dxos/app-framework");
42
- var import_echo_schema = require("@dxos/echo-schema");
42
+ var import_echo = require("@dxos/echo");
43
43
  var import_local_storage = require("@dxos/local-storage");
44
- var import_echo = require("@dxos/react-client/echo");
44
+ var import_echo2 = require("@dxos/react-client/echo");
45
45
  var react_surface_default = () => (0, import_app_framework.contributes)(import_app_framework.Capabilities.ReactSurface, [
46
46
  (0, import_app_framework.createSurface)({
47
47
  id: `${import_chunk_Q5XWEMHB.ASSISTANT_PLUGIN}/plugin-settings`,
48
48
  role: "article",
49
49
  filter: (data) => data.subject instanceof import_local_storage.SettingsStore && data.subject.prefix === import_chunk_Q5XWEMHB.ASSISTANT_PLUGIN,
50
- component: ({ data: { subject } }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_WFSXNO4H.AssistantSettings, {
50
+ component: ({ data: { subject } }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_V4WPZXN2.AssistantSettings, {
51
51
  settings: subject.value
52
52
  })
53
53
  }),
@@ -55,13 +55,13 @@ var react_surface_default = () => (0, import_app_framework.contributes)(import_a
55
55
  id: import_chunk_Q5XWEMHB.ASSISTANT_DIALOG,
56
56
  role: "dialog",
57
57
  filter: (data) => data.component === import_chunk_Q5XWEMHB.ASSISTANT_DIALOG,
58
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_WFSXNO4H.AssistantDialog, data.props)
58
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_V4WPZXN2.AssistantDialog, data.props)
59
59
  }),
60
60
  (0, import_app_framework.createSurface)({
61
61
  id: `${import_chunk_Q5XWEMHB.ASSISTANT_PLUGIN}/chat`,
62
62
  role: "article",
63
- filter: (data) => (0, import_echo_schema.isInstanceOf)(import_chunk_VG2UQY4S.AIChatType, data.subject) && data.variant !== "assistant-chat",
64
- component: ({ data, role }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_WFSXNO4H.ChatContainer, {
63
+ filter: (data) => import_echo.Type.instanceOf(import_chunk_VG2UQY4S.AIChatType, data.subject) && data.variant !== "assistant-chat",
64
+ component: ({ data, role }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_V4WPZXN2.ChatContainer, {
65
65
  role,
66
66
  chat: data.subject
67
67
  })
@@ -69,16 +69,16 @@ var react_surface_default = () => (0, import_app_framework.contributes)(import_a
69
69
  (0, import_app_framework.createSurface)({
70
70
  id: `${import_chunk_Q5XWEMHB.ASSISTANT_PLUGIN}/object-chat`,
71
71
  role: "article",
72
- filter: (data) => (0, import_echo.isLiveObject)(data.companionTo) && data.companionTo.assistantChatQueue && data.subject === "assistant-chat",
72
+ filter: (data) => (0, import_echo2.isLiveObject)(data.companionTo) && data.companionTo.assistantChatQueue && data.subject === "assistant-chat",
73
73
  component: ({ data, role }) => {
74
74
  const associatedArtifact = (0, import_react.useMemo)(() => ({
75
- id: (0, import_echo.fullyQualifiedId)(data.companionTo),
76
- typename: (0, import_echo_schema.getTypename)(data.companionTo) ?? "unknown",
77
- spaceId: (0, import_echo.getSpace)(data.companionTo)?.id ?? "unknown"
75
+ id: (0, import_echo2.fullyQualifiedId)(data.companionTo),
76
+ typename: (0, import_echo2.getTypename)(data.companionTo) ?? "unknown",
77
+ spaceId: (0, import_echo2.getSpace)(data.companionTo)?.id ?? "unknown"
78
78
  }), [
79
79
  data.companionTo
80
80
  ]);
81
- return /* @__PURE__ */ import_react.default.createElement(import_chunk_WFSXNO4H.ChatContainer, {
81
+ return /* @__PURE__ */ import_react.default.createElement(import_chunk_V4WPZXN2.ChatContainer, {
82
82
  role,
83
83
  chat: data.companionTo,
84
84
  associatedArtifact
@@ -88,8 +88,8 @@ var react_surface_default = () => (0, import_app_framework.contributes)(import_a
88
88
  (0, import_app_framework.createSurface)({
89
89
  id: `${import_chunk_Q5XWEMHB.ASSISTANT_PLUGIN}/template`,
90
90
  role: "article",
91
- filter: (data) => (0, import_echo_schema.isInstanceOf)(import_chunk_VG2UQY4S.TemplateType, data.subject),
92
- component: ({ data, role }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_WFSXNO4H.TemplateContainer, {
91
+ filter: (data) => import_echo.Type.instanceOf(import_chunk_VG2UQY4S.TemplateType, data.subject),
92
+ component: ({ data, role }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_V4WPZXN2.TemplateContainer, {
93
93
  role,
94
94
  template: data.subject
95
95
  })
@@ -97,10 +97,10 @@ var react_surface_default = () => (0, import_app_framework.contributes)(import_a
97
97
  (0, import_app_framework.createSurface)({
98
98
  id: `${import_chunk_Q5XWEMHB.ASSISTANT_PLUGIN}/prompt-settings`,
99
99
  role: "object-settings",
100
- filter: (data) => (0, import_echo_schema.isInstanceOf)(import_chunk_VG2UQY4S.TemplateType, data.subject),
101
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_WFSXNO4H.PromptSettings, {
100
+ filter: (data) => import_echo.Type.instanceOf(import_chunk_VG2UQY4S.TemplateType, data.subject),
101
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_V4WPZXN2.PromptSettings, {
102
102
  template: data.subject
103
103
  })
104
104
  })
105
105
  ]);
106
- //# sourceMappingURL=react-surface-HNXDAZ7C.cjs.map
106
+ //# sourceMappingURL=react-surface-M3OXAXKR.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/react-surface.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { Capabilities, contributes, createSurface } from '@dxos/app-framework';\nimport { Type } from '@dxos/echo';\nimport { SettingsStore } from '@dxos/local-storage';\nimport { fullyQualifiedId, getSpace, getTypename, isLiveObject, type SpaceId } from '@dxos/react-client/echo';\n\nimport { AssistantDialog, AssistantSettings, ChatContainer, PromptSettings, TemplateContainer } from '../components';\nimport { ASSISTANT_PLUGIN, ASSISTANT_DIALOG } from '../meta';\nimport { AIChatType, type AssistantSettingsProps, TemplateType } from '../types';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${ASSISTANT_PLUGIN}/plugin-settings`,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<AssistantSettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === ASSISTANT_PLUGIN,\n component: ({ data: { subject } }) => <AssistantSettings settings={subject.value} />,\n }),\n createSurface({\n id: ASSISTANT_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: { chat: AIChatType } } => data.component === ASSISTANT_DIALOG,\n component: ({ data }) => <AssistantDialog {...data.props} />,\n }),\n createSurface({\n id: `${ASSISTANT_PLUGIN}/chat`,\n role: 'article',\n filter: (data): data is { subject: AIChatType; variant: undefined } =>\n Type.instanceOf(AIChatType, data.subject) && data.variant !== 'assistant-chat',\n component: ({ data, role }) => <ChatContainer role={role} chat={data.subject} />,\n }),\n createSurface({\n id: `${ASSISTANT_PLUGIN}/object-chat`,\n role: 'article',\n filter: (data): data is { companionTo: AIChatType; subject: 'assistant-chat' } =>\n isLiveObject(data.companionTo) &&\n (data as any).companionTo.assistantChatQueue &&\n data.subject === 'assistant-chat',\n component: ({ data, role }) => {\n const associatedArtifact = useMemo(\n () => ({\n id: fullyQualifiedId(data.companionTo),\n typename: getTypename(data.companionTo) ?? 'unknown',\n spaceId: (getSpace(data.companionTo)?.id ?? 'unknown') as SpaceId,\n }),\n [data.companionTo],\n );\n return <ChatContainer role={role} chat={data.companionTo} associatedArtifact={associatedArtifact} />;\n },\n }),\n createSurface({\n id: `${ASSISTANT_PLUGIN}/template`,\n role: 'article',\n filter: (data): data is { subject: TemplateType } => Type.instanceOf(TemplateType, data.subject),\n component: ({ data, role }) => <TemplateContainer role={role} template={data.subject} />,\n }),\n createSurface({\n id: `${ASSISTANT_PLUGIN}/prompt-settings`,\n role: 'object-settings',\n filter: (data): data is { subject: TemplateType } => Type.instanceOf(TemplateType, data.subject),\n component: ({ data }) => <PromptSettings template={data.subject} />,\n }),\n ]);\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,mBAA+B;AAE/B,2BAAyD;AACzD,kBAAqB;AACrB,2BAA8B;AAC9B,IAAAA,eAAoF;AAMpF,IAAA,wBAAe,UACbC,kCAAYC,kCAAaC,cAAc;MACrCC,oCAAc;IACZC,IAAI,GAAGC,sCAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SACPA,KAAKC,mBAAmBC,sCAAiBF,KAAKC,QAAQE,WAAWN;IACnEO,WAAW,CAAC,EAAEJ,MAAM,EAAEC,QAAO,EAAE,MAAO,6BAAAI,QAAA,cAACC,yCAAAA;MAAkBC,UAAUN,QAAQO;;EAC7E,CAAA;MACAb,oCAAc;IACZC,IAAIa;IACJX,MAAM;IACNC,QAAQ,CAACC,SAAkDA,KAAKI,cAAcK;IAC9EL,WAAW,CAAC,EAAEJ,KAAI,MAAO,6BAAAK,QAAA,cAACK,uCAAoBV,KAAKW,KAAK;EAC1D,CAAA;MACAhB,oCAAc;IACZC,IAAI,GAAGC,sCAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SACPY,iBAAKC,WAAWC,kCAAYd,KAAKC,OAAO,KAAKD,KAAKe,YAAY;IAChEX,WAAW,CAAC,EAAEJ,MAAMF,KAAI,MAAO,6BAAAO,QAAA,cAACW,qCAAAA;MAAclB;MAAYmB,MAAMjB,KAAKC;;EACvE,CAAA;MACAN,oCAAc;IACZC,IAAI,GAAGC,sCAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,aACPkB,2BAAalB,KAAKmB,WAAW,KAC5BnB,KAAamB,YAAYC,sBAC1BpB,KAAKC,YAAY;IACnBG,WAAW,CAAC,EAAEJ,MAAMF,KAAI,MAAE;AACxB,YAAMuB,yBAAqBC,sBACzB,OAAO;QACL1B,QAAI2B,+BAAiBvB,KAAKmB,WAAW;QACrCK,cAAUC,0BAAYzB,KAAKmB,WAAW,KAAK;QAC3CO,aAAUC,uBAAS3B,KAAKmB,WAAW,GAAGvB,MAAM;MAC9C,IACA;QAACI,KAAKmB;OAAY;AAEpB,aAAO,6BAAAd,QAAA,cAACW,qCAAAA;QAAclB;QAAYmB,MAAMjB,KAAKmB;QAAaE;;IAC5D;EACF,CAAA;MACA1B,oCAAc;IACZC,IAAI,GAAGC,sCAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SAA4CY,iBAAKC,WAAWe,oCAAc5B,KAAKC,OAAO;IAC/FG,WAAW,CAAC,EAAEJ,MAAMF,KAAI,MAAO,6BAAAO,QAAA,cAACwB,yCAAAA;MAAkB/B;MAAYgC,UAAU9B,KAAKC;;EAC/E,CAAA;MACAN,oCAAc;IACZC,IAAI,GAAGC,sCAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SAA4CY,iBAAKC,WAAWe,oCAAc5B,KAAKC,OAAO;IAC/FG,WAAW,CAAC,EAAEJ,KAAI,MAAO,6BAAAK,QAAA,cAAC0B,sCAAAA;MAAeD,UAAU9B,KAAKC;;EAC1D,CAAA;CACD;",
6
+ "names": ["import_echo", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "ASSISTANT_PLUGIN", "role", "filter", "data", "subject", "SettingsStore", "prefix", "component", "React", "AssistantSettings", "settings", "value", "ASSISTANT_DIALOG", "AssistantDialog", "props", "Type", "instanceOf", "AIChatType", "variant", "ChatContainer", "chat", "isLiveObject", "companionTo", "assistantChatQueue", "associatedArtifact", "useMemo", "fullyQualifiedId", "typename", "getTypename", "spaceId", "getSpace", "TemplateType", "TemplateContainer", "template", "PromptSettings"]
7
+ }
@@ -1,7 +1,7 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  ThreadContainer
4
- } from "./chunk-JX73NOSL.mjs";
4
+ } from "./chunk-RDU7QEFL.mjs";
5
5
  import "./chunk-6JK5HEUQ.mjs";
6
6
  import "./chunk-UZWYXNR5.mjs";
7
7
  import {
@@ -115,4 +115,4 @@ export {
115
115
  AssistantDialog,
116
116
  AssistantDialog_default as default
117
117
  };
118
- //# sourceMappingURL=AssistantDialog-GNLPYXY4.mjs.map
118
+ //# sourceMappingURL=AssistantDialog-SDGQK5TF.mjs.map
@@ -1,7 +1,7 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  ThreadContainer
4
- } from "./chunk-JX73NOSL.mjs";
4
+ } from "./chunk-RDU7QEFL.mjs";
5
5
  import "./chunk-6JK5HEUQ.mjs";
6
6
  import "./chunk-UZWYXNR5.mjs";
7
7
  import {
@@ -31,4 +31,4 @@ export {
31
31
  ChatContainer,
32
32
  ChatContainer_default as default
33
33
  };
34
- //# sourceMappingURL=ChatContainer-FGHDDORQ.mjs.map
34
+ //# sourceMappingURL=ChatContainer-AM4BDTXU.mjs.map
@@ -66,7 +66,7 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
66
66
  ns: ASSISTANT_PLUGIN
67
67
  }
68
68
  ],
69
- icon: "ph--star-four--regular",
69
+ icon: "ph--sparkle--regular",
70
70
  disposition: "pin-end",
71
71
  position: "hoist",
72
72
  keyBinding: {
@@ -95,7 +95,7 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
95
95
  ns: ASSISTANT_PLUGIN
96
96
  }
97
97
  ],
98
- icon: "ph--star-four--regular",
98
+ icon: "ph--sparkle--regular",
99
99
  position: "hoist"
100
100
  }
101
101
  }
@@ -177,4 +177,4 @@ var getOrCreateChat = async (dispatch, space) => {
177
177
  export {
178
178
  app_graph_builder_default as default
179
179
  };
180
- //# sourceMappingURL=app-graph-builder-245AWCPJ.mjs.map
180
+ //# sourceMappingURL=app-graph-builder-ZDI7EVEN.mjs.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,SACEA,cACAC,aACAC,cACAC,oBAGK;AACP,SAASC,iBAAiB;AAC1B,SAASC,0BAA0B;AACnC,SAASC,sBAAsBC,iCAAiC;AAChE,SAASC,iBAA4BC,eAAe;AACpD,SAASC,oBAAoB;AAC7B,SAASC,YAAYC,mBAAmB;AACxC,SAAqBC,QAAQC,kBAAkBC,UAAUC,oBAAoB;;AAK7E,IAAA,4BAAe,CAACC,YACdC,YAAYC,aAAaC,iBAAiB;EACxCC,gBAAgB;IACdC,IAAI,GAAGC,gBAAAA;IACPC,QAAQ,CAACC,SAA6BA,KAAKH,OAAOI;IAClDC,SAAS,MAAM;MACb;QACEL,IAAI,GAAGM,aAAaC,aAAaC,IAAI;QACrCC,MAAM,YAAA;AACJ,gBAAM,EAAEC,iBAAiBC,SAAQ,IAAKhB,QAAQiB,kBAAkBf,aAAagB,gBAAgB;AAC7F,gBAAMC,SAASnB,QAAQiB,kBAAkBG,mBAAmBC,MAAM;AAClE,gBAAMC,SAAStB,QAAQiB,kBAAkBf,aAAaqB,MAAM;AAC5D,gBAAM,EAAEC,MAAK,IAAKxB,QAAQiB,kBAAkBf,aAAauB,QAAQ;AAIjE,cAAIC;AACJ,cAAIJ,OAAOK,OAAOC,SAAS,GAAG;AAC5B,kBAAMpB,OAAOgB,MAAMK,SAASP,OAAOK,OAAO,CAAA,CAAE;AAC5C,gBAAInB,MAAM;AACR,oBAAMsB,QAAQC,SAASvB,KAAKM,IAAI;AAChC,kBAAIgB,OAAO;AACTJ,uBAAO,MAAMM,gBAAgBhB,UAAUc,KAAAA;cACzC;YACF;UACF,OAAO;AACL,kBAAMA,QAAQX,OAAOc,OAAOC;AAC5BR,mBAAO,MAAMM,gBAAgBhB,UAAUc,KAAAA;UACzC;AAEA,cAAI,CAACJ,MAAM;AACT;UACF;AAEA,gBAAMV,SACJmB,aAAaxB,aAAaC,cAAc;YACtCwB,MAAM;YACNC,SAASC;YACTC,SAAS;cACPC,OAAO;cACPC,YAAY;cACZC,OAAO;gBACLhB;cACF;YACF;UACF,CAAA,CAAA;QAEJ;QACAiB,YAAY;UACVC,OAAO;YAAC;YAAwB;cAAEC,IAAIvC;YAAiB;;UACvDwC,MAAM;UACNC,aAAa;UACbC,UAAU;UACVC,YAAY;YACVC,OAAO;YACPC,SAAS;UACX;QACF;MACF;;EAEJ,CAAA;EAEA/C,gBAAgB;IACdC,IAAI,GAAGC,gBAAAA;IACPC,QAAQ,CAACC,SACP4C,aAAa5C,KAAKM,IAAI,KAAKN,KAAKM,KAAKuC,sBAAsB7C,KAAKM,KAAKwC,SAASC,WAAWC;IAC3FC,WAAW,CAAC,EAAEjD,KAAI,MAAO;MACvB;QACEH,IAAI;UAACG,KAAKH;UAAI;UAAkBqD,KAAKC,yBAAAA;QACrCL,MAAMM;QACN9C,MAAM;QACN6B,YAAY;UACVC,OAAO;YAAC;YAAwB;cAAEC,IAAIvC;YAAiB;;UACvDwC,MAAM;UACNE,UAAU;QACZ;MACF;;EAEJ,CAAA;EAEA5C,gBAAgB;IACdC,IAAI,GAAGC,gBAAAA;IACPC,QAAQ,CAACC,SAA8BA,KAAK8C,SAASO;IACrDJ,WAAW,CAAC,EAAEjD,KAAI,MAAE;AAClB,YAAMsD,YAAYC,aAAavD,KAAKM,MAAMkD,OAAOC,OAAOC,YAAAA,CAAAA;AACxD,aAAOJ,UAAUlC,SAAS,IACtB;QACE;UACEvB,IAAI,GAAGC,gBAAAA;UACPgD,MAAM,GAAGhD,gBAAAA;UACTQ,MAAM;UACN6B,YAAY;YACVC,OAAO;cAAC;cAAmB;gBAAEC,IAAIvC;cAAiB;;YAClDwC,MAAM;YACNhB,OAAOtB,KAAKM;UACd;QACF;UAEF,CAAA;IACN;EACF,CAAA;EAEAV,gBAAgB;IACdC,IAAI,GAAGC,gBAAAA;IACPC,QAAQ,CAACC,SAA+CA,KAAKH,OAAO,GAAGC,gBAAAA;IACvEmD,WAAW,CAAC,EAAEjD,KAAI,MAAE;AAClB,YAAMsD,YAAYC,aAAavD,KAAKmC,WAAWb,OAAOkC,OAAOC,OAAOC,YAAAA,CAAAA;AACpE,aAAOJ,UACJK,SAAS,CAACC,GAAGC,MAAAA;AACZ,cAAMC,QAAQF,EAAEG,QAAQ;AACxB,cAAMC,QAAQH,EAAEE,QAAQ;AACxB,eAAOD,MAAMG,cAAcD,KAAAA;MAC7B,CAAA,EACCE,IAAI,CAACC,cAAc;QAClBtE,IAAIuE,iBAAiBD,QAAAA;QACrBrB,MAAM,GAAGhD,gBAAAA;QACTQ,MAAM6D;QACNhC,YAAY;UACVC,OAAO+B,SAASJ,QAAQ;YAAC;YAAsB;cAAE1B,IAAIvC;YAAiB;;UACtEwC,MAAM;QACR;MACF,EAAA;IACJ;EACF,CAAA;CACD;AAGH,IAAMd,kBAAkB,OAAOhB,UAAmCc,UAAAA;AAChE,QAAM,EAAE+C,QAAO,IAAK,MAAM/C,MAAMgD,GAAGC,MAAMf,OAAOC,OAAOV,UAAAA,CAAAA,EAAayB,IAAG;AAEvE,MAAIH,QAAQjD,SAAS,GAAG;AAEtB,WAAOiD,QAAQA,QAAQjD,SAAS,CAAA;EAClC;AAEA,QAAM,EAAEd,KAAI,IAAK,MAAME,SAASmB,aAAa8C,gBAAgBC,YAAY;IAAEC,SAASrD,MAAMzB;EAAG,CAAA,CAAA;AAC7F+E,YAAUtE,MAAMuE,kBAAkB9B,YAAAA,QAAAA;;;;;;;;;AAClC,QAAMvC,SAASmB,aAAamD,YAAYC,WAAW;IAAEC,QAAQ1D;IAAOuD,QAAQvE,KAAKuE;EAAO,CAAA,CAAA;AACxF,SAAOvE,KAAKuE;AACd;",
6
6
  "names": ["Capabilities", "contributes", "createIntent", "LayoutAction", "invariant", "ClientCapabilities", "PLANK_COMPANION_TYPE", "ATTENDABLE_PATH_SEPARATOR", "createExtension", "ROOT_ID", "memoizeQuery", "SPACE_TYPE", "SpaceAction", "Filter", "fullyQualifiedId", "getSpace", "isLiveObject", "context", "contributes", "Capabilities", "AppGraphBuilder", "createExtension", "id", "ASSISTANT_PLUGIN", "filter", "node", "ROOT_ID", "actions", "LayoutAction", "UpdateDialog", "_tag", "data", "dispatchPromise", "dispatch", "requestCapability", "IntentDispatcher", "client", "ClientCapabilities", "Client", "layout", "Layout", "graph", "AppGraph", "chat", "active", "length", "findNode", "space", "getSpace", "getOrCreateChat", "spaces", "default", "createIntent", "part", "subject", "ASSISTANT_DIALOG", "options", "state", "blockAlign", "props", "properties", "label", "ns", "icon", "disposition", "position", "keyBinding", "macos", "windows", "isLiveObject", "assistantChatQueue", "type", "AIChatType", "typename", "connector", "join", "ATTENDABLE_PATH_SEPARATOR", "PLANK_COMPANION_TYPE", "SPACE_TYPE", "templates", "memoizeQuery", "Filter", "schema", "TemplateType", "toSorted", "a", "b", "nameA", "name", "nameB", "localeCompare", "map", "template", "fullyQualifiedId", "objects", "db", "query", "run", "AssistantAction", "CreateChat", "spaceId", "invariant", "object", "SpaceAction", "AddObject", "target"]
7
7
  }
@@ -26,7 +26,7 @@ import { getInvocationUrl, getUserFunctionUrlInMetadata } from "@dxos/functions"
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/plugin-assistant/src/tools/function.ts";
29
- var covertFunctionToTool = (fn, edgeUrl, spaceId) => {
29
+ var convertFunctionToTool = (fn, edgeUrl, spaceId) => {
30
30
  if (!fn.description || !fn.inputSchema) {
31
31
  return void 0;
32
32
  }
@@ -48,7 +48,7 @@ var covertFunctionToTool = (fn, edgeUrl, spaceId) => {
48
48
  input
49
49
  }, {
50
50
  F: __dxlog_file,
51
- L: 36,
51
+ L: 34,
52
52
  S: void 0,
53
53
  C: (f, a) => f(...a)
54
54
  });
@@ -683,7 +683,7 @@ var ToolContainer = ({ classNames, items }) => {
683
683
  // packages/plugins/plugin-assistant/src/components/Thread/ThreadMessage.tsx
684
684
  var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-assistant/src/components/Thread/ThreadMessage.tsx";
685
685
  var panelClassNames = "flex flex-col w-full px-2 bg-groupSurface rounded-md";
686
- var userClassNames = "bg-[--user-fill] text-inverse";
686
+ var userClassNames = "bg-[--user-fill] text-accentSurfaceText";
687
687
  var ToggleContainer2 = (props) => {
688
688
  return /* @__PURE__ */ React3.createElement(NativeToggleContainer, {
689
689
  ...props,
@@ -1256,7 +1256,7 @@ import React5, { useRef as useRef2, useState as useState3 } from "react";
1256
1256
  import { useVoiceInput } from "@dxos/plugin-transcription";
1257
1257
  import { Icon as Icon2, IconButton as IconButton2, Tooltip, useTranslation } from "@dxos/react-ui";
1258
1258
  import { Spinner } from "@dxos/react-ui-sfx";
1259
- import { errorMessageColors, errorText, mx as mx4 } from "@dxos/react-ui-theme";
1259
+ import { errorText, mx as mx4 } from "@dxos/react-ui-theme";
1260
1260
  var PromptBar = ({ classNames, placeholder, processing, error, microphone, onCancel, references, ...props }) => {
1261
1261
  const { t } = useTranslation(ASSISTANT_PLUGIN);
1262
1262
  const promptRef = useRef2(null);
@@ -1272,15 +1272,14 @@ var PromptBar = ({ classNames, placeholder, processing, error, microphone, onCan
1272
1272
  className: mx4("shrink-0 w-full grid grid-cols-[var(--rail-action)_1fr_var(--rail-action)] overflow-hidden", classNames)
1273
1273
  }, /* @__PURE__ */ React5.createElement("div", {
1274
1274
  className: "flex w-[--rail-action] h-[--rail-action] items-center justify-center"
1275
- }, error && /* @__PURE__ */ React5.createElement(Tooltip.Root, {
1275
+ }, error && /* @__PURE__ */ React5.createElement(Tooltip.Trigger, {
1276
+ content: error.message,
1276
1277
  delayDuration: 0
1277
- }, /* @__PURE__ */ React5.createElement(Tooltip.Trigger, null, /* @__PURE__ */ React5.createElement(Icon2, {
1278
+ }, /* @__PURE__ */ React5.createElement(Icon2, {
1278
1279
  icon: "ph--warning-circle--regular",
1279
1280
  classNames: errorText,
1280
1281
  size: 5
1281
- })), /* @__PURE__ */ React5.createElement(Tooltip.Portal, null, /* @__PURE__ */ React5.createElement(Tooltip.Content, null, /* @__PURE__ */ React5.createElement("div", {
1282
- className: mx4("text-sm", errorMessageColors)
1283
- }, error.message), /* @__PURE__ */ React5.createElement(Tooltip.Arrow, null)))) || /* @__PURE__ */ React5.createElement(Spinner, {
1282
+ })) || /* @__PURE__ */ React5.createElement(Spinner, {
1284
1283
  active: processing
1285
1284
  })), /* @__PURE__ */ React5.createElement(Prompt, {
1286
1285
  ref: promptRef,
@@ -1589,9 +1588,9 @@ import { isNonNullable as isNonNullable2 } from "@dxos/util";
1589
1588
  // packages/plugins/plugin-assistant/src/capabilities/index.ts
1590
1589
  import { lazy } from "@dxos/app-framework";
1591
1590
  var AiClient = lazy(() => import("./ai-client-LYCBXZI7.mjs"));
1592
- var AppGraphBuilder = lazy(() => import("./app-graph-builder-245AWCPJ.mjs"));
1593
- var IntentResolver = lazy(() => import("./intent-resolver-DMQXPV2H.mjs"));
1594
- var ReactSurface = lazy(() => import("./react-surface-NYXMBFPY.mjs"));
1591
+ var AppGraphBuilder = lazy(() => import("./app-graph-builder-ZDI7EVEN.mjs"));
1592
+ var IntentResolver = lazy(() => import("./intent-resolver-JKWFZYLN.mjs"));
1593
+ var ReactSurface = lazy(() => import("./react-surface-RZBDBP42.mjs"));
1595
1594
  var Settings = lazy(() => import("./settings-CLE57WEP.mjs"));
1596
1595
 
1597
1596
  // packages/plugins/plugin-assistant/src/hooks/useChatProcessor.tsx
@@ -1639,7 +1638,7 @@ var useChatProcessor = ({
1639
1638
  const tools2 = [
1640
1639
  ...globalTools.flat(),
1641
1640
  ...serviceTools,
1642
- ...functions.map((fn) => covertFunctionToTool(fn, config.values.runtime?.services?.edge?.url ?? "", space?.id)).filter(isNonNullable2)
1641
+ ...functions.map((fn) => convertFunctionToTool(fn, config.values.runtime?.services?.edge?.url ?? "", space?.id)).filter(isNonNullable2)
1643
1642
  ];
1644
1643
  const extensions2 = {
1645
1644
  space,
@@ -1814,9 +1813,10 @@ import { useState as useState6, useCallback as useCallback2 } from "react";
1814
1813
  // packages/plugins/plugin-assistant/src/hooks/useContextProvider.ts
1815
1814
  import { useMemo as useMemo6 } from "react";
1816
1815
  import { Capabilities as Capabilities3, useCapabilities as useCapabilities3 } from "@dxos/app-framework";
1817
- import { getDXN, getLabel, getSchema } from "@dxos/echo-schema";
1816
+ import { Filter as Filter3 } from "@dxos/client/echo";
1817
+ import { Type } from "@dxos/echo";
1818
+ import { getLabel } from "@dxos/echo-schema";
1818
1819
  import { log as log7 } from "@dxos/log";
1819
- import { Filter as Filter3 } from "@dxos/react-client/echo";
1820
1820
  var __dxlog_file8 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-assistant/src/hooks/useContextProvider.ts";
1821
1821
  var stringMatch = (query, label) => label.toLowerCase().startsWith(query.toLowerCase());
1822
1822
  var useContextProvider = (space) => {
@@ -1832,7 +1832,7 @@ var useContextProvider = (space) => {
1832
1832
  return objects.map((object) => {
1833
1833
  log7.info("object", {
1834
1834
  object,
1835
- label: getLabel(getSchema(object), object)
1835
+ label: getLabel(Type.getSchema(object), object)
1836
1836
  }, {
1837
1837
  F: __dxlog_file8,
1838
1838
  L: 36,
@@ -1840,9 +1840,9 @@ var useContextProvider = (space) => {
1840
1840
  C: (f, a) => f(...a)
1841
1841
  });
1842
1842
  return object;
1843
- }).filter((object) => stringMatch(query, getLabel(getSchema(object), object) ?? "")).filter((object) => !!getDXN(object)).map((object) => ({
1844
- uri: getDXN(object).toString(),
1845
- label: getLabel(getSchema(object), object) ?? ""
1843
+ }).filter((object) => stringMatch(query, getLabel(Type.getSchema(object), object) ?? "")).filter((object) => !!Type.getDXN(object)).map((object) => ({
1844
+ uri: Type.getDXN(object).toString(),
1845
+ label: getLabel(Type.getSchema(object), object) ?? ""
1846
1846
  }));
1847
1847
  },
1848
1848
  resolveMetadata: async ({ uri }) => {
@@ -1851,7 +1851,7 @@ var useContextProvider = (space) => {
1851
1851
  }).first();
1852
1852
  return {
1853
1853
  uri,
1854
- label: getLabel(getSchema(object), object) ?? ""
1854
+ label: getLabel(Type.getSchema(object), object) ?? ""
1855
1855
  };
1856
1856
  }
1857
1857
  };
@@ -1965,4 +1965,4 @@ export {
1965
1965
  Settings,
1966
1966
  ThreadContainer
1967
1967
  };
1968
- //# sourceMappingURL=chunk-JX73NOSL.mjs.map
1968
+ //# sourceMappingURL=chunk-RDU7QEFL.mjs.map