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

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 (109) hide show
  1. package/dist/lib/browser/{AssistantDialog-WX6EKSXI.mjs → AssistantDialog-I47GUXWR.mjs} +3 -3
  2. package/dist/lib/browser/{ChatContainer-HMNWYDQ5.mjs → ChatContainer-GAYN3FEF.mjs} +3 -3
  3. package/dist/lib/browser/{app-graph-builder-J5ISIFTE.mjs → app-graph-builder-ZXKGE3H5.mjs} +2 -2
  4. package/dist/lib/browser/{chunk-4EXBK6UE.mjs → chunk-7CAHKTZQ.mjs} +66 -45
  5. package/dist/lib/browser/chunk-7CAHKTZQ.mjs.map +7 -0
  6. package/dist/lib/browser/{chunk-J3V74ZRF.mjs → chunk-BGMQ2YYP.mjs} +4 -4
  7. package/dist/lib/browser/{chunk-J3V74ZRF.mjs.map → chunk-BGMQ2YYP.mjs.map} +2 -2
  8. package/dist/lib/browser/chunk-E7BN4QKP.mjs +190 -0
  9. package/dist/lib/browser/chunk-E7BN4QKP.mjs.map +7 -0
  10. package/dist/lib/browser/index.mjs +3 -3
  11. package/dist/lib/browser/{intent-resolver-MGHOSZY3.mjs → intent-resolver-W6XREK5F.mjs} +2 -2
  12. package/dist/lib/browser/meta.json +1 -1
  13. package/dist/lib/browser/{react-surface-VP4ABBMH.mjs → react-surface-QMI5KG4H.mjs} +4 -4
  14. package/dist/lib/browser/{settings-OZX7J65A.mjs → settings-LAJZQI4H.mjs} +2 -2
  15. package/dist/lib/browser/types/index.mjs +1 -1
  16. package/dist/lib/node/{AssistantDialog-2OTAZADX.cjs → AssistantDialog-SDS2TE5L.cjs} +7 -7
  17. package/dist/lib/node/{ChatContainer-3CTBKBS2.cjs → ChatContainer-U6AVMAHY.cjs} +7 -7
  18. package/dist/lib/node/{app-graph-builder-BBNLIGYJ.cjs → app-graph-builder-TXHPXIIC.cjs} +11 -11
  19. package/dist/lib/node/{chunk-VG2UQY4S.cjs → chunk-5UELRDHQ.cjs} +72 -74
  20. package/dist/lib/node/chunk-5UELRDHQ.cjs.map +7 -0
  21. package/dist/lib/node/{chunk-XC7A3KUG.cjs → chunk-CWHFK36A.cjs} +70 -55
  22. package/dist/lib/node/chunk-CWHFK36A.cjs.map +7 -0
  23. package/dist/lib/node/{chunk-WFSXNO4H.cjs → chunk-XBJO453B.cjs} +9 -9
  24. package/dist/lib/node/{chunk-WFSXNO4H.cjs.map → chunk-XBJO453B.cjs.map} +2 -2
  25. package/dist/lib/node/index.cjs +39 -39
  26. package/dist/lib/node/{intent-resolver-Z2NTL2FV.cjs → intent-resolver-MUJMV7II.cjs} +9 -9
  27. package/dist/lib/node/meta.json +1 -1
  28. package/dist/lib/node/{react-surface-HNXDAZ7C.cjs → react-surface-SAJF4XBB.cjs} +16 -16
  29. package/dist/lib/node/{settings-WLTC7XO5.cjs → settings-NPXTE6ND.cjs} +6 -6
  30. package/dist/lib/node/types/index.cjs +13 -13
  31. package/dist/lib/node/types/index.cjs.map +1 -1
  32. package/dist/lib/node-esm/{AssistantDialog-GNLPYXY4.mjs → AssistantDialog-KGA5HBFO.mjs} +3 -3
  33. package/dist/lib/node-esm/{ChatContainer-FGHDDORQ.mjs → ChatContainer-XPNXNPSW.mjs} +3 -3
  34. package/dist/lib/node-esm/{app-graph-builder-245AWCPJ.mjs → app-graph-builder-SV4WC2E2.mjs} +2 -2
  35. package/dist/lib/node-esm/chunk-ECYNZYEG.mjs +191 -0
  36. package/dist/lib/node-esm/chunk-ECYNZYEG.mjs.map +7 -0
  37. package/dist/lib/node-esm/{chunk-G5LUEW72.mjs → chunk-R7Q3OHWG.mjs} +4 -4
  38. package/dist/lib/node-esm/{chunk-G5LUEW72.mjs.map → chunk-R7Q3OHWG.mjs.map} +2 -2
  39. package/dist/lib/node-esm/{chunk-JX73NOSL.mjs → chunk-XFUXN5QU.mjs} +66 -45
  40. package/dist/lib/node-esm/chunk-XFUXN5QU.mjs.map +7 -0
  41. package/dist/lib/node-esm/index.mjs +3 -3
  42. package/dist/lib/node-esm/{intent-resolver-DMQXPV2H.mjs → intent-resolver-DZY2O2DG.mjs} +2 -2
  43. package/dist/lib/node-esm/meta.json +1 -1
  44. package/dist/lib/node-esm/{react-surface-NYXMBFPY.mjs → react-surface-R43NHNMC.mjs} +4 -4
  45. package/dist/lib/node-esm/{settings-CLE57WEP.mjs → settings-K3JDH2I5.mjs} +2 -2
  46. package/dist/lib/node-esm/types/index.mjs +1 -1
  47. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  48. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  49. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +2 -2
  50. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
  51. package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts +2 -2
  52. package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts.map +1 -1
  53. package/dist/types/src/components/Toolbox/Toolbox.d.ts +1 -1
  54. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  55. package/dist/types/src/hooks/index.d.ts +1 -0
  56. package/dist/types/src/hooks/index.d.ts.map +1 -1
  57. package/dist/types/src/hooks/invocation-handler.d.ts +5 -0
  58. package/dist/types/src/hooks/invocation-handler.d.ts.map +1 -0
  59. package/dist/types/src/hooks/useLocalTriggerManager.d.ts +3 -0
  60. package/dist/types/src/hooks/useLocalTriggerManager.d.ts.map +1 -0
  61. package/dist/types/src/tools/function.d.ts +1 -1
  62. package/dist/types/src/tools/function.d.ts.map +1 -1
  63. package/dist/types/src/tools/openapi.d.ts.map +1 -1
  64. package/dist/types/src/types/service.d.ts +95 -96
  65. package/dist/types/src/types/service.d.ts.map +1 -1
  66. package/dist/types/src/types/template.d.ts +52 -52
  67. package/dist/types/src/types/template.d.ts.map +1 -1
  68. package/dist/types/src/types/types.d.ts +19 -19
  69. package/dist/types/src/types/types.d.ts.map +1 -1
  70. package/package.json +57 -60
  71. package/src/components/PromptSettings.tsx +2 -2
  72. package/src/components/TemplateEditor/TemplateForm.tsx +2 -2
  73. package/src/components/Thread/ThreadContainer.stories.tsx +2 -3
  74. package/src/components/Toolbox/Toolbox.tsx +1 -1
  75. package/src/hooks/index.ts +1 -0
  76. package/src/hooks/invocation-handler.ts +107 -0
  77. package/src/hooks/useChatProcessor.tsx +1 -1
  78. package/src/hooks/useLocalTriggerManager.ts +82 -0
  79. package/src/tools/function.ts +2 -2
  80. package/src/tools/openapi.ts +3 -4
  81. package/src/types/service.ts +37 -39
  82. package/src/types/template.ts +25 -27
  83. package/src/types/types.ts +18 -18
  84. package/dist/lib/browser/chunk-4EXBK6UE.mjs.map +0 -7
  85. package/dist/lib/browser/chunk-5P7U35RJ.mjs +0 -192
  86. package/dist/lib/browser/chunk-5P7U35RJ.mjs.map +0 -7
  87. package/dist/lib/node/chunk-VG2UQY4S.cjs.map +0 -7
  88. package/dist/lib/node/chunk-XC7A3KUG.cjs.map +0 -7
  89. package/dist/lib/node-esm/chunk-JX73NOSL.mjs.map +0 -7
  90. package/dist/lib/node-esm/chunk-UZWYXNR5.mjs +0 -193
  91. package/dist/lib/node-esm/chunk-UZWYXNR5.mjs.map +0 -7
  92. /package/dist/lib/browser/{AssistantDialog-WX6EKSXI.mjs.map → AssistantDialog-I47GUXWR.mjs.map} +0 -0
  93. /package/dist/lib/browser/{ChatContainer-HMNWYDQ5.mjs.map → ChatContainer-GAYN3FEF.mjs.map} +0 -0
  94. /package/dist/lib/browser/{app-graph-builder-J5ISIFTE.mjs.map → app-graph-builder-ZXKGE3H5.mjs.map} +0 -0
  95. /package/dist/lib/browser/{intent-resolver-MGHOSZY3.mjs.map → intent-resolver-W6XREK5F.mjs.map} +0 -0
  96. /package/dist/lib/browser/{react-surface-VP4ABBMH.mjs.map → react-surface-QMI5KG4H.mjs.map} +0 -0
  97. /package/dist/lib/browser/{settings-OZX7J65A.mjs.map → settings-LAJZQI4H.mjs.map} +0 -0
  98. /package/dist/lib/node/{AssistantDialog-2OTAZADX.cjs.map → AssistantDialog-SDS2TE5L.cjs.map} +0 -0
  99. /package/dist/lib/node/{ChatContainer-3CTBKBS2.cjs.map → ChatContainer-U6AVMAHY.cjs.map} +0 -0
  100. /package/dist/lib/node/{app-graph-builder-BBNLIGYJ.cjs.map → app-graph-builder-TXHPXIIC.cjs.map} +0 -0
  101. /package/dist/lib/node/{intent-resolver-Z2NTL2FV.cjs.map → intent-resolver-MUJMV7II.cjs.map} +0 -0
  102. /package/dist/lib/node/{react-surface-HNXDAZ7C.cjs.map → react-surface-SAJF4XBB.cjs.map} +0 -0
  103. /package/dist/lib/node/{settings-WLTC7XO5.cjs.map → settings-NPXTE6ND.cjs.map} +0 -0
  104. /package/dist/lib/node-esm/{AssistantDialog-GNLPYXY4.mjs.map → AssistantDialog-KGA5HBFO.mjs.map} +0 -0
  105. /package/dist/lib/node-esm/{ChatContainer-FGHDDORQ.mjs.map → ChatContainer-XPNXNPSW.mjs.map} +0 -0
  106. /package/dist/lib/node-esm/{app-graph-builder-245AWCPJ.mjs.map → app-graph-builder-SV4WC2E2.mjs.map} +0 -0
  107. /package/dist/lib/node-esm/{intent-resolver-DMQXPV2H.mjs.map → intent-resolver-DZY2O2DG.mjs.map} +0 -0
  108. /package/dist/lib/node-esm/{react-surface-NYXMBFPY.mjs.map → react-surface-R43NHNMC.mjs.map} +0 -0
  109. /package/dist/lib/node-esm/{settings-CLE57WEP.mjs.map → settings-K3JDH2I5.mjs.map} +0 -0
@@ -1,9 +1,9 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  ThreadContainer
4
- } from "./chunk-JX73NOSL.mjs";
4
+ } from "./chunk-XFUXN5QU.mjs";
5
5
  import "./chunk-6JK5HEUQ.mjs";
6
- import "./chunk-UZWYXNR5.mjs";
6
+ import "./chunk-ECYNZYEG.mjs";
7
7
  import {
8
8
  ASSISTANT_PLUGIN
9
9
  } from "./chunk-ECRK6TUQ.mjs";
@@ -115,4 +115,4 @@ export {
115
115
  AssistantDialog,
116
116
  AssistantDialog_default as default
117
117
  };
118
- //# sourceMappingURL=AssistantDialog-GNLPYXY4.mjs.map
118
+ //# sourceMappingURL=AssistantDialog-KGA5HBFO.mjs.map
@@ -1,9 +1,9 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  ThreadContainer
4
- } from "./chunk-JX73NOSL.mjs";
4
+ } from "./chunk-XFUXN5QU.mjs";
5
5
  import "./chunk-6JK5HEUQ.mjs";
6
- import "./chunk-UZWYXNR5.mjs";
6
+ import "./chunk-ECYNZYEG.mjs";
7
7
  import {
8
8
  ASSISTANT_PLUGIN
9
9
  } from "./chunk-ECRK6TUQ.mjs";
@@ -31,4 +31,4 @@ export {
31
31
  ChatContainer,
32
32
  ChatContainer_default as default
33
33
  };
34
- //# sourceMappingURL=ChatContainer-FGHDDORQ.mjs.map
34
+ //# sourceMappingURL=ChatContainer-XPNXNPSW.mjs.map
@@ -3,7 +3,7 @@ import {
3
3
  AIChatType,
4
4
  AssistantAction,
5
5
  TemplateType
6
- } from "./chunk-UZWYXNR5.mjs";
6
+ } from "./chunk-ECYNZYEG.mjs";
7
7
  import {
8
8
  ASSISTANT_DIALOG,
9
9
  ASSISTANT_PLUGIN
@@ -177,4 +177,4 @@ var getOrCreateChat = async (dispatch, space) => {
177
177
  export {
178
178
  app_graph_builder_default as default
179
179
  };
180
- //# sourceMappingURL=app-graph-builder-245AWCPJ.mjs.map
180
+ //# sourceMappingURL=app-graph-builder-SV4WC2E2.mjs.map
@@ -0,0 +1,191 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ ASSISTANT_PLUGIN
4
+ } from "./chunk-ECRK6TUQ.mjs";
5
+
6
+ // packages/plugins/plugin-assistant/src/types/chat.ts
7
+ import { Expando, Ref, TypedObject } from "@dxos/echo-schema";
8
+ var AIChatType = class extends TypedObject({
9
+ typename: "dxos.org/type/AIChat",
10
+ version: "0.1.0"
11
+ })({
12
+ // TODO(wittjosiah): Should be a ref to a Queue.
13
+ assistantChatQueue: Ref(Expando)
14
+ }) {
15
+ };
16
+
17
+ // packages/plugins/plugin-assistant/src/types/service.ts
18
+ import { ComputeGraph } from "@dxos/conductor";
19
+ import { Ref as Ref2, S, TypedObject as TypedObject2 } from "@dxos/echo-schema";
20
+ import { FunctionType } from "@dxos/functions/types";
21
+ var ApiAuthorizationKey = S.Struct({
22
+ type: S.Literal("api-key"),
23
+ key: S.String,
24
+ placement: S.Union(S.Struct({
25
+ type: S.Literal("authorization-header")
26
+ }), S.Struct({
27
+ type: S.Literal("query"),
28
+ name: S.String
29
+ }))
30
+ });
31
+ var ApiAuthorizationOauth = S.Struct({
32
+ type: S.Literal("oauth"),
33
+ clientId: S.String,
34
+ clientSecret: S.String,
35
+ tokenUrl: S.String,
36
+ grantType: S.String
37
+ });
38
+ var ApiAuthorization = S.Union(ApiAuthorizationKey, ApiAuthorizationOauth);
39
+ var ServiceInterfaceFunction = S.Struct({
40
+ kind: S.Literal("function"),
41
+ fn: Ref2(FunctionType)
42
+ });
43
+ var ServiceInterfaceWorkflow = S.Struct({
44
+ kind: S.Literal("workflow"),
45
+ workflow: Ref2(ComputeGraph)
46
+ });
47
+ var ServiceInterfaceApi = S.Struct({
48
+ kind: S.Literal("api"),
49
+ /**
50
+ * URL to fetch the openapi schema.
51
+ */
52
+ schemaUrl: S.optional(S.String),
53
+ /**
54
+ * Inlined openapi schema.
55
+ */
56
+ schema: S.optional(S.Any),
57
+ /**
58
+ * Authorization configuration if required.
59
+ */
60
+ authorization: S.optional(ApiAuthorization)
61
+ });
62
+ var ServiceInterface = S.Union(ServiceInterfaceFunction, ServiceInterfaceWorkflow, ServiceInterfaceApi);
63
+ var ServiceType = class extends TypedObject2({
64
+ typename: "dxos.org/type/ServiceType",
65
+ version: "0.1.0"
66
+ })({
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),
72
+ /**
73
+ * Entries exposed: functions, workflows, and APIs.
74
+ */
75
+ interfaces: S.optional(S.Array(ServiceInterface))
76
+ }) {
77
+ };
78
+ var categoryIcons = {
79
+ finance: "ph--bank--regular",
80
+ health: "ph--heart--regular",
81
+ geolocation: "ph--globe-simple--regular",
82
+ education: "ph--books--regular",
83
+ entertainment: "ph--music-notes--regular",
84
+ shopping: "ph--shopping-cart--regular",
85
+ travel: "ph--airplane-takeoff--regular",
86
+ utilities: "ph--lightning--regular",
87
+ weather: "ph--cloud-rain--regular"
88
+ };
89
+
90
+ // packages/plugins/plugin-assistant/src/types/template.ts
91
+ import { S as S2, TypedObject as TypedObject3 } from "@dxos/echo-schema";
92
+ var TemplateInputType;
93
+ (function(TemplateInputType2) {
94
+ TemplateInputType2[TemplateInputType2["VALUE"] = 0] = "VALUE";
95
+ TemplateInputType2[TemplateInputType2["PASS_THROUGH"] = 1] = "PASS_THROUGH";
96
+ TemplateInputType2[TemplateInputType2["RETRIEVER"] = 2] = "RETRIEVER";
97
+ TemplateInputType2[TemplateInputType2["FUNCTION"] = 3] = "FUNCTION";
98
+ TemplateInputType2[TemplateInputType2["QUERY"] = 4] = "QUERY";
99
+ TemplateInputType2[TemplateInputType2["RESOLVER"] = 5] = "RESOLVER";
100
+ TemplateInputType2[TemplateInputType2["CONTEXT"] = 6] = "CONTEXT";
101
+ TemplateInputType2[TemplateInputType2["SCHEMA"] = 7] = "SCHEMA";
102
+ })(TemplateInputType || (TemplateInputType = {}));
103
+ var TemplateInputSchema = S2.mutable(S2.Struct({
104
+ name: S2.String,
105
+ type: S2.optional(S2.Enums(TemplateInputType)),
106
+ value: S2.optional(S2.String)
107
+ }));
108
+ var TemplateKinds = [
109
+ "always",
110
+ "schema-matching",
111
+ "automatically",
112
+ "manual"
113
+ ];
114
+ var TemplateKindSchema = S2.Union(S2.Struct({
115
+ include: S2.Literal("always")
116
+ }), S2.Struct({
117
+ include: S2.Literal("schema-matching"),
118
+ typename: S2.String
119
+ }), S2.Struct({
120
+ include: S2.Literal("automatically"),
121
+ description: S2.String
122
+ }), S2.Struct({
123
+ include: S2.Literal("manual")
124
+ }));
125
+ var TemplateType = class extends TypedObject3({
126
+ typename: "dxos.org/type/Template",
127
+ version: "0.1.0"
128
+ })({
129
+ name: S2.optional(S2.String),
130
+ kind: S2.mutable(TemplateKindSchema),
131
+ source: S2.String,
132
+ inputs: S2.optional(S2.mutable(S2.Array(TemplateInputSchema))),
133
+ command: S2.optional(S2.String)
134
+ }) {
135
+ };
136
+
137
+ // packages/plugins/plugin-assistant/src/types/types.ts
138
+ import { S as S3 } from "@dxos/echo-schema";
139
+ var AssistantAction;
140
+ (function(AssistantAction2) {
141
+ const ASSISTANT_ACTION = `${ASSISTANT_PLUGIN}/action`;
142
+ class CreateChat extends S3.TaggedClass()(`${ASSISTANT_ACTION}/create-chat`, {
143
+ input: S3.Struct({
144
+ spaceId: S3.optional(S3.String),
145
+ name: S3.optional(S3.String)
146
+ }),
147
+ output: S3.Struct({
148
+ object: AIChatType
149
+ })
150
+ }) {
151
+ }
152
+ AssistantAction2.CreateChat = CreateChat;
153
+ class CreateTemplate extends S3.TaggedClass()(`${ASSISTANT_ACTION}/create-template`, {
154
+ input: S3.Struct({
155
+ name: S3.optional(S3.String)
156
+ }),
157
+ output: S3.Struct({
158
+ object: TemplateType
159
+ })
160
+ }) {
161
+ }
162
+ AssistantAction2.CreateTemplate = CreateTemplate;
163
+ })(AssistantAction || (AssistantAction = {}));
164
+ var LLM_PROVIDERS = [
165
+ "edge",
166
+ "ollama",
167
+ "lmstudio"
168
+ ];
169
+ var AssistantSettingsSchema = S3.mutable(S3.Struct({
170
+ llmProvider: S3.optional(S3.Literal(...LLM_PROVIDERS)),
171
+ edgeModel: S3.optional(S3.String),
172
+ ollamaModel: S3.optional(S3.String),
173
+ lmstudioModel: S3.optional(S3.String),
174
+ customPrompts: S3.optional(S3.Boolean)
175
+ }));
176
+
177
+ export {
178
+ AIChatType,
179
+ ApiAuthorization,
180
+ ServiceType,
181
+ categoryIcons,
182
+ TemplateInputType,
183
+ TemplateInputSchema,
184
+ TemplateKinds,
185
+ TemplateKindSchema,
186
+ TemplateType,
187
+ AssistantAction,
188
+ LLM_PROVIDERS,
189
+ AssistantSettingsSchema
190
+ };
191
+ //# sourceMappingURL=chunk-ECYNZYEG.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 { Expando, Ref, TypedObject } from '@dxos/echo-schema';\n\nexport class AIChatType extends TypedObject({ typename: 'dxos.org/type/AIChat', version: '0.1.0' })({\n // TODO(wittjosiah): Should be a ref to a Queue.\n assistantChatQueue: Ref(Expando),\n}) {}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { ComputeGraph } from '@dxos/conductor';\nimport { Ref, S, TypedObject, type Ref$ } from '@dxos/echo-schema';\nimport { FunctionType } from '@dxos/functions/types';\n\nconst ApiAuthorizationKey = S.Struct({\n type: S.Literal('api-key'),\n key: S.String,\n placement: S.Union(\n S.Struct({\n type: S.Literal('authorization-header'),\n }),\n S.Struct({\n type: S.Literal('query'),\n name: S.String,\n }),\n ),\n});\n\nconst ApiAuthorizationOauth = S.Struct({\n type: S.Literal('oauth'),\n clientId: S.String,\n clientSecret: S.String,\n tokenUrl: S.String,\n grantType: S.String,\n});\n\nexport const ApiAuthorization = S.Union(ApiAuthorizationKey, ApiAuthorizationOauth);\nexport type ApiAuthorization = S.Schema.Type<typeof ApiAuthorization>;\n\nconst ServiceInterfaceFunction = S.Struct({\n kind: S.Literal('function'),\n fn: Ref(FunctionType) as Ref$<FunctionType>,\n});\n\nconst ServiceInterfaceWorkflow = S.Struct({\n kind: S.Literal('workflow'),\n workflow: Ref(ComputeGraph) as Ref$<ComputeGraph>,\n});\n\nconst ServiceInterfaceApi = S.Struct({\n kind: S.Literal('api'),\n\n /**\n * URL to fetch the openapi schema.\n */\n schemaUrl: S.optional(S.String),\n\n /**\n * Inlined openapi schema.\n */\n schema: S.optional(S.Any),\n\n /**\n * Authorization configuration if required.\n */\n authorization: S.optional(ApiAuthorization),\n});\n\nconst ServiceInterface = S.Union(ServiceInterfaceFunction, ServiceInterfaceWorkflow, ServiceInterfaceApi);\nexport type ServiceInterface = S.Schema.Type<typeof ServiceInterface>;\n\nexport class ServiceType extends TypedObject({ typename: 'dxos.org/type/ServiceType', version: '0.1.0' })({\n serviceId: S.String,\n name: S.optional(S.String),\n description: S.optional(S.String),\n category: S.optional(S.String),\n enabled: S.optional(S.Boolean),\n\n /**\n * Entries exposed: functions, workflows, and APIs.\n */\n interfaces: S.optional(S.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 { S, TypedObject } from '@dxos/echo-schema';\n\n// TODO(burdon): Change to S.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 = S.mutable(\n S.Struct({\n name: S.String,\n type: S.optional(S.Enums(TemplateInputType)),\n value: S.optional(S.String),\n }),\n);\n\nexport type TemplateInput = S.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 = S.Union(\n S.Struct({\n include: S.Literal('always'),\n }),\n S.Struct({\n include: S.Literal('schema-matching'),\n typename: S.String,\n }),\n S.Struct({\n include: S.Literal('automatically'),\n description: S.String,\n }),\n S.Struct({\n include: S.Literal('manual'),\n }),\n);\n\nexport type TemplateKindType = S.Schema.Type<typeof TemplateKindSchema>;\nexport class TemplateType extends TypedObject({ typename: 'dxos.org/type/Template', version: '0.1.0' })({\n name: S.optional(S.String),\n kind: S.mutable(TemplateKindSchema),\n source: S.String,\n inputs: S.optional(S.mutable(S.Array(TemplateInputSchema))),\n command: S.optional(S.String),\n}) {}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { S } from '@dxos/echo-schema';\n\nimport { AIChatType } from './chat';\nimport { TemplateType } from './template';\nimport { ASSISTANT_PLUGIN } from '../meta';\n\nexport namespace AssistantAction {\n const ASSISTANT_ACTION = `${ASSISTANT_PLUGIN}/action`;\n\n export class CreateChat extends S.TaggedClass<CreateChat>()(`${ASSISTANT_ACTION}/create-chat`, {\n input: S.Struct({\n spaceId: S.optional(S.String),\n name: S.optional(S.String),\n }),\n output: S.Struct({\n object: AIChatType,\n }),\n }) {}\n\n export class CreateTemplate extends S.TaggedClass<CreateTemplate>()(`${ASSISTANT_ACTION}/create-template`, {\n input: S.Struct({\n name: S.optional(S.String),\n }),\n output: S.Struct({\n object: TemplateType,\n }),\n }) {}\n}\n\nexport const LLM_PROVIDERS = ['edge', 'ollama', 'lmstudio'] as const;\n\nexport const AssistantSettingsSchema = S.mutable(\n S.Struct({\n llmProvider: S.optional(S.Literal(...LLM_PROVIDERS)),\n edgeModel: S.optional(S.String),\n ollamaModel: S.optional(S.String),\n lmstudioModel: S.optional(S.String),\n customPrompts: S.optional(S.Boolean),\n }),\n);\n\nexport type AssistantSettingsProps = S.Schema.Type<typeof AssistantSettingsSchema>;\n"],
5
+ "mappings": "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",
6
+ "names": ["Expando", "Ref", "TypedObject", "AIChatType", "TypedObject", "typename", "version", "assistantChatQueue", "Ref", "Expando", "ComputeGraph", "Ref", "S", "TypedObject", "FunctionType", "ApiAuthorizationKey", "S", "Struct", "type", "Literal", "key", "String", "placement", "Union", "name", "ApiAuthorizationOauth", "clientId", "clientSecret", "tokenUrl", "grantType", "ApiAuthorization", "ServiceInterfaceFunction", "kind", "fn", "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", "S", "TypedObject", "TemplateInputType", "TemplateInputSchema", "S", "mutable", "Struct", "name", "String", "type", "optional", "Enums", "value", "TemplateKinds", "TemplateKindSchema", "Union", "include", "Literal", "typename", "description", "TemplateType", "TypedObject", "version", "kind", "source", "inputs", "Array", "command", "S", "AssistantAction", "ASSISTANT_ACTION", "ASSISTANT_PLUGIN", "CreateChat", "S", "TaggedClass", "input", "Struct", "spaceId", "optional", "String", "name", "output", "object", "AIChatType", "CreateTemplate", "TemplateType", "LLM_PROVIDERS", "AssistantSettingsSchema", "mutable", "llmProvider", "Literal", "edgeModel", "ollamaModel", "lmstudioModel", "customPrompts", "Boolean"]
7
+ }
@@ -2,7 +2,7 @@ import { createRequire } from 'node:module';const require = createRequire(import
2
2
  import {
3
3
  LLM_PROVIDERS,
4
4
  TemplateKinds
5
- } from "./chunk-UZWYXNR5.mjs";
5
+ } from "./chunk-ECYNZYEG.mjs";
6
6
  import {
7
7
  ASSISTANT_PLUGIN
8
8
  } from "./chunk-ECRK6TUQ.mjs";
@@ -130,8 +130,8 @@ var PromptSettings = ({ template }) => {
130
130
 
131
131
  // packages/plugins/plugin-assistant/src/components/index.ts
132
132
  import { lazy } from "react";
133
- var AssistantDialog = lazy(() => import("./AssistantDialog-GNLPYXY4.mjs"));
134
- var ChatContainer = lazy(() => import("./ChatContainer-FGHDDORQ.mjs"));
133
+ var AssistantDialog = lazy(() => import("./AssistantDialog-KGA5HBFO.mjs"));
134
+ var ChatContainer = lazy(() => import("./ChatContainer-XPNXNPSW.mjs"));
135
135
  var TemplateContainer = lazy(() => import("./TemplateContainer-3LEBT5ZC.mjs"));
136
136
 
137
137
  export {
@@ -141,4 +141,4 @@ export {
141
141
  ChatContainer,
142
142
  TemplateContainer
143
143
  };
144
- //# sourceMappingURL=chunk-G5LUEW72.mjs.map
144
+ //# sourceMappingURL=chunk-R7Q3OHWG.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/assistant';\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 './AssistantSettings';\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 ChatContainer = lazy(() => import('./ChatContainer'));\nexport const TemplateContainer = lazy(() => import('./TemplateContainer'));\n"],
5
- "mappings": ";;;;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,qBAAqBC,6BAA6B;AAC3D,SAASC,OAAOC,QAAQC,sBAAsB;AAC9C,SAASC,yBAAyBC,2BAA2B;AAM7D,IAAMC,gBAAgB;AAEtB,IAAMC,sBAAsB;EAC1BC,MAAM;EACNC,QAAQ;EACRC,UAAU;AACZ;AAEO,IAAMC,oBAAoB,CAAC,EAAEC,SAAQ,MAAwC;AAClF,QAAM,EAAEC,EAAC,IAAKC,eAAeC,gBAAAA;AAE7B,SACE,sBAAA,cAACC,yBAAAA,MACC,sBAAA,cAACC,qBAAAA;IAAoBC,OAAOL,EAAE,+BAAA;KAC5B,sBAAA,cAACM,MAAMC,QAAM;IACXC,SAAS,CAAC,CAACT,SAASU;IACpBC,iBAAiB,CAACF,YAAaT,SAASU,gBAAgBD;OAI5D,sBAAA,cAACJ,qBAAAA;IAAoBC,OAAOL,EAAE,6BAAA;KAC5B,sBAAA,cAACW,OAAOC,MAAI;IACVC,OAAOd,SAASe,eAAe;IAC/BC,eAAe,CAACF,UAAAA;AACdd,eAASe,cAAcD,UAAUpB,gBAAgBuB,SAAaH;IAChE;KAEA,sBAAA,cAACF,OAAOM,eAAa;IAACC,aAAalB,EAAE,6BAAA;MACrC,sBAAA,cAACW,OAAOQ,QAAM,MACZ,sBAAA,cAACR,OAAOS,SAAO,MACb,sBAAA,cAACT,OAAOU,UAAQ,MACd,sBAAA,cAACV,OAAOW,QAAM;IAACT,OAAOpB;KAAgBO,EAAE,wBAAA,CAAA,GACvCuB,cAAcC,IAAI,CAACC,UAClB,sBAAA,cAACd,OAAOW,QAAM;IAACI,KAAKD;IAAOZ,OAAOY;KAC/B/B,oBAAoB+B,KAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GASzC,sBAAA,cAACrB,qBAAAA;IAAoBC,OAAOL,EAAE,+BAAA;KAC5B,sBAAA,cAACW,OAAOC,MAAI;IACVC,OAAOd,SAAS4B,aAAalC;IAC7BsB,eAAe,CAACF,UAAAA;AACdd,eAAS4B,YAAYd,UAAUpB,gBAAgBuB,SAAYH;IAC7D;KAEA,sBAAA,cAACF,OAAOM,eAAa;IAACC,aAAalB,EAAE,kCAAA;MACrC,sBAAA,cAACW,OAAOQ,QAAM,MACZ,sBAAA,cAACR,OAAOS,SAAO,MACb,sBAAA,cAACT,OAAOU,UAAQ,MACd,sBAAA,cAACV,OAAOW,QAAM;IAACT,OAAOpB;KAAgBO,EAAE,wBAAA,CAAA,GACvC4B,oBAAoBJ,IAAI,CAACC,UACxB,sBAAA,cAACd,OAAOW,QAAM;IAACI,KAAKD;IAAOZ,OAAOY;KAC/BA,KAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GASf,sBAAA,cAACrB,qBAAAA;IAAoBC,OAAOL,EAAE,iCAAA;KAC5B,sBAAA,cAACW,OAAOC,MAAI;IACVC,OAAOd,SAAS8B,eAAepC;IAC/BsB,eAAe,CAACF,UAAAA;AACdd,eAAS8B,cAAchB,UAAUpB,gBAAgBuB,SAAYH;IAC/D;KAEA,sBAAA,cAACF,OAAOM,eAAa;IAACC,aAAalB,EAAE,kCAAA;MACrC,sBAAA,cAACW,OAAOQ,QAAM,MACZ,sBAAA,cAACR,OAAOS,SAAO,MACb,sBAAA,cAACT,OAAOU,UAAQ,MACd,sBAAA,cAACV,OAAOW,QAAM;IAACT,OAAOpB;KAAgBO,EAAE,wBAAA,CAAA,GACvC8B,sBAAsBN,IAAI,CAACC,UAC1B,sBAAA,cAACd,OAAOW,QAAM;IAACI,KAAKD;IAAOZ,OAAOY;KAC/BA,KAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAUrB;;;ACpGA,SAASM,aAA0B;AACnC,OAAOC,UAA2BC,mBAAmB;AAErD,SAASC,gBAAgB;AACzB,SAASC,SAAAA,QAAOC,UAAAA,SAAQC,SAASC,kBAAAA,uBAAsB;AAKhD,IAAMC,iBAAiB,CAAC,EAAEC,SAAQ,MAA8B;AACrE,QAAM,EAAEC,EAAC,IAAKC,gBAAeC,gBAAAA;AAE7B,QAAMC,mBAAmBC,YACvB,CAACC,UAAAA;AACC,UAAMC,OAAOC,MAAMC,KAAI,EAAWC,KAChCF,MAAMG,eAAc,GACpBH,MAAMI,KAAK,UAAU,OAAO;MAAEC,SAAS;IAAS,EAAA,GAChDL,MAAMI,KAAK,mBAAmB,OAAO;MAAEC,SAAS;MAAmBC,UAAU;IAAG,EAAA,GAChFN,MAAMI,KAAK,iBAAiB,OAAO;MAAEC,SAAS;MAAiBE,aAAa;IAAG,EAAA,GAC/EP,MAAMQ,OAAO,OAAO;MAAEH,SAAS;IAAS,EAAA,CAAA,EACxCP,KAAAA;AAEFN,aAASO,OAAOA;EAClB,GACA;IAACP;GAAS;AAGZ,QAAMiB,uBAAuBZ,YAC3Ba,SAAS,CAACC,UAAAA;AACR,QAAInB,SAASO,KAAKM,YAAY,mBAAmB;AAC/Cb,eAASO,KAAKO,WAAWK,MAAMC,OAAOd;IACxC;EACF,GAAG,GAAA,GACH;IAACN,SAASO,KAAKM;GAAQ;AAGzB,QAAMQ,0BAA0BhB,YAC9Ba,SAAS,CAACC,UAAAA;AACR,QAAInB,SAASO,KAAKM,YAAY,iBAAiB;AAC7Cb,eAASO,KAAKQ,cAAcI,MAAMC,OAAOd;IAC3C;EACF,GAAG,GAAA,GACH;IAACN,SAASO,KAAKM;GAAQ;AAGzB,SACE,gBAAAS,OAAA,cAACC,OAAAA;IAAIC,WAAU;KACb,gBAAAF,OAAA,cAACG,MAAAA,MAAIxB,EAAE,oBAAA,CAAA,GACP,gBAAAqB,OAAA,cAACI,QAAQC,MAAI,MACX,gBAAAL,OAAA,cAACM,QAAOD,MAAI;IAACrB,OAAON,SAASO,KAAKM;IAASgB,eAAezB;KACxD,gBAAAkB,OAAA,cAACI,QAAQI,QAAM;IAACC,SAAAA;KACd,gBAAAT,OAAA,cAACM,QAAOI,eAAa,IAAA,CAAA,GAEvB,gBAAAV,OAAA,cAACM,QAAOK,QAAM,MACZ,gBAAAX,OAAA,cAACM,QAAOM,SAAO,MACb,gBAAAZ,OAAA,cAACM,QAAOO,UAAQ,MACbC,cAAcC,IAAI,CAAC9B,SAClB,gBAAAe,OAAA,cAACM,QAAOU,QAAM;IAACC,KAAKhC;IAAMD,OAAOC;KAC9BA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAOZP,SAASO,KAAKM,YAAY,qBACzB,gBAAAS,OAAA,cAACkB,OAAMb,MAAI,MACT,gBAAAL,OAAA,cAACkB,OAAMC,WAAS;IACdC,aAAazC,EAAE,sBAAA;IACf0C,cAAc3C,SAASO,KAAKO;IAC5B8B,UAAU3B;OAIfjB,SAASO,KAAKM,YAAY,mBACzB,gBAAAS,OAAA,cAACkB,OAAMb,MAAI,MACT,gBAAAL,OAAA,cAACkB,OAAMC,WAAS;IACdC,aAAazC,EAAE,yBAAA;IACf0C,cAAc3C,SAASO,KAAKQ;IAC5B6B,UAAUvB;;AAOxB;;;ACtFA,SAASwB,YAAY;AAWd,IAAMC,kBAAkBC,KAAK,MAAM,OAAO,gCAAA,CAAA;AAC1C,IAAMC,gBAAgBD,KAAK,MAAM,OAAO,8BAAA,CAAA;AACxC,IAAME,oBAAoBF,KAAK,MAAM,OAAO,kCAAA,CAAA;",
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { DEFAULT_EDGE_MODELS, DEFAULT_OLLAMA_MODELS } from '@dxos/assistant';\nimport { Input, Select, useTranslation } from '@dxos/react-ui';\nimport { DeprecatedFormContainer, DeprecatedFormInput } from '@dxos/react-ui-form';\n\nimport { ASSISTANT_PLUGIN } from '../../meta';\nimport { 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 as S } 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<S.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 './AssistantSettings';\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 ChatContainer = lazy(() => import('./ChatContainer'));\nexport const TemplateContainer = lazy(() => import('./TemplateContainer'));\n"],
5
+ "mappings": "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",
6
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", "ChatContainer", "TemplateContainer"]
7
7
  }