@dxos/plugin-assistant 0.8.3-main.672df60 → 0.8.3-staging.0fa589b

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 (220) hide show
  1. package/dist/lib/browser/{AssistantDialog-UAZSN6GT.mjs → AssistantDialog-MQOOR364.mjs} +5 -4
  2. package/dist/lib/browser/BlueprintContainer-AT5Y7EXG.mjs +321 -0
  3. package/dist/lib/browser/BlueprintContainer-AT5Y7EXG.mjs.map +7 -0
  4. package/dist/lib/browser/{ChatContainer-UTN3AO5U.mjs → ChatContainer-C2NEAS3A.mjs} +5 -4
  5. package/dist/lib/browser/{TemplateContainer-AKUYL4AV.mjs → TemplateContainer-QQHVOTSI.mjs} +2 -2
  6. package/dist/lib/browser/TemplateContainer-QQHVOTSI.mjs.map +7 -0
  7. package/dist/lib/browser/{ai-client-COXVUC6V.mjs → ai-client-MK2ZZII2.mjs} +12 -8
  8. package/dist/lib/browser/ai-client-MK2ZZII2.mjs.map +7 -0
  9. package/dist/lib/browser/{app-graph-builder-56OZ5RW4.mjs → app-graph-builder-E4H5DCOJ.mjs} +52 -33
  10. package/dist/lib/browser/app-graph-builder-E4H5DCOJ.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-NBSPGIHL.mjs → chunk-AAOKC2JN.mjs} +17 -15
  12. package/dist/lib/browser/chunk-AAOKC2JN.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-6SD7S7W5.mjs → chunk-BI6AHRNJ.mjs} +8 -8
  14. package/dist/lib/browser/{chunk-6SD7S7W5.mjs.map → chunk-BI6AHRNJ.mjs.map} +3 -3
  15. package/dist/lib/browser/{chunk-Q6XE3O3E.mjs → chunk-JO4W3MF7.mjs} +44 -73
  16. package/dist/lib/browser/chunk-JO4W3MF7.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-MEGMOFJB.mjs +16 -0
  18. package/dist/lib/browser/chunk-MEGMOFJB.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-3F44MBHU.mjs → chunk-UE3IZ4PN.mjs} +1 -1
  20. package/dist/lib/browser/{chunk-3F44MBHU.mjs.map → chunk-UE3IZ4PN.mjs.map} +2 -2
  21. package/dist/lib/browser/index.mjs +84 -30
  22. package/dist/lib/browser/index.mjs.map +4 -4
  23. package/dist/lib/browser/{intent-resolver-GWELYIX2.mjs → intent-resolver-3UICTGPM.mjs} +12 -8
  24. package/dist/lib/browser/intent-resolver-3UICTGPM.mjs.map +7 -0
  25. package/dist/lib/browser/meta.json +1 -1
  26. package/dist/lib/browser/{react-surface-DGS34EON.mjs → react-surface-LXCNUSZN.mjs} +29 -14
  27. package/dist/lib/browser/react-surface-LXCNUSZN.mjs.map +7 -0
  28. package/dist/lib/browser/{settings-BTFB7IQ6.mjs → settings-XRHXVWGB.mjs} +4 -4
  29. package/dist/lib/browser/settings-XRHXVWGB.mjs.map +7 -0
  30. package/dist/lib/browser/types/index.mjs +1 -1
  31. package/dist/lib/node/{AssistantDialog-RTB5Q7FP.cjs → AssistantDialog-AN4Z6YUV.cjs} +9 -8
  32. package/dist/lib/node/{AssistantDialog-RTB5Q7FP.cjs.map → AssistantDialog-AN4Z6YUV.cjs.map} +1 -1
  33. package/dist/lib/node/BlueprintContainer-NOWLDYCZ.cjs +344 -0
  34. package/dist/lib/node/BlueprintContainer-NOWLDYCZ.cjs.map +7 -0
  35. package/dist/lib/node/{ChatContainer-P3JL4VZ7.cjs → ChatContainer-VKYBQHUB.cjs} +9 -8
  36. package/dist/lib/node/{ChatContainer-P3JL4VZ7.cjs.map → ChatContainer-VKYBQHUB.cjs.map} +1 -1
  37. package/dist/lib/node/{TemplateContainer-CTG2MB4W.cjs → TemplateContainer-JZF2DCCG.cjs} +5 -5
  38. package/dist/lib/node/TemplateContainer-JZF2DCCG.cjs.map +7 -0
  39. package/dist/lib/node/{ai-client-R2CGEYZW.cjs → ai-client-7HNSMUMT.cjs} +14 -10
  40. package/dist/lib/node/ai-client-7HNSMUMT.cjs.map +7 -0
  41. package/dist/lib/node/{app-graph-builder-QLF353LH.cjs → app-graph-builder-PPR5B5KU.cjs} +63 -44
  42. package/dist/lib/node/app-graph-builder-PPR5B5KU.cjs.map +7 -0
  43. package/dist/lib/node/chunk-FUAGEO7Q.cjs +52 -0
  44. package/dist/lib/node/chunk-FUAGEO7Q.cjs.map +7 -0
  45. package/dist/lib/node/{chunk-BWL5A3O5.cjs → chunk-IKZBMHSW.cjs} +14 -14
  46. package/dist/lib/node/{chunk-BWL5A3O5.cjs.map → chunk-IKZBMHSW.cjs.map} +3 -3
  47. package/dist/lib/node/{chunk-UNVDZOLA.cjs → chunk-LMDJEGZ2.cjs} +28 -26
  48. package/dist/lib/node/chunk-LMDJEGZ2.cjs.map +7 -0
  49. package/dist/lib/node/{chunk-PG7YNQ4R.cjs → chunk-NIDICM57.cjs} +66 -96
  50. package/dist/lib/node/chunk-NIDICM57.cjs.map +7 -0
  51. package/dist/lib/node/{chunk-TS3H5OSX.cjs → chunk-QGPWY6GW.cjs} +4 -4
  52. package/dist/lib/node/{chunk-TS3H5OSX.cjs.map → chunk-QGPWY6GW.cjs.map} +2 -2
  53. package/dist/lib/node/index.cjs +129 -73
  54. package/dist/lib/node/index.cjs.map +4 -4
  55. package/dist/lib/node/{intent-resolver-U7663JU7.cjs → intent-resolver-QSWGTKON.cjs} +17 -13
  56. package/dist/lib/node/intent-resolver-QSWGTKON.cjs.map +7 -0
  57. package/dist/lib/node/meta.json +1 -1
  58. package/dist/lib/node/{react-surface-QXZTILW6.cjs → react-surface-D3NBYRZ6.cjs} +41 -26
  59. package/dist/lib/node/react-surface-D3NBYRZ6.cjs.map +7 -0
  60. package/dist/lib/node/{settings-LBJMT6YB.cjs → settings-2JXLKYGE.cjs} +7 -7
  61. package/dist/lib/node/settings-2JXLKYGE.cjs.map +7 -0
  62. package/dist/lib/node/types/index.cjs +14 -14
  63. package/dist/lib/node/types/index.cjs.map +1 -1
  64. package/dist/lib/node-esm/{AssistantDialog-DONAO6SA.mjs → AssistantDialog-6WEMLUPU.mjs} +5 -4
  65. package/dist/lib/{browser/AssistantDialog-UAZSN6GT.mjs.map → node-esm/AssistantDialog-6WEMLUPU.mjs.map} +1 -1
  66. package/dist/lib/node-esm/BlueprintContainer-STOJAVML.mjs +322 -0
  67. package/dist/lib/node-esm/BlueprintContainer-STOJAVML.mjs.map +7 -0
  68. package/dist/lib/node-esm/{ChatContainer-FVIGCDIG.mjs → ChatContainer-3MVBTUJN.mjs} +5 -4
  69. package/dist/lib/{browser/ChatContainer-UTN3AO5U.mjs.map → node-esm/ChatContainer-3MVBTUJN.mjs.map} +1 -1
  70. package/dist/lib/node-esm/{TemplateContainer-IVDQ4XQG.mjs → TemplateContainer-SOEWY2ZN.mjs} +2 -2
  71. package/dist/lib/node-esm/TemplateContainer-SOEWY2ZN.mjs.map +7 -0
  72. package/dist/lib/node-esm/{ai-client-I5LXHMOZ.mjs → ai-client-XGZBJ6BE.mjs} +12 -8
  73. package/dist/lib/node-esm/ai-client-XGZBJ6BE.mjs.map +7 -0
  74. package/dist/lib/node-esm/{app-graph-builder-5YX5TKKT.mjs → app-graph-builder-3SY5MBIK.mjs} +52 -33
  75. package/dist/lib/node-esm/app-graph-builder-3SY5MBIK.mjs.map +7 -0
  76. package/dist/lib/node-esm/chunk-34EX6E5Q.mjs +18 -0
  77. package/dist/lib/node-esm/chunk-34EX6E5Q.mjs.map +7 -0
  78. package/dist/lib/node-esm/{chunk-HLPGKJ7N.mjs → chunk-3UEZLJ2V.mjs} +1 -1
  79. package/dist/lib/node-esm/{chunk-HLPGKJ7N.mjs.map → chunk-3UEZLJ2V.mjs.map} +2 -2
  80. package/dist/lib/node-esm/{chunk-TQYSF2GS.mjs → chunk-J6UXXZGJ.mjs} +17 -15
  81. package/dist/lib/node-esm/chunk-J6UXXZGJ.mjs.map +7 -0
  82. package/dist/lib/node-esm/{chunk-MNH6E6EB.mjs → chunk-OD574YIU.mjs} +44 -73
  83. package/dist/lib/node-esm/chunk-OD574YIU.mjs.map +7 -0
  84. package/dist/lib/node-esm/{chunk-GJE4WCUJ.mjs → chunk-UCOFKNKN.mjs} +8 -8
  85. package/dist/lib/node-esm/{chunk-GJE4WCUJ.mjs.map → chunk-UCOFKNKN.mjs.map} +3 -3
  86. package/dist/lib/node-esm/index.mjs +84 -30
  87. package/dist/lib/node-esm/index.mjs.map +4 -4
  88. package/dist/lib/node-esm/{intent-resolver-N5TM3RTL.mjs → intent-resolver-E6MXTYAU.mjs} +12 -8
  89. package/dist/lib/node-esm/intent-resolver-E6MXTYAU.mjs.map +7 -0
  90. package/dist/lib/node-esm/meta.json +1 -1
  91. package/dist/lib/node-esm/{react-surface-FTKGQQD2.mjs → react-surface-7HA5EDWY.mjs} +29 -14
  92. package/dist/lib/node-esm/react-surface-7HA5EDWY.mjs.map +7 -0
  93. package/dist/lib/node-esm/{settings-TGCCAH5D.mjs → settings-5IAY6BT4.mjs} +4 -4
  94. package/dist/lib/node-esm/settings-5IAY6BT4.mjs.map +7 -0
  95. package/dist/lib/node-esm/types/index.mjs +1 -1
  96. package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
  97. package/dist/types/src/capabilities/ai-client.d.ts +2 -2
  98. package/dist/types/src/capabilities/ai-client.d.ts.map +1 -1
  99. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  100. package/dist/types/src/capabilities/capabilities.d.ts +2 -2
  101. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  102. package/dist/types/src/capabilities/index.d.ts +1 -1
  103. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  104. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  105. package/dist/types/src/components/AmbientDialog/AmbientDialog.stories.d.ts.map +1 -1
  106. package/dist/types/src/components/BlueprintContainer.d.ts +9 -0
  107. package/dist/types/src/components/BlueprintContainer.d.ts.map +1 -0
  108. package/dist/types/src/components/BlueprintEditor/BlueprintEditor.d.ts +8 -3
  109. package/dist/types/src/components/BlueprintEditor/BlueprintEditor.d.ts.map +1 -1
  110. package/dist/types/src/components/BlueprintEditor/index.d.ts +1 -2
  111. package/dist/types/src/components/BlueprintEditor/index.d.ts.map +1 -1
  112. package/dist/types/src/components/TemplateContainer.d.ts +2 -2
  113. package/dist/types/src/components/TemplateContainer.d.ts.map +1 -1
  114. package/dist/types/src/components/Thread/Thread.stories.d.ts.map +1 -1
  115. package/dist/types/src/components/Thread/ThreadContainer.d.ts.map +1 -1
  116. package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts +1 -1
  117. package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts.map +1 -1
  118. package/dist/types/src/components/index.d.ts +4 -3
  119. package/dist/types/src/components/index.d.ts.map +1 -1
  120. package/dist/types/src/events.d.ts +4 -0
  121. package/dist/types/src/events.d.ts.map +1 -0
  122. package/dist/types/src/hooks/processor.d.ts +3 -3
  123. package/dist/types/src/hooks/useContextProvider.d.ts.map +1 -1
  124. package/dist/types/src/hooks/useMessageQueue.d.ts +8 -8
  125. package/dist/types/src/hooks/useMessageQueue.d.ts.map +1 -1
  126. package/dist/types/src/index.d.ts +2 -0
  127. package/dist/types/src/index.d.ts.map +1 -1
  128. package/dist/types/src/parser/filter-generator.d.ts +1 -1
  129. package/dist/types/src/parser/filter-generator.d.ts.map +1 -1
  130. package/dist/types/src/queue-logger.d.ts +11 -0
  131. package/dist/types/src/queue-logger.d.ts.map +1 -0
  132. package/dist/types/src/stories/Query.stories.d.ts.map +1 -1
  133. package/dist/types/src/stories/Research.stories.d.ts +1 -1
  134. package/dist/types/src/stories/Research.stories.d.ts.map +1 -1
  135. package/dist/types/src/testing/test-blueprint.d.ts +4 -10
  136. package/dist/types/src/testing/test-blueprint.d.ts.map +1 -1
  137. package/dist/types/src/tools/openapi.d.ts.map +1 -1
  138. package/dist/types/src/translations.d.ts +15 -0
  139. package/dist/types/src/translations.d.ts.map +1 -1
  140. package/dist/types/src/types/chat.d.ts +13 -10
  141. package/dist/types/src/types/chat.d.ts.map +1 -1
  142. package/dist/types/src/types/service.d.ts +88 -9
  143. package/dist/types/src/types/service.d.ts.map +1 -1
  144. package/dist/types/src/types/template.d.ts +3 -23
  145. package/dist/types/src/types/template.d.ts.map +1 -1
  146. package/dist/types/src/types/types.d.ts +6 -6
  147. package/package.json +71 -68
  148. package/src/AssistantPlugin.tsx +30 -7
  149. package/src/capabilities/ai-client.ts +11 -6
  150. package/src/capabilities/app-graph-builder.ts +69 -54
  151. package/src/capabilities/capabilities.ts +3 -2
  152. package/src/capabilities/intent-resolver.ts +12 -5
  153. package/src/capabilities/react-surface.tsx +23 -19
  154. package/src/capabilities/settings.ts +2 -2
  155. package/src/components/AmbientDialog/AmbientDialog.stories.tsx +1 -0
  156. package/src/components/BlueprintContainer.tsx +148 -0
  157. package/src/components/BlueprintEditor/BlueprintEditor.stories.tsx +2 -2
  158. package/src/components/BlueprintEditor/BlueprintEditor.tsx +31 -21
  159. package/src/components/BlueprintEditor/index.ts +1 -3
  160. package/src/components/PromptSettings.tsx +1 -1
  161. package/src/components/TemplateContainer.tsx +5 -2
  162. package/src/components/TemplateEditor/TemplateEditor.stories.tsx +2 -2
  163. package/src/components/TemplateEditor/TemplateForm.stories.tsx +2 -2
  164. package/src/components/Thread/Thread.stories.tsx +19 -27
  165. package/src/components/Thread/ThreadContainer.stories.tsx +11 -12
  166. package/src/components/Thread/ThreadContainer.tsx +3 -4
  167. package/src/components/Thread/reducer.ts +3 -3
  168. package/src/components/index.ts +1 -1
  169. package/src/events.ts +11 -0
  170. package/src/hooks/processor.ts +4 -4
  171. package/src/hooks/useContextProvider.ts +13 -16
  172. package/src/hooks/useMessageQueue.ts +3 -2
  173. package/src/index.ts +2 -0
  174. package/src/parser/filter-generator.test.ts +1 -1
  175. package/src/parser/filter-generator.ts +1 -1
  176. package/src/queue-logger.ts +125 -0
  177. package/src/stories/Query.stories.tsx +28 -29
  178. package/src/stories/Research.stories.tsx +32 -46
  179. package/src/stories/test-data.ts +12 -12
  180. package/src/testing/test-blueprint.ts +14 -6
  181. package/src/testing/test-services.ts +6 -6
  182. package/src/tools/function.ts +2 -2
  183. package/src/tools/openapi.test.ts +7 -13
  184. package/src/tools/openapi.ts +5 -5
  185. package/src/translations.ts +19 -5
  186. package/src/types/chat.ts +3 -4
  187. package/src/types/service.ts +8 -4
  188. package/src/types/template.ts +11 -3
  189. package/dist/lib/browser/BlueprintEditor-DGV4KJDM.mjs +0 -45
  190. package/dist/lib/browser/BlueprintEditor-DGV4KJDM.mjs.map +0 -7
  191. package/dist/lib/browser/TemplateContainer-AKUYL4AV.mjs.map +0 -7
  192. package/dist/lib/browser/ai-client-COXVUC6V.mjs.map +0 -7
  193. package/dist/lib/browser/app-graph-builder-56OZ5RW4.mjs.map +0 -7
  194. package/dist/lib/browser/chunk-NBSPGIHL.mjs.map +0 -7
  195. package/dist/lib/browser/chunk-Q6XE3O3E.mjs.map +0 -7
  196. package/dist/lib/browser/intent-resolver-GWELYIX2.mjs.map +0 -7
  197. package/dist/lib/browser/react-surface-DGS34EON.mjs.map +0 -7
  198. package/dist/lib/browser/settings-BTFB7IQ6.mjs.map +0 -7
  199. package/dist/lib/node/BlueprintEditor-43VM3XPO.cjs +0 -72
  200. package/dist/lib/node/BlueprintEditor-43VM3XPO.cjs.map +0 -7
  201. package/dist/lib/node/TemplateContainer-CTG2MB4W.cjs.map +0 -7
  202. package/dist/lib/node/ai-client-R2CGEYZW.cjs.map +0 -7
  203. package/dist/lib/node/app-graph-builder-QLF353LH.cjs.map +0 -7
  204. package/dist/lib/node/chunk-PG7YNQ4R.cjs.map +0 -7
  205. package/dist/lib/node/chunk-UNVDZOLA.cjs.map +0 -7
  206. package/dist/lib/node/intent-resolver-U7663JU7.cjs.map +0 -7
  207. package/dist/lib/node/react-surface-QXZTILW6.cjs.map +0 -7
  208. package/dist/lib/node/settings-LBJMT6YB.cjs.map +0 -7
  209. package/dist/lib/node-esm/BlueprintEditor-CTARB2FO.mjs +0 -47
  210. package/dist/lib/node-esm/BlueprintEditor-CTARB2FO.mjs.map +0 -7
  211. package/dist/lib/node-esm/TemplateContainer-IVDQ4XQG.mjs.map +0 -7
  212. package/dist/lib/node-esm/ai-client-I5LXHMOZ.mjs.map +0 -7
  213. package/dist/lib/node-esm/app-graph-builder-5YX5TKKT.mjs.map +0 -7
  214. package/dist/lib/node-esm/chunk-MNH6E6EB.mjs.map +0 -7
  215. package/dist/lib/node-esm/chunk-TQYSF2GS.mjs.map +0 -7
  216. package/dist/lib/node-esm/intent-resolver-N5TM3RTL.mjs.map +0 -7
  217. package/dist/lib/node-esm/react-surface-FTKGQQD2.mjs.map +0 -7
  218. package/dist/lib/node-esm/settings-TGCCAH5D.mjs.map +0 -7
  219. /package/dist/lib/{node-esm/AssistantDialog-DONAO6SA.mjs.map → browser/AssistantDialog-MQOOR364.mjs.map} +0 -0
  220. /package/dist/lib/{node-esm/ChatContainer-FVIGCDIG.mjs.map → browser/ChatContainer-C2NEAS3A.mjs.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport { Option, pipe } from 'effect';\n\nimport {\n Capabilities,\n contributes,\n createIntent,\n LayoutAction,\n type PromiseIntentDispatcher,\n type PluginContext,\n} from '@dxos/app-framework';\nimport { Blueprint } from '@dxos/assistant';\nimport { Obj } from '@dxos/echo';\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, ROOT_ID } from '@dxos/plugin-graph';\nimport { getActiveSpace, rxFromQuery } from '@dxos/plugin-space';\nimport { SPACE_TYPE, SpaceAction } from '@dxos/plugin-space/types';\nimport {\n type Space,\n Filter,\n Query,\n type QueryResult,\n fullyQualifiedId,\n getSpace,\n isSpace,\n} from '@dxos/react-client/echo';\n\nimport { ASSISTANT_DIALOG, ASSISTANT_PLUGIN } from '../meta';\nimport { AIChatType, AssistantAction, CompanionTo, TemplateType } from '../types';\n\nexport default (context: PluginContext) =>\n contributes(Capabilities.AppGraphBuilder, [\n createExtension({\n id: `${ASSISTANT_PLUGIN}/assistant`,\n actions: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),\n Option.map(() => [\n {\n id: `${LayoutAction.UpdateDialog._tag}/assistant/open`,\n data: async () => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const client = context.getCapability(ClientCapabilities.Client);\n\n const space = getActiveSpace(context) ?? client.spaces.default;\n const chat = await getOrCreateChat(dispatch, space);\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 Option.getOrElse(() => []),\n ),\n ),\n }),\n\n createExtension({\n id: `${ASSISTANT_PLUGIN}/object-chat-companion`,\n connector: (node) => {\n let query: QueryResult<AIChatType> | undefined;\n return Rx.make((get) => {\n const nodeOption = get(node);\n if (Option.isNone(nodeOption)) {\n return [];\n }\n\n const object = nodeOption.value.data;\n if (!Obj.isObject(object)) {\n return [];\n }\n\n const space = getSpace(object);\n if (!space) {\n return [];\n }\n\n if (!query) {\n query = space.db.query(Query.select(Filter.ids(object.id)).targetOf(CompanionTo).source());\n }\n\n const chat = get(rxFromQuery(query))[0];\n return [\n {\n id: [fullyQualifiedId(object), 'assistant-chat'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: chat ?? 'assistant-chat',\n properties: {\n label: ['assistant chat label', { ns: ASSISTANT_PLUGIN }],\n icon: 'ph--sparkle--regular',\n position: 'hoist',\n disposition: 'hidden',\n },\n },\n ];\n });\n },\n }),\n\n createExtension({\n id: `${ASSISTANT_PLUGIN}/blueprint-logs`,\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (Obj.instanceOf(Blueprint, node.data) ? Option.some(node) : Option.none())),\n Option.map((node) => [\n {\n id: [node.id, 'logs'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: 'logs',\n properties: {\n label: ['blueprint logs label', { ns: ASSISTANT_PLUGIN }],\n icon: 'ph--clock-countdown--regular',\n disposition: 'hidden',\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n\n createExtension({\n id: `${ASSISTANT_PLUGIN}/root`,\n connector: (node) => {\n let query: QueryResult<TemplateType> | undefined;\n return Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) =>\n node.type === SPACE_TYPE && isSpace(node.data) ? Option.some(node.data) : Option.none(),\n ),\n Option.map((space) => {\n if (!query) {\n query = space.db.query(Query.type(TemplateType));\n }\n\n const templates = get(rxFromQuery(query));\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,\n },\n },\n ]\n : [];\n }),\n Option.getOrElse(() => []),\n ),\n );\n },\n }),\n\n createExtension({\n id: `${ASSISTANT_PLUGIN}/templates`,\n connector: (node) => {\n let query: QueryResult<TemplateType> | undefined;\n return Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) =>\n node.id === `${ASSISTANT_PLUGIN}/templates` && isSpace(node.properties.space)\n ? Option.some(node.properties.space)\n : Option.none(),\n ),\n Option.map((space) => {\n if (!query) {\n query = space.db.query(Query.type(TemplateType));\n }\n return get(rxFromQuery(query))\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 Option.getOrElse(() => []),\n ),\n );\n },\n }),\n ]);\n\n// TODO(burdon): Factor out.\nconst getOrCreateChat = async (dispatch: PromiseIntentDispatcher, space: Space): Promise<AIChatType | undefined> => {\n // TODO(wittjosiah): This should be possible with a single query.\n const { objects: allChats } = await space.db.query(Query.type(AIChatType)).run();\n const { objects: relatedChats } = await space.db.query(Query.type(AIChatType).sourceOf(CompanionTo).source()).run();\n const chats = allChats.filter((chat) => !relatedChats.includes(chat));\n // console.log('objects', JSON.stringify(objects, null, 2));\n if (chats.length > 0) {\n // TODO(burdon): Is this the most recent?\n return chats[chats.length - 1];\n }\n\n const { data } = await dispatch(createIntent(AssistantAction.CreateChat, { space }));\n invariant(Obj.instanceOf(AIChatType, data?.object));\n await dispatch(createIntent(SpaceAction.AddObject, { target: space, object: data.object }));\n return data.object;\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["Rx", "Option", "pipe", "Capabilities", "contributes", "createIntent", "LayoutAction", "Blueprint", "Obj", "invariant", "ClientCapabilities", "PLANK_COMPANION_TYPE", "ATTENDABLE_PATH_SEPARATOR", "createExtension", "ROOT_ID", "getActiveSpace", "rxFromQuery", "SPACE_TYPE", "SpaceAction", "Filter", "Query", "fullyQualifiedId", "getSpace", "isSpace", "context", "contributes", "Capabilities", "AppGraphBuilder", "createExtension", "id", "ASSISTANT_PLUGIN", "actions", "node", "Rx", "make", "get", "pipe", "Option", "flatMap", "ROOT_ID", "some", "none", "map", "LayoutAction", "UpdateDialog", "_tag", "data", "dispatchPromise", "dispatch", "getCapability", "IntentDispatcher", "client", "ClientCapabilities", "Client", "space", "getActiveSpace", "spaces", "default", "chat", "getOrCreateChat", "createIntent", "part", "subject", "ASSISTANT_DIALOG", "options", "state", "blockAlign", "props", "properties", "label", "ns", "icon", "disposition", "position", "keyBinding", "macos", "windows", "getOrElse", "connector", "query", "nodeOption", "isNone", "object", "value", "Obj", "isObject", "getSpace", "db", "Query", "select", "Filter", "ids", "targetOf", "CompanionTo", "source", "rxFromQuery", "fullyQualifiedId", "join", "ATTENDABLE_PATH_SEPARATOR", "type", "PLANK_COMPANION_TYPE", "instanceOf", "Blueprint", "SPACE_TYPE", "isSpace", "TemplateType", "templates", "length", "toSorted", "a", "b", "nameA", "name", "nameB", "localeCompare", "template", "objects", "allChats", "AIChatType", "run", "relatedChats", "sourceOf", "chats", "filter", "includes", "AssistantAction", "CreateChat", "invariant", "SpaceAction", "AddObject", "target"]
7
+ }
@@ -4,13 +4,12 @@ import {
4
4
 
5
5
  // packages/plugins/plugin-assistant/src/types/chat.ts
6
6
  import { Schema } from "effect";
7
+ import { Queue } from "@dxos/client/echo";
7
8
  import { Type } from "@dxos/echo";
8
- import { Expando, Ref } from "@dxos/echo-schema";
9
9
  var AIChatType = Schema.Struct({
10
10
  id: Type.ObjectId,
11
11
  name: Schema.optional(Schema.String),
12
- // TODO(wittjosiah): Should be a ref to a Queue.
13
- queue: Ref(Expando)
12
+ queue: Type.Ref(Queue)
14
13
  }).pipe(Type.Obj({
15
14
  typename: "dxos.org/type/AIChat",
16
15
  version: "0.2.0"
@@ -21,13 +20,14 @@ var CompanionTo = Schema.Struct({
21
20
  typename: "dxos.org/relation/CompanionTo",
22
21
  version: "0.1.0",
23
22
  source: AIChatType,
24
- target: Expando
23
+ target: Type.Expando
25
24
  }));
26
25
 
27
26
  // packages/plugins/plugin-assistant/src/types/service.ts
28
27
  import { Schema as Schema2 } from "effect";
29
28
  import { ComputeGraph } from "@dxos/conductor";
30
- import { Ref as Ref2, TypedObject } from "@dxos/echo-schema";
29
+ import { Type as Type2 } from "@dxos/echo";
30
+ import { TypedObject } from "@dxos/echo-schema";
31
31
  import { FunctionType } from "@dxos/functions";
32
32
  var ApiAuthorizationKey = Schema2.Struct({
33
33
  type: Schema2.Literal("api-key"),
@@ -49,11 +49,11 @@ var ApiAuthorizationOauth = Schema2.Struct({
49
49
  var ApiAuthorization = Schema2.Union(ApiAuthorizationKey, ApiAuthorizationOauth);
50
50
  var ServiceInterfaceFunction = Schema2.Struct({
51
51
  kind: Schema2.Literal("function"),
52
- fn: Ref2(FunctionType)
52
+ fn: Type2.Ref(FunctionType)
53
53
  });
54
54
  var ServiceInterfaceWorkflow = Schema2.Struct({
55
55
  kind: Schema2.Literal("workflow"),
56
- workflow: Ref2(ComputeGraph)
56
+ workflow: Type2.Ref(ComputeGraph)
57
57
  });
58
58
  var ServiceInterfaceApi = Schema2.Struct({
59
59
  kind: Schema2.Literal("api"),
@@ -100,7 +100,8 @@ var categoryIcons = {
100
100
 
101
101
  // packages/plugins/plugin-assistant/src/types/template.ts
102
102
  import { Schema as Schema3 } from "effect";
103
- import { TypedObject as TypedObject2 } from "@dxos/echo-schema";
103
+ import { Type as Type3 } from "@dxos/echo";
104
+ import { LabelAnnotation } from "@dxos/echo-schema";
104
105
  var TemplateInputType = /* @__PURE__ */ function(TemplateInputType2) {
105
106
  TemplateInputType2[TemplateInputType2["VALUE"] = 0] = "VALUE";
106
107
  TemplateInputType2[TemplateInputType2["PASS_THROUGH"] = 1] = "PASS_THROUGH";
@@ -134,17 +135,18 @@ var TemplateKindSchema = Schema3.Union(Schema3.Struct({
134
135
  }), Schema3.Struct({
135
136
  include: Schema3.Literal("manual")
136
137
  }));
137
- var TemplateType = class extends TypedObject2({
138
- typename: "dxos.org/type/Template",
139
- version: "0.1.0"
140
- })({
138
+ var TemplateType = Schema3.Struct({
141
139
  name: Schema3.optional(Schema3.String),
142
140
  kind: Schema3.mutable(TemplateKindSchema),
143
141
  source: Schema3.String,
144
142
  inputs: Schema3.optional(Schema3.mutable(Schema3.Array(TemplateInputSchema))),
145
143
  command: Schema3.optional(Schema3.String)
146
- }) {
147
- };
144
+ }).pipe(LabelAnnotation.set([
145
+ "name"
146
+ ]), Type3.Obj({
147
+ typename: "dxos.org/type/Template",
148
+ version: "0.1.0"
149
+ }));
148
150
 
149
151
  // packages/plugins/plugin-assistant/src/types/types.ts
150
152
  import { Schema as Schema4 } from "effect";
@@ -203,4 +205,4 @@ export {
203
205
  AssistantSettingsSchema,
204
206
  AssistantAction
205
207
  };
206
- //# sourceMappingURL=chunk-NBSPGIHL.mjs.map
208
+ //# sourceMappingURL=chunk-AAOKC2JN.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types/chat.ts", "../../../src/types/service.ts", "../../../src/types/template.ts", "../../../src/types/types.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { Queue } from '@dxos/client/echo';\nimport { Type } from '@dxos/echo';\n\nexport const AIChatType = Schema.Struct({\n id: Type.ObjectId,\n name: Schema.optional(Schema.String),\n queue: Type.Ref(Queue),\n}).pipe(\n Type.Obj({\n typename: 'dxos.org/type/AIChat',\n version: '0.2.0',\n }),\n);\nexport interface AIChatType extends Schema.Schema.Type<typeof AIChatType> {}\n\nexport const CompanionTo = Schema.Struct({\n id: Type.ObjectId,\n}).pipe(\n Type.Relation({\n typename: 'dxos.org/relation/CompanionTo',\n version: '0.1.0',\n source: AIChatType,\n target: Type.Expando,\n }),\n);\nexport interface CompanionTo extends Schema.Schema.Type<typeof CompanionTo> {}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { ComputeGraph } from '@dxos/conductor';\nimport { Type } from '@dxos/echo';\nimport { TypedObject } from '@dxos/echo-schema';\nimport { FunctionType } from '@dxos/functions';\n\nconst ApiAuthorizationKey = Schema.Struct({\n type: Schema.Literal('api-key'),\n key: Schema.String,\n placement: Schema.Union(\n Schema.Struct({\n type: Schema.Literal('authorization-header'),\n }),\n Schema.Struct({\n type: Schema.Literal('query'),\n name: Schema.String,\n }),\n ),\n});\n\nconst ApiAuthorizationOauth = Schema.Struct({\n type: Schema.Literal('oauth'),\n clientId: Schema.String,\n clientSecret: Schema.String,\n tokenUrl: Schema.String,\n grantType: Schema.String,\n});\n\nexport const ApiAuthorization = Schema.Union(ApiAuthorizationKey, ApiAuthorizationOauth);\nexport type ApiAuthorization = Schema.Schema.Type<typeof ApiAuthorization>;\n\nconst ServiceInterfaceFunction = Schema.Struct({\n kind: Schema.Literal('function'),\n fn: Type.Ref(FunctionType),\n});\n\nconst ServiceInterfaceWorkflow = Schema.Struct({\n kind: Schema.Literal('workflow'),\n workflow: Type.Ref(ComputeGraph),\n});\n\nconst ServiceInterfaceApi = Schema.Struct({\n kind: Schema.Literal('api'),\n\n /**\n * URL to fetch the openapi schema.\n */\n schemaUrl: Schema.optional(Schema.String),\n\n /**\n * Inlined openapi schema.\n */\n schema: Schema.optional(Schema.Any),\n\n /**\n * Authorization configuration if required.\n */\n authorization: Schema.optional(ApiAuthorization),\n});\n\nconst ServiceInterface = Schema.Union(ServiceInterfaceFunction, ServiceInterfaceWorkflow, ServiceInterfaceApi);\nexport type ServiceInterface = Schema.Schema.Type<typeof ServiceInterface>;\n\nexport class ServiceType extends TypedObject({\n typename: 'dxos.org/type/ServiceType',\n version: '0.1.0',\n})({\n serviceId: Schema.String,\n name: Schema.optional(Schema.String),\n description: Schema.optional(Schema.String),\n category: Schema.optional(Schema.String),\n enabled: Schema.optional(Schema.Boolean),\n\n /**\n * Entries exposed: functions, workflows, and APIs.\n */\n interfaces: Schema.optional(Schema.Array(ServiceInterface)),\n}) {}\n\n//\n// Service Registry\n//\n\nexport type ServiceQuery = {\n name?: string;\n category?: string;\n};\n\nexport interface BaseServiceRegistry {\n queryServices(query?: ServiceQuery): Promise<ServiceType[]>;\n}\n\nexport const categoryIcons: Record<string, string> = {\n finance: 'ph--bank--regular',\n health: 'ph--heart--regular',\n geolocation: 'ph--globe-simple--regular',\n education: 'ph--books--regular',\n entertainment: 'ph--music-notes--regular',\n shopping: 'ph--shopping-cart--regular',\n travel: 'ph--airplane-takeoff--regular',\n utilities: 'ph--lightning--regular',\n weather: 'ph--cloud-rain--regular',\n} as const;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { Type } from '@dxos/echo';\nimport { LabelAnnotation } from '@dxos/echo-schema';\n\n// TODO(burdon): Change to Schema.Literal (and discriminated union).\nexport enum TemplateInputType {\n VALUE = 0,\n PASS_THROUGH = 1,\n RETRIEVER = 2,\n FUNCTION = 3,\n QUERY = 4,\n RESOLVER = 5,\n CONTEXT = 6,\n SCHEMA = 7,\n}\n\nexport const TemplateInputSchema = Schema.mutable(\n Schema.Struct({\n name: Schema.String,\n type: Schema.optional(Schema.Enums(TemplateInputType)),\n value: Schema.optional(Schema.String),\n }),\n);\n\nexport type TemplateInput = Schema.Schema.Type<typeof TemplateInputSchema>;\n\nexport const TemplateKinds = ['always', 'schema-matching', 'automatically', 'manual'] as const;\nexport type TemplateKind = (typeof TemplateKinds)[number];\n\nexport const TemplateKindSchema = Schema.Union(\n Schema.Struct({\n include: Schema.Literal('always'),\n }),\n Schema.Struct({\n include: Schema.Literal('schema-matching'),\n typename: Schema.String,\n }),\n Schema.Struct({\n include: Schema.Literal('automatically'),\n description: Schema.String,\n }),\n Schema.Struct({\n include: Schema.Literal('manual'),\n }),\n);\n\nexport type TemplateKindType = Schema.Schema.Type<typeof TemplateKindSchema>;\nexport const TemplateType = Schema.Struct({\n name: Schema.optional(Schema.String),\n kind: Schema.mutable(TemplateKindSchema),\n source: Schema.String,\n inputs: Schema.optional(Schema.mutable(Schema.Array(TemplateInputSchema))),\n command: Schema.optional(Schema.String),\n}).pipe(\n LabelAnnotation.set(['name']),\n Type.Obj({\n typename: 'dxos.org/type/Template',\n version: '0.1.0',\n }),\n);\nexport interface TemplateType extends Schema.Schema.Type<typeof TemplateType> {}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { Blueprint } from '@dxos/assistant';\nimport { SpaceSchema } from '@dxos/react-client/echo';\n\nimport { AIChatType } from './chat';\nimport { ASSISTANT_PLUGIN } from '../meta';\n\nexport namespace AssistantAction {\n const ASSISTANT_ACTION = `${ASSISTANT_PLUGIN}/action`;\n\n export class CreateChat extends Schema.TaggedClass<CreateChat>()(`${ASSISTANT_ACTION}/create-chat`, {\n input: Schema.Struct({\n space: SpaceSchema,\n name: Schema.optional(Schema.String),\n }),\n output: Schema.Struct({\n object: AIChatType,\n }),\n }) {}\n\n export class CreateBlueprint extends Schema.TaggedClass<CreateBlueprint>()(`${ASSISTANT_ACTION}/create-blueprint`, {\n input: Schema.Struct({\n name: Schema.optional(Schema.String),\n }),\n output: Schema.Struct({\n object: Blueprint,\n }),\n }) {}\n}\n\nexport const LLM_PROVIDERS = ['edge', 'ollama', 'lmstudio'] as const;\n\nexport const AssistantSettingsSchema = Schema.mutable(\n Schema.Struct({\n llmProvider: Schema.optional(Schema.Literal(...LLM_PROVIDERS)),\n edgeModel: Schema.optional(Schema.String),\n ollamaModel: Schema.optional(Schema.String),\n lmstudioModel: Schema.optional(Schema.String),\n customPrompts: Schema.optional(Schema.Boolean),\n }),\n);\n\nexport type AssistantSettingsProps = Schema.Schema.Type<typeof AssistantSettingsSchema>;\n"],
5
+ "mappings": "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",
6
+ "names": ["Schema", "Queue", "Type", "AIChatType", "Schema", "Struct", "id", "Type", "ObjectId", "name", "optional", "String", "queue", "Ref", "Queue", "pipe", "Obj", "typename", "version", "CompanionTo", "Relation", "source", "target", "Expando", "Schema", "ComputeGraph", "Type", "TypedObject", "FunctionType", "ApiAuthorizationKey", "Schema", "Struct", "type", "Literal", "key", "String", "placement", "Union", "name", "ApiAuthorizationOauth", "clientId", "clientSecret", "tokenUrl", "grantType", "ApiAuthorization", "ServiceInterfaceFunction", "kind", "fn", "Type", "Ref", "FunctionType", "ServiceInterfaceWorkflow", "workflow", "ComputeGraph", "ServiceInterfaceApi", "schemaUrl", "optional", "schema", "Any", "authorization", "ServiceInterface", "ServiceType", "TypedObject", "typename", "version", "serviceId", "description", "category", "enabled", "Boolean", "interfaces", "Array", "categoryIcons", "finance", "health", "geolocation", "education", "entertainment", "shopping", "travel", "utilities", "weather", "Schema", "Type", "LabelAnnotation", "TemplateInputType", "TemplateInputSchema", "Schema", "mutable", "Struct", "name", "String", "type", "optional", "Enums", "value", "TemplateKinds", "TemplateKindSchema", "Union", "include", "Literal", "typename", "description", "TemplateType", "kind", "source", "inputs", "Array", "command", "pipe", "LabelAnnotation", "set", "Type", "Obj", "version", "Schema", "Blueprint", "SpaceSchema", "AssistantAction", "ASSISTANT_ACTION", "ASSISTANT_PLUGIN", "CreateChat", "Schema", "TaggedClass", "input", "Struct", "space", "SpaceSchema", "name", "optional", "String", "output", "object", "AIChatType", "CreateBlueprint", "Blueprint", "LLM_PROVIDERS", "AssistantSettingsSchema", "mutable", "llmProvider", "Literal", "edgeModel", "ollamaModel", "lmstudioModel", "customPrompts", "Boolean"]
7
+ }
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  LLM_PROVIDERS,
3
3
  TemplateKinds
4
- } from "./chunk-NBSPGIHL.mjs";
4
+ } from "./chunk-AAOKC2JN.mjs";
5
5
  import {
6
6
  ASSISTANT_PLUGIN
7
7
  } from "./chunk-XOZ7YMO3.mjs";
@@ -116,7 +116,7 @@ var PromptSettings = ({ template }) => {
116
116
  template.kind.include
117
117
  ]);
118
118
  return /* @__PURE__ */ React2.createElement("div", {
119
- className: "p-2 flex flex-col gap-4"
119
+ className: "flex flex-col gap-4"
120
120
  }, /* @__PURE__ */ React2.createElement("h2", null, t("prompt rules label")), /* @__PURE__ */ React2.createElement(Toolbar.Root, null, /* @__PURE__ */ React2.createElement(Select2.Root, {
121
121
  value: template.kind.include,
122
122
  onValueChange: handleKindChange
@@ -141,17 +141,17 @@ var PromptSettings = ({ template }) => {
141
141
 
142
142
  // packages/plugins/plugin-assistant/src/components/index.ts
143
143
  import { lazy } from "react";
144
- var AssistantDialog = lazy(() => import("./AssistantDialog-UAZSN6GT.mjs"));
145
- var BlueprintEditor = lazy(() => import("./BlueprintEditor-DGV4KJDM.mjs"));
146
- var ChatContainer = lazy(() => import("./ChatContainer-UTN3AO5U.mjs"));
147
- var TemplateContainer = lazy(() => import("./TemplateContainer-AKUYL4AV.mjs"));
144
+ var AssistantDialog = lazy(() => import("./AssistantDialog-MQOOR364.mjs"));
145
+ var BlueprintContainer = lazy(() => import("./BlueprintContainer-AT5Y7EXG.mjs"));
146
+ var ChatContainer = lazy(() => import("./ChatContainer-C2NEAS3A.mjs"));
147
+ var TemplateContainer = lazy(() => import("./TemplateContainer-QQHVOTSI.mjs"));
148
148
 
149
149
  export {
150
150
  AssistantSettings,
151
151
  PromptSettings,
152
152
  AssistantDialog,
153
- BlueprintEditor,
153
+ BlueprintContainer,
154
154
  ChatContainer,
155
155
  TemplateContainer
156
156
  };
157
- //# sourceMappingURL=chunk-6SD7S7W5.mjs.map
157
+ //# sourceMappingURL=chunk-BI6AHRNJ.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/AssistantSettings/AssistantSettings.tsx", "../../../src/components/PromptSettings.tsx", "../../../src/components/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { DEFAULT_EDGE_MODELS, DEFAULT_OLLAMA_MODELS } from '@dxos/ai';\nimport { Input, Select, useTranslation } from '@dxos/react-ui';\nimport { DeprecatedFormContainer, DeprecatedFormInput } from '@dxos/react-ui-form';\n\nimport { ASSISTANT_PLUGIN } from '../../meta';\nimport { LLM_PROVIDERS, type AssistantSettingsProps } from '../../types';\n\n// TODO(burdon): Factor out default Selector.\nconst DEFAULT_VALUE = '__default';\n\nconst LLM_PROVIDER_LABELS = {\n edge: 'DXOS',\n ollama: 'Ollama',\n lmstudio: 'LM Studio',\n} as const;\n\nexport const AssistantSettings = ({ settings }: { settings: AssistantSettingsProps }) => {\n const { t } = useTranslation(ASSISTANT_PLUGIN);\n\n return (\n <DeprecatedFormContainer>\n <DeprecatedFormInput label={t('settings custom prompts label')}>\n <Input.Switch\n checked={!!settings.customPrompts}\n onCheckedChange={(checked) => (settings.customPrompts = checked)}\n />\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('settings llm provider label')}>\n <Select.Root\n value={settings.llmProvider ?? 'edge'}\n onValueChange={(value) => {\n settings.llmProvider = value === DEFAULT_VALUE ? undefined : (value as any);\n }}\n >\n <Select.TriggerButton placeholder={t('settings llm provider label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n <Select.Option value={DEFAULT_VALUE}>{t('settings default label')}</Select.Option>\n {LLM_PROVIDERS.map((model) => (\n <Select.Option key={model} value={model}>\n {LLM_PROVIDER_LABELS[model]}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('settings edge llm model label')}>\n <Select.Root\n value={settings.edgeModel ?? DEFAULT_VALUE}\n onValueChange={(value) => {\n settings.edgeModel = value === DEFAULT_VALUE ? undefined : value;\n }}\n >\n <Select.TriggerButton placeholder={t('settings default llm model label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n <Select.Option value={DEFAULT_VALUE}>{t('settings default label')}</Select.Option>\n {DEFAULT_EDGE_MODELS.map((model) => (\n <Select.Option key={model} value={model}>\n {model}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('settings ollama llm model label')}>\n <Select.Root\n value={settings.ollamaModel ?? DEFAULT_VALUE}\n onValueChange={(value) => {\n settings.ollamaModel = value === DEFAULT_VALUE ? undefined : value;\n }}\n >\n <Select.TriggerButton placeholder={t('settings default llm model label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n <Select.Option value={DEFAULT_VALUE}>{t('settings default label')}</Select.Option>\n {DEFAULT_OLLAMA_MODELS.map((model) => (\n <Select.Option key={model} value={model}>\n {model}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n </DeprecatedFormContainer>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Match, type Schema } from 'effect';\nimport React, { type ChangeEvent, useCallback } from 'react';\n\nimport { debounce } from '@dxos/async';\nimport { Input, Select, Toolbar, useTranslation } from '@dxos/react-ui';\n\nimport { ASSISTANT_PLUGIN } from '../meta';\nimport { TemplateKinds, type TemplateType, type TemplateKindSchema } from '../types';\n\nexport const PromptSettings = ({ template }: { template: TemplateType }) => {\n const { t } = useTranslation(ASSISTANT_PLUGIN);\n\n const handleKindChange = useCallback(\n (value: string) => {\n const kind = Match.type<string>().pipe(\n Match.withReturnType<Schema.Schema.Type<typeof TemplateKindSchema>>(),\n Match.when('always', () => ({ include: 'always' })),\n Match.when('schema-matching', () => ({ include: 'schema-matching', typename: '' })),\n Match.when('automatically', () => ({ include: 'automatically', description: '' })),\n Match.orElse(() => ({ include: 'manual' })),\n )(value);\n\n template.kind = kind;\n },\n [template],\n );\n\n const handleTypenameChange = useCallback(\n debounce((event: ChangeEvent<HTMLInputElement>) => {\n if (template.kind.include === 'schema-matching') {\n template.kind.typename = event.target.value;\n }\n }, 300),\n [template.kind.include],\n );\n\n const handleDescriptionChange = useCallback(\n debounce((event: ChangeEvent<HTMLInputElement>) => {\n if (template.kind.include === 'automatically') {\n template.kind.description = event.target.value;\n }\n }, 300),\n [template.kind.include],\n );\n\n return (\n <div className='p-2 flex flex-col gap-4'>\n <h2>{t('prompt rules label')}</h2>\n <Toolbar.Root>\n <Select.Root value={template.kind.include} onValueChange={handleKindChange}>\n <Toolbar.Button asChild>\n <Select.TriggerButton />\n </Toolbar.Button>\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {TemplateKinds.map((kind) => (\n <Select.Option key={kind} value={kind}>\n {kind}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n {template.kind.include === 'schema-matching' && (\n <Input.Root>\n <Input.TextInput\n placeholder={t('typename placeholder')}\n defaultValue={template.kind.typename}\n onChange={handleTypenameChange}\n />\n </Input.Root>\n )}\n {template.kind.include === 'automatically' && (\n <Input.Root>\n <Input.TextInput\n placeholder={t('description placeholder')}\n defaultValue={template.kind.description}\n onChange={handleDescriptionChange}\n />\n </Input.Root>\n )}\n </Toolbar.Root>\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport * from './AmbientDialog';\nexport * from './AssistantSettings';\nexport * from './Prompt';\nexport * from './PromptSettings';\nexport * from './TemplateEditor';\nexport * from './Thread';\nexport * from './Toolbox';\n\n// TODO(burdon): Lazy loading causes issues with Tabster.\n// Repro: open assistant dialog then close.\n// https://github.com/microsoft/fluentui/issues/34020\nexport const AssistantDialog = lazy(() => import('./AssistantDialog'));\nexport const BlueprintEditor = lazy(() => import('./BlueprintEditor'));\nexport const ChatContainer = lazy(() => import('./ChatContainer'));\nexport const TemplateContainer = lazy(() => import('./TemplateContainer'));\n"],
5
- "mappings": "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",
6
- "names": ["React", "DEFAULT_EDGE_MODELS", "DEFAULT_OLLAMA_MODELS", "Input", "Select", "useTranslation", "DeprecatedFormContainer", "DeprecatedFormInput", "DEFAULT_VALUE", "LLM_PROVIDER_LABELS", "edge", "ollama", "lmstudio", "AssistantSettings", "settings", "t", "useTranslation", "ASSISTANT_PLUGIN", "DeprecatedFormContainer", "DeprecatedFormInput", "label", "Input", "Switch", "checked", "customPrompts", "onCheckedChange", "Select", "Root", "value", "llmProvider", "onValueChange", "undefined", "TriggerButton", "placeholder", "Portal", "Content", "Viewport", "Option", "LLM_PROVIDERS", "map", "model", "key", "edgeModel", "DEFAULT_EDGE_MODELS", "ollamaModel", "DEFAULT_OLLAMA_MODELS", "Match", "React", "useCallback", "debounce", "Input", "Select", "Toolbar", "useTranslation", "PromptSettings", "template", "t", "useTranslation", "ASSISTANT_PLUGIN", "handleKindChange", "useCallback", "value", "kind", "Match", "type", "pipe", "withReturnType", "when", "include", "typename", "description", "orElse", "handleTypenameChange", "debounce", "event", "target", "handleDescriptionChange", "React", "div", "className", "h2", "Toolbar", "Root", "Select", "onValueChange", "Button", "asChild", "TriggerButton", "Portal", "Content", "Viewport", "TemplateKinds", "map", "Option", "key", "Input", "TextInput", "placeholder", "defaultValue", "onChange", "lazy", "AssistantDialog", "lazy", "BlueprintEditor", "ChatContainer", "TemplateContainer"]
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { DEFAULT_EDGE_MODELS, DEFAULT_OLLAMA_MODELS } from '@dxos/ai';\nimport { Input, Select, useTranslation } from '@dxos/react-ui';\nimport { DeprecatedFormContainer, DeprecatedFormInput } from '@dxos/react-ui-form';\n\nimport { ASSISTANT_PLUGIN } from '../../meta';\nimport { LLM_PROVIDERS, type AssistantSettingsProps } from '../../types';\n\n// TODO(burdon): Factor out default Selector.\nconst DEFAULT_VALUE = '__default';\n\nconst LLM_PROVIDER_LABELS = {\n edge: 'DXOS',\n ollama: 'Ollama',\n lmstudio: 'LM Studio',\n} as const;\n\nexport const AssistantSettings = ({ settings }: { settings: AssistantSettingsProps }) => {\n const { t } = useTranslation(ASSISTANT_PLUGIN);\n\n return (\n <DeprecatedFormContainer>\n <DeprecatedFormInput label={t('settings custom prompts label')}>\n <Input.Switch\n checked={!!settings.customPrompts}\n onCheckedChange={(checked) => (settings.customPrompts = checked)}\n />\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('settings llm provider label')}>\n <Select.Root\n value={settings.llmProvider ?? 'edge'}\n onValueChange={(value) => {\n settings.llmProvider = value === DEFAULT_VALUE ? undefined : (value as any);\n }}\n >\n <Select.TriggerButton placeholder={t('settings llm provider label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n <Select.Option value={DEFAULT_VALUE}>{t('settings default label')}</Select.Option>\n {LLM_PROVIDERS.map((model) => (\n <Select.Option key={model} value={model}>\n {LLM_PROVIDER_LABELS[model]}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('settings edge llm model label')}>\n <Select.Root\n value={settings.edgeModel ?? DEFAULT_VALUE}\n onValueChange={(value) => {\n settings.edgeModel = value === DEFAULT_VALUE ? undefined : value;\n }}\n >\n <Select.TriggerButton placeholder={t('settings default llm model label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n <Select.Option value={DEFAULT_VALUE}>{t('settings default label')}</Select.Option>\n {DEFAULT_EDGE_MODELS.map((model) => (\n <Select.Option key={model} value={model}>\n {model}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('settings ollama llm model label')}>\n <Select.Root\n value={settings.ollamaModel ?? DEFAULT_VALUE}\n onValueChange={(value) => {\n settings.ollamaModel = value === DEFAULT_VALUE ? undefined : value;\n }}\n >\n <Select.TriggerButton placeholder={t('settings default llm model label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n <Select.Option value={DEFAULT_VALUE}>{t('settings default label')}</Select.Option>\n {DEFAULT_OLLAMA_MODELS.map((model) => (\n <Select.Option key={model} value={model}>\n {model}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n </DeprecatedFormContainer>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Match, type Schema } from 'effect';\nimport React, { type ChangeEvent, useCallback } from 'react';\n\nimport { debounce } from '@dxos/async';\nimport { Input, Select, Toolbar, useTranslation } from '@dxos/react-ui';\n\nimport { ASSISTANT_PLUGIN } from '../meta';\nimport { TemplateKinds, type TemplateType, type TemplateKindSchema } from '../types';\n\nexport const PromptSettings = ({ template }: { template: TemplateType }) => {\n const { t } = useTranslation(ASSISTANT_PLUGIN);\n\n const handleKindChange = useCallback(\n (value: string) => {\n const kind = Match.type<string>().pipe(\n Match.withReturnType<Schema.Schema.Type<typeof TemplateKindSchema>>(),\n Match.when('always', () => ({ include: 'always' })),\n Match.when('schema-matching', () => ({ include: 'schema-matching', typename: '' })),\n Match.when('automatically', () => ({ include: 'automatically', description: '' })),\n Match.orElse(() => ({ include: 'manual' })),\n )(value);\n\n template.kind = kind;\n },\n [template],\n );\n\n const handleTypenameChange = useCallback(\n debounce((event: ChangeEvent<HTMLInputElement>) => {\n if (template.kind.include === 'schema-matching') {\n template.kind.typename = event.target.value;\n }\n }, 300),\n [template.kind.include],\n );\n\n const handleDescriptionChange = useCallback(\n debounce((event: ChangeEvent<HTMLInputElement>) => {\n if (template.kind.include === 'automatically') {\n template.kind.description = event.target.value;\n }\n }, 300),\n [template.kind.include],\n );\n\n return (\n <div className='flex flex-col gap-4'>\n <h2>{t('prompt rules label')}</h2>\n <Toolbar.Root>\n <Select.Root value={template.kind.include} onValueChange={handleKindChange}>\n <Toolbar.Button asChild>\n <Select.TriggerButton />\n </Toolbar.Button>\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {TemplateKinds.map((kind) => (\n <Select.Option key={kind} value={kind}>\n {kind}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n {template.kind.include === 'schema-matching' && (\n <Input.Root>\n <Input.TextInput\n placeholder={t('typename placeholder')}\n defaultValue={template.kind.typename}\n onChange={handleTypenameChange}\n />\n </Input.Root>\n )}\n {template.kind.include === 'automatically' && (\n <Input.Root>\n <Input.TextInput\n placeholder={t('description placeholder')}\n defaultValue={template.kind.description}\n onChange={handleDescriptionChange}\n />\n </Input.Root>\n )}\n </Toolbar.Root>\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport * from './AmbientDialog';\nexport * from './AssistantSettings';\nexport * from './Prompt';\nexport * from './PromptSettings';\nexport * from './TemplateEditor';\nexport * from './Thread';\nexport * from './Toolbox';\n\n// TODO(burdon): Lazy loading causes issues with Tabster.\n// Repro: open assistant dialog then close.\n// https://github.com/microsoft/fluentui/issues/34020\nexport const AssistantDialog = lazy(() => import('./AssistantDialog'));\nexport const BlueprintContainer = lazy(() => import('./BlueprintContainer'));\nexport const ChatContainer = lazy(() => import('./ChatContainer'));\nexport const TemplateContainer = lazy(() => import('./TemplateContainer'));\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "DEFAULT_EDGE_MODELS", "DEFAULT_OLLAMA_MODELS", "Input", "Select", "useTranslation", "DeprecatedFormContainer", "DeprecatedFormInput", "DEFAULT_VALUE", "LLM_PROVIDER_LABELS", "edge", "ollama", "lmstudio", "AssistantSettings", "settings", "t", "useTranslation", "ASSISTANT_PLUGIN", "DeprecatedFormContainer", "DeprecatedFormInput", "label", "Input", "Switch", "checked", "customPrompts", "onCheckedChange", "Select", "Root", "value", "llmProvider", "onValueChange", "undefined", "TriggerButton", "placeholder", "Portal", "Content", "Viewport", "Option", "LLM_PROVIDERS", "map", "model", "key", "edgeModel", "DEFAULT_EDGE_MODELS", "ollamaModel", "DEFAULT_OLLAMA_MODELS", "Match", "React", "useCallback", "debounce", "Input", "Select", "Toolbar", "useTranslation", "PromptSettings", "template", "t", "useTranslation", "ASSISTANT_PLUGIN", "handleKindChange", "useCallback", "value", "kind", "Match", "type", "pipe", "withReturnType", "when", "include", "typename", "description", "orElse", "handleTypenameChange", "debounce", "event", "target", "handleDescriptionChange", "React", "div", "className", "h2", "Toolbar", "Root", "Select", "onValueChange", "Button", "asChild", "TriggerButton", "Portal", "Content", "Viewport", "TemplateKinds", "map", "Option", "key", "Input", "TextInput", "placeholder", "defaultValue", "onChange", "lazy", "AssistantDialog", "lazy", "BlueprintContainer", "ChatContainer", "TemplateContainer"]
7
7
  }
@@ -1,10 +1,10 @@
1
- import {
2
- AssistantCapabilities
3
- } from "./chunk-3F44MBHU.mjs";
4
1
  import {
5
2
  ServiceType,
6
3
  categoryIcons
7
- } from "./chunk-NBSPGIHL.mjs";
4
+ } from "./chunk-AAOKC2JN.mjs";
5
+ import {
6
+ AssistantCapabilities
7
+ } from "./chunk-UE3IZ4PN.mjs";
8
8
  import {
9
9
  ASSISTANT_PLUGIN
10
10
  } from "./chunk-XOZ7YMO3.mjs";
@@ -451,7 +451,7 @@ import { mx as mx3 } from "@dxos/react-ui-theme";
451
451
 
452
452
  // packages/plugins/plugin-assistant/src/tools/function.ts
453
453
  import { createTool, ToolResult } from "@dxos/ai";
454
- import { toEffectSchema } from "@dxos/echo-schema";
454
+ import { Type } from "@dxos/echo";
455
455
  import { getInvocationUrl, getUserFunctionUrlInMetadata } from "@dxos/functions";
456
456
  import { log } from "@dxos/log";
457
457
  import { getMeta } from "@dxos/react-client/echo";
@@ -470,7 +470,7 @@ var convertFunctionToTool = (fn, edgeUrl, spaceId) => {
470
470
  return createTool("user-function", {
471
471
  name: fn.name,
472
472
  description: fn.description,
473
- schema: toEffectSchema(fn.inputSchema),
473
+ schema: Type.toEffectSchema(fn.inputSchema),
474
474
  execute: async (input) => {
475
475
  log.info("execute function tool", {
476
476
  name: fn.name,
@@ -498,7 +498,8 @@ var convertFunctionToTool = (fn, edgeUrl, spaceId) => {
498
498
  import { Schema } from "effect";
499
499
  import jsonpointer from "jsonpointer";
500
500
  import { ToolResult as ToolResult2, createRawTool } from "@dxos/ai";
501
- import { JsonSchemaType, normalizeSchema, toEffectSchema as toEffectSchema2 } from "@dxos/echo-schema";
501
+ import { Type as Type2 } from "@dxos/echo";
502
+ import { normalizeSchema } from "@dxos/echo-schema";
502
503
  import { invariant } from "@dxos/invariant";
503
504
  import { log as log2 } from "@dxos/log";
504
505
  import { deepMapValues } from "@dxos/util";
@@ -506,7 +507,7 @@ var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-assista
506
507
  var createToolsFromService = async (service) => {
507
508
  invariant(service.interfaces?.length === 1 && service.interfaces[0].kind === "api", void 0, {
508
509
  F: __dxlog_file2,
509
- L: 23,
510
+ L: 24,
510
511
  S: void 0,
511
512
  A: [
512
513
  "service.interfaces?.length === 1 && service.interfaces[0].kind === 'api'",
@@ -516,7 +517,7 @@ var createToolsFromService = async (service) => {
516
517
  const iface = service.interfaces[0];
517
518
  invariant(iface.schemaUrl, void 0, {
518
519
  F: __dxlog_file2,
519
- L: 25,
520
+ L: 26,
520
521
  S: void 0,
521
522
  A: [
522
523
  "iface.schemaUrl",
@@ -525,7 +526,7 @@ var createToolsFromService = async (service) => {
525
526
  });
526
527
  invariant(iface.schemaUrl, void 0, {
527
528
  F: __dxlog_file2,
528
- L: 26,
529
+ L: 27,
529
530
  S: void 0,
530
531
  A: [
531
532
  "iface.schemaUrl",
@@ -543,7 +544,7 @@ var createToolsFromApi = async (url, options) => {
543
544
  spec
544
545
  }, {
545
546
  F: __dxlog_file2,
546
- L: 36,
547
+ L: 37,
547
548
  S: void 0,
548
549
  C: (f, a) => f(...a)
549
550
  });
@@ -561,7 +562,7 @@ var createToolsFromApi = async (url, options) => {
561
562
  methodItem
562
563
  }, {
563
564
  F: __dxlog_file2,
564
- L: 47,
565
+ L: 48,
565
566
  S: void 0,
566
567
  C: (f, a) => f(...a)
567
568
  });
@@ -606,7 +607,7 @@ var createToolsFromApi = async (url, options) => {
606
607
  S: void 0,
607
608
  C: (f, a) => f(...a)
608
609
  });
609
- Schema.validateSync(JsonSchemaType)(inputSchema);
610
+ Schema.validateSync(Type2.JsonSchema)(inputSchema);
610
611
  const description = methodItem.description ?? methodItem.summary;
611
612
  if (!description) {
612
613
  log2.warn("no description", {
@@ -721,7 +722,7 @@ var callApiEndpoint = async (endpoint, input) => {
721
722
  }
722
723
  case "body": {
723
724
  const value = input[parameter.name];
724
- const effectSchema = toEffectSchema2(parameter.schema);
725
+ const effectSchema = Type2.toEffectSchema(parameter.schema);
725
726
  Schema.validateSync(effectSchema)(value);
726
727
  if (body) {
727
728
  throw new Error(`Duplicate body parameter: ${parameter.name}`);
@@ -1484,10 +1485,9 @@ var Thread = ({ classNames, space, messages, collapse = true, transcription, pro
1484
1485
  import { useSignals as _useSignals9 } from "@preact-signals/safe-react/tracking";
1485
1486
  import React7, { useCallback as useCallback3, useEffect as useEffect5 } from "react";
1486
1487
  import { CollaborationActions, createIntent, useIntentDispatcher as useIntentDispatcher2 } from "@dxos/app-framework";
1488
+ import { DXN, Ref } from "@dxos/echo";
1487
1489
  import { invariant as invariant4 } from "@dxos/invariant";
1488
- import { DXN } from "@dxos/keys";
1489
- import { refFromDXN } from "@dxos/live-object";
1490
- import { log as log8 } from "@dxos/log";
1490
+ import { log as log7 } from "@dxos/log";
1491
1491
  import { getSpace as getSpace2 } from "@dxos/react-client/echo";
1492
1492
 
1493
1493
  // packages/plugins/plugin-assistant/src/hooks/processor.ts
@@ -1656,7 +1656,7 @@ var ChatProcessor = class {
1656
1656
  C: (f, a) => f(...a)
1657
1657
  });
1658
1658
  if (err instanceof Error && err.message.includes("Overloaded")) {
1659
- this.error.value = new AIServiceOverloadedError("AI service overloaded", {
1659
+ this.error.value = new AiServiceOverloadedError("AI service overloaded", {
1660
1660
  cause: err
1661
1661
  });
1662
1662
  } else {
@@ -1692,7 +1692,7 @@ var ChatProcessor = class {
1692
1692
  return messages;
1693
1693
  }
1694
1694
  };
1695
- var AIServiceOverloadedError = class extends Error {
1695
+ var AiServiceOverloadedError = class extends Error {
1696
1696
  constructor() {
1697
1697
  super(...arguments);
1698
1698
  this.code = "AI_SERVICE_OVERLOADED";
@@ -1710,16 +1710,6 @@ import { log as log6 } from "@dxos/log";
1710
1710
  import { useConfig } from "@dxos/react-client";
1711
1711
  import { Filter as Filter3, fullyQualifiedId, useQuery as useQuery2 } from "@dxos/react-client/echo";
1712
1712
  import { isNonNullable as isNonNullable3 } from "@dxos/util";
1713
-
1714
- // packages/plugins/plugin-assistant/src/capabilities/index.ts
1715
- import { lazy } from "@dxos/app-framework";
1716
- var AiClient = lazy(() => import("./ai-client-COXVUC6V.mjs"));
1717
- var AppGraphBuilder = lazy(() => import("./app-graph-builder-56OZ5RW4.mjs"));
1718
- var IntentResolver = lazy(() => import("./intent-resolver-GWELYIX2.mjs"));
1719
- var ReactSurface = lazy(() => import("./react-surface-DGS34EON.mjs"));
1720
- var Settings = lazy(() => import("./settings-BTFB7IQ6.mjs"));
1721
-
1722
- // packages/plugins/plugin-assistant/src/hooks/useChatProcessor.tsx
1723
1713
  var __dxlog_file7 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-assistant/src/hooks/useChatProcessor.tsx";
1724
1714
  var useChatProcessor = ({
1725
1715
  chat,
@@ -1824,13 +1814,13 @@ ${definition.instructions}`),
1824
1814
 
1825
1815
  // packages/plugins/plugin-assistant/src/hooks/useMessageQueue.ts
1826
1816
  import { useMemo as useMemo4 } from "react";
1827
- import { createQueueDxn } from "@dxos/echo-schema";
1817
+ import { createQueueDXN } from "@dxos/echo-schema";
1828
1818
  import { getSpace, useQueue } from "@dxos/react-client/echo";
1829
1819
  var useMessageQueue = (chat) => {
1830
1820
  const space = getSpace(chat);
1831
1821
  const queueDxn = useMemo4(() => {
1832
1822
  const dxn = space && chat?.queue.dxn;
1833
- return dxn ? createQueueDxn(space.id, dxn.parts.at(-1)) : void 0;
1823
+ return dxn ? createQueueDXN(space.id, dxn.parts.at(-1)) : void 0;
1834
1824
  }, [
1835
1825
  space,
1836
1826
  chat?.queue.dxn
@@ -1847,7 +1837,7 @@ import { EXA_API_KEY } from "@dxos/ai/testing";
1847
1837
  import { BlueprintParser, createExaTool, createGraphWriterTool, createLocalSearchTool } from "@dxos/assistant";
1848
1838
  import { DataTypes } from "@dxos/schema";
1849
1839
  import { isNonNullable as isNonNullable4 } from "@dxos/util";
1850
- var RESEARCH_BLUEPRINT = BlueprintParser.create().parse({
1840
+ var RESEARCH_BLUEPRINT_DEFINITION = {
1851
1841
  steps: [
1852
1842
  {
1853
1843
  instructions: "Research information and entities related to the selected objects.",
@@ -1869,14 +1859,15 @@ var RESEARCH_BLUEPRINT = BlueprintParser.create().parse({
1869
1859
  ]
1870
1860
  }
1871
1861
  ]
1872
- });
1862
+ };
1863
+ var RESEARCH_BLUEPRINT = BlueprintParser.create().parse(RESEARCH_BLUEPRINT_DEFINITION);
1873
1864
 
1874
1865
  // packages/plugins/plugin-assistant/src/testing/test-functions.ts
1875
1866
  import { DEFAULT_EDGE_MODEL as DEFAULT_EDGE_MODEL3 } from "@dxos/ai";
1876
1867
  import { createSystemPrompt as createSystemPrompt2 } from "@dxos/artifact";
1877
1868
 
1878
1869
  // packages/plugins/plugin-assistant/src/testing/test-services.ts
1879
- import { create } from "@dxos/echo-schema";
1870
+ import { Obj } from "@dxos/echo";
1880
1871
  var AMADEUS_AUTH = {
1881
1872
  type: "oauth",
1882
1873
  clientId: "BOEnpLd1sMyKjAPGKYeAPFFy60u53QEG",
@@ -1893,7 +1884,7 @@ var VISUAL_CROSSING_CREDENTIALS = {
1893
1884
  }
1894
1885
  };
1895
1886
  var TEST_SERVICES = [
1896
- create(ServiceType, {
1887
+ Obj.make(ServiceType, {
1897
1888
  serviceId: "amadeus.com/service/FlightSearch",
1898
1889
  name: "Amadeus Flight Search",
1899
1890
  description: "Search for local and international flights.",
@@ -1906,7 +1897,7 @@ var TEST_SERVICES = [
1906
1897
  }
1907
1898
  ]
1908
1899
  }),
1909
- create(ServiceType, {
1900
+ Obj.make(ServiceType, {
1910
1901
  serviceId: "amadeus.com/service/HotelSearch",
1911
1902
  name: "Amadeus Hotel Search",
1912
1903
  description: "Search for local and international hotels.",
@@ -1919,7 +1910,7 @@ var TEST_SERVICES = [
1919
1910
  }
1920
1911
  ]
1921
1912
  }),
1922
- create(ServiceType, {
1913
+ Obj.make(ServiceType, {
1923
1914
  serviceId: "visualcrossing.com/service/Weather",
1924
1915
  name: "Visual Crossing Weather",
1925
1916
  description: "Search for global weather forecasts.",
@@ -1933,7 +1924,7 @@ var TEST_SERVICES = [
1933
1924
  ]
1934
1925
  }),
1935
1926
  // TODO(burdon): Needs auth.
1936
- create(ServiceType, {
1927
+ Obj.make(ServiceType, {
1937
1928
  serviceId: "abstractapi.com/service/GeoLocation",
1938
1929
  name: "Abstract GeoLocation",
1939
1930
  description: "Get the location of any IP address.",
@@ -1950,7 +1941,7 @@ var TEST_SERVICES = [
1950
1941
  //
1951
1942
  ...Array.from({
1952
1943
  length: 20
1953
- }, (_, i) => create(ServiceType, {
1944
+ }, (_, i) => Obj.make(ServiceType, {
1954
1945
  serviceId: `example.com/service/test-${i}`,
1955
1946
  name: `Test ${i}`,
1956
1947
  description: `Test ${i}`,
@@ -1971,11 +1962,7 @@ import { useState as useState6, useCallback as useCallback2 } from "react";
1971
1962
  // packages/plugins/plugin-assistant/src/hooks/useContextProvider.ts
1972
1963
  import { useMemo as useMemo6 } from "react";
1973
1964
  import { Capabilities as Capabilities3, useCapabilities as useCapabilities3 } from "@dxos/app-framework";
1974
- import { Filter as Filter4 } from "@dxos/client/echo";
1975
- import { Obj } from "@dxos/echo";
1976
- import { getObjectDXN, getLabel } from "@dxos/echo-schema";
1977
- import { log as log7 } from "@dxos/log";
1978
- var __dxlog_file8 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-assistant/src/hooks/useContextProvider.ts";
1965
+ import { Filter as Filter4, Obj as Obj2 } from "@dxos/echo";
1979
1966
  var stringMatch = (query, label) => label.toLowerCase().startsWith(query.toLowerCase());
1980
1967
  var useContextProvider = (space) => {
1981
1968
  const artifactDefinitions = useCapabilities3(Capabilities3.ArtifactDefinition);
@@ -1987,27 +1974,16 @@ var useContextProvider = (space) => {
1987
1974
  query: async ({ query }) => {
1988
1975
  const artifactSchemas = artifactDefinitions.map((artifact) => artifact.schema);
1989
1976
  const { objects } = await space.db.query(Filter4.or(...artifactSchemas.map((schema) => Filter4.type(schema)))).run();
1990
- return objects.map((object) => {
1991
- log7.info("object", {
1992
- object,
1993
- label: getLabel(Obj.getSchema(object), object)
1994
- }, {
1995
- F: __dxlog_file8,
1996
- L: 37,
1997
- S: void 0,
1998
- C: (f, a) => f(...a)
1999
- });
2000
- return object;
2001
- }).filter((object) => stringMatch(query, getLabel(Obj.getSchema(object), object) ?? "")).filter((object) => !!getObjectDXN(object)).map((object) => ({
2002
- uri: getObjectDXN(object).toString(),
2003
- label: getLabel(Obj.getSchema(object), object) ?? ""
1977
+ return objects.filter((object) => stringMatch(query, Obj2.getLabel(object) ?? "")).filter((object) => !!Obj2.getDXN(object)).map((object) => ({
1978
+ uri: Obj2.getDXN(object).toString(),
1979
+ label: Obj2.getLabel(object) ?? ""
2004
1980
  }));
2005
1981
  },
2006
1982
  resolveMetadata: async ({ uri }) => {
2007
1983
  const object = await space.db.query(Filter4.ids(uri)).first();
2008
1984
  return {
2009
1985
  uri,
2010
- label: getLabel(Obj.getSchema(object), object) ?? ""
1986
+ label: Obj2.getLabel(object) ?? ""
2011
1987
  };
2012
1988
  }
2013
1989
  };
@@ -2018,7 +1994,7 @@ var useContextProvider = (space) => {
2018
1994
  };
2019
1995
 
2020
1996
  // packages/plugins/plugin-assistant/src/components/Thread/ThreadContainer.tsx
2021
- var __dxlog_file9 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-assistant/src/components/Thread/ThreadContainer.tsx";
1997
+ var __dxlog_file8 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-assistant/src/components/Thread/ThreadContainer.tsx";
2022
1998
  var ThreadContainer = ({ classNames, chat, settings, part, associatedArtifact, onOpenChange, ...props }) => {
2023
1999
  var _effect = _useSignals9();
2024
2000
  try {
@@ -2043,7 +2019,7 @@ var ThreadContainer = ({ classNames, chat, settings, part, associatedArtifact, o
2043
2019
  if (space && chat && message && dispatch && associatedArtifact) {
2044
2020
  void dispatch(createIntent(CollaborationActions.InsertContent, {
2045
2021
  target: associatedArtifact,
2046
- object: refFromDXN(new DXN(DXN.kind.QUEUE, [
2022
+ object: Ref.fromDXN(new DXN(DXN.kind.QUEUE, [
2047
2023
  ...chat.queue.dxn.parts,
2048
2024
  message.id
2049
2025
  ])),
@@ -2058,9 +2034,9 @@ var ThreadContainer = ({ classNames, chat, settings, part, associatedArtifact, o
2058
2034
  ]);
2059
2035
  const handleSubmit = useCallback3((text) => {
2060
2036
  if (processor.streaming.value) {
2061
- log8.warn("ignoring submit; still processing.", void 0, {
2062
- F: __dxlog_file9,
2063
- L: 65,
2037
+ log7.warn("ignoring submit; still processing.", void 0, {
2038
+ F: __dxlog_file8,
2039
+ L: 64,
2064
2040
  S: void 0,
2065
2041
  C: (f, a) => f(...a)
2066
2042
  });
@@ -2068,8 +2044,8 @@ var ThreadContainer = ({ classNames, chat, settings, part, associatedArtifact, o
2068
2044
  }
2069
2045
  onOpenChange?.(true);
2070
2046
  invariant4(messageQueue, void 0, {
2071
- F: __dxlog_file9,
2072
- L: 71,
2047
+ F: __dxlog_file8,
2048
+ L: 70,
2073
2049
  S: void 0,
2074
2050
  A: [
2075
2051
  "messageQueue",
@@ -2079,7 +2055,7 @@ var ThreadContainer = ({ classNames, chat, settings, part, associatedArtifact, o
2079
2055
  void processor.request(text, {
2080
2056
  history: messageQueue.objects,
2081
2057
  onComplete: (messages2) => {
2082
- messageQueue.append(messages2);
2058
+ void messageQueue.append(messages2);
2083
2059
  }
2084
2060
  });
2085
2061
  return true;
@@ -2120,11 +2096,6 @@ export {
2120
2096
  Toolbox,
2121
2097
  ToolboxContainer,
2122
2098
  Thread,
2123
- AiClient,
2124
- AppGraphBuilder,
2125
- IntentResolver,
2126
- ReactSurface,
2127
- Settings,
2128
2099
  ThreadContainer
2129
2100
  };
2130
- //# sourceMappingURL=chunk-Q6XE3O3E.mjs.map
2101
+ //# sourceMappingURL=chunk-JO4W3MF7.mjs.map