@dxos/assistant 0.8.1 → 0.8.2-main.12df754

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 (61) hide show
  1. package/dist/lib/browser/{chunk-PND5VR6D.mjs → chunk-DEIGOD4U.mjs} +91 -84
  2. package/dist/lib/browser/chunk-DEIGOD4U.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +6 -4
  4. package/dist/lib/browser/index.mjs.map +3 -3
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/testing/index.mjs +20 -20
  7. package/dist/lib/browser/testing/index.mjs.map +3 -3
  8. package/dist/lib/node/{chunk-IBOBRBDF.cjs → chunk-7VH7NMIM.cjs} +106 -98
  9. package/dist/lib/node/chunk-7VH7NMIM.cjs.map +7 -0
  10. package/dist/lib/node/index.cjs +37 -35
  11. package/dist/lib/node/index.cjs.map +3 -3
  12. package/dist/lib/node/meta.json +1 -1
  13. package/dist/lib/node/testing/index.cjs +27 -27
  14. package/dist/lib/node/testing/index.cjs.map +3 -3
  15. package/dist/lib/node-esm/{chunk-DCQJOLSR.mjs → chunk-7JI4MDGL.mjs} +91 -84
  16. package/dist/lib/node-esm/chunk-7JI4MDGL.mjs.map +7 -0
  17. package/dist/lib/node-esm/index.mjs +6 -4
  18. package/dist/lib/node-esm/index.mjs.map +3 -3
  19. package/dist/lib/node-esm/meta.json +1 -1
  20. package/dist/lib/node-esm/testing/index.mjs +20 -20
  21. package/dist/lib/node-esm/testing/index.mjs.map +3 -3
  22. package/dist/types/src/ai-service/edge-client.d.ts +4 -5
  23. package/dist/types/src/ai-service/edge-client.d.ts.map +1 -1
  24. package/dist/types/src/ai-service/message-collector.d.ts +0 -6
  25. package/dist/types/src/ai-service/message-collector.d.ts.map +1 -1
  26. package/dist/types/src/ai-service/ollama-client.d.ts +6 -2
  27. package/dist/types/src/ai-service/ollama-client.d.ts.map +1 -1
  28. package/dist/types/src/ai-service/parser.d.ts +0 -3
  29. package/dist/types/src/ai-service/parser.d.ts.map +1 -1
  30. package/dist/types/src/ai-service/service.d.ts +18 -2
  31. package/dist/types/src/ai-service/service.d.ts.map +1 -1
  32. package/dist/types/src/ai-service/testing/mock.d.ts +6 -2
  33. package/dist/types/src/ai-service/testing/mock.d.ts.map +1 -1
  34. package/dist/types/src/ai-service/types.d.ts +52 -9
  35. package/dist/types/src/ai-service/types.d.ts.map +1 -1
  36. package/dist/types/src/conversation/conversation.d.ts +0 -3
  37. package/dist/types/src/conversation/conversation.d.ts.map +1 -1
  38. package/dist/types/src/conversation/types.d.ts +2 -3
  39. package/dist/types/src/conversation/types.d.ts.map +1 -1
  40. package/dist/types/src/cypher/echo-data-source.d.ts.map +1 -1
  41. package/dist/types/src/session/session.d.ts +0 -6
  42. package/dist/types/src/session/session.d.ts.map +1 -1
  43. package/package.json +13 -13
  44. package/src/ai-service/client.test.ts +50 -68
  45. package/src/ai-service/edge-client.ts +13 -20
  46. package/src/ai-service/ollama-client.ts +9 -2
  47. package/src/ai-service/parser.ts +13 -2
  48. package/src/ai-service/service.ts +19 -3
  49. package/src/ai-service/testing/mock.ts +9 -1
  50. package/src/ai-service/types.ts +15 -6
  51. package/src/bin/chat.ts +1 -1
  52. package/src/conversation/conversation.ts +5 -11
  53. package/src/conversation/types.ts +1 -4
  54. package/src/cypher/echo-data-source.ts +1 -2
  55. package/src/session/session.test.ts +6 -6
  56. package/src/session/session.ts +3 -3
  57. package/src/testing/query.test.ts +14 -16
  58. package/src/testing/test-data.ts +19 -19
  59. package/dist/lib/browser/chunk-PND5VR6D.mjs.map +0 -7
  60. package/dist/lib/node/chunk-IBOBRBDF.cjs.map +0 -7
  61. package/dist/lib/node-esm/chunk-DCQJOLSR.mjs.map +0 -7
@@ -361,8 +361,6 @@ var GenerationStreamImpl = class {
361
361
  };
362
362
 
363
363
  // packages/experimental/assistant/src/ai-service/edge-client.ts
364
- import { Schema as S } from "effect";
365
- import { Message } from "@dxos/artifact";
366
364
  import { assertArgument, invariant } from "@dxos/invariant";
367
365
  import { log as log2 } from "@dxos/log";
368
366
  var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/experimental/assistant/src/ai-service/edge-client.ts";
@@ -370,7 +368,7 @@ var AIServiceEdgeClient = class {
370
368
  constructor({ endpoint }) {
371
369
  invariant(endpoint, "endpoint is required", {
372
370
  F: __dxlog_file2,
373
- L: 23,
371
+ L: 20,
374
372
  S: this,
375
373
  A: [
376
374
  "endpoint",
@@ -380,34 +378,21 @@ var AIServiceEdgeClient = class {
380
378
  this._endpoint = endpoint;
381
379
  }
382
380
  /**
383
- * @deprecated
381
+ * Generate non-streaming response.
384
382
  */
385
- // TODO(burdon): Remove.
386
- async appendMessages(messages) {
387
- const url = `${this._endpoint}/message`;
388
- const res = await fetch(url, {
389
- method: "POST",
390
- headers: {
391
- "Content-Type": "application/json"
392
- },
393
- body: JSON.stringify({
394
- messages: await S.encodePromise(S.Array(Message))(messages)
395
- })
396
- });
397
- if (!res.ok) {
398
- throw new Error(`${await res.text()} [${url}]`);
399
- }
383
+ async exec(request) {
384
+ throw new Error("Not implemented");
400
385
  }
401
386
  /**
402
387
  * Process request and open message stream.
403
388
  */
404
- async exec(request) {
389
+ async execStream(request) {
405
390
  assertArgument(typeof request.model === "string", "model is required");
406
391
  log2("requesting", {
407
392
  endpoint: this._endpoint
408
393
  }, {
409
394
  F: __dxlog_file2,
410
- L: 51,
395
+ L: 36,
411
396
  S: this,
412
397
  C: (f, a) => f(...a)
413
398
  });
@@ -424,9 +409,12 @@ var AIServiceEdgeClient = class {
424
409
  ...request
425
410
  })
426
411
  });
412
+ if (!response.ok) {
413
+ throw await parseErrorResponse(response);
414
+ }
427
415
  invariant(response.body instanceof ReadableStream, void 0, {
428
416
  F: __dxlog_file2,
429
- L: 64,
417
+ L: 53,
430
418
  S: this,
431
419
  A: [
432
420
  "response.body instanceof ReadableStream",
@@ -436,6 +424,9 @@ var AIServiceEdgeClient = class {
436
424
  return createGenerationStream(response, controller);
437
425
  }
438
426
  };
427
+ var parseErrorResponse = async (response) => {
428
+ throw new Error(`AI Service error: ${response.status} ${response.statusText} ${await response.text()}`);
429
+ };
439
430
 
440
431
  // packages/experimental/assistant/src/ai-service/message-collector.ts
441
432
  var MessageCollector = class {
@@ -504,45 +495,49 @@ function* emitMessageAsEvents(message) {
504
495
  }
505
496
 
506
497
  // packages/experimental/assistant/src/ai-service/types.ts
507
- import { Schema as S2 } from "effect";
508
- import { Tool, Message as Message2, SpaceIdSchema } from "@dxos/artifact";
509
- import { ObjectId } from "@dxos/echo-schema";
498
+ import { Schema as S } from "effect";
499
+ import { Tool, Message } from "@dxos/artifact";
510
500
  var createArtifactElement = (id) => `<artifact id=${id} />`;
511
- var LLMModel = S2.Literal(...DEFAULT_EDGE_MODELS, ...DEFAULT_OLLAMA_MODELS);
501
+ var LLMModel = S.Literal(...DEFAULT_EDGE_MODELS, ...DEFAULT_OLLAMA_MODELS);
512
502
  var ToolTypes = Object.freeze({
513
503
  // TODO(dmaretskyi): Not implemented yet.
514
504
  // DatabaseQuery: 'database_query',
515
505
  TextToImage: "text_to_image"
516
506
  });
517
- var GenerateRequest = S2.Struct({
518
- spaceId: S2.optional(SpaceIdSchema),
519
- threadId: S2.optional(ObjectId),
507
+ var GenerateRequest = S.Struct({
520
508
  /**
521
509
  * Preferred model or system default.
522
510
  */
523
- model: S2.optional(LLMModel),
511
+ model: S.optional(LLMModel),
524
512
  /**
525
513
  * Tools available for the LLM.
526
514
  */
527
- tools: S2.optional(S2.Array(Tool).pipe(S2.mutable)),
515
+ tools: S.optional(S.Array(Tool).pipe(S.mutable)),
528
516
  /**
529
517
  * System instructions to the LLM.
530
518
  */
531
- systemPrompt: S2.optional(S2.String),
519
+ systemPrompt: S.optional(S.String),
532
520
  /**
533
521
  * History of messages to include in the context window.
534
522
  */
535
523
  // TODO(burdon): Rename messages.
536
- history: S2.optional(S2.Array(Message2)),
524
+ history: S.optional(S.Array(Message)),
537
525
  /**
538
526
  * Current request.
539
527
  */
540
- prompt: S2.optional(Message2)
528
+ prompt: S.optional(Message)
529
+ });
530
+ var GenerateResponse = S.Struct({
531
+ messages: S.Array(Message),
532
+ /**
533
+ * Number of tokens used in the response.
534
+ */
535
+ tokenCount: S.optional(S.Number)
541
536
  });
542
537
 
543
538
  // packages/experimental/assistant/src/conversation/conversation.ts
544
- import { ToolResult, Message as Message3 } from "@dxos/artifact";
545
- import { createStatic, ObjectId as ObjectId2 } from "@dxos/echo-schema";
539
+ import { ToolResult, Message as Message2 } from "@dxos/artifact";
540
+ import { create, ObjectId } from "@dxos/echo-schema";
546
541
  import { invariant as invariant2 } from "@dxos/invariant";
547
542
  import { log as log3 } from "@dxos/log";
548
543
  var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/experimental/assistant/src/conversation/conversation.ts";
@@ -559,10 +554,8 @@ var runLLM = async (params) => {
559
554
  C: (f, a) => f(...a)
560
555
  });
561
556
  const beginTs = Date.now();
562
- const stream = await params.client.exec({
557
+ const stream = await params.client.execStream({
563
558
  model: params.model,
564
- spaceId: params.spaceId,
565
- threadId: params.threadId,
566
559
  history,
567
560
  systemPrompt: params.system,
568
561
  tools: params.tools
@@ -575,7 +568,7 @@ var runLLM = async (params) => {
575
568
  const message = messages.at(-1);
576
569
  invariant2(message, void 0, {
577
570
  F: __dxlog_file3,
578
- L: 63,
571
+ L: 61,
579
572
  S: void 0,
580
573
  A: [
581
574
  "message",
@@ -587,13 +580,13 @@ var runLLM = async (params) => {
587
580
  message
588
581
  }, {
589
582
  F: __dxlog_file3,
590
- L: 65,
583
+ L: 63,
591
584
  S: void 0,
592
585
  C: (f, a) => f(...a)
593
586
  });
594
587
  invariant2(message, void 0, {
595
588
  F: __dxlog_file3,
596
- L: 66,
589
+ L: 64,
597
590
  S: void 0,
598
591
  A: [
599
592
  "message",
@@ -613,7 +606,7 @@ var runLLM = async (params) => {
613
606
  const toolCalls = message.content.filter((block) => block.type === "tool_use");
614
607
  invariant2(toolCalls.length === 1, void 0, {
615
608
  F: __dxlog_file3,
616
- L: 77,
609
+ L: 75,
617
610
  S: void 0,
618
611
  A: [
619
612
  "toolCalls.length === 1",
@@ -627,7 +620,7 @@ var runLLM = async (params) => {
627
620
  }
628
621
  invariant2(tool.execute, void 0, {
629
622
  F: __dxlog_file3,
630
- L: 84,
623
+ L: 82,
631
624
  S: void 0,
632
625
  A: [
633
626
  "tool.execute",
@@ -641,14 +634,12 @@ var runLLM = async (params) => {
641
634
  message: toolResult.message
642
635
  }, {
643
636
  F: __dxlog_file3,
644
- L: 88,
637
+ L: 86,
645
638
  S: void 0,
646
639
  C: (f, a) => f(...a)
647
640
  });
648
641
  const resultMessage = {
649
- id: ObjectId2.random(),
650
- spaceId: params.spaceId,
651
- threadId: params.threadId,
642
+ id: ObjectId.random(),
652
643
  role: "user",
653
644
  content: [
654
645
  {
@@ -671,14 +662,12 @@ var runLLM = async (params) => {
671
662
  result: toolResult.result
672
663
  }, {
673
664
  F: __dxlog_file3,
674
- L: 110,
665
+ L: 106,
675
666
  S: void 0,
676
667
  C: (f, a) => f(...a)
677
668
  });
678
669
  const resultMessage = {
679
- id: ObjectId2.random(),
680
- spaceId: params.spaceId,
681
- threadId: params.threadId,
670
+ id: ObjectId.random(),
682
671
  role: "user",
683
672
  content: [
684
673
  {
@@ -700,7 +689,7 @@ var runLLM = async (params) => {
700
689
  result: toolResult.result
701
690
  }, {
702
691
  F: __dxlog_file3,
703
- L: 131,
692
+ L: 125,
704
693
  S: void 0,
705
694
  C: (f, a) => f(...a)
706
695
  });
@@ -722,7 +711,7 @@ var isToolUse = (message, { onlyToolNames } = {}) => {
722
711
  const block = message.content.at(-1);
723
712
  invariant2(block, void 0, {
724
713
  F: __dxlog_file3,
725
- L: 152,
714
+ L: 146,
726
715
  S: void 0,
727
716
  A: [
728
717
  "block",
@@ -735,7 +724,7 @@ var runTools = async ({ message, tools, extensions }) => {
735
724
  const toolCalls = message.content.filter((block) => block.type === "tool_use");
736
725
  invariant2(toolCalls.length === 1, void 0, {
737
726
  F: __dxlog_file3,
738
- L: 174,
727
+ L: 168,
739
728
  S: void 0,
740
729
  A: [
741
730
  "toolCalls.length === 1",
@@ -745,7 +734,7 @@ var runTools = async ({ message, tools, extensions }) => {
745
734
  const toolCall = toolCalls[0];
746
735
  const tool = tools.find((tool2) => tool2.name === toolCall.name);
747
736
  if (!tool) {
748
- const resultMessage = createStatic(Message3, {
737
+ const resultMessage = create(Message2, {
749
738
  role: "user",
750
739
  content: [
751
740
  {
@@ -765,7 +754,7 @@ var runTools = async ({ message, tools, extensions }) => {
765
754
  try {
766
755
  invariant2(tool.execute, void 0, {
767
756
  F: __dxlog_file3,
768
- L: 199,
757
+ L: 193,
769
758
  S: void 0,
770
759
  A: [
771
760
  "tool.execute",
@@ -780,7 +769,7 @@ var runTools = async ({ message, tools, extensions }) => {
780
769
  error
781
770
  }, {
782
771
  F: __dxlog_file3,
783
- L: 202,
772
+ L: 196,
784
773
  S: void 0,
785
774
  C: (f, a) => f(...a)
786
775
  });
@@ -792,11 +781,11 @@ var runTools = async ({ message, tools, extensions }) => {
792
781
  message: toolResult.message
793
782
  }, {
794
783
  F: __dxlog_file3,
795
- L: 208,
784
+ L: 202,
796
785
  S: void 0,
797
786
  C: (f, a) => f(...a)
798
787
  });
799
- const resultMessage = createStatic(Message3, {
788
+ const resultMessage = create(Message2, {
800
789
  role: "user",
801
790
  content: [
802
791
  {
@@ -817,11 +806,11 @@ var runTools = async ({ message, tools, extensions }) => {
817
806
  result: toolResult.result
818
807
  }, {
819
808
  F: __dxlog_file3,
820
- L: 229,
809
+ L: 223,
821
810
  S: void 0,
822
811
  C: (f, a) => f(...a)
823
812
  });
824
- const resultMessage = createStatic(Message3, {
813
+ const resultMessage = create(Message2, {
825
814
  role: "user",
826
815
  content: [
827
816
  {
@@ -842,7 +831,7 @@ var runTools = async ({ message, tools, extensions }) => {
842
831
  result: toolResult.result
843
832
  }, {
844
833
  F: __dxlog_file3,
845
- L: 250,
834
+ L: 244,
846
835
  S: void 0,
847
836
  C: (f, a) => f(...a)
848
837
  });
@@ -855,9 +844,9 @@ var runTools = async ({ message, tools, extensions }) => {
855
844
  };
856
845
 
857
846
  // packages/experimental/assistant/src/ai-service/ollama-client.ts
858
- import { Schema as S3 } from "effect";
847
+ import { Schema as S2 } from "effect";
859
848
  import { defineTool, ToolResult as ToolResult2 } from "@dxos/artifact";
860
- import { ObjectId as ObjectId3 } from "@dxos/echo-schema";
849
+ import { ObjectId as ObjectId2 } from "@dxos/echo-schema";
861
850
  import { invariant as invariant3 } from "@dxos/invariant";
862
851
  import { log as log4 } from "@dxos/log";
863
852
  var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/experimental/assistant/src/ai-service/ollama-client.ts";
@@ -1002,14 +991,14 @@ var OllamaClient = class {
1002
991
  signal
1003
992
  });
1004
993
  if (!response.ok) {
1005
- throw await parseErrorResponse(response);
994
+ throw await parseErrorResponse2(response);
1006
995
  }
1007
996
  if (!response.body) {
1008
997
  throw new Error("Ollama API returned no response body");
1009
998
  }
1010
999
  const reader = response.body.pipeThrough(new TextDecoderStream()).pipeThrough(new OllamaDecoderStream()).getReader();
1011
1000
  try {
1012
- const messageId = ObjectId3.random();
1001
+ const messageId = ObjectId2.random();
1013
1002
  yield {
1014
1003
  type: "message_start",
1015
1004
  message: {
@@ -1069,7 +1058,7 @@ var OllamaClient = class {
1069
1058
  index: currentBlockIndex,
1070
1059
  content: {
1071
1060
  type: "tool_use",
1072
- id: ObjectId3.random(),
1061
+ id: ObjectId2.random(),
1073
1062
  name: data.message.tool_calls[0].function.name,
1074
1063
  input: sanitizeToolArguments(data.message.tool_calls[0].function.arguments)
1075
1064
  }
@@ -1093,7 +1082,13 @@ var OllamaClient = class {
1093
1082
  reader.releaseLock();
1094
1083
  }
1095
1084
  }
1085
+ /**
1086
+ * Generate non-streaming response.
1087
+ */
1096
1088
  async exec(request) {
1089
+ throw new Error("Not implemented");
1090
+ }
1091
+ async execStream(request) {
1097
1092
  const controller = new AbortController();
1098
1093
  try {
1099
1094
  return new GenerationStreamImpl(controller, async function* () {
@@ -1155,15 +1150,15 @@ var WELL_KNOWN_TOOLS = {
1155
1150
  [ToolTypes.TextToImage]: defineTool("system", {
1156
1151
  name: "text-to-image",
1157
1152
  description: "Generate an image from a text prompt",
1158
- schema: S3.Struct({
1159
- prompt: S3.String.annotations({
1153
+ schema: S2.Struct({
1154
+ prompt: S2.String.annotations({
1160
1155
  description: "The text prompt describing the image to generate"
1161
1156
  })
1162
1157
  }),
1163
1158
  execute: async ({ prompt }) => {
1164
1159
  const image = await fetch(SAMPLE_IMAGE_URL).then(async (res) => Buffer.from(await res.arrayBuffer()));
1165
1160
  const imageBase64 = image.toString("base64");
1166
- const id = ObjectId3.random();
1161
+ const id = ObjectId2.random();
1167
1162
  return ToolResult2.Success(`The generation was successful. Image ID: ${id} Prompt: ${prompt}`, [
1168
1163
  {
1169
1164
  type: "image",
@@ -1199,12 +1194,12 @@ var OllamaDecoderStream = class extends TransformStream {
1199
1194
  this._buffer = "";
1200
1195
  }
1201
1196
  };
1202
- var ModelDoesNotSupportToolsError = class extends S3.TaggedError()("ModelDoesNotSupportToolsError", {
1203
- model: S3.String
1197
+ var ModelDoesNotSupportToolsError = class extends S2.TaggedError()("ModelDoesNotSupportToolsError", {
1198
+ model: S2.String
1204
1199
  }) {
1205
1200
  };
1206
- var ModelNotFoundError = class extends S3.TaggedError()("ModelNotFoundError", {
1207
- model: S3.String
1201
+ var ModelNotFoundError = class extends S2.TaggedError()("ModelNotFoundError", {
1202
+ model: S2.String
1208
1203
  }) {
1209
1204
  };
1210
1205
  var parseOllamaError = (error) => {
@@ -1226,7 +1221,7 @@ var parseOllamaError = (error) => {
1226
1221
  }
1227
1222
  throw new Error(`Ollama API error: ${error}`);
1228
1223
  };
1229
- var parseErrorResponse = async (response) => {
1224
+ var parseErrorResponse2 = async (response) => {
1230
1225
  if (response.headers.get("content-type")?.includes("application/json")) {
1231
1226
  const body = await response.json();
1232
1227
  return parseOllamaError(body.error);
@@ -1324,9 +1319,9 @@ var StreamTransform = class {
1324
1319
  };
1325
1320
 
1326
1321
  // packages/experimental/assistant/src/ai-service/parser.ts
1327
- import { Message as Message4 } from "@dxos/artifact";
1322
+ import { Message as Message3 } from "@dxos/artifact";
1328
1323
  import { Event } from "@dxos/async";
1329
- import { createStatic as createStatic2 } from "@dxos/echo-schema";
1324
+ import { create as create2 } from "@dxos/echo-schema";
1330
1325
  import { invariant as invariant4 } from "@dxos/invariant";
1331
1326
  import { log as log5 } from "@dxos/log";
1332
1327
  import { isNotFalsy, safeParseJson } from "@dxos/util";
@@ -1405,7 +1400,7 @@ var MixedStreamParser = class {
1405
1400
  C: (f, a) => f(...a)
1406
1401
  });
1407
1402
  }
1408
- this._message = createStatic2(Message4, {
1403
+ this._message = create2(Message3, {
1409
1404
  role: event.message.role,
1410
1405
  content: [
1411
1406
  ...event.message.content
@@ -1686,6 +1681,18 @@ var mergeMessageBlock = (contentBlock, streamBlock) => {
1686
1681
  }
1687
1682
  break;
1688
1683
  }
1684
+ case "proposal": {
1685
+ if (streamBlock.content.length === 1 && streamBlock.content[0].type === "text") {
1686
+ return {
1687
+ type: "json",
1688
+ disposition: "proposal",
1689
+ json: JSON.stringify({
1690
+ text: streamBlock.content[0].content
1691
+ })
1692
+ };
1693
+ }
1694
+ break;
1695
+ }
1689
1696
  case "select": {
1690
1697
  return {
1691
1698
  type: "json",
@@ -2183,8 +2190,7 @@ var isReference = (schema) => schema.$id === JSON_SCHEMA_ECHO_REF_ID || schema.t
2183
2190
  // packages/experimental/assistant/src/cypher/echo-data-source.ts
2184
2191
  import { raise as raise2 } from "@dxos/debug";
2185
2192
  import { Filter } from "@dxos/echo-db";
2186
- import { getSchemaTypename, StoredSchema, toJsonSchema } from "@dxos/echo-schema";
2187
- import { getSchema } from "@dxos/live-object";
2193
+ import { getSchema, getSchemaTypename, StoredSchema, toJsonSchema } from "@dxos/echo-schema";
2188
2194
  import { log as log8 } from "@dxos/log";
2189
2195
  function _ts_decorate(decorators, target, key, desc) {
2190
2196
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -2268,7 +2274,7 @@ var EchoDataSource = class {
2268
2274
  _ts_decorate([
2269
2275
  log8.method(void 0, void 0, {
2270
2276
  F: __dxlog_file8,
2271
- L: 17,
2277
+ L: 16,
2272
2278
  S: void 0,
2273
2279
  C: (f, a) => f(...a)
2274
2280
  })
@@ -2276,7 +2282,7 @@ _ts_decorate([
2276
2282
  _ts_decorate([
2277
2283
  log8.method(void 0, void 0, {
2278
2284
  F: __dxlog_file8,
2279
- L: 34,
2285
+ L: 33,
2280
2286
  S: void 0,
2281
2287
  C: (f, a) => f(...a)
2282
2288
  })
@@ -2297,6 +2303,7 @@ export {
2297
2303
  LLMModel,
2298
2304
  ToolTypes,
2299
2305
  GenerateRequest,
2306
+ GenerateResponse,
2300
2307
  runLLM,
2301
2308
  isToolUse,
2302
2309
  runTools,
@@ -2314,4 +2321,4 @@ export {
2314
2321
  isReference,
2315
2322
  EchoDataSource
2316
2323
  };
2317
- //# sourceMappingURL=chunk-DCQJOLSR.mjs.map
2324
+ //# sourceMappingURL=chunk-7JI4MDGL.mjs.map