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