@dxos/plugin-assistant 0.8.2-main.f081794 → 0.8.2-main.fbd8ed0

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 (192) hide show
  1. package/dist/lib/browser/{AssistantDialog-77B4BSXR.mjs → AssistantDialog-DTWVEQBB.mjs} +3 -3
  2. package/dist/lib/browser/{ChatContainer-4AMJKO3T.mjs → ChatContainer-ZNKENYKZ.mjs} +3 -3
  3. package/dist/lib/browser/{ai-client-CDZLSNXE.mjs → ai-client-5PRCXI7N.mjs} +3 -3
  4. package/dist/lib/browser/ai-client-5PRCXI7N.mjs.map +7 -0
  5. package/dist/lib/browser/{app-graph-builder-GU6ZWSP4.mjs → app-graph-builder-HTK3HFGM.mjs} +72 -92
  6. package/dist/lib/browser/app-graph-builder-HTK3HFGM.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-5P7U35RJ.mjs +192 -0
  8. package/dist/lib/browser/chunk-5P7U35RJ.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-SBFJKCVU.mjs → chunk-7VDZP5WX.mjs} +24 -69
  10. package/dist/lib/browser/chunk-7VDZP5WX.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-FQ4L5NYW.mjs → chunk-OWZHLWW5.mjs} +115 -129
  12. package/dist/lib/browser/chunk-OWZHLWW5.mjs.map +7 -0
  13. package/dist/lib/browser/index.mjs +8 -8
  14. package/dist/lib/browser/index.mjs.map +2 -2
  15. package/dist/lib/browser/{intent-resolver-YAQELTFQ.mjs → intent-resolver-QV5AAVJZ.mjs} +4 -9
  16. package/dist/lib/browser/intent-resolver-QV5AAVJZ.mjs.map +7 -0
  17. package/dist/lib/browser/meta.json +1 -1
  18. package/dist/lib/browser/{react-surface-JOATHBJ4.mjs → react-surface-JJPYWEIN.mjs} +9 -18
  19. package/dist/lib/browser/react-surface-JJPYWEIN.mjs.map +7 -0
  20. package/dist/lib/browser/{settings-PAJLJEVW.mjs → settings-OZX7J65A.mjs} +2 -2
  21. package/dist/lib/browser/types/index.mjs +3 -1
  22. package/dist/lib/node/{AssistantDialog-7V7RRSIL.cjs → AssistantDialog-RJJHZI63.cjs} +7 -7
  23. package/dist/lib/node/{ChatContainer-UWYNOALW.cjs → ChatContainer-WVAAOEOH.cjs} +7 -7
  24. package/dist/lib/node/{ai-client-URCCYU6B.cjs → ai-client-OUPSRQT7.cjs} +6 -6
  25. package/dist/lib/node/ai-client-OUPSRQT7.cjs.map +7 -0
  26. package/dist/lib/node/{app-graph-builder-CEMLCKAF.cjs → app-graph-builder-LEO63CZZ.cjs} +74 -94
  27. package/dist/lib/node/app-graph-builder-LEO63CZZ.cjs.map +7 -0
  28. package/dist/lib/node/{chunk-KWBQ5P7D.cjs → chunk-GQ3XS5FZ.cjs} +28 -69
  29. package/dist/lib/node/chunk-GQ3XS5FZ.cjs.map +7 -0
  30. package/dist/lib/node/{chunk-ENBPNIJZ.cjs → chunk-OOHFSPWR.cjs} +122 -129
  31. package/dist/lib/node/chunk-OOHFSPWR.cjs.map +7 -0
  32. package/dist/lib/node/chunk-VG2UQY4S.cjs +216 -0
  33. package/dist/lib/node/chunk-VG2UQY4S.cjs.map +7 -0
  34. package/dist/lib/node/index.cjs +41 -41
  35. package/dist/lib/node/index.cjs.map +3 -3
  36. package/dist/lib/node/{intent-resolver-RNMYSJ3E.cjs → intent-resolver-QDGZMWLY.cjs} +10 -15
  37. package/dist/lib/node/intent-resolver-QDGZMWLY.cjs.map +7 -0
  38. package/dist/lib/node/meta.json +1 -1
  39. package/dist/lib/node/{react-surface-7RIXMLMN.cjs → react-surface-XNEIJJYJ.cjs} +22 -30
  40. package/dist/lib/node/react-surface-XNEIJJYJ.cjs.map +7 -0
  41. package/dist/lib/node/{settings-JBEYMZ4S.cjs → settings-WLTC7XO5.cjs} +6 -6
  42. package/dist/lib/node/types/index.cjs +14 -12
  43. package/dist/lib/node/types/index.cjs.map +2 -2
  44. package/dist/lib/node-esm/{AssistantDialog-N24M73FW.mjs → AssistantDialog-D33WZUGR.mjs} +3 -3
  45. package/dist/lib/node-esm/{ChatContainer-KPWY5UK4.mjs → ChatContainer-FAYGNMQW.mjs} +3 -3
  46. package/dist/lib/node-esm/{ai-client-WMHS5EGV.mjs → ai-client-RZQWEDUX.mjs} +3 -3
  47. package/dist/lib/node-esm/ai-client-RZQWEDUX.mjs.map +7 -0
  48. package/dist/lib/node-esm/{app-graph-builder-Y45WYAWL.mjs → app-graph-builder-WXJNZDYB.mjs} +72 -92
  49. package/dist/lib/node-esm/app-graph-builder-WXJNZDYB.mjs.map +7 -0
  50. package/dist/lib/node-esm/{chunk-PFWTW22U.mjs → chunk-74GFINWJ.mjs} +24 -69
  51. package/dist/lib/node-esm/chunk-74GFINWJ.mjs.map +7 -0
  52. package/dist/lib/node-esm/{chunk-JE47GNTB.mjs → chunk-ED55ZE4G.mjs} +115 -129
  53. package/dist/lib/node-esm/chunk-ED55ZE4G.mjs.map +7 -0
  54. package/dist/lib/node-esm/chunk-UZWYXNR5.mjs +193 -0
  55. package/dist/lib/node-esm/chunk-UZWYXNR5.mjs.map +7 -0
  56. package/dist/lib/node-esm/index.mjs +8 -8
  57. package/dist/lib/node-esm/index.mjs.map +2 -2
  58. package/dist/lib/node-esm/{intent-resolver-V2ZFI5C4.mjs → intent-resolver-Q3I6S6HN.mjs} +4 -9
  59. package/dist/lib/node-esm/intent-resolver-Q3I6S6HN.mjs.map +7 -0
  60. package/dist/lib/node-esm/meta.json +1 -1
  61. package/dist/lib/node-esm/{react-surface-UUHNOYST.mjs → react-surface-RI3JONQY.mjs} +9 -18
  62. package/dist/lib/node-esm/react-surface-RI3JONQY.mjs.map +7 -0
  63. package/dist/lib/node-esm/{settings-KAMA6RIY.mjs → settings-CLE57WEP.mjs} +2 -2
  64. package/dist/lib/node-esm/types/index.mjs +3 -1
  65. package/dist/types/src/capabilities/ai-client.d.ts +2 -2
  66. package/dist/types/src/capabilities/ai-client.d.ts.map +1 -1
  67. package/dist/types/src/capabilities/app-graph-builder.d.ts +2 -179
  68. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  69. package/dist/types/src/capabilities/index.d.ts +3 -179
  70. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  71. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  72. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  73. package/dist/types/src/components/AmbientDialog/AmbientDialog.d.ts.map +1 -1
  74. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +1 -1
  75. package/dist/types/src/components/Prompt/PromptBar.d.ts.map +1 -1
  76. package/dist/types/src/components/Prompt/autocomplete.d.ts.map +1 -1
  77. package/dist/types/src/components/Prompt/references.d.ts.map +1 -1
  78. package/dist/types/src/components/PromptSettings.d.ts.map +1 -1
  79. package/dist/types/src/components/TemplateContainer.d.ts.map +1 -1
  80. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +1 -1
  81. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
  82. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +2 -2
  83. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
  84. package/dist/types/src/components/Thread/Thread.d.ts.map +1 -1
  85. package/dist/types/src/components/Thread/Thread.stories.d.ts.map +1 -1
  86. package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts +2 -2
  87. package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts.map +1 -1
  88. package/dist/types/src/components/Thread/ToolInvocations.d.ts.map +1 -1
  89. package/dist/types/src/components/Toolbox/Toolbox.d.ts +1 -1
  90. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  91. package/dist/types/src/components/index.d.ts +0 -1
  92. package/dist/types/src/components/index.d.ts.map +1 -1
  93. package/dist/types/src/hooks/index.d.ts +0 -1
  94. package/dist/types/src/hooks/index.d.ts.map +1 -1
  95. package/dist/types/src/hooks/processor.d.ts.map +1 -1
  96. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
  97. package/dist/types/src/hooks/useContextProvider.d.ts +1 -1
  98. package/dist/types/src/hooks/useContextProvider.d.ts.map +1 -1
  99. package/dist/types/src/hooks/useMessageQueue.d.ts.map +1 -1
  100. package/dist/types/src/hooks/useServices.d.ts.map +1 -1
  101. package/dist/types/src/hooks/useTextInputEvents.d.ts.map +1 -1
  102. package/dist/types/src/testing/test-functions.d.ts.map +1 -1
  103. package/dist/types/src/tools/function.d.ts +2 -2
  104. package/dist/types/src/tools/function.d.ts.map +1 -1
  105. package/dist/types/src/tools/openapi.d.ts.map +1 -1
  106. package/dist/types/src/translations.d.ts +6 -60
  107. package/dist/types/src/translations.d.ts.map +1 -1
  108. package/dist/types/src/types/service.d.ts +96 -95
  109. package/dist/types/src/types/service.d.ts.map +1 -1
  110. package/dist/types/src/types/template.d.ts +52 -52
  111. package/dist/types/src/types/template.d.ts.map +1 -1
  112. package/dist/types/src/types/types.d.ts +20 -18
  113. package/dist/types/src/types/types.d.ts.map +1 -1
  114. package/dist/types/tsconfig.tsbuildinfo +1 -1
  115. package/package.json +64 -58
  116. package/src/AssistantPlugin.tsx +2 -2
  117. package/src/capabilities/ai-client.ts +4 -5
  118. package/src/capabilities/app-graph-builder.ts +167 -131
  119. package/src/capabilities/index.ts +1 -1
  120. package/src/capabilities/intent-resolver.ts +2 -5
  121. package/src/capabilities/react-surface.tsx +6 -19
  122. package/src/components/AmbientDialog/AmbientDialog.stories.tsx +1 -1
  123. package/src/components/AssistantSettings/AssistantSettings.tsx +28 -6
  124. package/src/components/Prompt/Prompt.stories.tsx +1 -1
  125. package/src/components/Prompt/PromptBar.tsx +4 -12
  126. package/src/components/PromptSettings.tsx +2 -2
  127. package/src/components/TemplateEditor/TemplateForm.tsx +2 -2
  128. package/src/components/Thread/Thread.stories.tsx +12 -15
  129. package/src/components/Thread/ThreadContainer.stories.tsx +9 -9
  130. package/src/components/Thread/ThreadMessage.tsx +6 -3
  131. package/src/components/Toolbox/Toolbox.stories.tsx +2 -2
  132. package/src/components/Toolbox/Toolbox.tsx +3 -3
  133. package/src/components/index.ts +0 -1
  134. package/src/hooks/index.ts +0 -1
  135. package/src/hooks/processor.ts +25 -2
  136. package/src/hooks/useChatProcessor.tsx +7 -6
  137. package/src/hooks/useContextProvider.ts +20 -16
  138. package/src/hooks/useMessageQueue.ts +2 -2
  139. package/src/tools/function.ts +4 -6
  140. package/src/tools/openapi.ts +4 -3
  141. package/src/translations.ts +1 -1
  142. package/src/types/service.ts +39 -37
  143. package/src/types/template.ts +27 -25
  144. package/src/types/types.ts +20 -17
  145. package/dist/lib/browser/ai-client-CDZLSNXE.mjs.map +0 -7
  146. package/dist/lib/browser/app-graph-builder-GU6ZWSP4.mjs.map +0 -7
  147. package/dist/lib/browser/chunk-FQ4L5NYW.mjs.map +0 -7
  148. package/dist/lib/browser/chunk-IAMR2FAE.mjs +0 -183
  149. package/dist/lib/browser/chunk-IAMR2FAE.mjs.map +0 -7
  150. package/dist/lib/browser/chunk-SBFJKCVU.mjs.map +0 -7
  151. package/dist/lib/browser/intent-resolver-YAQELTFQ.mjs.map +0 -7
  152. package/dist/lib/browser/react-surface-JOATHBJ4.mjs.map +0 -7
  153. package/dist/lib/node/ai-client-URCCYU6B.cjs.map +0 -7
  154. package/dist/lib/node/app-graph-builder-CEMLCKAF.cjs.map +0 -7
  155. package/dist/lib/node/chunk-APRU3QWK.cjs +0 -206
  156. package/dist/lib/node/chunk-APRU3QWK.cjs.map +0 -7
  157. package/dist/lib/node/chunk-ENBPNIJZ.cjs.map +0 -7
  158. package/dist/lib/node/chunk-KWBQ5P7D.cjs.map +0 -7
  159. package/dist/lib/node/intent-resolver-RNMYSJ3E.cjs.map +0 -7
  160. package/dist/lib/node/react-surface-7RIXMLMN.cjs.map +0 -7
  161. package/dist/lib/node-esm/ai-client-WMHS5EGV.mjs.map +0 -7
  162. package/dist/lib/node-esm/app-graph-builder-Y45WYAWL.mjs.map +0 -7
  163. package/dist/lib/node-esm/chunk-JE47GNTB.mjs.map +0 -7
  164. package/dist/lib/node-esm/chunk-MXK2EANZ.mjs +0 -184
  165. package/dist/lib/node-esm/chunk-MXK2EANZ.mjs.map +0 -7
  166. package/dist/lib/node-esm/chunk-PFWTW22U.mjs.map +0 -7
  167. package/dist/lib/node-esm/intent-resolver-V2ZFI5C4.mjs.map +0 -7
  168. package/dist/lib/node-esm/react-surface-UUHNOYST.mjs.map +0 -7
  169. package/dist/types/src/components/ServiceRegistry/ServiceRegistry.d.ts +0 -6
  170. package/dist/types/src/components/ServiceRegistry/ServiceRegistry.d.ts.map +0 -1
  171. package/dist/types/src/components/ServiceRegistry/ServiceRegistry.stories.d.ts +0 -8
  172. package/dist/types/src/components/ServiceRegistry/ServiceRegistry.stories.d.ts.map +0 -1
  173. package/dist/types/src/components/ServiceRegistry/index.d.ts +0 -2
  174. package/dist/types/src/components/ServiceRegistry/index.d.ts.map +0 -1
  175. package/dist/types/src/hooks/invocation-handler.d.ts +0 -5
  176. package/dist/types/src/hooks/invocation-handler.d.ts.map +0 -1
  177. package/dist/types/src/hooks/useLocalTriggerManager.d.ts +0 -3
  178. package/dist/types/src/hooks/useLocalTriggerManager.d.ts.map +0 -1
  179. package/src/components/ServiceRegistry/ServiceRegistry.stories.tsx +0 -49
  180. package/src/components/ServiceRegistry/ServiceRegistry.tsx +0 -76
  181. package/src/components/ServiceRegistry/index.ts +0 -5
  182. package/src/hooks/invocation-handler.ts +0 -107
  183. package/src/hooks/useLocalTriggerManager.ts +0 -82
  184. /package/dist/lib/browser/{AssistantDialog-77B4BSXR.mjs.map → AssistantDialog-DTWVEQBB.mjs.map} +0 -0
  185. /package/dist/lib/browser/{ChatContainer-4AMJKO3T.mjs.map → ChatContainer-ZNKENYKZ.mjs.map} +0 -0
  186. /package/dist/lib/browser/{settings-PAJLJEVW.mjs.map → settings-OZX7J65A.mjs.map} +0 -0
  187. /package/dist/lib/node/{AssistantDialog-7V7RRSIL.cjs.map → AssistantDialog-RJJHZI63.cjs.map} +0 -0
  188. /package/dist/lib/node/{ChatContainer-UWYNOALW.cjs.map → ChatContainer-WVAAOEOH.cjs.map} +0 -0
  189. /package/dist/lib/node/{settings-JBEYMZ4S.cjs.map → settings-WLTC7XO5.cjs.map} +0 -0
  190. /package/dist/lib/node-esm/{AssistantDialog-N24M73FW.mjs.map → AssistantDialog-D33WZUGR.mjs.map} +0 -0
  191. /package/dist/lib/node-esm/{ChatContainer-KPWY5UK4.mjs.map → ChatContainer-FAYGNMQW.mjs.map} +0 -0
  192. /package/dist/lib/node-esm/{settings-KAMA6RIY.mjs.map → settings-CLE57WEP.mjs.map} +0 -0
@@ -5,13 +5,13 @@
5
5
  import { defineTool, ToolResult } from '@dxos/artifact';
6
6
  import type { Tool } from '@dxos/artifact';
7
7
  import { toEffectSchema } from '@dxos/echo-schema';
8
- import { getInvocationUrl, getUserFunctionUrlInMetadata } from '@dxos/functions/types';
9
- import type { FunctionType } from '@dxos/functions/types';
8
+ import { getInvocationUrl, getUserFunctionUrlInMetadata } from '@dxos/functions';
9
+ import type { FunctionType } from '@dxos/functions';
10
10
  import { log } from '@dxos/log';
11
11
  import type { SpaceId } from '@dxos/react-client/echo';
12
12
  import { getMeta } from '@dxos/react-client/echo';
13
13
 
14
- export const covertFunctionToTool = (
14
+ export const convertFunctionToTool = (
15
15
  fn: FunctionType,
16
16
  edgeUrl: string,
17
17
  spaceId?: SpaceId | undefined,
@@ -24,9 +24,7 @@ export const covertFunctionToTool = (
24
24
  if (!existingFunctionUrl) {
25
25
  return undefined;
26
26
  }
27
- const url = getInvocationUrl(existingFunctionUrl, edgeUrl, {
28
- spaceId,
29
- });
27
+ const url = getInvocationUrl(existingFunctionUrl, edgeUrl, { spaceId });
30
28
 
31
29
  return defineTool('user-function', {
32
30
  name: fn.name,
@@ -2,11 +2,12 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
+ import { Schema } from 'effect';
5
6
  import jsonpointer from 'jsonpointer';
6
7
  import { type OpenAPIV2, type OpenAPIV3_1 } from 'openapi-types';
7
8
 
8
9
  import { ToolResult, type Tool } from '@dxos/artifact';
9
- import { JsonSchemaType, normalizeSchema, S, toEffectSchema } from '@dxos/echo-schema';
10
+ import { JsonSchemaType, normalizeSchema, toEffectSchema } from '@dxos/echo-schema';
10
11
  import { invariant } from '@dxos/invariant';
11
12
  import { log } from '@dxos/log';
12
13
  import { deepMapValues } from '@dxos/util';
@@ -82,7 +83,7 @@ export const createToolsFromApi = async (url: string, options?: CreateToolsFromA
82
83
  }
83
84
 
84
85
  log('inputSchema', { inputSchema });
85
- S.validateSync(JsonSchemaType)(inputSchema);
86
+ Schema.validateSync(JsonSchemaType)(inputSchema);
86
87
 
87
88
  const description = methodItem.description ?? methodItem.summary;
88
89
  if (!description) {
@@ -200,7 +201,7 @@ const callApiEndpoint = async (endpoint: EndpointDescriptor, input: any) => {
200
201
 
201
202
  // Client-side validation
202
203
  const effectSchema = toEffectSchema(parameter.schema);
203
- S.validateSync(effectSchema)(value);
204
+ Schema.validateSync(effectSchema)(value);
204
205
 
205
206
  if (body) {
206
207
  throw new Error(`Duplicate body parameter: ${parameter.name}`);
@@ -47,7 +47,7 @@ export default [
47
47
 
48
48
  'settings default label': 'Default',
49
49
  'settings custom prompts label': 'Use custom prompts',
50
- 'settings llm provider label': 'Enable Ollama integration',
50
+ 'settings llm provider label': 'LLM provider',
51
51
  'settings edge llm model label': 'Remote language model',
52
52
  'settings ollama llm model label': 'Ollama language model',
53
53
  },
@@ -2,78 +2,80 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
+ import { Schema } from 'effect';
6
+
5
7
  import { ComputeGraph } from '@dxos/conductor';
6
- import { Ref, S, TypedObject, type Ref$ } from '@dxos/echo-schema';
7
- import { FunctionType } from '@dxos/functions/types';
8
-
9
- const ApiAuthorizationKey = S.Struct({
10
- type: S.Literal('api-key'),
11
- key: S.String,
12
- placement: S.Union(
13
- S.Struct({
14
- type: S.Literal('authorization-header'),
8
+ import { Ref, TypedObject, type Ref$ } from '@dxos/echo-schema';
9
+ import { FunctionType } from '@dxos/functions';
10
+
11
+ const ApiAuthorizationKey = Schema.Struct({
12
+ type: Schema.Literal('api-key'),
13
+ key: Schema.String,
14
+ placement: Schema.Union(
15
+ Schema.Struct({
16
+ type: Schema.Literal('authorization-header'),
15
17
  }),
16
- S.Struct({
17
- type: S.Literal('query'),
18
- name: S.String,
18
+ Schema.Struct({
19
+ type: Schema.Literal('query'),
20
+ name: Schema.String,
19
21
  }),
20
22
  ),
21
23
  });
22
24
 
23
- const ApiAuthorizationOauth = S.Struct({
24
- type: S.Literal('oauth'),
25
- clientId: S.String,
26
- clientSecret: S.String,
27
- tokenUrl: S.String,
28
- grantType: S.String,
25
+ const ApiAuthorizationOauth = Schema.Struct({
26
+ type: Schema.Literal('oauth'),
27
+ clientId: Schema.String,
28
+ clientSecret: Schema.String,
29
+ tokenUrl: Schema.String,
30
+ grantType: Schema.String,
29
31
  });
30
32
 
31
- export const ApiAuthorization = S.Union(ApiAuthorizationKey, ApiAuthorizationOauth);
32
- export type ApiAuthorization = S.Schema.Type<typeof ApiAuthorization>;
33
+ export const ApiAuthorization = Schema.Union(ApiAuthorizationKey, ApiAuthorizationOauth);
34
+ export type ApiAuthorization = Schema.Schema.Type<typeof ApiAuthorization>;
33
35
 
34
- const ServiceInterfaceFunction = S.Struct({
35
- kind: S.Literal('function'),
36
+ const ServiceInterfaceFunction = Schema.Struct({
37
+ kind: Schema.Literal('function'),
36
38
  fn: Ref(FunctionType) as Ref$<FunctionType>,
37
39
  });
38
40
 
39
- const ServiceInterfaceWorkflow = S.Struct({
40
- kind: S.Literal('workflow'),
41
+ const ServiceInterfaceWorkflow = Schema.Struct({
42
+ kind: Schema.Literal('workflow'),
41
43
  workflow: Ref(ComputeGraph) as Ref$<ComputeGraph>,
42
44
  });
43
45
 
44
- const ServiceInterfaceApi = S.Struct({
45
- kind: S.Literal('api'),
46
+ const ServiceInterfaceApi = Schema.Struct({
47
+ kind: Schema.Literal('api'),
46
48
 
47
49
  /**
48
50
  * URL to fetch the openapi schema.
49
51
  */
50
- schemaUrl: S.optional(S.String),
52
+ schemaUrl: Schema.optional(Schema.String),
51
53
 
52
54
  /**
53
55
  * Inlined openapi schema.
54
56
  */
55
- schema: S.optional(S.Any),
57
+ schema: Schema.optional(Schema.Any),
56
58
 
57
59
  /**
58
60
  * Authorization configuration if required.
59
61
  */
60
- authorization: S.optional(ApiAuthorization),
62
+ authorization: Schema.optional(ApiAuthorization),
61
63
  });
62
64
 
63
- const ServiceInterface = S.Union(ServiceInterfaceFunction, ServiceInterfaceWorkflow, ServiceInterfaceApi);
64
- export type ServiceInterface = S.Schema.Type<typeof ServiceInterface>;
65
+ const ServiceInterface = Schema.Union(ServiceInterfaceFunction, ServiceInterfaceWorkflow, ServiceInterfaceApi);
66
+ export type ServiceInterface = Schema.Schema.Type<typeof ServiceInterface>;
65
67
 
66
68
  export class ServiceType extends TypedObject({ typename: 'dxos.org/type/ServiceType', version: '0.1.0' })({
67
- serviceId: S.String,
68
- name: S.optional(S.String),
69
- description: S.optional(S.String),
70
- category: S.optional(S.String),
71
- enabled: S.optional(S.Boolean),
69
+ serviceId: Schema.String,
70
+ name: Schema.optional(Schema.String),
71
+ description: Schema.optional(Schema.String),
72
+ category: Schema.optional(Schema.String),
73
+ enabled: Schema.optional(Schema.Boolean),
72
74
 
73
75
  /**
74
76
  * Entries exposed: functions, workflows, and APIs.
75
77
  */
76
- interfaces: S.optional(S.Array(ServiceInterface)),
78
+ interfaces: Schema.optional(Schema.Array(ServiceInterface)),
77
79
  }) {}
78
80
 
79
81
  //
@@ -2,9 +2,11 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { S, TypedObject } from '@dxos/echo-schema';
5
+ import { Schema } from 'effect';
6
6
 
7
- // TODO(burdon): Change to S.Literal (and discriminated union).
7
+ import { TypedObject } from '@dxos/echo-schema';
8
+
9
+ // TODO(burdon): Change to Schema.Literal (and discriminated union).
8
10
  export enum TemplateInputType {
9
11
  VALUE = 0,
10
12
  PASS_THROUGH = 1,
@@ -16,41 +18,41 @@ export enum TemplateInputType {
16
18
  SCHEMA = 7,
17
19
  }
18
20
 
19
- export const TemplateInputSchema = S.mutable(
20
- S.Struct({
21
- name: S.String,
22
- type: S.optional(S.Enums(TemplateInputType)),
23
- value: S.optional(S.String),
21
+ export const TemplateInputSchema = Schema.mutable(
22
+ Schema.Struct({
23
+ name: Schema.String,
24
+ type: Schema.optional(Schema.Enums(TemplateInputType)),
25
+ value: Schema.optional(Schema.String),
24
26
  }),
25
27
  );
26
28
 
27
- export type TemplateInput = S.Schema.Type<typeof TemplateInputSchema>;
29
+ export type TemplateInput = Schema.Schema.Type<typeof TemplateInputSchema>;
28
30
 
29
31
  export const TemplateKinds = ['always', 'schema-matching', 'automatically', 'manual'] as const;
30
32
  export type TemplateKind = (typeof TemplateKinds)[number];
31
33
 
32
- export const TemplateKindSchema = S.Union(
33
- S.Struct({
34
- include: S.Literal('always'),
34
+ export const TemplateKindSchema = Schema.Union(
35
+ Schema.Struct({
36
+ include: Schema.Literal('always'),
35
37
  }),
36
- S.Struct({
37
- include: S.Literal('schema-matching'),
38
- typename: S.String,
38
+ Schema.Struct({
39
+ include: Schema.Literal('schema-matching'),
40
+ typename: Schema.String,
39
41
  }),
40
- S.Struct({
41
- include: S.Literal('automatically'),
42
- description: S.String,
42
+ Schema.Struct({
43
+ include: Schema.Literal('automatically'),
44
+ description: Schema.String,
43
45
  }),
44
- S.Struct({
45
- include: S.Literal('manual'),
46
+ Schema.Struct({
47
+ include: Schema.Literal('manual'),
46
48
  }),
47
49
  );
48
50
 
49
- export type TemplateKindType = S.Schema.Type<typeof TemplateKindSchema>;
51
+ export type TemplateKindType = Schema.Schema.Type<typeof TemplateKindSchema>;
50
52
  export class TemplateType extends TypedObject({ typename: 'dxos.org/type/Template', version: '0.1.0' })({
51
- name: S.optional(S.String),
52
- kind: S.mutable(TemplateKindSchema),
53
- source: S.String,
54
- inputs: S.optional(S.mutable(S.Array(TemplateInputSchema))),
55
- command: S.optional(S.String),
53
+ name: Schema.optional(Schema.String),
54
+ kind: Schema.mutable(TemplateKindSchema),
55
+ source: Schema.String,
56
+ inputs: Schema.optional(Schema.mutable(Schema.Array(TemplateInputSchema))),
57
+ command: Schema.optional(Schema.String),
56
58
  }) {}
@@ -2,7 +2,7 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { S } from '@dxos/echo-schema';
5
+ import { Schema } from 'effect';
6
6
 
7
7
  import { AIChatType } from './chat';
8
8
  import { TemplateType } from './template';
@@ -11,33 +11,36 @@ import { ASSISTANT_PLUGIN } from '../meta';
11
11
  export namespace AssistantAction {
12
12
  const ASSISTANT_ACTION = `${ASSISTANT_PLUGIN}/action`;
13
13
 
14
- export class CreateChat extends S.TaggedClass<CreateChat>()(`${ASSISTANT_ACTION}/create-chat`, {
15
- input: S.Struct({
16
- spaceId: S.optional(S.String),
17
- name: S.optional(S.String),
14
+ export class CreateChat extends Schema.TaggedClass<CreateChat>()(`${ASSISTANT_ACTION}/create-chat`, {
15
+ input: Schema.Struct({
16
+ spaceId: Schema.optional(Schema.String),
17
+ name: Schema.optional(Schema.String),
18
18
  }),
19
- output: S.Struct({
19
+ output: Schema.Struct({
20
20
  object: AIChatType,
21
21
  }),
22
22
  }) {}
23
23
 
24
- export class CreateTemplate extends S.TaggedClass<CreateTemplate>()(`${ASSISTANT_ACTION}/create-template`, {
25
- input: S.Struct({
26
- name: S.optional(S.String),
24
+ export class CreateTemplate extends Schema.TaggedClass<CreateTemplate>()(`${ASSISTANT_ACTION}/create-template`, {
25
+ input: Schema.Struct({
26
+ name: Schema.optional(Schema.String),
27
27
  }),
28
- output: S.Struct({
28
+ output: Schema.Struct({
29
29
  object: TemplateType,
30
30
  }),
31
31
  }) {}
32
32
  }
33
33
 
34
- export const AssistantSettingsSchema = S.mutable(
35
- S.Struct({
36
- llmProvider: S.optional(S.Literal('edge', 'ollama')),
37
- edgeModel: S.optional(S.String),
38
- ollamaModel: S.optional(S.String),
39
- customPrompts: S.optional(S.Boolean),
34
+ export const LLM_PROVIDERS = ['edge', 'ollama', 'lmstudio'] as const;
35
+
36
+ export const AssistantSettingsSchema = Schema.mutable(
37
+ Schema.Struct({
38
+ llmProvider: Schema.optional(Schema.Literal(...LLM_PROVIDERS)),
39
+ edgeModel: Schema.optional(Schema.String),
40
+ ollamaModel: Schema.optional(Schema.String),
41
+ lmstudioModel: Schema.optional(Schema.String),
42
+ customPrompts: Schema.optional(Schema.Boolean),
40
43
  }),
41
44
  );
42
45
 
43
- export type AssistantSettingsProps = S.Schema.Type<typeof AssistantSettingsSchema>;
46
+ export type AssistantSettingsProps = Schema.Schema.Type<typeof AssistantSettingsSchema>;
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/ai-client.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { effect, signal } from '@preact/signals-core';\n\nimport { Capabilities, contributes, type PluginsContext } from '@dxos/app-framework';\nimport { type AIServiceClient, AIServiceEdgeClient, OllamaClient } from '@dxos/assistant';\nimport { ClientCapabilities } from '@dxos/plugin-client';\n\nimport { AssistantCapabilities } from './capabilities';\nimport { ASSISTANT_PLUGIN } from '../meta';\nimport { type AssistantSettingsProps } from '../types';\n\n// TODO(wittjosiah): Factor out.\nconst DEFAULT_AI_SERVICE_URL = 'http://localhost:8788';\n\nexport default (context: PluginsContext) => {\n const client = context.requestCapability(ClientCapabilities.Client);\n const endpoint = client.config.values.runtime?.services?.ai?.server ?? DEFAULT_AI_SERVICE_URL;\n\n const ai = signal<AIServiceClient>(new AIServiceEdgeClient({ endpoint }));\n\n const unsubscribe = effect(() => {\n // TODO(burdon): Could be undefined.\n const settings = context\n .requestCapability(Capabilities.SettingsStore)\n .getStore<AssistantSettingsProps>(ASSISTANT_PLUGIN)?.value;\n\n if (settings?.llmProvider === 'ollama') {\n ai.value = new OllamaClient();\n } else {\n ai.value = new AIServiceEdgeClient({ endpoint });\n }\n });\n\n return contributes(AssistantCapabilities.AiClient, ai, () => unsubscribe());\n};\n"],
5
- "mappings": ";;;;;;;;AAIA,SAASA,QAAQC,cAAc;AAE/B,SAASC,cAAcC,mBAAwC;AAC/D,SAA+BC,qBAAqBC,oBAAoB;AACxE,SAASC,0BAA0B;AAOnC,IAAMC,yBAAyB;AAE/B,IAAA,oBAAe,CAACC,YAAAA;AACd,QAAMC,SAASD,QAAQE,kBAAkBC,mBAAmBC,MAAM;AAClE,QAAMC,WAAWJ,OAAOK,OAAOC,OAAOC,SAASC,UAAUC,IAAIC,UAAUZ;AAEvE,QAAMW,KAAKE,OAAwB,IAAIC,oBAAoB;IAAER;EAAS,CAAA,CAAA;AAEtE,QAAMS,cAAcC,OAAO,MAAA;AAEzB,UAAMC,WAAWhB,QACdE,kBAAkBe,aAAaC,aAAa,EAC5CC,SAAiCC,gBAAAA,GAAmBC;AAEvD,QAAIL,UAAUM,gBAAgB,UAAU;AACtCZ,SAAGW,QAAQ,IAAIE,aAAAA;IACjB,OAAO;AACLb,SAAGW,QAAQ,IAAIR,oBAAoB;QAAER;MAAS,CAAA;IAChD;EACF,CAAA;AAEA,SAAOmB,YAAYC,sBAAsBC,UAAUhB,IAAI,MAAMI,YAAAA,CAAAA;AAC/D;",
6
- "names": ["effect", "signal", "Capabilities", "contributes", "AIServiceEdgeClient", "OllamaClient", "ClientCapabilities", "DEFAULT_AI_SERVICE_URL", "context", "client", "requestCapability", "ClientCapabilities", "Client", "endpoint", "config", "values", "runtime", "services", "ai", "server", "signal", "AIServiceEdgeClient", "unsubscribe", "effect", "settings", "Capabilities", "SettingsStore", "getStore", "ASSISTANT_PLUGIN", "value", "llmProvider", "OllamaClient", "contributes", "AssistantCapabilities", "AiClient"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n Capabilities,\n contributes,\n createIntent,\n LayoutAction,\n type PromiseIntentDispatcher,\n type PluginsContext,\n} from '@dxos/app-framework';\nimport { invariant } from '@dxos/invariant';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { PLANK_COMPANION_TYPE, ATTENDABLE_PATH_SEPARATOR, DECK_COMPANION_TYPE } 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, parseId } 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}/service-registry`,\n filter: (node): node is Node<null> => node.id === 'root',\n connector: ({ node }) => {\n const layout = context.requestCapability(Capabilities.Layout);\n const client = context.requestCapability(ClientCapabilities.Client);\n const { spaceId } = parseId(layout.workspace);\n const space = spaceId ? client.spaces.get(spaceId) : null;\n\n return [\n {\n id: [node.id, 'service-registry'].join(ATTENDABLE_PATH_SEPARATOR),\n type: DECK_COMPANION_TYPE,\n data: space,\n properties: {\n label: ['service registry label', { ns: ASSISTANT_PLUGIN }],\n icon: 'ph--plugs--regular',\n disposition: 'hidden',\n },\n },\n ];\n },\n }),\n\n createExtension({\n id: `${ASSISTANT_PLUGIN}/object-chat-companion`,\n filter: (node): node is Node<AIChatType> =>\n isLiveObject(node.data) && node.data.assistantChatQueue && node.data.type !== AIChatType.typename,\n connector: ({ node }) => [\n {\n id: [node.id, 'assistant-chat'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: 'assistant-chat',\n properties: {\n label: ['assistant chat label', { ns: ASSISTANT_PLUGIN }],\n icon: 'ph--star-four--regular',\n position: 'hoist',\n },\n },\n ],\n }),\n\n createExtension({\n id: `${ASSISTANT_PLUGIN}/root`,\n filter: (node): node is Node<Space> => node.type === SPACE_TYPE,\n connector: ({ node }) => {\n const templates = memoizeQuery(node.data, Filter.schema(TemplateType));\n return templates.length > 0\n ? [\n {\n id: `${ASSISTANT_PLUGIN}/templates`,\n type: `${ASSISTANT_PLUGIN}/templates`,\n data: null,\n properties: {\n label: ['templates label', { ns: ASSISTANT_PLUGIN }],\n icon: 'ph--file-code--regular',\n space: node.data,\n },\n },\n ]\n : [];\n },\n }),\n\n createExtension({\n id: `${ASSISTANT_PLUGIN}/templates`,\n filter: (node): node is Node<null, { space: Space }> => node.id === `${ASSISTANT_PLUGIN}/templates`,\n connector: ({ node }) => {\n const templates = memoizeQuery(node.properties.space, Filter.schema(TemplateType));\n return templates\n .toSorted((a, b) => {\n const nameA = a.name ?? '';\n const nameB = b.name ?? '';\n return nameA.localeCompare(nameB);\n })\n .map((template) => ({\n id: fullyQualifiedId(template),\n type: `${ASSISTANT_PLUGIN}/template`,\n data: template,\n properties: {\n label: template.name ?? ['object placeholder', { ns: ASSISTANT_PLUGIN }],\n icon: 'ph--file-code--regular',\n },\n }));\n },\n }),\n ]);\n\n// TODO(burdon): Factor out.\nconst getOrCreateChat = async (dispatch: PromiseIntentDispatcher, space: Space): Promise<AIChatType | undefined> => {\n const { objects } = await space.db.query(Filter.schema(AIChatType)).run();\n // console.log('objects', JSON.stringify(objects, null, 2));\n if (objects.length > 0) {\n // TODO(burdon): Is this the most recent?\n return objects[objects.length - 1];\n }\n\n const { data } = await dispatch(createIntent(AssistantAction.CreateChat, { spaceId: space.id }));\n invariant(data?.object instanceof AIChatType);\n await dispatch(createIntent(SpaceAction.AddObject, { target: space, object: data.object }));\n return data.object;\n};\n"],
5
- "mappings": "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",
6
- "names": ["Capabilities", "contributes", "createIntent", "LayoutAction", "invariant", "ClientCapabilities", "PLANK_COMPANION_TYPE", "ATTENDABLE_PATH_SEPARATOR", "DECK_COMPANION_TYPE", "createExtension", "ROOT_ID", "memoizeQuery", "SPACE_TYPE", "SpaceAction", "Filter", "fullyQualifiedId", "getSpace", "isLiveObject", "parseId", "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", "connector", "spaceId", "parseId", "workspace", "get", "join", "ATTENDABLE_PATH_SEPARATOR", "type", "DECK_COMPANION_TYPE", "isLiveObject", "assistantChatQueue", "AIChatType", "typename", "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", "invariant", "object", "SpaceAction", "AddObject", "target"]
7
- }