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