@dxos/plugin-assistant 0.8.2-main.f11618f → 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 (166) hide show
  1. package/dist/lib/browser/{AssistantDialog-I47GUXWR.mjs → AssistantDialog-DTWVEQBB.mjs} +3 -3
  2. package/dist/lib/browser/{ChatContainer-GAYN3FEF.mjs → ChatContainer-ZNKENYKZ.mjs} +3 -3
  3. package/dist/lib/browser/{ai-client-OK5SMYJC.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-ZXKGE3H5.mjs → app-graph-builder-HTK3HFGM.mjs} +71 -61
  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-BGMQ2YYP.mjs → chunk-7VDZP5WX.mjs} +4 -4
  10. package/dist/lib/browser/{chunk-BGMQ2YYP.mjs.map → chunk-7VDZP5WX.mjs.map} +2 -2
  11. package/dist/lib/browser/{chunk-7CAHKTZQ.mjs → chunk-OWZHLWW5.mjs} +66 -91
  12. package/dist/lib/browser/chunk-OWZHLWW5.mjs.map +7 -0
  13. package/dist/lib/browser/index.mjs +3 -3
  14. package/dist/lib/browser/{intent-resolver-W6XREK5F.mjs → intent-resolver-QV5AAVJZ.mjs} +4 -9
  15. package/dist/lib/browser/intent-resolver-QV5AAVJZ.mjs.map +7 -0
  16. package/dist/lib/browser/meta.json +1 -1
  17. package/dist/lib/browser/{react-surface-QMI5KG4H.mjs → react-surface-JJPYWEIN.mjs} +9 -9
  18. package/dist/lib/browser/react-surface-JJPYWEIN.mjs.map +7 -0
  19. package/dist/lib/browser/{settings-LAJZQI4H.mjs → settings-OZX7J65A.mjs} +2 -2
  20. package/dist/lib/browser/types/index.mjs +1 -1
  21. package/dist/lib/node/{AssistantDialog-SDS2TE5L.cjs → AssistantDialog-RJJHZI63.cjs} +7 -7
  22. package/dist/lib/node/{ChatContainer-U6AVMAHY.cjs → ChatContainer-WVAAOEOH.cjs} +7 -7
  23. package/dist/lib/node/{ai-client-3EVTLXTT.cjs → ai-client-OUPSRQT7.cjs} +6 -6
  24. package/dist/lib/node/ai-client-OUPSRQT7.cjs.map +7 -0
  25. package/dist/lib/node/{app-graph-builder-TXHPXIIC.cjs → app-graph-builder-LEO63CZZ.cjs} +74 -64
  26. package/dist/lib/node/app-graph-builder-LEO63CZZ.cjs.map +7 -0
  27. package/dist/lib/node/{chunk-XBJO453B.cjs → chunk-GQ3XS5FZ.cjs} +9 -9
  28. package/dist/lib/node/{chunk-XBJO453B.cjs.map → chunk-GQ3XS5FZ.cjs.map} +2 -2
  29. package/dist/lib/node/{chunk-CWHFK36A.cjs → chunk-OOHFSPWR.cjs} +72 -91
  30. package/dist/lib/node/chunk-OOHFSPWR.cjs.map +7 -0
  31. package/dist/lib/node/{chunk-5UELRDHQ.cjs → chunk-VG2UQY4S.cjs} +74 -72
  32. package/dist/lib/node/chunk-VG2UQY4S.cjs.map +7 -0
  33. package/dist/lib/node/index.cjs +39 -39
  34. package/dist/lib/node/{intent-resolver-MUJMV7II.cjs → intent-resolver-QDGZMWLY.cjs} +10 -15
  35. package/dist/lib/node/intent-resolver-QDGZMWLY.cjs.map +7 -0
  36. package/dist/lib/node/meta.json +1 -1
  37. package/dist/lib/node/{react-surface-SAJF4XBB.cjs → react-surface-XNEIJJYJ.cjs} +22 -22
  38. package/dist/lib/node/react-surface-XNEIJJYJ.cjs.map +7 -0
  39. package/dist/lib/node/{settings-NPXTE6ND.cjs → settings-WLTC7XO5.cjs} +6 -6
  40. package/dist/lib/node/types/index.cjs +13 -13
  41. package/dist/lib/node/types/index.cjs.map +1 -1
  42. package/dist/lib/node-esm/{AssistantDialog-KGA5HBFO.mjs → AssistantDialog-D33WZUGR.mjs} +3 -3
  43. package/dist/lib/node-esm/{ChatContainer-XPNXNPSW.mjs → ChatContainer-FAYGNMQW.mjs} +3 -3
  44. package/dist/lib/node-esm/{ai-client-LYCBXZI7.mjs → ai-client-RZQWEDUX.mjs} +3 -3
  45. package/dist/lib/node-esm/ai-client-RZQWEDUX.mjs.map +7 -0
  46. package/dist/lib/node-esm/{app-graph-builder-SV4WC2E2.mjs → app-graph-builder-WXJNZDYB.mjs} +71 -61
  47. package/dist/lib/node-esm/app-graph-builder-WXJNZDYB.mjs.map +7 -0
  48. package/dist/lib/node-esm/{chunk-R7Q3OHWG.mjs → chunk-74GFINWJ.mjs} +4 -4
  49. package/dist/lib/node-esm/{chunk-R7Q3OHWG.mjs.map → chunk-74GFINWJ.mjs.map} +2 -2
  50. package/dist/lib/node-esm/{chunk-XFUXN5QU.mjs → chunk-ED55ZE4G.mjs} +66 -91
  51. package/dist/lib/node-esm/chunk-ED55ZE4G.mjs.map +7 -0
  52. package/dist/lib/node-esm/chunk-UZWYXNR5.mjs +193 -0
  53. package/dist/lib/node-esm/chunk-UZWYXNR5.mjs.map +7 -0
  54. package/dist/lib/node-esm/index.mjs +3 -3
  55. package/dist/lib/node-esm/{intent-resolver-DZY2O2DG.mjs → intent-resolver-Q3I6S6HN.mjs} +4 -9
  56. package/dist/lib/node-esm/intent-resolver-Q3I6S6HN.mjs.map +7 -0
  57. package/dist/lib/node-esm/meta.json +1 -1
  58. package/dist/lib/node-esm/{react-surface-R43NHNMC.mjs → react-surface-RI3JONQY.mjs} +9 -9
  59. package/dist/lib/node-esm/react-surface-RI3JONQY.mjs.map +7 -0
  60. package/dist/lib/node-esm/{settings-K3JDH2I5.mjs → settings-CLE57WEP.mjs} +2 -2
  61. package/dist/lib/node-esm/types/index.mjs +1 -1
  62. package/dist/types/src/capabilities/ai-client.d.ts +2 -2
  63. package/dist/types/src/capabilities/ai-client.d.ts.map +1 -1
  64. package/dist/types/src/capabilities/app-graph-builder.d.ts +2 -179
  65. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  66. package/dist/types/src/capabilities/index.d.ts +2 -178
  67. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  68. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  69. package/dist/types/src/components/AmbientDialog/AmbientDialog.d.ts.map +1 -1
  70. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +1 -1
  71. package/dist/types/src/components/Prompt/PromptBar.d.ts.map +1 -1
  72. package/dist/types/src/components/Prompt/autocomplete.d.ts.map +1 -1
  73. package/dist/types/src/components/Prompt/references.d.ts.map +1 -1
  74. package/dist/types/src/components/PromptSettings.d.ts.map +1 -1
  75. package/dist/types/src/components/TemplateContainer.d.ts.map +1 -1
  76. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +1 -1
  77. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
  78. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +2 -2
  79. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
  80. package/dist/types/src/components/Thread/Thread.d.ts.map +1 -1
  81. package/dist/types/src/components/Thread/Thread.stories.d.ts.map +1 -1
  82. package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts +2 -2
  83. package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts.map +1 -1
  84. package/dist/types/src/components/Thread/ToolInvocations.d.ts.map +1 -1
  85. package/dist/types/src/components/Toolbox/Toolbox.d.ts +1 -1
  86. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  87. package/dist/types/src/hooks/index.d.ts +0 -1
  88. package/dist/types/src/hooks/index.d.ts.map +1 -1
  89. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
  90. package/dist/types/src/hooks/useContextProvider.d.ts +1 -1
  91. package/dist/types/src/hooks/useContextProvider.d.ts.map +1 -1
  92. package/dist/types/src/hooks/useMessageQueue.d.ts.map +1 -1
  93. package/dist/types/src/hooks/useServices.d.ts.map +1 -1
  94. package/dist/types/src/hooks/useTextInputEvents.d.ts.map +1 -1
  95. package/dist/types/src/testing/test-functions.d.ts.map +1 -1
  96. package/dist/types/src/tools/function.d.ts +2 -2
  97. package/dist/types/src/tools/function.d.ts.map +1 -1
  98. package/dist/types/src/tools/openapi.d.ts.map +1 -1
  99. package/dist/types/src/translations.d.ts +6 -60
  100. package/dist/types/src/translations.d.ts.map +1 -1
  101. package/dist/types/src/types/service.d.ts +96 -95
  102. package/dist/types/src/types/service.d.ts.map +1 -1
  103. package/dist/types/src/types/template.d.ts +52 -52
  104. package/dist/types/src/types/template.d.ts.map +1 -1
  105. package/dist/types/src/types/types.d.ts +19 -19
  106. package/dist/types/src/types/types.d.ts.map +1 -1
  107. package/dist/types/tsconfig.tsbuildinfo +1 -1
  108. package/package.json +64 -58
  109. package/src/capabilities/ai-client.ts +4 -4
  110. package/src/capabilities/app-graph-builder.ts +166 -106
  111. package/src/capabilities/intent-resolver.ts +2 -5
  112. package/src/capabilities/react-surface.tsx +5 -5
  113. package/src/components/AmbientDialog/AmbientDialog.stories.tsx +1 -1
  114. package/src/components/Prompt/Prompt.stories.tsx +1 -1
  115. package/src/components/Prompt/PromptBar.tsx +4 -12
  116. package/src/components/PromptSettings.tsx +2 -2
  117. package/src/components/TemplateEditor/TemplateForm.tsx +2 -2
  118. package/src/components/Thread/Thread.stories.tsx +12 -15
  119. package/src/components/Thread/ThreadContainer.stories.tsx +7 -7
  120. package/src/components/Thread/ThreadMessage.tsx +1 -1
  121. package/src/components/Toolbox/Toolbox.stories.tsx +2 -2
  122. package/src/components/Toolbox/Toolbox.tsx +3 -3
  123. package/src/hooks/index.ts +0 -1
  124. package/src/hooks/useChatProcessor.tsx +5 -5
  125. package/src/hooks/useContextProvider.ts +20 -16
  126. package/src/hooks/useMessageQueue.ts +2 -2
  127. package/src/tools/function.ts +4 -6
  128. package/src/tools/openapi.ts +4 -3
  129. package/src/types/service.ts +39 -37
  130. package/src/types/template.ts +27 -25
  131. package/src/types/types.ts +18 -18
  132. package/dist/lib/browser/ai-client-OK5SMYJC.mjs.map +0 -7
  133. package/dist/lib/browser/app-graph-builder-ZXKGE3H5.mjs.map +0 -7
  134. package/dist/lib/browser/chunk-7CAHKTZQ.mjs.map +0 -7
  135. package/dist/lib/browser/chunk-E7BN4QKP.mjs +0 -190
  136. package/dist/lib/browser/chunk-E7BN4QKP.mjs.map +0 -7
  137. package/dist/lib/browser/intent-resolver-W6XREK5F.mjs.map +0 -7
  138. package/dist/lib/browser/react-surface-QMI5KG4H.mjs.map +0 -7
  139. package/dist/lib/node/ai-client-3EVTLXTT.cjs.map +0 -7
  140. package/dist/lib/node/app-graph-builder-TXHPXIIC.cjs.map +0 -7
  141. package/dist/lib/node/chunk-5UELRDHQ.cjs.map +0 -7
  142. package/dist/lib/node/chunk-CWHFK36A.cjs.map +0 -7
  143. package/dist/lib/node/intent-resolver-MUJMV7II.cjs.map +0 -7
  144. package/dist/lib/node/react-surface-SAJF4XBB.cjs.map +0 -7
  145. package/dist/lib/node-esm/ai-client-LYCBXZI7.mjs.map +0 -7
  146. package/dist/lib/node-esm/app-graph-builder-SV4WC2E2.mjs.map +0 -7
  147. package/dist/lib/node-esm/chunk-ECYNZYEG.mjs +0 -191
  148. package/dist/lib/node-esm/chunk-ECYNZYEG.mjs.map +0 -7
  149. package/dist/lib/node-esm/chunk-XFUXN5QU.mjs.map +0 -7
  150. package/dist/lib/node-esm/intent-resolver-DZY2O2DG.mjs.map +0 -7
  151. package/dist/lib/node-esm/react-surface-R43NHNMC.mjs.map +0 -7
  152. package/dist/types/src/hooks/invocation-handler.d.ts +0 -5
  153. package/dist/types/src/hooks/invocation-handler.d.ts.map +0 -1
  154. package/dist/types/src/hooks/useLocalTriggerManager.d.ts +0 -3
  155. package/dist/types/src/hooks/useLocalTriggerManager.d.ts.map +0 -1
  156. package/src/hooks/invocation-handler.ts +0 -107
  157. package/src/hooks/useLocalTriggerManager.ts +0 -82
  158. /package/dist/lib/browser/{AssistantDialog-I47GUXWR.mjs.map → AssistantDialog-DTWVEQBB.mjs.map} +0 -0
  159. /package/dist/lib/browser/{ChatContainer-GAYN3FEF.mjs.map → ChatContainer-ZNKENYKZ.mjs.map} +0 -0
  160. /package/dist/lib/browser/{settings-LAJZQI4H.mjs.map → settings-OZX7J65A.mjs.map} +0 -0
  161. /package/dist/lib/node/{AssistantDialog-SDS2TE5L.cjs.map → AssistantDialog-RJJHZI63.cjs.map} +0 -0
  162. /package/dist/lib/node/{ChatContainer-U6AVMAHY.cjs.map → ChatContainer-WVAAOEOH.cjs.map} +0 -0
  163. /package/dist/lib/node/{settings-NPXTE6ND.cjs.map → settings-WLTC7XO5.cjs.map} +0 -0
  164. /package/dist/lib/node-esm/{AssistantDialog-KGA5HBFO.mjs.map → AssistantDialog-D33WZUGR.mjs.map} +0 -0
  165. /package/dist/lib/node-esm/{ChatContainer-XPNXNPSW.mjs.map → ChatContainer-FAYGNMQW.mjs.map} +0 -0
  166. /package/dist/lib/node-esm/{settings-K3JDH2I5.mjs.map → settings-CLE57WEP.mjs.map} +0 -0
@@ -1,190 +0,0 @@
1
- import {
2
- ASSISTANT_PLUGIN
3
- } from "./chunk-3HCI5FIL.mjs";
4
-
5
- // packages/plugins/plugin-assistant/src/types/chat.ts
6
- import { Expando, Ref, TypedObject } from "@dxos/echo-schema";
7
- var AIChatType = class extends TypedObject({
8
- typename: "dxos.org/type/AIChat",
9
- version: "0.1.0"
10
- })({
11
- // TODO(wittjosiah): Should be a ref to a Queue.
12
- assistantChatQueue: Ref(Expando)
13
- }) {
14
- };
15
-
16
- // packages/plugins/plugin-assistant/src/types/service.ts
17
- import { ComputeGraph } from "@dxos/conductor";
18
- import { Ref as Ref2, S, TypedObject as TypedObject2 } from "@dxos/echo-schema";
19
- import { FunctionType } from "@dxos/functions/types";
20
- var ApiAuthorizationKey = S.Struct({
21
- type: S.Literal("api-key"),
22
- key: S.String,
23
- placement: S.Union(S.Struct({
24
- type: S.Literal("authorization-header")
25
- }), S.Struct({
26
- type: S.Literal("query"),
27
- name: S.String
28
- }))
29
- });
30
- var ApiAuthorizationOauth = S.Struct({
31
- type: S.Literal("oauth"),
32
- clientId: S.String,
33
- clientSecret: S.String,
34
- tokenUrl: S.String,
35
- grantType: S.String
36
- });
37
- var ApiAuthorization = S.Union(ApiAuthorizationKey, ApiAuthorizationOauth);
38
- var ServiceInterfaceFunction = S.Struct({
39
- kind: S.Literal("function"),
40
- fn: Ref2(FunctionType)
41
- });
42
- var ServiceInterfaceWorkflow = S.Struct({
43
- kind: S.Literal("workflow"),
44
- workflow: Ref2(ComputeGraph)
45
- });
46
- var ServiceInterfaceApi = S.Struct({
47
- kind: S.Literal("api"),
48
- /**
49
- * URL to fetch the openapi schema.
50
- */
51
- schemaUrl: S.optional(S.String),
52
- /**
53
- * Inlined openapi schema.
54
- */
55
- schema: S.optional(S.Any),
56
- /**
57
- * Authorization configuration if required.
58
- */
59
- authorization: S.optional(ApiAuthorization)
60
- });
61
- var ServiceInterface = S.Union(ServiceInterfaceFunction, ServiceInterfaceWorkflow, ServiceInterfaceApi);
62
- var ServiceType = class extends TypedObject2({
63
- typename: "dxos.org/type/ServiceType",
64
- version: "0.1.0"
65
- })({
66
- serviceId: S.String,
67
- name: S.optional(S.String),
68
- description: S.optional(S.String),
69
- category: S.optional(S.String),
70
- enabled: S.optional(S.Boolean),
71
- /**
72
- * Entries exposed: functions, workflows, and APIs.
73
- */
74
- interfaces: S.optional(S.Array(ServiceInterface))
75
- }) {
76
- };
77
- var categoryIcons = {
78
- finance: "ph--bank--regular",
79
- health: "ph--heart--regular",
80
- geolocation: "ph--globe-simple--regular",
81
- education: "ph--books--regular",
82
- entertainment: "ph--music-notes--regular",
83
- shopping: "ph--shopping-cart--regular",
84
- travel: "ph--airplane-takeoff--regular",
85
- utilities: "ph--lightning--regular",
86
- weather: "ph--cloud-rain--regular"
87
- };
88
-
89
- // packages/plugins/plugin-assistant/src/types/template.ts
90
- import { S as S2, TypedObject as TypedObject3 } from "@dxos/echo-schema";
91
- var TemplateInputType;
92
- (function(TemplateInputType2) {
93
- TemplateInputType2[TemplateInputType2["VALUE"] = 0] = "VALUE";
94
- TemplateInputType2[TemplateInputType2["PASS_THROUGH"] = 1] = "PASS_THROUGH";
95
- TemplateInputType2[TemplateInputType2["RETRIEVER"] = 2] = "RETRIEVER";
96
- TemplateInputType2[TemplateInputType2["FUNCTION"] = 3] = "FUNCTION";
97
- TemplateInputType2[TemplateInputType2["QUERY"] = 4] = "QUERY";
98
- TemplateInputType2[TemplateInputType2["RESOLVER"] = 5] = "RESOLVER";
99
- TemplateInputType2[TemplateInputType2["CONTEXT"] = 6] = "CONTEXT";
100
- TemplateInputType2[TemplateInputType2["SCHEMA"] = 7] = "SCHEMA";
101
- })(TemplateInputType || (TemplateInputType = {}));
102
- var TemplateInputSchema = S2.mutable(S2.Struct({
103
- name: S2.String,
104
- type: S2.optional(S2.Enums(TemplateInputType)),
105
- value: S2.optional(S2.String)
106
- }));
107
- var TemplateKinds = [
108
- "always",
109
- "schema-matching",
110
- "automatically",
111
- "manual"
112
- ];
113
- var TemplateKindSchema = S2.Union(S2.Struct({
114
- include: S2.Literal("always")
115
- }), S2.Struct({
116
- include: S2.Literal("schema-matching"),
117
- typename: S2.String
118
- }), S2.Struct({
119
- include: S2.Literal("automatically"),
120
- description: S2.String
121
- }), S2.Struct({
122
- include: S2.Literal("manual")
123
- }));
124
- var TemplateType = class extends TypedObject3({
125
- typename: "dxos.org/type/Template",
126
- version: "0.1.0"
127
- })({
128
- name: S2.optional(S2.String),
129
- kind: S2.mutable(TemplateKindSchema),
130
- source: S2.String,
131
- inputs: S2.optional(S2.mutable(S2.Array(TemplateInputSchema))),
132
- command: S2.optional(S2.String)
133
- }) {
134
- };
135
-
136
- // packages/plugins/plugin-assistant/src/types/types.ts
137
- import { S as S3 } from "@dxos/echo-schema";
138
- var AssistantAction;
139
- (function(AssistantAction2) {
140
- const ASSISTANT_ACTION = `${ASSISTANT_PLUGIN}/action`;
141
- class CreateChat extends S3.TaggedClass()(`${ASSISTANT_ACTION}/create-chat`, {
142
- input: S3.Struct({
143
- spaceId: S3.optional(S3.String),
144
- name: S3.optional(S3.String)
145
- }),
146
- output: S3.Struct({
147
- object: AIChatType
148
- })
149
- }) {
150
- }
151
- AssistantAction2.CreateChat = CreateChat;
152
- class CreateTemplate extends S3.TaggedClass()(`${ASSISTANT_ACTION}/create-template`, {
153
- input: S3.Struct({
154
- name: S3.optional(S3.String)
155
- }),
156
- output: S3.Struct({
157
- object: TemplateType
158
- })
159
- }) {
160
- }
161
- AssistantAction2.CreateTemplate = CreateTemplate;
162
- })(AssistantAction || (AssistantAction = {}));
163
- var LLM_PROVIDERS = [
164
- "edge",
165
- "ollama",
166
- "lmstudio"
167
- ];
168
- var AssistantSettingsSchema = S3.mutable(S3.Struct({
169
- llmProvider: S3.optional(S3.Literal(...LLM_PROVIDERS)),
170
- edgeModel: S3.optional(S3.String),
171
- ollamaModel: S3.optional(S3.String),
172
- lmstudioModel: S3.optional(S3.String),
173
- customPrompts: S3.optional(S3.Boolean)
174
- }));
175
-
176
- export {
177
- AIChatType,
178
- ApiAuthorization,
179
- ServiceType,
180
- categoryIcons,
181
- TemplateInputType,
182
- TemplateInputSchema,
183
- TemplateKinds,
184
- TemplateKindSchema,
185
- TemplateType,
186
- AssistantAction,
187
- LLM_PROVIDERS,
188
- AssistantSettingsSchema
189
- };
190
- //# sourceMappingURL=chunk-E7BN4QKP.mjs.map
@@ -1,7 +0,0 @@
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
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/intent-resolver.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, createResolver } from '@dxos/app-framework';\nimport { ObjectId } from '@dxos/echo-schema';\nimport { DXN, QueueSubspaceTags } from '@dxos/keys';\nimport { live, refFromDXN } from '@dxos/live-object';\n\nimport { AssistantAction, AIChatType, TemplateType } from '../types';\n\nexport default () => [\n contributes(\n Capabilities.IntentResolver,\n createResolver({\n intent: AssistantAction.CreateChat,\n resolve: ({ spaceId, name }) => ({\n data: {\n object: live(AIChatType, {\n assistantChatQueue: refFromDXN(\n new DXN(DXN.kind.QUEUE, [QueueSubspaceTags.DATA, spaceId, ObjectId.random()]),\n ),\n }),\n },\n }),\n }),\n ),\n contributes(\n Capabilities.IntentResolver,\n createResolver({\n intent: AssistantAction.CreateTemplate,\n resolve: ({ name }) => ({\n data: {\n object: live(TemplateType, { name, kind: { include: 'manual' }, source: '{{! Template }}' }),\n },\n }),\n }),\n ),\n];\n"],
5
- "mappings": ";;;;;;;;AAIA,SAASA,cAAcC,aAAaC,sBAAsB;AAC1D,SAASC,gBAAgB;AACzB,SAASC,KAAKC,yBAAyB;AACvC,SAASC,MAAMC,kBAAkB;AAIjC,IAAA,0BAAe,MAAM;EACnBC,YACEC,aAAaC,gBACbC,eAAe;IACbC,QAAQC,gBAAgBC;IACxBC,SAAS,CAAC,EAAEC,SAASC,KAAI,OAAQ;MAC/BC,MAAM;QACJC,QAAQC,KAAKC,YAAY;UACvBC,oBAAoBC,WAClB,IAAIC,IAAIA,IAAIC,KAAKC,OAAO;YAACC,kBAAkBC;YAAMZ;YAASa,SAASC,OAAM;WAAG,CAAA;QAEhF,CAAA;MACF;IACF;EACF,CAAA,CAAA;EAEFtB,YACEC,aAAaC,gBACbC,eAAe;IACbC,QAAQC,gBAAgBkB;IACxBhB,SAAS,CAAC,EAAEE,KAAI,OAAQ;MACtBC,MAAM;QACJC,QAAQC,KAAKY,cAAc;UAAEf;UAAMQ,MAAM;YAAEQ,SAAS;UAAS;UAAGC,QAAQ;QAAkB,CAAA;MAC5F;IACF;EACF,CAAA,CAAA;;",
6
- "names": ["Capabilities", "contributes", "createResolver", "ObjectId", "DXN", "QueueSubspaceTags", "live", "refFromDXN", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "AssistantAction", "CreateChat", "resolve", "spaceId", "name", "data", "object", "live", "AIChatType", "assistantChatQueue", "refFromDXN", "DXN", "kind", "QUEUE", "QueueSubspaceTags", "DATA", "ObjectId", "random", "CreateTemplate", "TemplateType", "include", "source"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/react-surface.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { Capabilities, contributes, createSurface } from '@dxos/app-framework';\nimport { isInstanceOf, getTypename } from '@dxos/echo-schema';\nimport { SettingsStore } from '@dxos/local-storage';\nimport { fullyQualifiedId, getSpace, isLiveObject, type SpaceId } from '@dxos/react-client/echo';\n\nimport { AssistantDialog, AssistantSettings, ChatContainer, PromptSettings, TemplateContainer } from '../components';\nimport { ASSISTANT_PLUGIN, ASSISTANT_DIALOG } from '../meta';\nimport { AIChatType, type AssistantSettingsProps, TemplateType } from '../types';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${ASSISTANT_PLUGIN}/plugin-settings`,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<AssistantSettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === ASSISTANT_PLUGIN,\n component: ({ data: { subject } }) => <AssistantSettings settings={subject.value} />,\n }),\n createSurface({\n id: ASSISTANT_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: { chat: AIChatType } } => data.component === ASSISTANT_DIALOG,\n component: ({ data }) => <AssistantDialog {...data.props} />,\n }),\n createSurface({\n id: `${ASSISTANT_PLUGIN}/chat`,\n role: 'article',\n filter: (data): data is { subject: AIChatType; variant: undefined } =>\n isInstanceOf(AIChatType, data.subject) && data.variant !== 'assistant-chat',\n component: ({ data, role }) => <ChatContainer role={role} chat={data.subject} />,\n }),\n createSurface({\n id: `${ASSISTANT_PLUGIN}/object-chat`,\n role: 'article',\n filter: (data): data is { companionTo: AIChatType; subject: 'assistant-chat' } =>\n isLiveObject(data.companionTo) &&\n (data as any).companionTo.assistantChatQueue &&\n data.subject === 'assistant-chat',\n component: ({ data, role }) => {\n const associatedArtifact = useMemo(\n () => ({\n id: fullyQualifiedId(data.companionTo),\n typename: getTypename(data.companionTo) ?? 'unknown',\n spaceId: (getSpace(data.companionTo)?.id ?? 'unknown') as SpaceId,\n }),\n [data.companionTo],\n );\n return <ChatContainer role={role} chat={data.companionTo} associatedArtifact={associatedArtifact} />;\n },\n }),\n createSurface({\n id: `${ASSISTANT_PLUGIN}/template`,\n role: 'article',\n filter: (data): data is { subject: TemplateType } => isInstanceOf(TemplateType, data.subject),\n component: ({ data, role }) => <TemplateContainer role={role} template={data.subject} />,\n }),\n createSurface({\n id: `${ASSISTANT_PLUGIN}/prompt-settings`,\n role: 'object-settings',\n filter: (data): data is { subject: TemplateType } => isInstanceOf(TemplateType, data.subject),\n component: ({ data }) => <PromptSettings template={data.subject} />,\n }),\n ]);\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAIA,OAAOA,SAASC,eAAe;AAE/B,SAASC,cAAcC,aAAaC,qBAAqB;AACzD,SAASC,cAAcC,mBAAmB;AAC1C,SAASC,qBAAqB;AAC9B,SAASC,kBAAkBC,UAAUC,oBAAkC;AAMvE,IAAA,wBAAe,MACbC,YAAYC,aAAaC,cAAc;EACrCC,cAAc;IACZC,IAAI,GAAGC,gBAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SACPA,KAAKC,mBAAmBC,iBAAiBF,KAAKC,QAAQE,WAAWN;IACnEO,WAAW,CAAC,EAAEJ,MAAM,EAAEC,QAAO,EAAE,MAAO,sBAAA,cAACI,mBAAAA;MAAkBC,UAAUL,QAAQM;;EAC7E,CAAA;EACAZ,cAAc;IACZC,IAAIY;IACJV,MAAM;IACNC,QAAQ,CAACC,SAAkDA,KAAKI,cAAcI;IAC9EJ,WAAW,CAAC,EAAEJ,KAAI,MAAO,sBAAA,cAACS,iBAAoBT,KAAKU,KAAK;EAC1D,CAAA;EACAf,cAAc;IACZC,IAAI,GAAGC,gBAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SACPW,aAAaC,YAAYZ,KAAKC,OAAO,KAAKD,KAAKa,YAAY;IAC7DT,WAAW,CAAC,EAAEJ,MAAMF,KAAI,MAAO,sBAAA,cAACgB,eAAAA;MAAchB;MAAYiB,MAAMf,KAAKC;;EACvE,CAAA;EACAN,cAAc;IACZC,IAAI,GAAGC,gBAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SACPgB,aAAahB,KAAKiB,WAAW,KAC5BjB,KAAaiB,YAAYC,sBAC1BlB,KAAKC,YAAY;IACnBG,WAAW,CAAC,EAAEJ,MAAMF,KAAI,MAAE;AACxB,YAAMqB,qBAAqBC,QACzB,OAAO;QACLxB,IAAIyB,iBAAiBrB,KAAKiB,WAAW;QACrCK,UAAUC,YAAYvB,KAAKiB,WAAW,KAAK;QAC3CO,SAAUC,SAASzB,KAAKiB,WAAW,GAAGrB,MAAM;MAC9C,IACA;QAACI,KAAKiB;OAAY;AAEpB,aAAO,sBAAA,cAACH,eAAAA;QAAchB;QAAYiB,MAAMf,KAAKiB;QAAaE;;IAC5D;EACF,CAAA;EACAxB,cAAc;IACZC,IAAI,GAAGC,gBAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SAA4CW,aAAae,cAAc1B,KAAKC,OAAO;IAC5FG,WAAW,CAAC,EAAEJ,MAAMF,KAAI,MAAO,sBAAA,cAAC6B,mBAAAA;MAAkB7B;MAAY8B,UAAU5B,KAAKC;;EAC/E,CAAA;EACAN,cAAc;IACZC,IAAI,GAAGC,gBAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SAA4CW,aAAae,cAAc1B,KAAKC,OAAO;IAC5FG,WAAW,CAAC,EAAEJ,KAAI,MAAO,sBAAA,cAAC6B,gBAAAA;MAAeD,UAAU5B,KAAKC;;EAC1D,CAAA;CACD;",
6
- "names": ["React", "useMemo", "Capabilities", "contributes", "createSurface", "isInstanceOf", "getTypename", "SettingsStore", "fullyQualifiedId", "getSpace", "isLiveObject", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "ASSISTANT_PLUGIN", "role", "filter", "data", "subject", "SettingsStore", "prefix", "component", "AssistantSettings", "settings", "value", "ASSISTANT_DIALOG", "AssistantDialog", "props", "isInstanceOf", "AIChatType", "variant", "ChatContainer", "chat", "isLiveObject", "companionTo", "assistantChatQueue", "associatedArtifact", "useMemo", "fullyQualifiedId", "typename", "getTypename", "spaceId", "getSpace", "TemplateType", "TemplateContainer", "template", "PromptSettings"]
7
- }
@@ -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 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,0BAA+B;AAE/B,2BAA+D;AAC/D,uBAAwE;AACxE,2BAAmC;AAOnC,IAAMA,yBAAyB;AAE/B,IAAA,oBAAe,CAACC,YAAAA;AACd,QAAMC,SAASD,QAAQE,kBAAkBC,wCAAmBC,MAAM;AAClE,QAAMC,WAAWJ,OAAOK,OAAOC,OAAOC,SAASC,UAAUC,IAAIC,UAAUZ;AAEvE,QAAMW,SAAKE,4BAAwB,IAAIC,qCAAoB;IAAER;EAAS,CAAA,CAAA;AAEtE,QAAMS,kBAAcC,4BAAO,MAAA;AACzB,UAAMC,WAAWhB,QACdE,kBAAkBe,kCAAaC,aAAa,EAC5CC,SAAiCC,sCAAAA,GAAmBC;AAEvD,QAAIL,UAAUM,gBAAgB,UAAU;AACtCZ,SAAGW,QAAQ,IAAIE,8BAAAA;IACjB,OAAO;AACLb,SAAGW,QAAQ,IAAIR,qCAAoB;QAAER;MAAS,CAAA;IAChD;EACF,CAAA;AAEA,aAAOmB,kCAAYC,4CAAsBC,UAAUhB,IAAI,MAAMI,YAAAA,CAAAA;AAC/D;",
6
- "names": ["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 } from '@dxos/plugin-deck/types';\nimport { createExtension, type Node, ROOT_ID } from '@dxos/plugin-graph';\nimport { memoizeQuery } from '@dxos/plugin-space';\nimport { SPACE_TYPE, SpaceAction } from '@dxos/plugin-space/types';\nimport { type Space, Filter, fullyQualifiedId, getSpace, isLiveObject } from '@dxos/react-client/echo';\n\nimport { ASSISTANT_DIALOG, ASSISTANT_PLUGIN } from '../meta';\nimport { AIChatType, AssistantAction, TemplateType } from '../types';\n\nexport default (context: PluginsContext) =>\n contributes(Capabilities.AppGraphBuilder, [\n createExtension({\n id: `${ASSISTANT_PLUGIN}/assistant`,\n filter: (node): node is Node<null> => node.id === ROOT_ID,\n actions: () => [\n {\n id: `${LayoutAction.UpdateDialog._tag}/assistant/open`,\n data: async () => {\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n const client = context.requestCapability(ClientCapabilities.Client);\n const layout = context.requestCapability(Capabilities.Layout);\n const { graph } = context.requestCapability(Capabilities.AppGraph);\n\n // TODO(burdon): Get space from workspace.\n // TODO(burdon): If need to create chat, then add to dispatch stack below.\n let chat: AIChatType | undefined;\n if (layout.active.length > 0) {\n const node = graph.findNode(layout.active[0]);\n if (node) {\n const space = getSpace(node.data);\n if (space) {\n chat = await getOrCreateChat(dispatch, space);\n }\n }\n } else {\n const space = client.spaces.default;\n chat = await getOrCreateChat(dispatch, space);\n }\n\n if (!chat) {\n return;\n }\n\n await dispatch(\n createIntent(LayoutAction.UpdateDialog, {\n part: 'dialog',\n subject: ASSISTANT_DIALOG,\n options: {\n state: true,\n blockAlign: 'end',\n props: {\n chat,\n },\n },\n }),\n );\n },\n properties: {\n label: ['open assistant label', { ns: ASSISTANT_PLUGIN }],\n icon: 'ph--star-four--regular',\n disposition: 'pin-end',\n position: 'hoist',\n keyBinding: {\n macos: 'shift+meta+k',\n windows: 'shift+ctrl+k',\n },\n },\n },\n ],\n }),\n\n createExtension({\n id: `${ASSISTANT_PLUGIN}/object-chat-companion`,\n filter: (node): node is Node<AIChatType> =>\n isLiveObject(node.data) && node.data.assistantChatQueue && node.data.type !== AIChatType.typename,\n connector: ({ node }) => [\n {\n id: [node.id, 'assistant-chat'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: 'assistant-chat',\n properties: {\n label: ['assistant chat label', { ns: ASSISTANT_PLUGIN }],\n icon: 'ph--star-four--regular',\n position: 'hoist',\n },\n },\n ],\n }),\n\n createExtension({\n id: `${ASSISTANT_PLUGIN}/root`,\n filter: (node): node is Node<Space> => node.type === SPACE_TYPE,\n connector: ({ node }) => {\n const templates = memoizeQuery(node.data, Filter.schema(TemplateType));\n return templates.length > 0\n ? [\n {\n id: `${ASSISTANT_PLUGIN}/templates`,\n type: `${ASSISTANT_PLUGIN}/templates`,\n data: null,\n properties: {\n label: ['templates label', { ns: ASSISTANT_PLUGIN }],\n icon: 'ph--file-code--regular',\n space: node.data,\n },\n },\n ]\n : [];\n },\n }),\n\n createExtension({\n id: `${ASSISTANT_PLUGIN}/templates`,\n filter: (node): node is Node<null, { space: Space }> => node.id === `${ASSISTANT_PLUGIN}/templates`,\n connector: ({ node }) => {\n const templates = memoizeQuery(node.properties.space, Filter.schema(TemplateType));\n return templates\n .toSorted((a, b) => {\n const nameA = a.name ?? '';\n const nameB = b.name ?? '';\n return nameA.localeCompare(nameB);\n })\n .map((template) => ({\n id: fullyQualifiedId(template),\n type: `${ASSISTANT_PLUGIN}/template`,\n data: template,\n properties: {\n label: template.name ?? ['object placeholder', { ns: ASSISTANT_PLUGIN }],\n icon: 'ph--file-code--regular',\n },\n }));\n },\n }),\n ]);\n\n// TODO(burdon): Factor out.\nconst getOrCreateChat = async (dispatch: PromiseIntentDispatcher, space: Space): Promise<AIChatType | undefined> => {\n const { objects } = await space.db.query(Filter.schema(AIChatType)).run();\n // console.log('objects', JSON.stringify(objects, null, 2));\n if (objects.length > 0) {\n // TODO(burdon): Is this the most recent?\n return objects[objects.length - 1];\n }\n\n const { data } = await dispatch(createIntent(AssistantAction.CreateChat, { spaceId: space.id }));\n invariant(data?.object instanceof AIChatType);\n await dispatch(createIntent(SpaceAction.AddObject, { target: space, object: data.object }));\n return data.object;\n};\n"],
5
- "mappings": "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",
6
- "names": ["import_types", "context", "contributes", "Capabilities", "AppGraphBuilder", "createExtension", "id", "ASSISTANT_PLUGIN", "filter", "node", "ROOT_ID", "actions", "LayoutAction", "UpdateDialog", "_tag", "data", "dispatchPromise", "dispatch", "requestCapability", "IntentDispatcher", "client", "ClientCapabilities", "Client", "layout", "Layout", "graph", "AppGraph", "chat", "active", "length", "findNode", "space", "getSpace", "getOrCreateChat", "spaces", "default", "createIntent", "part", "subject", "ASSISTANT_DIALOG", "options", "state", "blockAlign", "props", "properties", "label", "ns", "icon", "disposition", "position", "keyBinding", "macos", "windows", "isLiveObject", "assistantChatQueue", "type", "AIChatType", "typename", "connector", "join", "ATTENDABLE_PATH_SEPARATOR", "PLANK_COMPANION_TYPE", "SPACE_TYPE", "templates", "memoizeQuery", "Filter", "schema", "TemplateType", "toSorted", "a", "b", "nameA", "name", "nameB", "localeCompare", "map", "template", "fullyQualifiedId", "objects", "db", "query", "run", "AssistantAction", "CreateChat", "spaceId", "invariant", "object", "SpaceAction", "AddObject", "target"]
7
- }
@@ -1,7 +0,0 @@
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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,yBAA0C;ACA1C,uBAA6B;AAC7B,IAAAA,sBAA+C;AAC/C,mBAA6B;ACF7B,IAAAA,sBAA+B;ACA/B,IAAAA,sBAAkB;AHEX,IAAMC,aAAN,kBAAyBC,gCAAY;EAAEC,UAAU;EAAwBC,SAAS;AAAQ,CAAA,EAAG;;EAElGC,wBAAoBC,wBAAIC,0BAAAA;AAC1B,CAAA,EAAA;AAAI;ACDJ,IAAMC,sBAAsBC,sBAAEC,OAAO;EACnCC,MAAMF,sBAAEG,QAAQ,SAAA;EAChBC,KAAKJ,sBAAEK;EACPC,WAAWN,sBAAEO,MACXP,sBAAEC,OAAO;IACPC,MAAMF,sBAAEG,QAAQ,sBAAA;EAClB,CAAA,GACAH,sBAAEC,OAAO;IACPC,MAAMF,sBAAEG,QAAQ,OAAA;IAChBK,MAAMR,sBAAEK;EACV,CAAA,CAAA;AAEJ,CAAA;AAEA,IAAMI,wBAAwBT,sBAAEC,OAAO;EACrCC,MAAMF,sBAAEG,QAAQ,OAAA;EAChBO,UAAUV,sBAAEK;EACZM,cAAcX,sBAAEK;EAChBO,UAAUZ,sBAAEK;EACZQ,WAAWb,sBAAEK;AACf,CAAA;AAEO,IAAMS,mBAAmBd,sBAAEO,MAAMR,qBAAqBU,qBAAAA;AAG7D,IAAMM,2BAA2Bf,sBAAEC,OAAO;EACxCe,MAAMhB,sBAAEG,QAAQ,UAAA;EAChBc,QAAIpB,oBAAAA,KAAIqB,yBAAAA;AACV,CAAA;AAEA,IAAMC,2BAA2BnB,sBAAEC,OAAO;EACxCe,MAAMhB,sBAAEG,QAAQ,UAAA;EAChBiB,cAAUvB,oBAAAA,KAAIwB,6BAAAA;AAChB,CAAA;AAEA,IAAMC,sBAAsBtB,sBAAEC,OAAO;EACnCe,MAAMhB,sBAAEG,QAAQ,KAAA;;;;EAKhBoB,WAAWvB,sBAAEwB,SAASxB,sBAAEK,MAAM;;;;EAK9BoB,QAAQzB,sBAAEwB,SAASxB,sBAAE0B,GAAG;;;;EAKxBC,eAAe3B,sBAAEwB,SAASV,gBAAAA;AAC5B,CAAA;AAEA,IAAMc,mBAAmB5B,sBAAEO,MAAMQ,0BAA0BI,0BAA0BG,mBAAAA;AAG9E,IAAMO,cAAN,kBAA0BpC,oBAAAA,aAAY;EAAEC,UAAU;EAA6BC,SAAS;AAAQ,CAAA,EAAG;EACxGmC,WAAW9B,sBAAEK;EACbG,MAAMR,sBAAEwB,SAASxB,sBAAEK,MAAM;EACzB0B,aAAa/B,sBAAEwB,SAASxB,sBAAEK,MAAM;EAChC2B,UAAUhC,sBAAEwB,SAASxB,sBAAEK,MAAM;EAC7B4B,SAASjC,sBAAEwB,SAASxB,sBAAEkC,OAAO;;;;EAK7BC,YAAYnC,sBAAEwB,SAASxB,sBAAEoC,MAAMR,gBAAAA,CAAAA;AACjC,CAAA,EAAA;AAAI;AAeG,IAAMS,gBAAwC;EACnDC,SAAS;EACTC,QAAQ;EACRC,aAAa;EACbC,WAAW;EACXC,eAAe;EACfC,UAAU;EACVC,QAAQ;EACRC,WAAW;EACXC,SAAS;AACX;;UC9FYC,oBAAAA;;;;;;;;;GAAAA,sBAAAA,oBAAAA,CAAAA,EAAAA;AAWL,IAAMC,sBAAsBhD,oBAAAA,EAAEiD,QACnCjD,oBAAAA,EAAEC,OAAO;EACPO,MAAMR,oBAAAA,EAAEK;EACRH,MAAMF,oBAAAA,EAAEwB,SAASxB,oBAAAA,EAAEkD,MAAMH,iBAAAA,CAAAA;EACzBI,OAAOnD,oBAAAA,EAAEwB,SAASxB,oBAAAA,EAAEK,MAAM;AAC5B,CAAA,CAAA;AAKK,IAAM+C,gBAAgB;EAAC;EAAU;EAAmB;EAAiB;;AAGrE,IAAMC,qBAAqBrD,oBAAAA,EAAEO,MAClCP,oBAAAA,EAAEC,OAAO;EACPqD,SAAStD,oBAAAA,EAAEG,QAAQ,QAAA;AACrB,CAAA,GACAH,oBAAAA,EAAEC,OAAO;EACPqD,SAAStD,oBAAAA,EAAEG,QAAQ,iBAAA;EACnBT,UAAUM,oBAAAA,EAAEK;AACd,CAAA,GACAL,oBAAAA,EAAEC,OAAO;EACPqD,SAAStD,oBAAAA,EAAEG,QAAQ,eAAA;EACnB4B,aAAa/B,oBAAAA,EAAEK;AACjB,CAAA,GACAL,oBAAAA,EAAEC,OAAO;EACPqD,SAAStD,oBAAAA,EAAEG,QAAQ,QAAA;AACrB,CAAA,CAAA;AAIK,IAAMoD,eAAN,kBAA2B9D,oBAAAA,aAAY;EAAEC,UAAU;EAA0BC,SAAS;AAAQ,CAAA,EAAG;EACtGa,MAAMR,oBAAAA,EAAEwB,SAASxB,oBAAAA,EAAEK,MAAM;EACzBW,MAAMhB,oBAAAA,EAAEiD,QAAQI,kBAAAA;EAChBG,QAAQxD,oBAAAA,EAAEK;EACVoD,QAAQzD,oBAAAA,EAAEwB,SAASxB,oBAAAA,EAAEiD,QAAQjD,oBAAAA,EAAEoC,MAAMY,mBAAAA,CAAAA,CAAAA;EACrCU,SAAS1D,oBAAAA,EAAEwB,SAASxB,oBAAAA,EAAEK,MAAM;AAC9B,CAAA,EAAA;AAAI;;UC7CasD,kBAAAA;AACf,QAAMC,mBAAmB,GAAGC,sCAAAA;EAErB,MAAMC,mBAAmB9D,oBAAAA,EAAE+D,YAAW,EAAe,GAAGH,gBAAAA,gBAAgC;IAC7FI,OAAOhE,oBAAAA,EAAEC,OAAO;MACdgE,SAASjE,oBAAAA,EAAEwB,SAASxB,oBAAAA,EAAEK,MAAM;MAC5BG,MAAMR,oBAAAA,EAAEwB,SAASxB,oBAAAA,EAAEK,MAAM;IAC3B,CAAA;IACA6D,QAAQlE,oBAAAA,EAAEC,OAAO;MACfkE,QAAQ3E;IACV,CAAA;EACF,CAAA,EAAA;EAAI;mBARSsE,aAAAA;EAUN,MAAMM,uBAAuBpE,oBAAAA,EAAE+D,YAAW,EAAmB,GAAGH,gBAAAA,oBAAoC;IACzGI,OAAOhE,oBAAAA,EAAEC,OAAO;MACdO,MAAMR,oBAAAA,EAAEwB,SAASxB,oBAAAA,EAAEK,MAAM;IAC3B,CAAA;IACA6D,QAAQlE,oBAAAA,EAAEC,OAAO;MACfkE,QAAQZ;IACV,CAAA;EACF,CAAA,EAAA;EAAI;mBAPSa,iBAAAA;AAQf,GArBiBT,oBAAAA,kBAAAA,CAAAA,EAAAA;AAuBV,IAAMU,gBAAgB;EAAC;EAAQ;EAAU;;AAEzC,IAAMC,0BAA0BtE,oBAAAA,EAAEiD,QACvCjD,oBAAAA,EAAEC,OAAO;EACPsE,aAAavE,oBAAAA,EAAEwB,SAASxB,oBAAAA,EAAEG,QAAO,GAAIkE,aAAAA,CAAAA;EACrCG,WAAWxE,oBAAAA,EAAEwB,SAASxB,oBAAAA,EAAEK,MAAM;EAC9BoE,aAAazE,oBAAAA,EAAEwB,SAASxB,oBAAAA,EAAEK,MAAM;EAChCqE,eAAe1E,oBAAAA,EAAEwB,SAASxB,oBAAAA,EAAEK,MAAM;EAClCsE,eAAe3E,oBAAAA,EAAEwB,SAASxB,oBAAAA,EAAEkC,OAAO;AACrC,CAAA,CAAA;",
6
- "names": ["import_echo_schema", "AIChatType", "TypedObject", "typename", "version", "assistantChatQueue", "Ref", "Expando", "ApiAuthorizationKey", "S", "Struct", "type", "Literal", "key", "String", "placement", "Union", "name", "ApiAuthorizationOauth", "clientId", "clientSecret", "tokenUrl", "grantType", "ApiAuthorization", "ServiceInterfaceFunction", "kind", "fn", "FunctionType", "ServiceInterfaceWorkflow", "workflow", "ComputeGraph", "ServiceInterfaceApi", "schemaUrl", "optional", "schema", "Any", "authorization", "ServiceInterface", "ServiceType", "serviceId", "description", "category", "enabled", "Boolean", "interfaces", "Array", "categoryIcons", "finance", "health", "geolocation", "education", "entertainment", "shopping", "travel", "utilities", "weather", "TemplateInputType", "TemplateInputSchema", "mutable", "Enums", "value", "TemplateKinds", "TemplateKindSchema", "include", "TemplateType", "source", "inputs", "command", "AssistantAction", "ASSISTANT_ACTION", "ASSISTANT_PLUGIN", "CreateChat", "TaggedClass", "input", "spaceId", "output", "object", "CreateTemplate", "LLM_PROVIDERS", "AssistantSettingsSchema", "llmProvider", "edgeModel", "ollamaModel", "lmstudioModel", "customPrompts"]
7
- }