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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/dist/lib/browser/{chunk-DEIGOD4U.mjs → chunk-B4HAWUFW.mjs} +710 -246
  2. package/dist/lib/browser/chunk-B4HAWUFW.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +5 -324
  4. package/dist/lib/browser/index.mjs.map +4 -4
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/testing/index.mjs +123 -86
  7. package/dist/lib/browser/testing/index.mjs.map +4 -4
  8. package/dist/lib/node/{chunk-7VH7NMIM.cjs → chunk-NOB7CIIC.cjs} +716 -259
  9. package/dist/lib/node/chunk-NOB7CIIC.cjs.map +7 -0
  10. package/dist/lib/node/index.cjs +35 -354
  11. package/dist/lib/node/index.cjs.map +4 -4
  12. package/dist/lib/node/meta.json +1 -1
  13. package/dist/lib/node/testing/index.cjs +112 -77
  14. package/dist/lib/node/testing/index.cjs.map +4 -4
  15. package/dist/lib/node-esm/{chunk-7JI4MDGL.mjs → chunk-SAWYU3V5.mjs} +710 -246
  16. package/dist/lib/node-esm/chunk-SAWYU3V5.mjs.map +7 -0
  17. package/dist/lib/node-esm/index.mjs +5 -324
  18. package/dist/lib/node-esm/index.mjs.map +4 -4
  19. package/dist/lib/node-esm/meta.json +1 -1
  20. package/dist/lib/node-esm/testing/index.mjs +123 -86
  21. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  22. package/dist/types/src/ai-service/parser.d.ts.map +1 -1
  23. package/dist/types/src/ai-service/stream.d.ts.map +1 -1
  24. package/dist/types/src/ai-service/testing/test-stream.d.ts.map +1 -1
  25. package/dist/types/src/ai-service/types.d.ts +133 -133
  26. package/dist/types/src/ai-service/types.d.ts.map +1 -1
  27. package/dist/types/src/ai-service/util/sse.d.ts.map +1 -1
  28. package/dist/types/src/{conversation → experimental/conversation}/conversation.d.ts +2 -18
  29. package/dist/types/src/experimental/conversation/conversation.d.ts.map +1 -0
  30. package/dist/types/src/experimental/conversation/conversation.test.d.ts.map +1 -0
  31. package/dist/types/src/experimental/conversation/index.d.ts.map +1 -0
  32. package/dist/types/src/{conversation → experimental/conversation}/types.d.ts +9 -9
  33. package/dist/types/src/experimental/conversation/types.d.ts.map +1 -0
  34. package/dist/types/src/experimental/cypher/ast.d.ts.map +1 -0
  35. package/dist/types/src/experimental/cypher/combinators.d.ts.map +1 -0
  36. package/dist/types/src/experimental/cypher/combinators.test.d.ts.map +1 -0
  37. package/dist/types/src/experimental/cypher/echo-data-source.d.ts.map +1 -0
  38. package/dist/types/src/experimental/cypher/execution-plan.d.ts.map +1 -0
  39. package/dist/types/src/experimental/cypher/execution-plan.test.d.ts.map +1 -0
  40. package/dist/types/src/experimental/cypher/index.d.ts.map +1 -0
  41. package/dist/types/src/experimental/cypher/parjs.d.ts.map +1 -0
  42. package/dist/types/src/experimental/cypher/parser.d.ts.map +1 -0
  43. package/dist/types/src/experimental/cypher/query-executor.d.ts.map +1 -0
  44. package/dist/types/src/experimental/cypher/query-executor.test.d.ts.map +1 -0
  45. package/dist/types/src/experimental/cypher/schema.d.ts.map +1 -0
  46. package/dist/types/src/experimental/cypher/schema.test.d.ts.map +1 -0
  47. package/dist/types/src/experimental/index.d.ts +3 -0
  48. package/dist/types/src/experimental/index.d.ts.map +1 -0
  49. package/dist/types/src/experimental/ner/ner.test.d.ts +2 -0
  50. package/dist/types/src/experimental/ner/ner.test.d.ts.map +1 -0
  51. package/dist/types/src/experimental/research/exa.d.ts +6 -0
  52. package/dist/types/src/experimental/research/exa.d.ts.map +1 -0
  53. package/dist/types/src/experimental/research/research.test.d.ts +2 -0
  54. package/dist/types/src/experimental/research/research.test.d.ts.map +1 -0
  55. package/dist/types/src/index.d.ts +1 -2
  56. package/dist/types/src/index.d.ts.map +1 -1
  57. package/dist/types/src/session/index.d.ts +2 -0
  58. package/dist/types/src/session/index.d.ts.map +1 -1
  59. package/dist/types/src/session/session.d.ts +33 -7
  60. package/dist/types/src/session/session.d.ts.map +1 -1
  61. package/dist/types/src/session/tools.d.ts +18 -0
  62. package/dist/types/src/session/tools.d.ts.map +1 -0
  63. package/dist/types/src/session/version-pin.d.ts +22 -0
  64. package/dist/types/src/session/version-pin.d.ts.map +1 -0
  65. package/dist/types/src/session/version-pin.test.d.ts +2 -0
  66. package/dist/types/src/session/version-pin.test.d.ts.map +1 -0
  67. package/dist/types/src/testing/index.d.ts +1 -0
  68. package/dist/types/src/testing/index.d.ts.map +1 -1
  69. package/dist/types/src/testing/logger.d.ts +1 -1
  70. package/dist/types/src/testing/logger.d.ts.map +1 -1
  71. package/dist/types/src/testing/ollama.d.ts.map +1 -1
  72. package/dist/types/src/testing/printer.d.ts +6 -0
  73. package/dist/types/src/testing/printer.d.ts.map +1 -0
  74. package/dist/types/src/testing/query-promts.d.ts +4 -4
  75. package/dist/types/src/testing/query-promts.d.ts.map +1 -1
  76. package/dist/types/src/testing/test-data.d.ts +5 -5
  77. package/dist/types/src/testing/test-data.d.ts.map +1 -1
  78. package/dist/types/src/testing/test-schema.d.ts +25 -23
  79. package/dist/types/src/testing/test-schema.d.ts.map +1 -1
  80. package/dist/types/src/util/trim.d.ts.map +1 -1
  81. package/dist/types/tsconfig.tsbuildinfo +1 -1
  82. package/package.json +20 -14
  83. package/src/ai-service/client.test.ts +5 -5
  84. package/src/ai-service/ollama-client.ts +8 -8
  85. package/src/ai-service/types.ts +14 -14
  86. package/src/bin/chat.ts +3 -3
  87. package/src/{conversation → experimental/conversation}/conversation.test.ts +5 -5
  88. package/src/{conversation → experimental/conversation}/conversation.ts +3 -112
  89. package/src/{conversation → experimental/conversation}/types.ts +10 -10
  90. package/src/{cypher → experimental/cypher}/combinators.test.ts +4 -4
  91. package/src/{cypher → experimental/cypher}/echo-data-source.ts +11 -10
  92. package/src/{cypher → experimental/cypher}/execution-plan.test.ts +1 -1
  93. package/src/{cypher → experimental/cypher}/query-executor.test.ts +2 -2
  94. package/src/{cypher → experimental/cypher}/schema.test.ts +3 -3
  95. package/src/{cypher → experimental/cypher}/schema.ts +1 -1
  96. package/src/experimental/index.ts +6 -0
  97. package/src/experimental/ner/ner.test.ts +163 -0
  98. package/src/experimental/research/exa.ts +38 -0
  99. package/src/experimental/research/instructions.tpl +64 -0
  100. package/src/experimental/research/research.test.ts +263 -0
  101. package/src/index.ts +3 -2
  102. package/src/session/index.ts +2 -0
  103. package/src/session/session.test.ts +30 -58
  104. package/src/session/session.ts +296 -150
  105. package/src/session/tools.ts +117 -0
  106. package/src/session/version-pin.test.ts +26 -0
  107. package/src/session/version-pin.ts +49 -0
  108. package/src/testing/artifacts.test.ts +22 -22
  109. package/src/testing/index.ts +1 -0
  110. package/src/testing/logger.ts +1 -1
  111. package/src/testing/printer.ts +41 -0
  112. package/src/testing/query-promts.ts +6 -6
  113. package/src/testing/query.test.ts +4 -5
  114. package/src/testing/test-data.ts +63 -56
  115. package/src/testing/test-schema.ts +28 -29
  116. package/src/typedefs.d.ts +8 -0
  117. package/dist/lib/browser/chunk-DEIGOD4U.mjs.map +0 -7
  118. package/dist/lib/node/chunk-7VH7NMIM.cjs.map +0 -7
  119. package/dist/lib/node-esm/chunk-7JI4MDGL.mjs.map +0 -7
  120. package/dist/types/src/conversation/conversation.d.ts.map +0 -1
  121. package/dist/types/src/conversation/conversation.test.d.ts.map +0 -1
  122. package/dist/types/src/conversation/index.d.ts.map +0 -1
  123. package/dist/types/src/conversation/types.d.ts.map +0 -1
  124. package/dist/types/src/cypher/ast.d.ts.map +0 -1
  125. package/dist/types/src/cypher/combinators.d.ts.map +0 -1
  126. package/dist/types/src/cypher/combinators.test.d.ts.map +0 -1
  127. package/dist/types/src/cypher/echo-data-source.d.ts.map +0 -1
  128. package/dist/types/src/cypher/execution-plan.d.ts.map +0 -1
  129. package/dist/types/src/cypher/execution-plan.test.d.ts.map +0 -1
  130. package/dist/types/src/cypher/index.d.ts.map +0 -1
  131. package/dist/types/src/cypher/parjs.d.ts.map +0 -1
  132. package/dist/types/src/cypher/parser.d.ts.map +0 -1
  133. package/dist/types/src/cypher/query-executor.d.ts.map +0 -1
  134. package/dist/types/src/cypher/query-executor.test.d.ts.map +0 -1
  135. package/dist/types/src/cypher/schema.d.ts.map +0 -1
  136. package/dist/types/src/cypher/schema.test.d.ts.map +0 -1
  137. /package/dist/types/src/{conversation → experimental/conversation}/conversation.test.d.ts +0 -0
  138. /package/dist/types/src/{conversation → experimental/conversation}/index.d.ts +0 -0
  139. /package/dist/types/src/{cypher → experimental/cypher}/ast.d.ts +0 -0
  140. /package/dist/types/src/{cypher → experimental/cypher}/combinators.d.ts +0 -0
  141. /package/dist/types/src/{cypher → experimental/cypher}/combinators.test.d.ts +0 -0
  142. /package/dist/types/src/{cypher → experimental/cypher}/echo-data-source.d.ts +0 -0
  143. /package/dist/types/src/{cypher → experimental/cypher}/execution-plan.d.ts +0 -0
  144. /package/dist/types/src/{cypher → experimental/cypher}/execution-plan.test.d.ts +0 -0
  145. /package/dist/types/src/{cypher → experimental/cypher}/index.d.ts +0 -0
  146. /package/dist/types/src/{cypher → experimental/cypher}/parjs.d.ts +0 -0
  147. /package/dist/types/src/{cypher → experimental/cypher}/parser.d.ts +0 -0
  148. /package/dist/types/src/{cypher → experimental/cypher}/query-executor.d.ts +0 -0
  149. /package/dist/types/src/{cypher → experimental/cypher}/query-executor.test.d.ts +0 -0
  150. /package/dist/types/src/{cypher → experimental/cypher}/schema.d.ts +0 -0
  151. /package/dist/types/src/{cypher → experimental/cypher}/schema.test.d.ts +0 -0
  152. /package/src/{conversation → experimental/conversation}/index.ts +0 -0
  153. /package/src/{cypher → experimental/cypher}/ast.ts +0 -0
  154. /package/src/{cypher → experimental/cypher}/combinators.ts +0 -0
  155. /package/src/{cypher → experimental/cypher}/execution-plan.ts +0 -0
  156. /package/src/{cypher → experimental/cypher}/index.ts +0 -0
  157. /package/src/{cypher → experimental/cypher}/parjs-shims.d.ts +0 -0
  158. /package/src/{cypher → experimental/cypher}/parjs.ts +0 -0
  159. /package/src/{cypher → experimental/cypher}/parser.ts +0 -0
  160. /package/src/{cypher → experimental/cypher}/query-executor.ts +0 -0
@@ -1,6 +1,8 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  AIServiceEdgeClient,
4
+ AIServiecOverloadedError,
5
+ AISession,
4
6
  DEFAULT_EDGE_MODEL,
5
7
  DEFAULT_EDGE_MODELS,
6
8
  DEFAULT_OLLAMA_ENDPOINT,
@@ -16,6 +18,7 @@ import {
16
18
  OllamaClient,
17
19
  StreamTransform,
18
20
  ToolTypes,
21
+ VersionPin,
19
22
  createArtifactElement,
20
23
  createGenerationStream,
21
24
  emitMessageAsEvents,
@@ -30,330 +33,7 @@ import {
30
33
  parseCypherQuery,
31
34
  runLLM,
32
35
  runTools
33
- } from "./chunk-7JI4MDGL.mjs";
34
-
35
- // packages/experimental/assistant/src/session/session.ts
36
- import { Schema as S } from "effect";
37
- import { defineTool, Message, ToolResult } from "@dxos/artifact";
38
- import { Event, synchronized } from "@dxos/async";
39
- import { create } from "@dxos/echo-schema";
40
- import { invariant } from "@dxos/invariant";
41
- import { log } from "@dxos/log";
42
- function _ts_decorate(decorators, target, key, desc) {
43
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
44
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
45
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
46
- return c > 3 && r && Object.defineProperty(target, key, r), r;
47
- }
48
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/experimental/assistant/src/session/session.ts";
49
- var AISession = class _AISession {
50
- constructor(_options) {
51
- this._options = _options;
52
- this._parser = new MixedStreamParser();
53
- this._pending = [];
54
- this._history = [];
55
- this.message = this._parser.message;
56
- this.block = this._parser.block;
57
- this.update = this._parser.update;
58
- this.streamEvent = this._parser.streamEvent;
59
- this.userMessage = new Event();
60
- this._parser.message.on((message) => {
61
- this._pending.push(message);
62
- });
63
- }
64
- async run(options) {
65
- const systemTools = [
66
- defineTool("system", {
67
- name: "query_artifact_definitions",
68
- description: "Query the available artifact definitions",
69
- schema: S.Struct({}),
70
- execute: async () => {
71
- return ToolResult.Success({
72
- artifactDefinitions: options.artifacts.map((artifact) => ({
73
- id: artifact.id,
74
- name: artifact.name,
75
- description: artifact.description
76
- }))
77
- });
78
- }
79
- })
80
- ];
81
- switch (this._options.operationModel) {
82
- case "planning":
83
- systemTools.push(defineTool("system", {
84
- name: "create_plan",
85
- description: "Create a plan. Make sure that each step is independent and can be executed solely on the data returned by the previous step. The steps only share the data that is specified in the plan.",
86
- schema: S.Struct({
87
- goal: S.String.annotations({
88
- description: "The goal that the plan will achieve."
89
- }),
90
- steps: S.Array(S.Struct({
91
- action: S.String.annotations({
92
- description: "Complete, detailed action to perform."
93
- }),
94
- input: S.String.annotations({
95
- description: "The required input data for this step. First step must not require any data."
96
- }),
97
- output: S.String.annotations({
98
- description: "The output data from this step. This is passed to the next step as input."
99
- }),
100
- requiredArtifactIds: S.Array(S.String).annotations({
101
- description: "The ids of the artifacts required to perform this step.",
102
- examples: [
103
- [
104
- "artifact:dxos.org/example/Test"
105
- ]
106
- ]
107
- })
108
- })).annotations({
109
- description: "Steps"
110
- })
111
- }),
112
- execute: async ({ goal, steps }) => {
113
- const missingArtifactIds = steps.flatMap((step) => step.requiredArtifactIds).filter((artifactId) => !options.artifacts.some((artifact) => artifact.id === artifactId));
114
- if (missingArtifactIds.length > 0) {
115
- return ToolResult.Error(`One or more artifact ids are invalid: ${missingArtifactIds.join(", ")}`);
116
- }
117
- const stepResults = [];
118
- for (const step of steps) {
119
- log("executing step", {
120
- action: step.action
121
- }, {
122
- F: __dxlog_file,
123
- L: 160,
124
- S: this,
125
- C: (f, a) => f(...a)
126
- });
127
- const session = new _AISession({
128
- operationModel: "immediate"
129
- });
130
- session.message.on((ev) => this.message.emit(ev));
131
- session.block.on((ev) => this.block.emit(ev));
132
- session.update.on((ev) => this.update.emit(ev));
133
- session.streamEvent.on((ev) => this.streamEvent.emit(ev));
134
- session.userMessage.on((ev) => this.userMessage.emit(ev));
135
- const messages = await session.run({
136
- client: options.client,
137
- artifacts: options.artifacts,
138
- tools: options.tools,
139
- history: options.history,
140
- extensions: options.extensions,
141
- generationOptions: options.generationOptions,
142
- requiredArtifactIds: step.requiredArtifactIds.slice(),
143
- prompt: `
144
- You are an agent that executes the subtask in a plan.
145
-
146
- While you know the plan's goal only focus on your subtask
147
- Use the data from the previous step to complete your task.
148
- Return all of the data from "output" in your last message.
149
-
150
- Current step (that you need to complete):
151
- ${JSON.stringify({
152
- goal,
153
- input: step.input,
154
- output: step.output,
155
- yourTask: step.action
156
- }, null, 2)}
157
-
158
- Previous step results:
159
- ${JSON.stringify(stepResults.at(-1))}.
160
- `
161
- });
162
- const result = messages.at(-1);
163
- stepResults.push(result);
164
- }
165
- return ToolResult.Success({
166
- stepResults
167
- });
168
- }
169
- }));
170
- break;
171
- case "immediate":
172
- systemTools.push(defineTool("system", {
173
- name: "require_artifact_definitions",
174
- description: "Require the use of specific artifact definitions. This will allow the model to interact with artifact definitions and use their tools.",
175
- schema: S.Struct({
176
- artifactDefinitionIds: S.Array(S.String).annotations({
177
- description: "The ids of the artifact definitions to require",
178
- examples: [
179
- [
180
- "artifact:dxos.org/example/Test"
181
- ]
182
- ]
183
- })
184
- }),
185
- execute: async ({ artifactDefinitionIds }) => {
186
- const missingArtifactDefinitionIds = artifactDefinitionIds.filter((artifactId) => !options.artifacts.some((artifact) => artifact.id === artifactId));
187
- if (missingArtifactDefinitionIds.length > 0) {
188
- return ToolResult.Error(`One or more artifact definition ids are invalid: ${missingArtifactDefinitionIds.join(", ")}`);
189
- }
190
- for (const artifactDefinitionId of artifactDefinitionIds) {
191
- requiredArtifactIds.add(artifactDefinitionId);
192
- }
193
- return ToolResult.Success({});
194
- }
195
- }));
196
- break;
197
- }
198
- this._history = [
199
- ...options.history
200
- ];
201
- this._pending = [
202
- create(Message, {
203
- role: "user",
204
- content: [
205
- {
206
- type: "text",
207
- text: options.prompt
208
- }
209
- ]
210
- })
211
- ];
212
- this.userMessage.emit(this._pending.at(-1));
213
- this._stream = void 0;
214
- let error;
215
- const requiredArtifactIds = new Set(options.requiredArtifactIds ?? []);
216
- try {
217
- let more = false;
218
- do {
219
- const tools = [
220
- ...systemTools,
221
- ...options.tools,
222
- ...options.artifacts.filter((artifact) => requiredArtifactIds.has(artifact.id)).flatMap((artifact) => artifact.tools)
223
- ];
224
- log("request", {
225
- pending: this._pending.length,
226
- history: this._history.length,
227
- tools: tools.map((tool) => tool.name)
228
- }, {
229
- F: __dxlog_file,
230
- L: 264,
231
- S: this,
232
- C: (f, a) => f(...a)
233
- });
234
- this._stream = await options.client.execStream({
235
- ...options.generationOptions ?? {},
236
- // TODO(burdon): Rename messages or separate history/message.
237
- history: [
238
- ...this._history,
239
- ...this._pending
240
- ],
241
- tools,
242
- systemPrompt: options.systemPrompt ?? createBaseInstructions({
243
- availableArtifacts: Array.from(requiredArtifactIds),
244
- operationModel: this._options.operationModel
245
- })
246
- });
247
- await this._parser.parse(this._stream);
248
- await this._stream.complete();
249
- log("response", {
250
- pending: this._pending
251
- }, {
252
- F: __dxlog_file,
253
- L: 289,
254
- S: this,
255
- C: (f, a) => f(...a)
256
- });
257
- more = false;
258
- const message = this._pending.at(-1);
259
- invariant(message, void 0, {
260
- F: __dxlog_file,
261
- L: 294,
262
- S: this,
263
- A: [
264
- "message",
265
- ""
266
- ]
267
- });
268
- if (isToolUse(message)) {
269
- log("tool request...", void 0, {
270
- F: __dxlog_file,
271
- L: 296,
272
- S: this,
273
- C: (f, a) => f(...a)
274
- });
275
- const response = await runTools({
276
- message: this._pending.at(-1),
277
- tools,
278
- extensions: options.extensions ?? {}
279
- });
280
- log("tool response", {
281
- response
282
- }, {
283
- F: __dxlog_file,
284
- L: 303,
285
- S: this,
286
- C: (f, a) => f(...a)
287
- });
288
- switch (response.type) {
289
- case "continue": {
290
- this._pending = [
291
- ...this._pending,
292
- response.message
293
- ];
294
- this.userMessage.emit(response.message);
295
- more = true;
296
- break;
297
- }
298
- }
299
- }
300
- } while (more);
301
- } catch (err) {
302
- log.catch(err, void 0, {
303
- F: __dxlog_file,
304
- L: 315,
305
- S: this,
306
- C: (f, a) => f(...a)
307
- });
308
- if (err instanceof Error && err.message.includes("Overloaded")) {
309
- error = new AIServiecOverloadedError("AI service overloaded", {
310
- cause: err
311
- });
312
- } else {
313
- error = new Error("AI service error", {
314
- cause: err
315
- });
316
- }
317
- } finally {
318
- this._stream = void 0;
319
- }
320
- if (error) {
321
- throw error;
322
- }
323
- return this._pending;
324
- }
325
- abort() {
326
- this._stream?.abort();
327
- }
328
- };
329
- _ts_decorate([
330
- synchronized
331
- ], AISession.prototype, "run", null);
332
- var createBaseInstructions = ({ availableArtifacts, operationModel }) => `
333
- You are a friendly, advanced AI assistant capable of creating and managing artifacts from available data and tools.
334
- Your task is to process user commands and questions and decide how best to respond.
335
- In some cases, you will need to create or reference data objects called artifacts.
336
-
337
- Follow these guidelines carefully:
338
-
339
- Decision-making:
340
-
341
- - Analyze the structure and type of the content in the user's message.
342
- - Can you complete the task using the available artifacts?
343
- - If you can't complete the task using the available artifacts, query the list of available artifacts using the appropriate tool.
344
- - Identify which artifacts are relevant to the user's request.
345
- ${operationModel === "planning" ? `
346
- - Break down the user's request into a step-by-step plan that you will use to execute the user's request, the plan items should include artifacts which will be used to perform the actions.
347
- ` : `
348
- - Are the required artifacts already available?
349
- - If not, select which artifact(s) will be the most relevant and require them using the require_artifacts tool.
350
- - The require'd artifact tools will be available for use after require.
351
- `}
352
-
353
- ${availableArtifacts.length > 0 ? `Artifacts already in context: ${availableArtifacts.join("\n")}` : ""}
354
- `;
355
- var AIServiecOverloadedError = class extends S.TaggedError()("AIServiecOverloadedError", {}) {
356
- };
36
+ } from "./chunk-SAWYU3V5.mjs";
357
37
  export {
358
38
  AIServiceEdgeClient,
359
39
  AIServiecOverloadedError,
@@ -373,6 +53,7 @@ export {
373
53
  OllamaClient,
374
54
  StreamTransform,
375
55
  ToolTypes,
56
+ VersionPin,
376
57
  createArtifactElement,
377
58
  createGenerationStream,
378
59
  emitMessageAsEvents,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/session/session.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Schema as S } from 'effect';\n\nimport { defineTool, Message, ToolResult, type ArtifactDefinition, type Tool } from '@dxos/artifact';\nimport { Event, synchronized } from '@dxos/async';\nimport { create } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { log } from '@dxos/log';\n\nimport { MixedStreamParser, type AIServiceClient, type GenerateRequest, type GenerationStream } from '../ai-service';\nimport { isToolUse, runTools } from '../conversation';\n/**\n * Contains message history, tools, current context.\n * Current context means the state of the app, time of day, and other contextual information.\n * It makes requests to the model, its a state machine.\n * It keeps track of the current goal.\n * It manages the context window.\n * Tracks the success criteria of reaching the goal, exposing metrics (stretch)\n * Could be run locally in the app or remotely.\n * Could be personal or shared.\n */\n\nexport type SessionRunOptions = {\n client: AIServiceClient;\n\n artifacts: ArtifactDefinition[];\n\n /**\n * Non-artifact specific tools.\n */\n tools: Tool[];\n\n history: Message[];\n\n prompt: string;\n\n generationOptions?: Pick<GenerateRequest, 'model'>;\n\n extensions?: ToolContextExtensions;\n\n systemPrompt?: string;\n\n /**\n * Pre-require artifacts.\n */\n requiredArtifactIds?: string[];\n};\n\ntype OperationModel = 'planning' | 'immediate';\n\nexport type AiSessionOptions = {\n /**\n * In planning mode, the model will create a plan before executing the user's request.\n * The plan will determine the artifacts that will be used to perform the actions.\n * In require mode, the model will select the artifacts that will be used to perform the actions.\n */\n operationModel: OperationModel;\n};\n\nexport class AISession {\n /** SSE stream parser. */\n private readonly _parser = new MixedStreamParser();\n\n /** Pending messages (incl. the current user request). */\n private _pending: Message[] = [];\n\n /** Current streaming response. */\n private _stream: GenerationStream | undefined;\n\n /** Prior history from queue. */\n private _history: Message[] = [];\n\n /**\n * New message.\n */\n public readonly message = this._parser.message;\n\n /**\n * Complete block added to Message.\n */\n public readonly block = this._parser.block;\n\n /**\n * Update partial block (while streaming).\n */\n public readonly update = this._parser.update;\n\n public readonly streamEvent = this._parser.streamEvent;\n\n /**\n * User prompt or tool result.\n */\n public readonly userMessage = new Event<Message>();\n\n constructor(private readonly _options: AiSessionOptions) {\n // Message complete.\n this._parser.message.on((message) => {\n this._pending.push(message);\n });\n }\n\n @synchronized\n async run(options: SessionRunOptions): Promise<Message[]> {\n const systemTools: Tool[] = [\n defineTool('system', {\n name: 'query_artifact_definitions',\n description: 'Query the available artifact definitions',\n schema: S.Struct({}),\n execute: async () => {\n return ToolResult.Success({\n artifactDefinitions: options.artifacts.map((artifact) => ({\n id: artifact.id,\n name: artifact.name,\n description: artifact.description,\n })),\n });\n },\n }),\n ];\n switch (this._options.operationModel) {\n case 'planning':\n systemTools.push(\n defineTool('system', {\n name: 'create_plan',\n description:\n 'Create a plan. Make sure that each step is independent and can be executed solely on the data returned by the previous step. The steps only share the data that is specified in the plan.',\n schema: S.Struct({\n goal: S.String.annotations({ description: 'The goal that the plan will achieve.' }),\n steps: S.Array(\n S.Struct({\n action: S.String.annotations({\n description: 'Complete, detailed action to perform.',\n }),\n input: S.String.annotations({\n description: 'The required input data for this step. First step must not require any data.',\n }),\n output: S.String.annotations({\n description: 'The output data from this step. This is passed to the next step as input.',\n }),\n requiredArtifactIds: S.Array(S.String).annotations({\n description: 'The ids of the artifacts required to perform this step.',\n examples: [['artifact:dxos.org/example/Test']],\n }),\n }),\n ).annotations({ description: 'Steps' }),\n }),\n execute: async ({ goal, steps }) => {\n const missingArtifactIds = steps\n .flatMap((step) => step.requiredArtifactIds)\n .filter((artifactId) => !options.artifacts.some((artifact) => artifact.id === artifactId));\n if (missingArtifactIds.length > 0) {\n return ToolResult.Error(`One or more artifact ids are invalid: ${missingArtifactIds.join(', ')}`);\n }\n\n const stepResults: any[] = [];\n for (const step of steps) {\n log('executing step', { action: step.action });\n const session = new AISession({ operationModel: 'immediate' });\n session.message.on((ev) => this.message.emit(ev));\n session.block.on((ev) => this.block.emit(ev));\n session.update.on((ev) => this.update.emit(ev));\n session.streamEvent.on((ev) => this.streamEvent.emit(ev));\n session.userMessage.on((ev) => this.userMessage.emit(ev));\n\n const messages = await session.run({\n client: options.client,\n artifacts: options.artifacts,\n tools: options.tools,\n history: options.history,\n extensions: options.extensions,\n generationOptions: options.generationOptions,\n requiredArtifactIds: step.requiredArtifactIds.slice(),\n prompt: `\n You are an agent that executes the subtask in a plan.\n \n While you know the plan's goal only focus on your subtask\n Use the data from the previous step to complete your task.\n Return all of the data from \"output\" in your last message.\n \n Current step (that you need to complete):\n ${JSON.stringify(\n {\n goal,\n input: step.input,\n output: step.output,\n yourTask: step.action,\n },\n null,\n 2,\n )}\n \n Previous step results:\n ${JSON.stringify(stepResults.at(-1))}.\n `,\n });\n const result = messages.at(-1);\n stepResults.push(result);\n }\n\n return ToolResult.Success({ stepResults });\n },\n }),\n );\n break;\n case 'immediate':\n systemTools.push(\n defineTool('system', {\n name: 'require_artifact_definitions',\n description:\n 'Require the use of specific artifact definitions. This will allow the model to interact with artifact definitions and use their tools.',\n schema: S.Struct({\n artifactDefinitionIds: S.Array(S.String).annotations({\n description: 'The ids of the artifact definitions to require',\n examples: [['artifact:dxos.org/example/Test']],\n }),\n }),\n execute: async ({ artifactDefinitionIds }) => {\n const missingArtifactDefinitionIds = artifactDefinitionIds.filter(\n (artifactId) => !options.artifacts.some((artifact) => artifact.id === artifactId),\n );\n if (missingArtifactDefinitionIds.length > 0) {\n return ToolResult.Error(\n `One or more artifact definition ids are invalid: ${missingArtifactDefinitionIds.join(', ')}`,\n );\n }\n\n for (const artifactDefinitionId of artifactDefinitionIds) {\n requiredArtifactIds.add(artifactDefinitionId);\n }\n\n return ToolResult.Success({});\n },\n }),\n );\n break;\n }\n\n this._history = [...options.history];\n this._pending = [\n create(Message, {\n role: 'user',\n content: [{ type: 'text', text: options.prompt }],\n }),\n ];\n this.userMessage.emit(this._pending.at(-1)!);\n this._stream = undefined;\n let error: Error | undefined;\n\n const requiredArtifactIds = new Set<string>(options.requiredArtifactIds ?? []);\n try {\n let more = false;\n do {\n const tools = [\n ...systemTools,\n ...options.tools,\n ...options.artifacts\n .filter((artifact) => requiredArtifactIds.has(artifact.id))\n .flatMap((artifact) => artifact.tools),\n ];\n\n log('request', {\n pending: this._pending.length,\n history: this._history.length,\n tools: tools.map((tool) => tool.name),\n });\n\n // Open request stream.\n this._stream = await options.client.execStream({\n ...(options.generationOptions ?? {}),\n // TODO(burdon): Rename messages or separate history/message.\n history: [...this._history, ...this._pending],\n tools,\n systemPrompt:\n options.systemPrompt ??\n createBaseInstructions({\n availableArtifacts: Array.from(requiredArtifactIds),\n operationModel: this._options.operationModel,\n }),\n });\n\n // Wait until complete.\n await this._parser.parse(this._stream);\n await this._stream.complete();\n\n // Add messages.\n log('response', { pending: this._pending });\n\n // Resolve tool use locally.\n more = false;\n const message = this._pending.at(-1);\n invariant(message);\n if (isToolUse(message)) {\n log('tool request...');\n const response = await runTools({\n message: this._pending.at(-1)!,\n tools,\n extensions: options.extensions ?? {},\n });\n\n log('tool response', { response });\n switch (response.type) {\n case 'continue': {\n this._pending = [...this._pending, response.message];\n this.userMessage.emit(response.message);\n more = true;\n break;\n }\n }\n }\n } while (more);\n } catch (err) {\n log.catch(err);\n if (err instanceof Error && err.message.includes('Overloaded')) {\n error = new AIServiecOverloadedError('AI service overloaded', { cause: err });\n } else {\n error = new Error('AI service error', { cause: err });\n }\n } finally {\n this._stream = undefined;\n }\n\n if (error) {\n throw error;\n }\n\n return this._pending;\n }\n\n abort() {\n this._stream?.abort();\n }\n}\n\n// TODO(burdon): Use handlebars template with effect-schema input.\nconst createBaseInstructions = ({\n availableArtifacts,\n operationModel,\n}: {\n availableArtifacts: string[];\n operationModel: OperationModel;\n}) => `\n You are a friendly, advanced AI assistant capable of creating and managing artifacts from available data and tools. \n Your task is to process user commands and questions and decide how best to respond.\n In some cases, you will need to create or reference data objects called artifacts.\n\n Follow these guidelines carefully:\n\n Decision-making:\n\n - Analyze the structure and type of the content in the user's message.\n - Can you complete the task using the available artifacts?\n - If you can't complete the task using the available artifacts, query the list of available artifacts using the appropriate tool.\n - Identify which artifacts are relevant to the user's request.\n ${\n operationModel === 'planning'\n ? `\n - Break down the user's request into a step-by-step plan that you will use to execute the user's request, the plan items should include artifacts which will be used to perform the actions.\n `\n : `\n - Are the required artifacts already available?\n - If not, select which artifact(s) will be the most relevant and require them using the require_artifacts tool.\n - The require'd artifact tools will be available for use after require.\n `\n }\n\n ${availableArtifacts.length > 0 ? `Artifacts already in context: ${availableArtifacts.join('\\n')}` : ''}\n`;\n\nexport class AIServiecOverloadedError extends S.TaggedError<AIServiecOverloadedError>()(\n 'AIServiecOverloadedError',\n {},\n) {}\n"],
5
- "mappings": "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",
6
- "names": ["Schema", "S", "defineTool", "Message", "ToolResult", "Event", "synchronized", "create", "invariant", "log", "AISession", "constructor", "_options", "_parser", "MixedStreamParser", "_pending", "_history", "message", "block", "update", "streamEvent", "userMessage", "Event", "on", "push", "run", "options", "systemTools", "defineTool", "name", "description", "schema", "S", "Struct", "execute", "ToolResult", "Success", "artifactDefinitions", "artifacts", "map", "artifact", "id", "operationModel", "goal", "String", "annotations", "steps", "Array", "action", "input", "output", "requiredArtifactIds", "examples", "missingArtifactIds", "flatMap", "step", "filter", "artifactId", "some", "length", "Error", "join", "stepResults", "log", "session", "ev", "emit", "messages", "client", "tools", "history", "extensions", "generationOptions", "slice", "prompt", "JSON", "stringify", "yourTask", "at", "result", "artifactDefinitionIds", "missingArtifactDefinitionIds", "artifactDefinitionId", "add", "create", "Message", "role", "content", "type", "text", "_stream", "undefined", "error", "Set", "more", "has", "pending", "tool", "execStream", "systemPrompt", "createBaseInstructions", "availableArtifacts", "from", "parse", "complete", "invariant", "isToolUse", "response", "runTools", "err", "catch", "includes", "AIServiecOverloadedError", "cause", "abort", "synchronized", "TaggedError"]
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"packages/experimental/assistant/src/ai-service/defs.ts":{"bytes":3427,"imports":[],"format":"esm"},"packages/experimental/assistant/src/ai-service/util/sse.ts":{"bytes":30181,"imports":[],"format":"esm"},"packages/experimental/assistant/src/ai-service/util/index.ts":{"bytes":506,"imports":[{"path":"packages/experimental/assistant/src/ai-service/util/sse.ts","kind":"import-statement","original":"./sse"}],"format":"esm"},"packages/experimental/assistant/src/ai-service/stream.ts":{"bytes":10951,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/ai-service/util/index.ts","kind":"import-statement","original":"./util"}],"format":"esm"},"packages/experimental/assistant/src/ai-service/edge-client.ts":{"bytes":6798,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/ai-service/stream.ts","kind":"import-statement","original":"./stream"}],"format":"esm"},"packages/experimental/assistant/src/ai-service/message-collector.ts":{"bytes":8239,"imports":[],"format":"esm"},"packages/experimental/assistant/src/ai-service/types.ts":{"bytes":6910,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/ai-service/defs.ts","kind":"import-statement","original":"./defs"}],"format":"esm"},"packages/experimental/assistant/src/conversation/conversation.ts":{"bytes":26568,"imports":[{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/conversation/index.ts":{"bytes":528,"imports":[{"path":"packages/experimental/assistant/src/conversation/conversation.ts","kind":"import-statement","original":"./conversation"}],"format":"esm"},"packages/experimental/assistant/src/ai-service/ollama-client.ts":{"bytes":49370,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/ai-service/defs.ts","kind":"import-statement","original":"./defs"},{"path":"packages/experimental/assistant/src/ai-service/message-collector.ts","kind":"import-statement","original":"./message-collector"},{"path":"packages/experimental/assistant/src/ai-service/stream.ts","kind":"import-statement","original":"./stream"},{"path":"packages/experimental/assistant/src/ai-service/types.ts","kind":"import-statement","original":"./types"},{"path":"packages/experimental/assistant/src/conversation/index.ts","kind":"import-statement","original":"../conversation"}],"format":"esm"},"packages/experimental/assistant/src/ai-service/transform.ts":{"bytes":9707,"imports":[{"path":"parsimmon","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/ai-service/parser.ts":{"bytes":44861,"imports":[{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/ai-service/transform.ts","kind":"import-statement","original":"./transform"}],"format":"esm"},"packages/experimental/assistant/src/ai-service/service.ts":{"bytes":1581,"imports":[],"format":"esm"},"packages/experimental/assistant/src/ai-service/index.ts":{"bytes":1252,"imports":[{"path":"packages/experimental/assistant/src/ai-service/defs.ts","kind":"import-statement","original":"./defs"},{"path":"packages/experimental/assistant/src/ai-service/edge-client.ts","kind":"import-statement","original":"./edge-client"},{"path":"packages/experimental/assistant/src/ai-service/message-collector.ts","kind":"import-statement","original":"./message-collector"},{"path":"packages/experimental/assistant/src/ai-service/ollama-client.ts","kind":"import-statement","original":"./ollama-client"},{"path":"packages/experimental/assistant/src/ai-service/parser.ts","kind":"import-statement","original":"./parser"},{"path":"packages/experimental/assistant/src/ai-service/service.ts","kind":"import-statement","original":"./service"},{"path":"packages/experimental/assistant/src/ai-service/stream.ts","kind":"import-statement","original":"./stream"},{"path":"packages/experimental/assistant/src/ai-service/transform.ts","kind":"import-statement","original":"./transform"},{"path":"packages/experimental/assistant/src/ai-service/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/experimental/assistant/src/cypher/parjs.ts":{"bytes":1016,"imports":[{"path":"#parjs","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/cypher/combinators.ts":{"bytes":17930,"imports":[{"path":"packages/experimental/assistant/src/cypher/parjs.ts","kind":"import-statement","original":"./parjs"}],"format":"esm"},"packages/experimental/assistant/src/cypher/parser.ts":{"bytes":1744,"imports":[{"path":"packages/experimental/assistant/src/cypher/combinators.ts","kind":"import-statement","original":"./combinators"}],"format":"esm"},"packages/experimental/assistant/src/cypher/execution-plan.ts":{"bytes":20257,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/cypher/query-executor.ts":{"bytes":16864,"imports":[{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/cypher/execution-plan.ts","kind":"import-statement","original":"./execution-plan"},{"path":"packages/experimental/assistant/src/cypher/parser.ts","kind":"import-statement","original":"./parser"}],"format":"esm"},"packages/experimental/assistant/src/util/trim.ts":{"bytes":1569,"imports":[],"format":"esm"},"packages/experimental/assistant/src/util/index.ts":{"bytes":500,"imports":[{"path":"packages/experimental/assistant/src/util/trim.ts","kind":"import-statement","original":"./trim"}],"format":"esm"},"packages/experimental/assistant/src/cypher/schema.ts":{"bytes":9981,"imports":[{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/util/index.ts","kind":"import-statement","original":"../util"}],"format":"esm"},"packages/experimental/assistant/src/cypher/echo-data-source.ts":{"bytes":14267,"imports":[{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/cypher/schema.ts","kind":"import-statement","original":"./schema"}],"format":"esm"},"packages/experimental/assistant/src/cypher/index.ts":{"bytes":808,"imports":[{"path":"packages/experimental/assistant/src/cypher/parser.ts","kind":"import-statement","original":"./parser"},{"path":"packages/experimental/assistant/src/cypher/query-executor.ts","kind":"import-statement","original":"./query-executor"},{"path":"packages/experimental/assistant/src/cypher/schema.ts","kind":"import-statement","original":"./schema"},{"path":"packages/experimental/assistant/src/cypher/echo-data-source.ts","kind":"import-statement","original":"./echo-data-source"}],"format":"esm"},"packages/experimental/assistant/src/session/session.ts":{"bytes":44928,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/ai-service/index.ts","kind":"import-statement","original":"../ai-service"},{"path":"packages/experimental/assistant/src/conversation/index.ts","kind":"import-statement","original":"../conversation"}],"format":"esm"},"packages/experimental/assistant/src/session/index.ts":{"bytes":510,"imports":[{"path":"packages/experimental/assistant/src/session/session.ts","kind":"import-statement","original":"./session"}],"format":"esm"},"packages/experimental/assistant/src/index.ts":{"bytes":782,"imports":[{"path":"packages/experimental/assistant/src/ai-service/index.ts","kind":"import-statement","original":"./ai-service"},{"path":"packages/experimental/assistant/src/cypher/index.ts","kind":"import-statement","original":"./cypher"},{"path":"packages/experimental/assistant/src/conversation/index.ts","kind":"import-statement","original":"./conversation"},{"path":"packages/experimental/assistant/src/session/index.ts","kind":"import-statement","original":"./session"}],"format":"esm"},"packages/experimental/assistant/src/testing/defs.ts":{"bytes":1016,"imports":[],"format":"esm"},"packages/experimental/assistant/src/testing/logger.ts":{"bytes":14680,"imports":[],"format":"esm"},"packages/experimental/assistant/src/testing/ollama.ts":{"bytes":1785,"imports":[{"path":"packages/experimental/assistant/src/ai-service/index.ts","kind":"import-statement","original":"../ai-service"}],"format":"esm"},"packages/experimental/assistant/src/testing/query-promts.ts":{"bytes":8932,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/cypher/index.ts","kind":"import-statement","original":"../cypher"},{"path":"packages/experimental/assistant/src/util/index.ts","kind":"import-statement","original":"../util"}],"format":"esm"},"packages/experimental/assistant/src/testing/test-data.ts":{"bytes":35050,"imports":[{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/cypher/index.ts","kind":"import-statement","original":"../cypher"},{"path":"packages/experimental/assistant/src/testing/index.ts","kind":"import-statement","original":"../testing"}],"format":"esm"},"packages/experimental/assistant/src/testing/test-schema.ts":{"bytes":8400,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/testing/index.ts":{"bytes":963,"imports":[{"path":"packages/experimental/assistant/src/testing/defs.ts","kind":"import-statement","original":"./defs"},{"path":"packages/experimental/assistant/src/testing/logger.ts","kind":"import-statement","original":"./logger"},{"path":"packages/experimental/assistant/src/testing/ollama.ts","kind":"import-statement","original":"./ollama"},{"path":"packages/experimental/assistant/src/testing/query-promts.ts","kind":"import-statement","original":"./query-promts"},{"path":"packages/experimental/assistant/src/testing/test-data.ts","kind":"import-statement","original":"./test-data"},{"path":"packages/experimental/assistant/src/testing/test-schema.ts","kind":"import-statement","original":"./test-schema"}],"format":"esm"}},"outputs":{"packages/experimental/assistant/dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":20334},"packages/experimental/assistant/dist/lib/node-esm/index.mjs":{"imports":[{"path":"packages/experimental/assistant/dist/lib/node-esm/chunk-7JI4MDGL.mjs","kind":"import-statement"},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["AIServiceEdgeClient","AIServiecOverloadedError","AISession","DEFAULT_EDGE_MODEL","DEFAULT_EDGE_MODELS","DEFAULT_OLLAMA_ENDPOINT","DEFAULT_OLLAMA_MODEL","DEFAULT_OLLAMA_MODELS","EchoDataSource","GenerateRequest","GenerateResponse","GenerationStreamImpl","LLMModel","MessageCollector","MixedStreamParser","OllamaClient","StreamTransform","ToolTypes","createArtifactElement","createGenerationStream","emitMessageAsEvents","executeQuery","executeQueryPlan","formatInferredRelationshipLabel","formatJsonSchemaForLLM","formatNodeLabel","isReference","isToolUse","mergeMessageBlock","parseCypherQuery","runLLM","runTools"],"entryPoint":"packages/experimental/assistant/src/index.ts","inputs":{"packages/experimental/assistant/src/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/session/session.ts":{"bytesInOutput":12192},"packages/experimental/assistant/src/session/index.ts":{"bytesInOutput":0}},"bytes":13683},"packages/experimental/assistant/dist/lib/node-esm/testing/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":33771},"packages/experimental/assistant/dist/lib/node-esm/testing/index.mjs":{"imports":[{"path":"packages/experimental/assistant/dist/lib/node-esm/chunk-7JI4MDGL.mjs","kind":"import-statement"},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"exports":["AI_SERVICE_ENDPOINT","Contact","MockDataSource","ObjectId","Org","Project","Task","createCypherTool","createLogger","createSystemPrompt","createTestData","createTestOllamaClient","seedTestData"],"entryPoint":"packages/experimental/assistant/src/testing/index.ts","inputs":{"packages/experimental/assistant/src/testing/defs.ts":{"bytesInOutput":113},"packages/experimental/assistant/src/testing/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/testing/logger.ts":{"bytesInOutput":3408},"packages/experimental/assistant/src/testing/ollama.ts":{"bytesInOutput":187},"packages/experimental/assistant/src/testing/query-promts.ts":{"bytesInOutput":2794},"packages/experimental/assistant/src/testing/test-data.ts":{"bytesInOutput":8993},"packages/experimental/assistant/src/testing/test-schema.ts":{"bytesInOutput":1897}},"bytes":18295},"packages/experimental/assistant/dist/lib/node-esm/chunk-7JI4MDGL.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":130003},"packages/experimental/assistant/dist/lib/node-esm/chunk-7JI4MDGL.mjs":{"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"parsimmon","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"#parjs","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["AIServiceEdgeClient","DEFAULT_EDGE_MODEL","DEFAULT_EDGE_MODELS","DEFAULT_OLLAMA_ENDPOINT","DEFAULT_OLLAMA_MODEL","DEFAULT_OLLAMA_MODELS","EchoDataSource","GenerateRequest","GenerateResponse","GenerationStreamImpl","LLMModel","MessageCollector","MixedStreamParser","OllamaClient","StreamTransform","ToolTypes","createArtifactElement","createGenerationStream","emitMessageAsEvents","executeQuery","executeQueryPlan","formatInferredRelationshipLabel","formatJsonSchemaForLLM","formatNodeLabel","isReference","isToolUse","mergeMessageBlock","parseCypherQuery","runLLM","runTools","trim"],"inputs":{"packages/experimental/assistant/src/ai-service/defs.ts":{"bytesInOutput":773},"packages/experimental/assistant/src/ai-service/stream.ts":{"bytesInOutput":2609},"packages/experimental/assistant/src/ai-service/util/sse.ts":{"bytesInOutput":6115},"packages/experimental/assistant/src/ai-service/util/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/ai-service/edge-client.ts":{"bytesInOutput":1830},"packages/experimental/assistant/src/ai-service/message-collector.ts":{"bytesInOutput":1774},"packages/experimental/assistant/src/ai-service/types.ts":{"bytesInOutput":1036},"packages/experimental/assistant/src/conversation/conversation.ts":{"bytesInOutput":7480},"packages/experimental/assistant/src/conversation/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/ai-service/ollama-client.ts":{"bytesInOutput":11583},"packages/experimental/assistant/src/ai-service/transform.ts":{"bytesInOutput":1994},"packages/experimental/assistant/src/ai-service/parser.ts":{"bytesInOutput":12145},"packages/experimental/assistant/src/ai-service/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/cypher/parjs.ts":{"bytesInOutput":50},"packages/experimental/assistant/src/cypher/combinators.ts":{"bytesInOutput":3853},"packages/experimental/assistant/src/cypher/parser.ts":{"bytesInOutput":239},"packages/experimental/assistant/src/cypher/query-executor.ts":{"bytesInOutput":3917},"packages/experimental/assistant/src/cypher/execution-plan.ts":{"bytesInOutput":5043},"packages/experimental/assistant/src/cypher/schema.ts":{"bytesInOutput":2270},"packages/experimental/assistant/src/util/trim.ts":{"bytesInOutput":204},"packages/experimental/assistant/src/util/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/cypher/echo-data-source.ts":{"bytesInOutput":3945},"packages/experimental/assistant/src/cypher/index.ts":{"bytesInOutput":0}},"bytes":68931}}}
1
+ {"inputs":{"packages/experimental/assistant/src/ai-service/defs.ts":{"bytes":3427,"imports":[],"format":"esm"},"packages/experimental/assistant/src/ai-service/util/sse.ts":{"bytes":30181,"imports":[],"format":"esm"},"packages/experimental/assistant/src/ai-service/util/index.ts":{"bytes":506,"imports":[{"path":"packages/experimental/assistant/src/ai-service/util/sse.ts","kind":"import-statement","original":"./sse"}],"format":"esm"},"packages/experimental/assistant/src/ai-service/stream.ts":{"bytes":10951,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/ai-service/util/index.ts","kind":"import-statement","original":"./util"}],"format":"esm"},"packages/experimental/assistant/src/ai-service/edge-client.ts":{"bytes":6798,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/ai-service/stream.ts","kind":"import-statement","original":"./stream"}],"format":"esm"},"packages/experimental/assistant/src/ai-service/message-collector.ts":{"bytes":8239,"imports":[],"format":"esm"},"packages/experimental/assistant/src/ai-service/types.ts":{"bytes":7080,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/ai-service/defs.ts","kind":"import-statement","original":"./defs"}],"format":"esm"},"packages/experimental/assistant/src/session/tools.ts":{"bytes":12120,"imports":[{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/session/version-pin.ts":{"bytes":4310,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/session/session.ts":{"bytes":57629,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/session/tools.ts","kind":"import-statement","original":"./tools"},{"path":"packages/experimental/assistant/src/session/version-pin.ts","kind":"import-statement","original":"./version-pin"},{"path":"packages/experimental/assistant/src/ai-service/index.ts","kind":"import-statement","original":"../ai-service"}],"format":"esm"},"packages/experimental/assistant/src/session/index.ts":{"bytes":690,"imports":[{"path":"packages/experimental/assistant/src/session/session.ts","kind":"import-statement","original":"./session"},{"path":"packages/experimental/assistant/src/session/version-pin.ts","kind":"import-statement","original":"./version-pin"},{"path":"packages/experimental/assistant/src/session/tools.ts","kind":"import-statement","original":"./tools"}],"format":"esm"},"packages/experimental/assistant/src/ai-service/ollama-client.ts":{"bytes":49402,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/ai-service/defs.ts","kind":"import-statement","original":"./defs"},{"path":"packages/experimental/assistant/src/ai-service/message-collector.ts","kind":"import-statement","original":"./message-collector"},{"path":"packages/experimental/assistant/src/ai-service/stream.ts","kind":"import-statement","original":"./stream"},{"path":"packages/experimental/assistant/src/ai-service/types.ts","kind":"import-statement","original":"./types"},{"path":"packages/experimental/assistant/src/session/index.ts","kind":"import-statement","original":"../session"}],"format":"esm"},"packages/experimental/assistant/src/ai-service/transform.ts":{"bytes":9707,"imports":[{"path":"parsimmon","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/ai-service/parser.ts":{"bytes":44861,"imports":[{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/ai-service/transform.ts","kind":"import-statement","original":"./transform"}],"format":"esm"},"packages/experimental/assistant/src/ai-service/service.ts":{"bytes":1581,"imports":[],"format":"esm"},"packages/experimental/assistant/src/ai-service/index.ts":{"bytes":1252,"imports":[{"path":"packages/experimental/assistant/src/ai-service/defs.ts","kind":"import-statement","original":"./defs"},{"path":"packages/experimental/assistant/src/ai-service/edge-client.ts","kind":"import-statement","original":"./edge-client"},{"path":"packages/experimental/assistant/src/ai-service/message-collector.ts","kind":"import-statement","original":"./message-collector"},{"path":"packages/experimental/assistant/src/ai-service/ollama-client.ts","kind":"import-statement","original":"./ollama-client"},{"path":"packages/experimental/assistant/src/ai-service/parser.ts","kind":"import-statement","original":"./parser"},{"path":"packages/experimental/assistant/src/ai-service/service.ts","kind":"import-statement","original":"./service"},{"path":"packages/experimental/assistant/src/ai-service/stream.ts","kind":"import-statement","original":"./stream"},{"path":"packages/experimental/assistant/src/ai-service/transform.ts","kind":"import-statement","original":"./transform"},{"path":"packages/experimental/assistant/src/ai-service/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/experimental/assistant/src/experimental/conversation/conversation.ts":{"bytes":15656,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/experimental/conversation/index.ts":{"bytes":541,"imports":[{"path":"packages/experimental/assistant/src/experimental/conversation/conversation.ts","kind":"import-statement","original":"./conversation"}],"format":"esm"},"packages/experimental/assistant/src/experimental/cypher/parjs.ts":{"bytes":1029,"imports":[{"path":"#parjs","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/experimental/cypher/combinators.ts":{"bytes":17943,"imports":[{"path":"packages/experimental/assistant/src/experimental/cypher/parjs.ts","kind":"import-statement","original":"./parjs"}],"format":"esm"},"packages/experimental/assistant/src/experimental/cypher/parser.ts":{"bytes":1757,"imports":[{"path":"packages/experimental/assistant/src/experimental/cypher/combinators.ts","kind":"import-statement","original":"./combinators"}],"format":"esm"},"packages/experimental/assistant/src/experimental/cypher/execution-plan.ts":{"bytes":20270,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/experimental/cypher/query-executor.ts":{"bytes":16877,"imports":[{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/experimental/cypher/execution-plan.ts","kind":"import-statement","original":"./execution-plan"},{"path":"packages/experimental/assistant/src/experimental/cypher/parser.ts","kind":"import-statement","original":"./parser"}],"format":"esm"},"packages/experimental/assistant/src/util/trim.ts":{"bytes":1569,"imports":[],"format":"esm"},"packages/experimental/assistant/src/util/index.ts":{"bytes":500,"imports":[{"path":"packages/experimental/assistant/src/util/trim.ts","kind":"import-statement","original":"./trim"}],"format":"esm"},"packages/experimental/assistant/src/experimental/cypher/schema.ts":{"bytes":10001,"imports":[{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/util/index.ts","kind":"import-statement","original":"../../util"}],"format":"esm"},"packages/experimental/assistant/src/experimental/cypher/echo-data-source.ts":{"bytes":14348,"imports":[{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/experimental/cypher/schema.ts","kind":"import-statement","original":"./schema"}],"format":"esm"},"packages/experimental/assistant/src/experimental/cypher/index.ts":{"bytes":821,"imports":[{"path":"packages/experimental/assistant/src/experimental/cypher/parser.ts","kind":"import-statement","original":"./parser"},{"path":"packages/experimental/assistant/src/experimental/cypher/query-executor.ts","kind":"import-statement","original":"./query-executor"},{"path":"packages/experimental/assistant/src/experimental/cypher/schema.ts","kind":"import-statement","original":"./schema"},{"path":"packages/experimental/assistant/src/experimental/cypher/echo-data-source.ts","kind":"import-statement","original":"./echo-data-source"}],"format":"esm"},"packages/experimental/assistant/src/experimental/index.ts":{"bytes":614,"imports":[{"path":"packages/experimental/assistant/src/experimental/conversation/index.ts","kind":"import-statement","original":"./conversation"},{"path":"packages/experimental/assistant/src/experimental/cypher/index.ts","kind":"import-statement","original":"./cypher"}],"format":"esm"},"packages/experimental/assistant/src/index.ts":{"bytes":876,"imports":[{"path":"packages/experimental/assistant/src/ai-service/index.ts","kind":"import-statement","original":"./ai-service"},{"path":"packages/experimental/assistant/src/session/index.ts","kind":"import-statement","original":"./session"},{"path":"packages/experimental/assistant/src/experimental/index.ts","kind":"import-statement","original":"./experimental"}],"format":"esm"},"packages/experimental/assistant/src/testing/defs.ts":{"bytes":1016,"imports":[],"format":"esm"},"packages/experimental/assistant/src/testing/logger.ts":{"bytes":14680,"imports":[],"format":"esm"},"packages/experimental/assistant/src/testing/ollama.ts":{"bytes":1785,"imports":[{"path":"packages/experimental/assistant/src/ai-service/index.ts","kind":"import-statement","original":"../ai-service"}],"format":"esm"},"packages/experimental/assistant/src/testing/printer.ts":{"bytes":4768,"imports":[{"path":"node:util","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/testing/query-promts.ts":{"bytes":8963,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/experimental/index.ts","kind":"import-statement","original":"../experimental"},{"path":"packages/experimental/assistant/src/util/index.ts","kind":"import-statement","original":"../util"}],"format":"esm"},"packages/experimental/assistant/src/testing/test-data.ts":{"bytes":36646,"imports":[{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"packages/experimental/assistant/src/experimental/index.ts","kind":"import-statement","original":"../experimental"},{"path":"packages/experimental/assistant/src/testing/index.ts","kind":"import-statement","original":"../testing"}],"format":"esm"},"packages/experimental/assistant/src/testing/test-schema.ts":{"bytes":8399,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/experimental/assistant/src/testing/index.ts":{"bytes":1050,"imports":[{"path":"packages/experimental/assistant/src/testing/defs.ts","kind":"import-statement","original":"./defs"},{"path":"packages/experimental/assistant/src/testing/logger.ts","kind":"import-statement","original":"./logger"},{"path":"packages/experimental/assistant/src/testing/ollama.ts","kind":"import-statement","original":"./ollama"},{"path":"packages/experimental/assistant/src/testing/printer.ts","kind":"import-statement","original":"./printer"},{"path":"packages/experimental/assistant/src/testing/query-promts.ts","kind":"import-statement","original":"./query-promts"},{"path":"packages/experimental/assistant/src/testing/test-data.ts","kind":"import-statement","original":"./test-data"},{"path":"packages/experimental/assistant/src/testing/test-schema.ts","kind":"import-statement","original":"./test-schema"}],"format":"esm"}},"outputs":{"packages/experimental/assistant/dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/experimental/assistant/dist/lib/node-esm/index.mjs":{"imports":[{"path":"packages/experimental/assistant/dist/lib/node-esm/chunk-SAWYU3V5.mjs","kind":"import-statement"}],"exports":["AIServiceEdgeClient","AIServiecOverloadedError","AISession","DEFAULT_EDGE_MODEL","DEFAULT_EDGE_MODELS","DEFAULT_OLLAMA_ENDPOINT","DEFAULT_OLLAMA_MODEL","DEFAULT_OLLAMA_MODELS","EchoDataSource","GenerateRequest","GenerateResponse","GenerationStreamImpl","LLMModel","MessageCollector","MixedStreamParser","OllamaClient","StreamTransform","ToolTypes","VersionPin","createArtifactElement","createGenerationStream","emitMessageAsEvents","executeQuery","executeQueryPlan","formatInferredRelationshipLabel","formatJsonSchemaForLLM","formatNodeLabel","isReference","isToolUse","mergeMessageBlock","parseCypherQuery","runLLM","runTools"],"entryPoint":"packages/experimental/assistant/src/index.ts","inputs":{"packages/experimental/assistant/src/index.ts":{"bytesInOutput":0}},"bytes":1501},"packages/experimental/assistant/dist/lib/node-esm/testing/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":36617},"packages/experimental/assistant/dist/lib/node-esm/testing/index.mjs":{"imports":[{"path":"packages/experimental/assistant/dist/lib/node-esm/chunk-SAWYU3V5.mjs","kind":"import-statement"},{"path":"node:util","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"exports":["AI_SERVICE_ENDPOINT","ConsolePrinter","Contact","MockDataSource","Organization","Project","Task","createCypherTool","createLogger","createSystemPrompt","createTestData","createTestOllamaClient","seedTestData"],"entryPoint":"packages/experimental/assistant/src/testing/index.ts","inputs":{"packages/experimental/assistant/src/testing/defs.ts":{"bytesInOutput":113},"packages/experimental/assistant/src/testing/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/testing/logger.ts":{"bytesInOutput":3408},"packages/experimental/assistant/src/testing/ollama.ts":{"bytesInOutput":187},"packages/experimental/assistant/src/testing/printer.ts":{"bytesInOutput":1014},"packages/experimental/assistant/src/testing/query-promts.ts":{"bytesInOutput":2799},"packages/experimental/assistant/src/testing/test-data.ts":{"bytesInOutput":9286},"packages/experimental/assistant/src/testing/test-schema.ts":{"bytesInOutput":1952}},"bytes":19723},"packages/experimental/assistant/dist/lib/node-esm/chunk-SAWYU3V5.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":160342},"packages/experimental/assistant/dist/lib/node-esm/chunk-SAWYU3V5.mjs":{"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"parsimmon","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"#parjs","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["AIServiceEdgeClient","AIServiecOverloadedError","AISession","DEFAULT_EDGE_MODEL","DEFAULT_EDGE_MODELS","DEFAULT_OLLAMA_ENDPOINT","DEFAULT_OLLAMA_MODEL","DEFAULT_OLLAMA_MODELS","EchoDataSource","GenerateRequest","GenerateResponse","GenerationStreamImpl","LLMModel","MessageCollector","MixedStreamParser","OllamaClient","StreamTransform","ToolTypes","VersionPin","createArtifactElement","createGenerationStream","emitMessageAsEvents","executeQuery","executeQueryPlan","formatInferredRelationshipLabel","formatJsonSchemaForLLM","formatNodeLabel","isReference","isToolUse","mergeMessageBlock","parseCypherQuery","runLLM","runTools","trim"],"inputs":{"packages/experimental/assistant/src/ai-service/defs.ts":{"bytesInOutput":773},"packages/experimental/assistant/src/ai-service/stream.ts":{"bytesInOutput":2609},"packages/experimental/assistant/src/ai-service/util/sse.ts":{"bytesInOutput":6115},"packages/experimental/assistant/src/ai-service/util/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/ai-service/edge-client.ts":{"bytesInOutput":1830},"packages/experimental/assistant/src/ai-service/message-collector.ts":{"bytesInOutput":1774},"packages/experimental/assistant/src/ai-service/types.ts":{"bytesInOutput":1106},"packages/experimental/assistant/src/session/tools.ts":{"bytesInOutput":3370},"packages/experimental/assistant/src/session/version-pin.ts":{"bytesInOutput":758},"packages/experimental/assistant/src/session/session.ts":{"bytesInOutput":15315},"packages/experimental/assistant/src/ai-service/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/ai-service/ollama-client.ts":{"bytesInOutput":11618},"packages/experimental/assistant/src/session/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/ai-service/parser.ts":{"bytesInOutput":12145},"packages/experimental/assistant/src/ai-service/transform.ts":{"bytesInOutput":1994},"packages/experimental/assistant/src/experimental/conversation/conversation.ts":{"bytesInOutput":4372},"packages/experimental/assistant/src/experimental/cypher/parjs.ts":{"bytesInOutput":50},"packages/experimental/assistant/src/experimental/cypher/combinators.ts":{"bytesInOutput":3853},"packages/experimental/assistant/src/experimental/cypher/parser.ts":{"bytesInOutput":239},"packages/experimental/assistant/src/experimental/cypher/query-executor.ts":{"bytesInOutput":3930},"packages/experimental/assistant/src/experimental/cypher/execution-plan.ts":{"bytesInOutput":5056},"packages/experimental/assistant/src/experimental/cypher/schema.ts":{"bytesInOutput":2270},"packages/experimental/assistant/src/util/trim.ts":{"bytesInOutput":204},"packages/experimental/assistant/src/util/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/experimental/cypher/echo-data-source.ts":{"bytesInOutput":3985},"packages/experimental/assistant/src/experimental/conversation/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/experimental/index.ts":{"bytesInOutput":0},"packages/experimental/assistant/src/experimental/cypher/index.ts":{"bytesInOutput":0}},"bytes":85921}}}