@dxos/assistant-toolkit 0.8.4-main.2c6827d → 0.8.4-main.3c1ae3b
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/index.mjs +123 -112
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +123 -112
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/blueprints/discord/discord-blueprint.d.ts +4 -3
- package/dist/types/src/blueprints/discord/discord-blueprint.d.ts.map +1 -1
- package/dist/types/src/blueprints/linear/linear-blueprint.d.ts +4 -3
- package/dist/types/src/blueprints/linear/linear-blueprint.d.ts.map +1 -1
- package/dist/types/src/crud/graph.d.ts +5 -4
- package/dist/types/src/crud/graph.d.ts.map +1 -1
- package/dist/types/src/functions/agent/prompt.d.ts.map +1 -1
- package/dist/types/src/functions/document/read.d.ts.map +1 -1
- package/dist/types/src/functions/document/update.d.ts.map +1 -1
- package/dist/types/src/functions/entity-extraction/entity-extraction.d.ts +12 -13
- package/dist/types/src/functions/entity-extraction/entity-extraction.d.ts.map +1 -1
- package/dist/types/src/functions/entity-extraction/index.d.ts +12 -13
- package/dist/types/src/functions/entity-extraction/index.d.ts.map +1 -1
- package/dist/types/src/functions/linear/sync-issues.d.ts.map +1 -1
- package/dist/types/src/functions/research/document-create.d.ts.map +1 -1
- package/dist/types/src/functions/research/research-graph.d.ts +7 -6
- package/dist/types/src/functions/research/research-graph.d.ts.map +1 -1
- package/dist/types/src/functions/research/research.d.ts.map +1 -1
- package/dist/types/src/functions/research/types.d.ts +1 -1
- package/dist/types/src/functions/research/types.d.ts.map +1 -1
- package/dist/types/src/functions/tasks/read.d.ts.map +1 -1
- package/dist/types/src/functions/tasks/update.d.ts.map +1 -1
- package/dist/types/src/plugins.d.ts.map +1 -1
- package/dist/types/src/sync/sync.d.ts +2 -2
- package/dist/types/src/sync/sync.d.ts.map +1 -1
- package/dist/types/src/toolkits/AssistantToolkit.d.ts +2 -2
- package/dist/types/src/toolkits/AssistantToolkit.d.ts.map +1 -1
- package/dist/types/src/toolkits/SystemToolkit.d.ts +8 -8
- package/dist/types/src/toolkits/SystemToolkit.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +23 -23
- package/src/blueprints/design/design-blueprint.test.ts +8 -6
- package/src/blueprints/planning/planning-blueprint.test.ts +6 -4
- package/src/crud/graph.test.ts +4 -3
- package/src/crud/graph.ts +19 -24
- package/src/experimental/feed.test.ts +1 -1
- package/src/functions/agent/prompt.ts +13 -10
- package/src/functions/discord/fetch-messages.test.ts +1 -1
- package/src/functions/document/read.ts +4 -3
- package/src/functions/document/update.ts +4 -3
- package/src/functions/entity-extraction/entity-extraction.test.ts +7 -6
- package/src/functions/entity-extraction/entity-extraction.ts +20 -10
- package/src/functions/linear/linear.test.ts +11 -10
- package/src/functions/linear/sync-issues.ts +5 -4
- package/src/functions/research/document-create.ts +7 -6
- package/src/functions/research/research-graph.ts +12 -10
- package/src/functions/research/research.test.ts +20 -24
- package/src/functions/research/research.ts +5 -4
- package/src/functions/research/types.ts +1 -1
- package/src/functions/tasks/read.ts +4 -3
- package/src/functions/tasks/update.ts +4 -3
- package/src/plugins.tsx +3 -3
- package/src/sync/sync.ts +4 -6
- package/src/toolkits/AssistantToolkit.test.ts +8 -6
- package/src/toolkits/AssistantToolkit.ts +3 -3
- package/src/toolkits/SystemToolkit.ts +18 -18
|
@@ -22,7 +22,8 @@ import { AiService, ConsolePrinter, ModelName } from "@dxos/ai";
|
|
|
22
22
|
import { AiSession, GenerationObserver, createToolkit } from "@dxos/assistant";
|
|
23
23
|
import { Prompt, Template } from "@dxos/blueprints";
|
|
24
24
|
import { Obj, Ref, Type } from "@dxos/echo";
|
|
25
|
-
import {
|
|
25
|
+
import { Database } from "@dxos/echo";
|
|
26
|
+
import { TracingService, defineFunction } from "@dxos/functions";
|
|
26
27
|
import { log } from "@dxos/log";
|
|
27
28
|
var __dxlog_file = "/__w/dxos/dxos/packages/core/assistant-toolkit/src/functions/agent/prompt.ts";
|
|
28
29
|
var DEFAULT_MODEL = "@anthropic/claude-opus-4-0";
|
|
@@ -51,19 +52,19 @@ var prompt_default = defineFunction({
|
|
|
51
52
|
input: data.input
|
|
52
53
|
}, {
|
|
53
54
|
F: __dxlog_file,
|
|
54
|
-
L:
|
|
55
|
+
L: 41,
|
|
55
56
|
S: this,
|
|
56
57
|
C: (f, a) => f(...a)
|
|
57
58
|
});
|
|
58
59
|
const input = yield* Match.value(data.input).pipe(Match.when((value2) => Ref.isRef(value2), Effect.fnUntraced(function* (ref) {
|
|
59
|
-
const object = yield*
|
|
60
|
+
const object = yield* Database.Service.load(ref);
|
|
60
61
|
return Obj.toJSON(object);
|
|
61
62
|
})), Match.orElse(() => Effect.succeed(data.input)));
|
|
62
|
-
yield*
|
|
63
|
+
yield* Database.Service.flush({
|
|
63
64
|
indexes: true
|
|
64
65
|
});
|
|
65
|
-
const prompt = yield*
|
|
66
|
-
const systemPrompt = data.systemPrompt ? yield*
|
|
66
|
+
const prompt = yield* Database.Service.load(data.prompt);
|
|
67
|
+
const systemPrompt = data.systemPrompt ? yield* Database.Service.load(data.systemPrompt) : void 0;
|
|
67
68
|
yield* TracingService.emitStatus({
|
|
68
69
|
message: `Running ${prompt.id}`
|
|
69
70
|
});
|
|
@@ -72,18 +73,18 @@ var prompt_default = defineFunction({
|
|
|
72
73
|
input
|
|
73
74
|
}, {
|
|
74
75
|
F: __dxlog_file,
|
|
75
|
-
L:
|
|
76
|
+
L: 71,
|
|
76
77
|
S: this,
|
|
77
78
|
C: (f, a) => f(...a)
|
|
78
79
|
});
|
|
79
|
-
const blueprints = yield* Function.pipe(prompt.blueprints, Array2.appendAll(systemPrompt?.blueprints ?? []), Effect.forEach(
|
|
80
|
-
const objects = yield* Function.pipe(prompt.context, Array2.appendAll(systemPrompt?.context ?? []), Effect.forEach(
|
|
80
|
+
const blueprints = yield* Function.pipe(prompt.blueprints, Array2.appendAll(systemPrompt?.blueprints ?? []), Effect.forEach(Database.Service.loadOption), Effect.map(Array2.filter(Option.isSome)), Effect.map(Array2.map((option) => option.value)));
|
|
81
|
+
const objects = yield* Function.pipe(prompt.context, Array2.appendAll(systemPrompt?.context ?? []), Effect.forEach(Database.Service.loadOption), Effect.map(Array2.filter(Option.isSome)), Effect.map(Array2.map((option) => option.value)));
|
|
81
82
|
const toolkit = yield* createToolkit({
|
|
82
83
|
blueprints
|
|
83
84
|
});
|
|
84
|
-
const promptInstructions = yield*
|
|
85
|
+
const promptInstructions = yield* Database.Service.load(prompt.instructions.source);
|
|
85
86
|
const promptText = Template.process(promptInstructions.content, input);
|
|
86
|
-
const systemInstructions = systemPrompt ? yield*
|
|
87
|
+
const systemInstructions = systemPrompt ? yield* Database.Service.load(systemPrompt.instructions.source) : void 0;
|
|
87
88
|
const systemText = systemInstructions ? Template.process(systemInstructions.content, {}) : void 0;
|
|
88
89
|
const session = new AiSession();
|
|
89
90
|
const result = yield* session.run({
|
|
@@ -312,7 +313,8 @@ var Discord;
|
|
|
312
313
|
import * as Effect3 from "effect/Effect";
|
|
313
314
|
import * as Schema3 from "effect/Schema";
|
|
314
315
|
import { ArtifactId } from "@dxos/assistant";
|
|
315
|
-
import {
|
|
316
|
+
import { Database as Database2 } from "@dxos/echo";
|
|
317
|
+
import { defineFunction as defineFunction3 } from "@dxos/functions";
|
|
316
318
|
import { Markdown } from "@dxos/plugin-markdown/types";
|
|
317
319
|
var read_default = defineFunction3({
|
|
318
320
|
key: "dxos.org/function/markdown/read",
|
|
@@ -327,8 +329,8 @@ var read_default = defineFunction3({
|
|
|
327
329
|
content: Schema3.String
|
|
328
330
|
}),
|
|
329
331
|
handler: Effect3.fn(function* ({ data: { id } }) {
|
|
330
|
-
const doc = yield*
|
|
331
|
-
const { content } = yield*
|
|
332
|
+
const doc = yield* Database2.Service.resolve(ArtifactId.toDXN(id), Markdown.Document);
|
|
333
|
+
const { content } = yield* Database2.Service.load(doc.content);
|
|
332
334
|
return {
|
|
333
335
|
content
|
|
334
336
|
};
|
|
@@ -339,7 +341,8 @@ var read_default = defineFunction3({
|
|
|
339
341
|
import * as Effect4 from "effect/Effect";
|
|
340
342
|
import * as Schema4 from "effect/Schema";
|
|
341
343
|
import { ArtifactId as ArtifactId2 } from "@dxos/assistant";
|
|
342
|
-
import {
|
|
344
|
+
import { Database as Database3 } from "@dxos/echo";
|
|
345
|
+
import { defineFunction as defineFunction4 } from "@dxos/functions";
|
|
343
346
|
import { Markdown as Markdown2 } from "@dxos/plugin-markdown/types";
|
|
344
347
|
var update_default = defineFunction4({
|
|
345
348
|
key: "dxos.org/function/markdown/update",
|
|
@@ -355,8 +358,8 @@ var update_default = defineFunction4({
|
|
|
355
358
|
}),
|
|
356
359
|
outputSchema: Schema4.Void,
|
|
357
360
|
handler: Effect4.fn(function* ({ data: { id, content } }) {
|
|
358
|
-
const doc = yield*
|
|
359
|
-
const text = yield*
|
|
361
|
+
const doc = yield* Database3.Service.resolve(ArtifactId2.toDXN(id), Markdown2.Document);
|
|
362
|
+
const text = yield* Database3.Service.load(doc.content);
|
|
360
363
|
text.content = content;
|
|
361
364
|
})
|
|
362
365
|
});
|
|
@@ -377,7 +380,8 @@ import * as Schema11 from "effect/Schema";
|
|
|
377
380
|
import { AiService as AiService3 } from "@dxos/ai";
|
|
378
381
|
import { AiSession as AiSession3, makeToolExecutionServiceFromFunctions as makeToolExecutionServiceFromFunctions2, makeToolResolverFromFunctions as makeToolResolverFromFunctions2 } from "@dxos/assistant";
|
|
379
382
|
import { Filter as Filter2, Obj as Obj7, Ref as Ref3 } from "@dxos/echo";
|
|
380
|
-
import {
|
|
383
|
+
import { Database as Database8 } from "@dxos/echo";
|
|
384
|
+
import { defineFunction as defineFunction9 } from "@dxos/functions";
|
|
381
385
|
import { FunctionInvocationServiceLayerTest } from "@dxos/functions-runtime/testing";
|
|
382
386
|
import { log as log5 } from "@dxos/log";
|
|
383
387
|
import { LegacyOrganization as LegacyOrganization2, Message as Message2, Organization, Person as Person2 } from "@dxos/types";
|
|
@@ -392,13 +396,13 @@ import * as Function3 from "effect/Function";
|
|
|
392
396
|
import * as Option3 from "effect/Option";
|
|
393
397
|
import * as Schema5 from "effect/Schema";
|
|
394
398
|
import * as SchemaAST from "effect/SchemaAST";
|
|
395
|
-
import { Obj as Obj3 } from "@dxos/echo";
|
|
396
|
-
import {
|
|
397
|
-
import {
|
|
399
|
+
import { Entity, Filter, Obj as Obj3, Query, Type as Type2 } from "@dxos/echo";
|
|
400
|
+
import { Database as Database4 } from "@dxos/echo";
|
|
401
|
+
import { ReferenceAnnotationId, RelationSourceDXNId, RelationSourceId, RelationTargetDXNId, RelationTargetId, createObject, getTypeAnnotation, getTypeIdentifierAnnotation } from "@dxos/echo/internal";
|
|
398
402
|
import { isEncodedReference } from "@dxos/echo-protocol";
|
|
399
403
|
import { mapAst } from "@dxos/effect";
|
|
400
|
-
import { ContextQueueService
|
|
401
|
-
import { DXN } from "@dxos/keys";
|
|
404
|
+
import { ContextQueueService } from "@dxos/functions";
|
|
405
|
+
import { DXN, ObjectId } from "@dxos/keys";
|
|
402
406
|
import { log as log3 } from "@dxos/log";
|
|
403
407
|
import { deepMapValues, isNonNullable, trim } from "@dxos/util";
|
|
404
408
|
var __dxlog_file3 = "/__w/dxos/dxos/packages/core/assistant-toolkit/src/crud/graph.ts";
|
|
@@ -411,7 +415,7 @@ var findRelatedSchema = async (db, anchor) => {
|
|
|
411
415
|
...db.graph.schemaRegistry.schemas
|
|
412
416
|
];
|
|
413
417
|
return allSchemas.filter((schema) => {
|
|
414
|
-
if (getTypeAnnotation(schema)?.kind !==
|
|
418
|
+
if (getTypeAnnotation(schema)?.kind !== Entity.Kind.Relation) {
|
|
415
419
|
return false;
|
|
416
420
|
}
|
|
417
421
|
return isSchemaAddressableByDxn(anchor, DXN.parse(getTypeAnnotation(schema).sourceSchema)) || isSchemaAddressableByDxn(anchor, DXN.parse(getTypeAnnotation(schema).targetSchema));
|
|
@@ -426,7 +430,7 @@ var isSchemaAddressableByDxn = (schema, dxn) => {
|
|
|
426
430
|
}
|
|
427
431
|
const t = dxn.asTypeDXN();
|
|
428
432
|
if (t) {
|
|
429
|
-
return t.type ===
|
|
433
|
+
return t.type === Type2.getTypename(schema);
|
|
430
434
|
}
|
|
431
435
|
return false;
|
|
432
436
|
};
|
|
@@ -440,12 +444,12 @@ var LocalSearchToolkit = Toolkit.make(Tool.make("search_local_search", {
|
|
|
440
444
|
success: Schema5.Unknown,
|
|
441
445
|
failure: Schema5.Never,
|
|
442
446
|
dependencies: [
|
|
443
|
-
|
|
447
|
+
Database4.Service
|
|
444
448
|
]
|
|
445
449
|
}));
|
|
446
450
|
var LocalSearchHandler = LocalSearchToolkit.toLayer({
|
|
447
451
|
search_local_search: Effect5.fn(function* ({ query }) {
|
|
448
|
-
const
|
|
452
|
+
const objects = yield* Database4.Service.runQuery(Query.select(Filter.text(query, {
|
|
449
453
|
type: "vector"
|
|
450
454
|
})));
|
|
451
455
|
const results = [
|
|
@@ -472,7 +476,7 @@ var makeGraphWriterToolkit = ({ schema }) => {
|
|
|
472
476
|
success: Schema5.Unknown,
|
|
473
477
|
failure: Schema5.Never,
|
|
474
478
|
dependencies: [
|
|
475
|
-
|
|
479
|
+
Database4.Service,
|
|
476
480
|
ContextQueueService
|
|
477
481
|
]
|
|
478
482
|
}).annotateContext(Context.make(GraphWriterSchema, {
|
|
@@ -483,7 +487,7 @@ var makeGraphWriterHandler = (toolkit, { onAppend } = {}) => {
|
|
|
483
487
|
const { schema } = Context.get(toolkit.tools.graph_writer.annotations, GraphWriterSchema);
|
|
484
488
|
return toolkit.toLayer({
|
|
485
489
|
graph_writer: Effect5.fn(function* (input) {
|
|
486
|
-
const { db } = yield*
|
|
490
|
+
const { db } = yield* Database4.Service;
|
|
487
491
|
const { queue } = yield* ContextQueueService;
|
|
488
492
|
const data = yield* Effect5.promise(() => sanitizeObjects(schema, input, db, queue));
|
|
489
493
|
yield* Effect5.promise(() => queue.append(data));
|
|
@@ -498,13 +502,13 @@ var createExtractionSchema = (types) => {
|
|
|
498
502
|
...Object.fromEntries(types.map(preprocessSchema).map((schema, index) => [
|
|
499
503
|
`objects_${getSanitizedSchemaName(types[index])}`,
|
|
500
504
|
Schema5.optional(Schema5.Array(schema)).annotations({
|
|
501
|
-
description: `The objects of type: ${
|
|
505
|
+
description: `The objects of type: ${Type2.getDXN(types[index])?.asTypeDXN().type}. ${SchemaAST.getDescriptionAnnotation(types[index].ast).pipe(Option3.getOrElse(() => ""))}`
|
|
502
506
|
})
|
|
503
507
|
]))
|
|
504
508
|
});
|
|
505
509
|
};
|
|
506
510
|
var getSanitizedSchemaName = (schema) => {
|
|
507
|
-
return
|
|
511
|
+
return Type2.getDXN(schema).asTypeDXN().type.replaceAll(/[^a-zA-Z0-9]+/g, "_");
|
|
508
512
|
};
|
|
509
513
|
var sanitizeObjects = async (types, data, db, queue) => {
|
|
510
514
|
const entries = types.map((type) => data[`objects_${getSanitizedSchemaName(type)}`]?.map((object) => ({
|
|
@@ -549,14 +553,14 @@ var sanitizeObjects = async (types, data, db, queue) => {
|
|
|
549
553
|
}
|
|
550
554
|
return recurse(value2);
|
|
551
555
|
});
|
|
552
|
-
if (
|
|
556
|
+
if (Entity.getKind(entry.schema) === "relation") {
|
|
553
557
|
const sourceDxn = resolveId(data2.source);
|
|
554
558
|
if (!sourceDxn) {
|
|
555
559
|
log3.warn("source not found", {
|
|
556
560
|
source: data2.source
|
|
557
561
|
}, {
|
|
558
562
|
F: __dxlog_file3,
|
|
559
|
-
L:
|
|
563
|
+
L: 276,
|
|
560
564
|
S: void 0,
|
|
561
565
|
C: (f, a) => f(...a)
|
|
562
566
|
});
|
|
@@ -567,7 +571,7 @@ var sanitizeObjects = async (types, data, db, queue) => {
|
|
|
567
571
|
target: data2.target
|
|
568
572
|
}, {
|
|
569
573
|
F: __dxlog_file3,
|
|
570
|
-
L:
|
|
574
|
+
L: 280,
|
|
571
575
|
S: void 0,
|
|
572
576
|
C: (f, a) => f(...a)
|
|
573
577
|
});
|
|
@@ -582,7 +586,7 @@ var sanitizeObjects = async (types, data, db, queue) => {
|
|
|
582
586
|
schema: entry.schema
|
|
583
587
|
};
|
|
584
588
|
}).filter((object) => !existingIds.has(object.data.id));
|
|
585
|
-
const
|
|
589
|
+
const dbObjects = await db.query(Query.select(Filter.id(...existingIds))).run();
|
|
586
590
|
const queueObjects = await queue?.getObjectsById([
|
|
587
591
|
...existingIds
|
|
588
592
|
]) ?? [];
|
|
@@ -596,7 +600,7 @@ var sanitizeObjects = async (types, data, db, queue) => {
|
|
|
596
600
|
existingIds
|
|
597
601
|
}, {
|
|
598
602
|
F: __dxlog_file3,
|
|
599
|
-
L:
|
|
603
|
+
L: 301,
|
|
600
604
|
S: void 0,
|
|
601
605
|
C: (f, a) => f(...a)
|
|
602
606
|
});
|
|
@@ -627,7 +631,7 @@ var sanitizeObjects = async (types, data, db, queue) => {
|
|
|
627
631
|
}
|
|
628
632
|
}
|
|
629
633
|
if (!skip) {
|
|
630
|
-
const obj =
|
|
634
|
+
const obj = createObject(schema, data2);
|
|
631
635
|
enitties.set(obj.id, obj);
|
|
632
636
|
return [
|
|
633
637
|
obj
|
|
@@ -642,7 +646,7 @@ var SoftRef = Schema5.Struct({
|
|
|
642
646
|
description: "Reference to another object."
|
|
643
647
|
});
|
|
644
648
|
var preprocessSchema = (schema) => {
|
|
645
|
-
const isRelationSchema =
|
|
649
|
+
const isRelationSchema = Entity.getKind(schema) === "relation";
|
|
646
650
|
const go = (ast, visited = /* @__PURE__ */ new Set()) => {
|
|
647
651
|
if (visited.has(ast)) {
|
|
648
652
|
return ast;
|
|
@@ -672,7 +676,8 @@ import * as Effect6 from "effect/Effect";
|
|
|
672
676
|
import * as Schema6 from "effect/Schema";
|
|
673
677
|
import { ArtifactId as ArtifactId3 } from "@dxos/assistant";
|
|
674
678
|
import { Obj as Obj4, Relation } from "@dxos/echo";
|
|
675
|
-
import {
|
|
679
|
+
import { Database as Database5 } from "@dxos/echo";
|
|
680
|
+
import { TracingService as TracingService3, defineFunction as defineFunction5 } from "@dxos/functions";
|
|
676
681
|
import { log as log4 } from "@dxos/log";
|
|
677
682
|
import { Markdown as Markdown3 } from "@dxos/plugin-markdown/types";
|
|
678
683
|
import { HasSubject } from "@dxos/types";
|
|
@@ -710,27 +715,27 @@ var document_create_default = defineFunction5({
|
|
|
710
715
|
content
|
|
711
716
|
}, {
|
|
712
717
|
F: __dxlog_file4,
|
|
713
|
-
L:
|
|
718
|
+
L: 43,
|
|
714
719
|
S: this,
|
|
715
720
|
C: (f, a) => f(...a)
|
|
716
721
|
});
|
|
717
|
-
yield*
|
|
722
|
+
yield* Database5.Service.flush({
|
|
718
723
|
indexes: true
|
|
719
724
|
});
|
|
720
725
|
yield* TracingService3.emitStatus({
|
|
721
726
|
message: "Creating research document..."
|
|
722
727
|
});
|
|
723
|
-
const target = yield*
|
|
724
|
-
const object = yield*
|
|
728
|
+
const target = yield* Database5.Service.resolve(ArtifactId3.toDXN(subject));
|
|
729
|
+
const object = yield* Database5.Service.add(Markdown3.make({
|
|
725
730
|
name,
|
|
726
731
|
content
|
|
727
732
|
}));
|
|
728
|
-
yield*
|
|
733
|
+
yield* Database5.Service.add(Relation.make(HasSubject.HasSubject, {
|
|
729
734
|
[Relation.Source]: object,
|
|
730
735
|
[Relation.Target]: target,
|
|
731
736
|
completedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
732
737
|
}));
|
|
733
|
-
yield*
|
|
738
|
+
yield* Database5.Service.flush({
|
|
734
739
|
indexes: true
|
|
735
740
|
});
|
|
736
741
|
log4.info("Created research document", {
|
|
@@ -738,7 +743,7 @@ var document_create_default = defineFunction5({
|
|
|
738
743
|
object
|
|
739
744
|
}, {
|
|
740
745
|
F: __dxlog_file4,
|
|
741
|
-
L:
|
|
746
|
+
L: 70,
|
|
742
747
|
S: this,
|
|
743
748
|
C: (f, a) => f(...a)
|
|
744
749
|
});
|
|
@@ -762,7 +767,8 @@ import { AiService as AiService2, ConsolePrinter as ConsolePrinter2 } from "@dxo
|
|
|
762
767
|
import { AiSession as AiSession2, GenerationObserver as GenerationObserver2, createToolkit as createToolkit2, makeToolExecutionServiceFromFunctions, makeToolResolverFromFunctions } from "@dxos/assistant";
|
|
763
768
|
import { Template as Template2 } from "@dxos/blueprints";
|
|
764
769
|
import { Obj as Obj6 } from "@dxos/echo";
|
|
765
|
-
import {
|
|
770
|
+
import { Database as Database7 } from "@dxos/echo";
|
|
771
|
+
import { TracingService as TracingService4, defineFunction as defineFunction8 } from "@dxos/functions";
|
|
766
772
|
import { FunctionInvocationServiceLayerTestMocked } from "@dxos/functions-runtime/testing";
|
|
767
773
|
import { Person } from "@dxos/types";
|
|
768
774
|
import { trim as trim3 } from "@dxos/util";
|
|
@@ -1362,28 +1368,30 @@ var levenshteinDistance = (str1, str2) => {
|
|
|
1362
1368
|
import * as Effect9 from "effect/Effect";
|
|
1363
1369
|
import * as Layer2 from "effect/Layer";
|
|
1364
1370
|
import * as Schema9 from "effect/Schema";
|
|
1365
|
-
import { Obj as Obj5, Query as Query2, Ref as Ref2, Type as
|
|
1371
|
+
import { Obj as Obj5, Query as Query2, Ref as Ref2, Type as Type3 } from "@dxos/echo";
|
|
1372
|
+
import { Database as Database6 } from "@dxos/echo";
|
|
1373
|
+
import { SystemTypeAnnotation } from "@dxos/echo/internal";
|
|
1366
1374
|
import { Queue } from "@dxos/echo-db";
|
|
1367
|
-
import { ContextQueueService as ContextQueueService2,
|
|
1375
|
+
import { ContextQueueService as ContextQueueService2, QueueService } from "@dxos/functions";
|
|
1368
1376
|
var ResearchGraph = Schema9.Struct({
|
|
1369
|
-
queue:
|
|
1370
|
-
}).pipe(
|
|
1377
|
+
queue: Type3.Ref(Queue)
|
|
1378
|
+
}).pipe(Type3.Obj({
|
|
1371
1379
|
typename: "dxos.org/type/ResearchGraph",
|
|
1372
1380
|
version: "0.1.0"
|
|
1373
|
-
}));
|
|
1381
|
+
}), SystemTypeAnnotation.set(true));
|
|
1374
1382
|
var queryResearchGraph = Effect9.fn("queryResearchGraph")(function* () {
|
|
1375
|
-
const
|
|
1383
|
+
const objects = yield* Database6.Service.runQuery(Query2.type(ResearchGraph));
|
|
1376
1384
|
return objects.at(0);
|
|
1377
1385
|
});
|
|
1378
1386
|
var createResearchGraph = Effect9.fn("createResearchGraph")(function* () {
|
|
1379
1387
|
const queue = yield* QueueService.createQueue();
|
|
1380
|
-
return yield*
|
|
1388
|
+
return yield* Database6.Service.add(Obj5.make(ResearchGraph, {
|
|
1381
1389
|
queue: Ref2.fromDXN(queue.dxn)
|
|
1382
1390
|
}));
|
|
1383
1391
|
});
|
|
1384
1392
|
var contextQueueLayerFromResearchGraph = Layer2.unwrapEffect(Effect9.gen(function* () {
|
|
1385
1393
|
const researchGraph = (yield* queryResearchGraph()) ?? (yield* createResearchGraph());
|
|
1386
|
-
const researchQueue = yield*
|
|
1394
|
+
const researchQueue = yield* Database6.Service.load(researchGraph.queue);
|
|
1387
1395
|
return ContextQueueService2.layer(researchQueue);
|
|
1388
1396
|
}));
|
|
1389
1397
|
|
|
@@ -1452,7 +1460,7 @@ var research_default = defineFunction8({
|
|
|
1452
1460
|
}),
|
|
1453
1461
|
handler: Effect10.fnUntraced(function* ({ data: { query, instructions: instructions6, mockSearch = false, entityExtraction = false } }) {
|
|
1454
1462
|
if (mockSearch) {
|
|
1455
|
-
const mockPerson = yield*
|
|
1463
|
+
const mockPerson = yield* Database7.Service.add(Obj6.make(Person.Person, {
|
|
1456
1464
|
preferredName: "John Doe",
|
|
1457
1465
|
emails: [
|
|
1458
1466
|
{
|
|
@@ -1475,7 +1483,7 @@ var research_default = defineFunction8({
|
|
|
1475
1483
|
]
|
|
1476
1484
|
};
|
|
1477
1485
|
}
|
|
1478
|
-
yield*
|
|
1486
|
+
yield* Database7.Service.flush({
|
|
1479
1487
|
indexes: true
|
|
1480
1488
|
});
|
|
1481
1489
|
yield* TracingService4.emitStatus({
|
|
@@ -1509,7 +1517,7 @@ var research_default = defineFunction8({
|
|
|
1509
1517
|
tag: "research"
|
|
1510
1518
|
}))
|
|
1511
1519
|
});
|
|
1512
|
-
const objects = yield* Effect10.forEach(objectDXNs, (dxn) =>
|
|
1520
|
+
const objects = yield* Effect10.forEach(objectDXNs, (dxn) => Database7.Service.resolve(dxn)).pipe(Effect10.map(Array6.map((obj) => Obj6.toJSON(obj))));
|
|
1513
1521
|
return {
|
|
1514
1522
|
document: extractLastTextBlock(result),
|
|
1515
1523
|
objects
|
|
@@ -1594,7 +1602,7 @@ var entity_extraction_default = defineFunction9({
|
|
|
1594
1602
|
if (created.length > 1) {
|
|
1595
1603
|
throw new Error("Multiple organizations created");
|
|
1596
1604
|
} else if (created.length === 1) {
|
|
1597
|
-
organization = yield*
|
|
1605
|
+
organization = yield* Database8.Service.resolve(created[0], Organization.Organization);
|
|
1598
1606
|
Obj7.getMeta(organization).tags ??= [];
|
|
1599
1607
|
Obj7.getMeta(organization).tags.push(...tags ?? []);
|
|
1600
1608
|
contact.organization = Ref3.make(organization);
|
|
@@ -1619,13 +1627,13 @@ var extractContact = Effect11.fn("extractContact")(function* (actor, tags) {
|
|
|
1619
1627
|
actor
|
|
1620
1628
|
}, {
|
|
1621
1629
|
F: __dxlog_file5,
|
|
1622
|
-
L:
|
|
1630
|
+
L: 107,
|
|
1623
1631
|
S: this,
|
|
1624
1632
|
C: (f, a) => f(...a)
|
|
1625
1633
|
});
|
|
1626
1634
|
return void 0;
|
|
1627
1635
|
}
|
|
1628
|
-
const
|
|
1636
|
+
const existingContacts = yield* Database8.Service.runQuery(Filter2.type(Person2.Person));
|
|
1629
1637
|
const existingContact = existingContacts.find((contact) => contact.emails?.some((contactEmail) => contactEmail.value === email));
|
|
1630
1638
|
if (existingContact) {
|
|
1631
1639
|
log5.info("Contact already exists", {
|
|
@@ -1633,7 +1641,7 @@ var extractContact = Effect11.fn("extractContact")(function* (actor, tags) {
|
|
|
1633
1641
|
existingContact
|
|
1634
1642
|
}, {
|
|
1635
1643
|
F: __dxlog_file5,
|
|
1636
|
-
L:
|
|
1644
|
+
L: 120,
|
|
1637
1645
|
S: this,
|
|
1638
1646
|
C: (f, a) => f(...a)
|
|
1639
1647
|
});
|
|
@@ -1649,7 +1657,7 @@ var extractContact = Effect11.fn("extractContact")(function* (actor, tags) {
|
|
|
1649
1657
|
}
|
|
1650
1658
|
]
|
|
1651
1659
|
});
|
|
1652
|
-
yield*
|
|
1660
|
+
yield* Database8.Service.add(newContact);
|
|
1653
1661
|
if (name) {
|
|
1654
1662
|
newContact.fullName = name;
|
|
1655
1663
|
}
|
|
@@ -1659,7 +1667,7 @@ var extractContact = Effect11.fn("extractContact")(function* (actor, tags) {
|
|
|
1659
1667
|
email
|
|
1660
1668
|
}, {
|
|
1661
1669
|
F: __dxlog_file5,
|
|
1662
|
-
L:
|
|
1670
|
+
L: 136,
|
|
1663
1671
|
S: this,
|
|
1664
1672
|
C: (f, a) => f(...a)
|
|
1665
1673
|
});
|
|
@@ -1669,11 +1677,11 @@ var extractContact = Effect11.fn("extractContact")(function* (actor, tags) {
|
|
|
1669
1677
|
emailDomain
|
|
1670
1678
|
}, {
|
|
1671
1679
|
F: __dxlog_file5,
|
|
1672
|
-
L:
|
|
1680
|
+
L: 140,
|
|
1673
1681
|
S: this,
|
|
1674
1682
|
C: (f, a) => f(...a)
|
|
1675
1683
|
});
|
|
1676
|
-
const
|
|
1684
|
+
const existingOrganisations = yield* Database8.Service.runQuery(Filter2.type(Organization.Organization));
|
|
1677
1685
|
const matchingOrg = existingOrganisations.find((org) => {
|
|
1678
1686
|
if (org.website) {
|
|
1679
1687
|
try {
|
|
@@ -1686,7 +1694,7 @@ var extractContact = Effect11.fn("extractContact")(function* (actor, tags) {
|
|
|
1686
1694
|
error: e
|
|
1687
1695
|
}, {
|
|
1688
1696
|
F: __dxlog_file5,
|
|
1689
|
-
L:
|
|
1697
|
+
L: 158,
|
|
1690
1698
|
S: this,
|
|
1691
1699
|
C: (f, a) => f(...a)
|
|
1692
1700
|
});
|
|
@@ -1700,7 +1708,7 @@ var extractContact = Effect11.fn("extractContact")(function* (actor, tags) {
|
|
|
1700
1708
|
organization: matchingOrg
|
|
1701
1709
|
}, {
|
|
1702
1710
|
F: __dxlog_file5,
|
|
1703
|
-
L:
|
|
1711
|
+
L: 169,
|
|
1704
1712
|
S: this,
|
|
1705
1713
|
C: (f, a) => f(...a)
|
|
1706
1714
|
});
|
|
@@ -1723,14 +1731,15 @@ import * as Effect13 from "effect/Effect";
|
|
|
1723
1731
|
import * as Function5 from "effect/Function";
|
|
1724
1732
|
import * as Schema12 from "effect/Schema";
|
|
1725
1733
|
import { Filter as Filter4, Obj as Obj9, Query as Query4, Ref as Ref5 } from "@dxos/echo";
|
|
1726
|
-
import {
|
|
1734
|
+
import { Database as Database10 } from "@dxos/echo";
|
|
1735
|
+
import { defineFunction as defineFunction10, withAuthorization } from "@dxos/functions";
|
|
1727
1736
|
import { log as log7 } from "@dxos/log";
|
|
1728
1737
|
import { Person as Person3, Project as Project2, Task as Task2 } from "@dxos/types";
|
|
1729
1738
|
|
|
1730
1739
|
// src/sync/sync.ts
|
|
1731
1740
|
import * as Effect12 from "effect/Effect";
|
|
1732
1741
|
import { Filter as Filter3, Obj as Obj8, Query as Query3, Ref as Ref4 } from "@dxos/echo";
|
|
1733
|
-
import {
|
|
1742
|
+
import { Database as Database9 } from "@dxos/echo";
|
|
1734
1743
|
import { failedInvariant } from "@dxos/invariant";
|
|
1735
1744
|
import { log as log6 } from "@dxos/log";
|
|
1736
1745
|
var __dxlog_file6 = "/__w/dxos/dxos/packages/core/assistant-toolkit/src/sync/sync.ts";
|
|
@@ -1752,7 +1761,7 @@ var syncObjects = Effect12.fn("syncObjects")(function* (objs, { foreignKeyId })
|
|
|
1752
1761
|
}
|
|
1753
1762
|
const schema = Obj8.getSchema(obj) ?? failedInvariant("No schema.");
|
|
1754
1763
|
const foreignId = Obj8.getKeys(obj, foreignKeyId)[0]?.id ?? failedInvariant("No foreign key.");
|
|
1755
|
-
const
|
|
1764
|
+
const [existing] = yield* Database9.Service.runQuery(Query3.select(Filter3.foreignKeys(schema, [
|
|
1756
1765
|
{
|
|
1757
1766
|
source: foreignKeyId,
|
|
1758
1767
|
id: foreignId
|
|
@@ -1764,12 +1773,12 @@ var syncObjects = Effect12.fn("syncObjects")(function* (objs, { foreignKeyId })
|
|
|
1764
1773
|
existing: existing ? Obj8.getDXN(existing) : void 0
|
|
1765
1774
|
}, {
|
|
1766
1775
|
F: __dxlog_file6,
|
|
1767
|
-
L:
|
|
1776
|
+
L: 45,
|
|
1768
1777
|
S: this,
|
|
1769
1778
|
C: (f, a) => f(...a)
|
|
1770
1779
|
});
|
|
1771
1780
|
if (!existing) {
|
|
1772
|
-
yield*
|
|
1781
|
+
yield* Database9.Service.add(obj);
|
|
1773
1782
|
return obj;
|
|
1774
1783
|
} else {
|
|
1775
1784
|
copyObjectData(existing, obj);
|
|
@@ -1826,7 +1835,7 @@ query Issues($teamId: String!, $after: DateTimeOrDuration!) {
|
|
|
1826
1835
|
updatedAt
|
|
1827
1836
|
description
|
|
1828
1837
|
assignee { id, name }
|
|
1829
|
-
state {
|
|
1838
|
+
state {
|
|
1830
1839
|
name
|
|
1831
1840
|
}
|
|
1832
1841
|
project {
|
|
@@ -1865,7 +1874,7 @@ var sync_issues_default = defineFunction10({
|
|
|
1865
1874
|
after
|
|
1866
1875
|
}, {
|
|
1867
1876
|
F: __dxlog_file7,
|
|
1868
|
-
L:
|
|
1877
|
+
L: 92,
|
|
1869
1878
|
S: this,
|
|
1870
1879
|
C: (f, a) => f(...a)
|
|
1871
1880
|
});
|
|
@@ -1883,7 +1892,7 @@ var sync_issues_default = defineFunction10({
|
|
|
1883
1892
|
count: tasks.length
|
|
1884
1893
|
}, {
|
|
1885
1894
|
F: __dxlog_file7,
|
|
1886
|
-
L:
|
|
1895
|
+
L: 105,
|
|
1887
1896
|
S: this,
|
|
1888
1897
|
C: (f, a) => f(...a)
|
|
1889
1898
|
});
|
|
@@ -1896,7 +1905,7 @@ var sync_issues_default = defineFunction10({
|
|
|
1896
1905
|
}, Effect13.provide(FetchHttpClient2.layer))
|
|
1897
1906
|
});
|
|
1898
1907
|
var getLatestUpdateTimestamp = Effect13.fnUntraced(function* (teamId, dataType) {
|
|
1899
|
-
const
|
|
1908
|
+
const existingTasks = yield* Database10.Service.runQuery(Query4.type(dataType).select(Filter4.foreignKeys(dataType, [
|
|
1900
1909
|
{
|
|
1901
1910
|
source: LINEAR_TEAM_ID_KEY,
|
|
1902
1911
|
id: teamId
|
|
@@ -1970,7 +1979,8 @@ var Linear;
|
|
|
1970
1979
|
import * as Effect14 from "effect/Effect";
|
|
1971
1980
|
import * as Schema13 from "effect/Schema";
|
|
1972
1981
|
import { ArtifactId as ArtifactId4 } from "@dxos/assistant";
|
|
1973
|
-
import {
|
|
1982
|
+
import { Database as Database11 } from "@dxos/echo";
|
|
1983
|
+
import { defineFunction as defineFunction11 } from "@dxos/functions";
|
|
1974
1984
|
import { Markdown as Markdown4 } from "@dxos/plugin-markdown/types";
|
|
1975
1985
|
var read_default2 = defineFunction11({
|
|
1976
1986
|
key: "dxos.org/function/markdown/read-tasks",
|
|
@@ -1985,8 +1995,8 @@ var read_default2 = defineFunction11({
|
|
|
1985
1995
|
content: Schema13.String
|
|
1986
1996
|
}),
|
|
1987
1997
|
handler: Effect14.fn(function* ({ data: { id } }) {
|
|
1988
|
-
const doc = yield*
|
|
1989
|
-
const { content } = yield*
|
|
1998
|
+
const doc = yield* Database11.Service.resolve(ArtifactId4.toDXN(id), Markdown4.Document);
|
|
1999
|
+
const { content } = yield* Database11.Service.load(doc.content);
|
|
1990
2000
|
const lines = content.split("\n");
|
|
1991
2001
|
const len = String(lines.length).length;
|
|
1992
2002
|
const numbered = lines.map((line, i) => `${String(i + 1).padStart(len, " ")}. ${line}`).join("\n");
|
|
@@ -2000,7 +2010,8 @@ var read_default2 = defineFunction11({
|
|
|
2000
2010
|
import * as Effect15 from "effect/Effect";
|
|
2001
2011
|
import * as Schema14 from "effect/Schema";
|
|
2002
2012
|
import { ArtifactId as ArtifactId5 } from "@dxos/assistant";
|
|
2003
|
-
import {
|
|
2013
|
+
import { Database as Database12 } from "@dxos/echo";
|
|
2014
|
+
import { defineFunction as defineFunction12 } from "@dxos/functions";
|
|
2004
2015
|
import { Markdown as Markdown5 } from "@dxos/plugin-markdown/types";
|
|
2005
2016
|
|
|
2006
2017
|
// src/functions/tasks/task-list.ts
|
|
@@ -2151,8 +2162,8 @@ var update_default2 = defineFunction12({
|
|
|
2151
2162
|
})
|
|
2152
2163
|
}),
|
|
2153
2164
|
handler: Effect15.fn(function* ({ data: { id, operations = [] } }) {
|
|
2154
|
-
const doc = yield*
|
|
2155
|
-
const { content } = yield*
|
|
2165
|
+
const doc = yield* Database12.Service.resolve(ArtifactId5.toDXN(id), Markdown5.Document);
|
|
2166
|
+
const { content } = yield* Database12.Service.load(doc.content);
|
|
2156
2167
|
const taskManager = new MarkdownTasks(content);
|
|
2157
2168
|
if (operations.length > 0) {
|
|
2158
2169
|
taskManager.applyOperations(operations);
|
|
@@ -2430,11 +2441,11 @@ var websearch_default = websearch_blueprint_default;
|
|
|
2430
2441
|
import * as Schema15 from "effect/Schema";
|
|
2431
2442
|
import React from "react";
|
|
2432
2443
|
import { Capabilities, contributes, createSurface } from "@dxos/app-framework";
|
|
2433
|
-
import { Type as
|
|
2444
|
+
import { Format, Type as Type4 } from "@dxos/echo";
|
|
2434
2445
|
import { JsonFilter } from "@dxos/react-ui-syntax-highlighter";
|
|
2435
2446
|
var MapSchema = Schema15.Struct({
|
|
2436
|
-
coordinates:
|
|
2437
|
-
}).pipe(
|
|
2447
|
+
coordinates: Format.GeoPoint
|
|
2448
|
+
}).pipe(Type4.Obj({
|
|
2438
2449
|
typename: "example.com/type/Map",
|
|
2439
2450
|
version: "0.1.0"
|
|
2440
2451
|
}));
|
|
@@ -2457,7 +2468,7 @@ var capabilities = [
|
|
|
2457
2468
|
id: "plugin-default",
|
|
2458
2469
|
role: "card--extrinsic",
|
|
2459
2470
|
position: "fallback",
|
|
2460
|
-
component: ({
|
|
2471
|
+
component: ({ data }) => /* @__PURE__ */ React.createElement(JsonFilter, {
|
|
2461
2472
|
data
|
|
2462
2473
|
})
|
|
2463
2474
|
}))
|
|
@@ -2477,7 +2488,7 @@ import * as Record from "effect/Record";
|
|
|
2477
2488
|
import * as Schema16 from "effect/Schema";
|
|
2478
2489
|
import { AiContextService, ArtifactId as ArtifactId6 } from "@dxos/assistant";
|
|
2479
2490
|
import { Ref as Ref12 } from "@dxos/echo";
|
|
2480
|
-
import {
|
|
2491
|
+
import { Database as Database13 } from "@dxos/echo";
|
|
2481
2492
|
import { trim as trim10 } from "@dxos/util";
|
|
2482
2493
|
var AssistantToolkit = Toolkit5.make(Tool2.make("add-to-context", {
|
|
2483
2494
|
description: trim10`
|
|
@@ -2492,14 +2503,14 @@ var AssistantToolkit = Toolkit5.make(Tool2.make("add-to-context", {
|
|
|
2492
2503
|
failure: Schema16.Never,
|
|
2493
2504
|
dependencies: [
|
|
2494
2505
|
AiContextService,
|
|
2495
|
-
|
|
2506
|
+
Database13.Service
|
|
2496
2507
|
]
|
|
2497
2508
|
}));
|
|
2498
2509
|
var tools = Record.keys(AssistantToolkit.tools);
|
|
2499
2510
|
var layer3 = () => AssistantToolkit.toLayer({
|
|
2500
2511
|
"add-to-context": Effect16.fnUntraced(function* ({ id }) {
|
|
2501
2512
|
const { binder } = yield* AiContextService;
|
|
2502
|
-
const { db } = yield*
|
|
2513
|
+
const { db } = yield* Database13.Service;
|
|
2503
2514
|
const ref = Ref12.fromDXN(ArtifactId6.toDXN(id, db.spaceId));
|
|
2504
2515
|
yield* Effect16.promise(() => binder.bind({
|
|
2505
2516
|
blueprints: [],
|
|
@@ -2523,8 +2534,8 @@ import * as Effect17 from "effect/Effect";
|
|
|
2523
2534
|
import * as Record2 from "effect/Record";
|
|
2524
2535
|
import * as Schema17 from "effect/Schema";
|
|
2525
2536
|
import { ArtifactId as ArtifactId7 } from "@dxos/assistant";
|
|
2526
|
-
import { DXN as DXN2, Obj as Obj16, Relation as Relation2, Tag as Tag2, Type as
|
|
2527
|
-
import {
|
|
2537
|
+
import { DXN as DXN2, Obj as Obj16, Relation as Relation2, Tag as Tag2, Type as Type5 } from "@dxos/echo";
|
|
2538
|
+
import { Database as Database14 } from "@dxos/echo";
|
|
2528
2539
|
import { trim as trim11 } from "@dxos/util";
|
|
2529
2540
|
var SystemToolkit = Toolkit6.make(
|
|
2530
2541
|
//
|
|
@@ -2542,7 +2553,7 @@ var SystemToolkit = Toolkit6.make(
|
|
|
2542
2553
|
success: Schema17.Any,
|
|
2543
2554
|
failure: Schema17.Never,
|
|
2544
2555
|
dependencies: [
|
|
2545
|
-
|
|
2556
|
+
Database14.Service
|
|
2546
2557
|
]
|
|
2547
2558
|
}),
|
|
2548
2559
|
Tool3.make("schema-add", {
|
|
@@ -2559,7 +2570,7 @@ var SystemToolkit = Toolkit6.make(
|
|
|
2559
2570
|
success: Schema17.Any,
|
|
2560
2571
|
failure: Schema17.Never,
|
|
2561
2572
|
dependencies: [
|
|
2562
|
-
|
|
2573
|
+
Database14.Service
|
|
2563
2574
|
]
|
|
2564
2575
|
}),
|
|
2565
2576
|
//
|
|
@@ -2577,7 +2588,7 @@ var SystemToolkit = Toolkit6.make(
|
|
|
2577
2588
|
success: Schema17.Any,
|
|
2578
2589
|
failure: Schema17.Never,
|
|
2579
2590
|
dependencies: [
|
|
2580
|
-
|
|
2591
|
+
Database14.Service
|
|
2581
2592
|
]
|
|
2582
2593
|
}),
|
|
2583
2594
|
Tool3.make("object-remove", {
|
|
@@ -2592,7 +2603,7 @@ var SystemToolkit = Toolkit6.make(
|
|
|
2592
2603
|
success: Schema17.Any,
|
|
2593
2604
|
failure: Schema17.Never,
|
|
2594
2605
|
dependencies: [
|
|
2595
|
-
|
|
2606
|
+
Database14.Service
|
|
2596
2607
|
]
|
|
2597
2608
|
}),
|
|
2598
2609
|
//
|
|
@@ -2618,7 +2629,7 @@ var SystemToolkit = Toolkit6.make(
|
|
|
2618
2629
|
success: Schema17.Any,
|
|
2619
2630
|
failure: Schema17.Never,
|
|
2620
2631
|
dependencies: [
|
|
2621
|
-
|
|
2632
|
+
Database14.Service
|
|
2622
2633
|
]
|
|
2623
2634
|
}),
|
|
2624
2635
|
//
|
|
@@ -2640,7 +2651,7 @@ var SystemToolkit = Toolkit6.make(
|
|
|
2640
2651
|
success: Schema17.Any,
|
|
2641
2652
|
failure: Schema17.Never,
|
|
2642
2653
|
dependencies: [
|
|
2643
|
-
|
|
2654
|
+
Database14.Service
|
|
2644
2655
|
]
|
|
2645
2656
|
}),
|
|
2646
2657
|
Tool3.make("tag-remove", {
|
|
@@ -2659,14 +2670,14 @@ var SystemToolkit = Toolkit6.make(
|
|
|
2659
2670
|
success: Schema17.Any,
|
|
2660
2671
|
failure: Schema17.Never,
|
|
2661
2672
|
dependencies: [
|
|
2662
|
-
|
|
2673
|
+
Database14.Service
|
|
2663
2674
|
]
|
|
2664
2675
|
})
|
|
2665
2676
|
);
|
|
2666
2677
|
var tools2 = Record2.keys(SystemToolkit.tools);
|
|
2667
2678
|
var layer4 = () => SystemToolkit.toLayer({
|
|
2668
2679
|
"schema-list": Effect17.fnUntraced(function* () {
|
|
2669
|
-
const { db } = yield*
|
|
2680
|
+
const { db } = yield* Database14.Service;
|
|
2670
2681
|
const schema = yield* Effect17.promise(() => db.schemaRegistry.query({
|
|
2671
2682
|
location: [
|
|
2672
2683
|
"database",
|
|
@@ -2674,16 +2685,16 @@ var layer4 = () => SystemToolkit.toLayer({
|
|
|
2674
2685
|
]
|
|
2675
2686
|
}).run());
|
|
2676
2687
|
return schema.map((schema2) => {
|
|
2677
|
-
const meta =
|
|
2688
|
+
const meta = Type5.getMeta(schema2);
|
|
2678
2689
|
return {
|
|
2679
|
-
typename:
|
|
2680
|
-
jsonSchema:
|
|
2690
|
+
typename: Type5.getTypename(schema2),
|
|
2691
|
+
jsonSchema: Type5.toJsonSchema(schema2),
|
|
2681
2692
|
kind: meta?.sourceSchema ? "relation" : "record"
|
|
2682
2693
|
};
|
|
2683
2694
|
});
|
|
2684
2695
|
}),
|
|
2685
2696
|
"schema-add": Effect17.fnUntraced(function* ({ name, typename, jsonSchema }) {
|
|
2686
|
-
const { db } = yield*
|
|
2697
|
+
const { db } = yield* Database14.Service;
|
|
2687
2698
|
yield* Effect17.promise(() => db.schemaRegistry.register([
|
|
2688
2699
|
{
|
|
2689
2700
|
typename,
|
|
@@ -2694,7 +2705,7 @@ var layer4 = () => SystemToolkit.toLayer({
|
|
|
2694
2705
|
]));
|
|
2695
2706
|
}),
|
|
2696
2707
|
"object-create": Effect17.fnUntraced(function* ({ typename, data }) {
|
|
2697
|
-
const { db } = yield*
|
|
2708
|
+
const { db } = yield* Database14.Service;
|
|
2698
2709
|
const schema = yield* Effect17.promise(() => db.schemaRegistry.query({
|
|
2699
2710
|
typename,
|
|
2700
2711
|
location: [
|
|
@@ -2706,13 +2717,13 @@ var layer4 = () => SystemToolkit.toLayer({
|
|
|
2706
2717
|
return object;
|
|
2707
2718
|
}),
|
|
2708
2719
|
"object-remove": Effect17.fnUntraced(function* ({ id }) {
|
|
2709
|
-
const { db } = yield*
|
|
2710
|
-
const object = yield*
|
|
2720
|
+
const { db } = yield* Database14.Service;
|
|
2721
|
+
const object = yield* Database14.Service.resolve(DXN2.parse(id));
|
|
2711
2722
|
db.remove(object);
|
|
2712
2723
|
return object;
|
|
2713
2724
|
}),
|
|
2714
2725
|
"relation-create": Effect17.fnUntraced(function* ({ typename, source, target, data }) {
|
|
2715
|
-
const { db } = yield*
|
|
2726
|
+
const { db } = yield* Database14.Service;
|
|
2716
2727
|
const schema = yield* Effect17.promise(() => db.schemaRegistry.query({
|
|
2717
2728
|
typename,
|
|
2718
2729
|
location: [
|
|
@@ -2720,8 +2731,8 @@ var layer4 = () => SystemToolkit.toLayer({
|
|
|
2720
2731
|
"runtime"
|
|
2721
2732
|
]
|
|
2722
2733
|
}).first());
|
|
2723
|
-
const sourceObj = yield*
|
|
2724
|
-
const targetObj = yield*
|
|
2734
|
+
const sourceObj = yield* Database14.Service.resolve(DXN2.parse(source));
|
|
2735
|
+
const targetObj = yield* Database14.Service.resolve(DXN2.parse(target));
|
|
2725
2736
|
const relation = db.add(Relation2.make(schema, {
|
|
2726
2737
|
[Relation2.Source]: sourceObj,
|
|
2727
2738
|
[Relation2.Target]: targetObj,
|
|
@@ -2730,12 +2741,12 @@ var layer4 = () => SystemToolkit.toLayer({
|
|
|
2730
2741
|
return relation;
|
|
2731
2742
|
}),
|
|
2732
2743
|
"tag-add": Effect17.fnUntraced(function* ({ tagId, objectId }) {
|
|
2733
|
-
const object = yield*
|
|
2744
|
+
const object = yield* Database14.Service.resolve(DXN2.parse(objectId));
|
|
2734
2745
|
Obj16.addTag(object, DXN2.parse(tagId).toString());
|
|
2735
2746
|
return object;
|
|
2736
2747
|
}),
|
|
2737
2748
|
"tag-remove": Effect17.fnUntraced(function* ({ tagId, objectId }) {
|
|
2738
|
-
const object = yield*
|
|
2749
|
+
const object = yield* Database14.Service.resolve(DXN2.parse(objectId));
|
|
2739
2750
|
Obj16.removeTag(object, DXN2.parse(tagId).toString());
|
|
2740
2751
|
return object;
|
|
2741
2752
|
})
|