@dxos/assistant 0.8.1 → 0.8.2-main.2f9c567
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-PND5VR6D.mjs → chunk-OLO6SVOL.mjs} +91 -84
- package/dist/lib/browser/chunk-OLO6SVOL.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +276 -154
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +98 -102
- package/dist/lib/browser/testing/index.mjs.map +3 -3
- package/dist/lib/node/{chunk-IBOBRBDF.cjs → chunk-CI5Q7FBG.cjs} +106 -98
- package/dist/lib/node/chunk-CI5Q7FBG.cjs.map +7 -0
- package/dist/lib/node/index.cjs +302 -183
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/testing/index.cjs +88 -93
- package/dist/lib/node/testing/index.cjs.map +3 -3
- package/dist/lib/node-esm/{chunk-DCQJOLSR.mjs → chunk-Y3SYOFFJ.mjs} +91 -84
- package/dist/lib/node-esm/chunk-Y3SYOFFJ.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +276 -154
- 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 +98 -102
- package/dist/lib/node-esm/testing/index.mjs.map +3 -3
- package/dist/types/src/ai-service/edge-client.d.ts +4 -5
- package/dist/types/src/ai-service/edge-client.d.ts.map +1 -1
- package/dist/types/src/ai-service/message-collector.d.ts +0 -6
- package/dist/types/src/ai-service/message-collector.d.ts.map +1 -1
- package/dist/types/src/ai-service/ollama-client.d.ts +6 -2
- package/dist/types/src/ai-service/ollama-client.d.ts.map +1 -1
- package/dist/types/src/ai-service/parser.d.ts +0 -3
- package/dist/types/src/ai-service/parser.d.ts.map +1 -1
- package/dist/types/src/ai-service/service.d.ts +18 -2
- package/dist/types/src/ai-service/service.d.ts.map +1 -1
- package/dist/types/src/ai-service/testing/mock.d.ts +6 -2
- package/dist/types/src/ai-service/testing/mock.d.ts.map +1 -1
- package/dist/types/src/ai-service/types.d.ts +144 -101
- package/dist/types/src/ai-service/types.d.ts.map +1 -1
- package/dist/types/src/conversation/conversation.d.ts +0 -3
- package/dist/types/src/conversation/conversation.d.ts.map +1 -1
- package/dist/types/src/conversation/types.d.ts +11 -12
- 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 +1 -0
- package/dist/types/src/session/index.d.ts.map +1 -1
- package/dist/types/src/session/session.d.ts +32 -13
- package/dist/types/src/session/session.d.ts.map +1 -1
- package/dist/types/src/session/version-pin.d.ts +17 -0
- package/dist/types/src/session/version-pin.d.ts.map +1 -0
- package/dist/types/src/session/version-pin.test.d.ts +2 -0
- package/dist/types/src/session/version-pin.test.d.ts.map +1 -0
- package/dist/types/src/testing/query-promts.d.ts +3 -3
- package/dist/types/src/testing/query-promts.d.ts.map +1 -1
- package/dist/types/src/testing/test-data.d.ts +4 -4
- package/dist/types/src/testing/test-data.d.ts.map +1 -1
- package/dist/types/src/testing/test-schema.d.ts +25 -23
- package/dist/types/src/testing/test-schema.d.ts.map +1 -1
- package/package.json +15 -14
- package/src/ai-service/client.test.ts +55 -73
- package/src/ai-service/edge-client.ts +13 -20
- package/src/ai-service/ollama-client.ts +16 -9
- package/src/ai-service/parser.ts +13 -2
- package/src/ai-service/service.ts +19 -3
- package/src/ai-service/testing/mock.ts +9 -1
- package/src/ai-service/types.ts +24 -15
- package/src/bin/chat.ts +3 -3
- package/src/conversation/conversation.test.ts +3 -3
- package/src/conversation/conversation.ts +5 -11
- package/src/conversation/types.ts +11 -14
- package/src/cypher/combinators.test.ts +4 -4
- package/src/cypher/echo-data-source.ts +7 -6
- 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 +1 -0
- package/src/session/session.test.ts +29 -22
- package/src/session/session.ts +286 -150
- package/src/session/version-pin.test.ts +26 -0
- package/src/session/version-pin.ts +43 -0
- package/src/testing/artifacts.test.ts +22 -22
- package/src/testing/query-promts.ts +5 -5
- package/src/testing/query.test.ts +17 -19
- package/src/testing/test-data.ts +78 -71
- package/src/testing/test-schema.ts +28 -29
- package/dist/lib/browser/chunk-PND5VR6D.mjs.map +0 -7
- package/dist/lib/node/chunk-IBOBRBDF.cjs.map +0 -7
- 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:
|
|
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
|
-
*
|
|
381
|
+
* Generate non-streaming response.
|
|
384
382
|
*/
|
|
385
|
-
|
|
386
|
-
|
|
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
|
|
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:
|
|
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:
|
|
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
|
|
508
|
-
import { Tool, Message
|
|
509
|
-
import { ObjectId } from "@dxos/echo-schema";
|
|
498
|
+
import { Schema } from "effect";
|
|
499
|
+
import { Tool, Message } from "@dxos/artifact";
|
|
510
500
|
var createArtifactElement = (id) => `<artifact id=${id} />`;
|
|
511
|
-
var LLMModel =
|
|
501
|
+
var LLMModel = Schema.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 =
|
|
518
|
-
spaceId: S2.optional(SpaceIdSchema),
|
|
519
|
-
threadId: S2.optional(ObjectId),
|
|
507
|
+
var GenerateRequest = Schema.Struct({
|
|
520
508
|
/**
|
|
521
509
|
* Preferred model or system default.
|
|
522
510
|
*/
|
|
523
|
-
model:
|
|
511
|
+
model: Schema.optional(LLMModel),
|
|
524
512
|
/**
|
|
525
513
|
* Tools available for the LLM.
|
|
526
514
|
*/
|
|
527
|
-
tools:
|
|
515
|
+
tools: Schema.optional(Schema.Array(Tool).pipe(Schema.mutable)),
|
|
528
516
|
/**
|
|
529
517
|
* System instructions to the LLM.
|
|
530
518
|
*/
|
|
531
|
-
systemPrompt:
|
|
519
|
+
systemPrompt: Schema.optional(Schema.String),
|
|
532
520
|
/**
|
|
533
521
|
* History of messages to include in the context window.
|
|
534
522
|
*/
|
|
535
523
|
// TODO(burdon): Rename messages.
|
|
536
|
-
history:
|
|
524
|
+
history: Schema.optional(Schema.Array(Message)),
|
|
537
525
|
/**
|
|
538
526
|
* Current request.
|
|
539
527
|
*/
|
|
540
|
-
prompt:
|
|
528
|
+
prompt: Schema.optional(Message)
|
|
529
|
+
});
|
|
530
|
+
var GenerateResponse = Schema.Struct({
|
|
531
|
+
messages: Schema.Array(Message),
|
|
532
|
+
/**
|
|
533
|
+
* Number of tokens used in the response.
|
|
534
|
+
*/
|
|
535
|
+
tokenCount: Schema.optional(Schema.Number)
|
|
541
536
|
});
|
|
542
537
|
|
|
543
538
|
// packages/experimental/assistant/src/conversation/conversation.ts
|
|
544
|
-
import { ToolResult, Message as
|
|
545
|
-
import {
|
|
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.
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
637
|
+
L: 86,
|
|
645
638
|
S: void 0,
|
|
646
639
|
C: (f, a) => f(...a)
|
|
647
640
|
});
|
|
648
641
|
const resultMessage = {
|
|
649
|
-
id:
|
|
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:
|
|
665
|
+
L: 106,
|
|
675
666
|
S: void 0,
|
|
676
667
|
C: (f, a) => f(...a)
|
|
677
668
|
});
|
|
678
669
|
const resultMessage = {
|
|
679
|
-
id:
|
|
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:
|
|
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:
|
|
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:
|
|
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 =
|
|
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:
|
|
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:
|
|
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:
|
|
784
|
+
L: 202,
|
|
796
785
|
S: void 0,
|
|
797
786
|
C: (f, a) => f(...a)
|
|
798
787
|
});
|
|
799
|
-
const resultMessage =
|
|
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:
|
|
809
|
+
L: 223,
|
|
821
810
|
S: void 0,
|
|
822
811
|
C: (f, a) => f(...a)
|
|
823
812
|
});
|
|
824
|
-
const resultMessage =
|
|
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:
|
|
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
|
|
847
|
+
import { Schema as Schema2 } from "effect";
|
|
859
848
|
import { defineTool, ToolResult as ToolResult2 } from "@dxos/artifact";
|
|
860
|
-
import { ObjectId as
|
|
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
|
|
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 =
|
|
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:
|
|
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:
|
|
1159
|
-
prompt:
|
|
1153
|
+
schema: Schema2.Struct({
|
|
1154
|
+
prompt: Schema2.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 =
|
|
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
|
|
1203
|
-
model:
|
|
1197
|
+
var ModelDoesNotSupportToolsError = class extends Schema2.TaggedError()("ModelDoesNotSupportToolsError", {
|
|
1198
|
+
model: Schema2.String
|
|
1204
1199
|
}) {
|
|
1205
1200
|
};
|
|
1206
|
-
var ModelNotFoundError = class extends
|
|
1207
|
-
model:
|
|
1201
|
+
var ModelNotFoundError = class extends Schema2.TaggedError()("ModelNotFoundError", {
|
|
1202
|
+
model: Schema2.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
|
|
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
|
|
1322
|
+
import { Message as Message3 } from "@dxos/artifact";
|
|
1328
1323
|
import { Event } from "@dxos/async";
|
|
1329
|
-
import {
|
|
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 =
|
|
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:
|
|
2277
|
+
L: 18,
|
|
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:
|
|
2285
|
+
L: 35,
|
|
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-
|
|
2324
|
+
//# sourceMappingURL=chunk-Y3SYOFFJ.mjs.map
|