@dxos/assistant-toolkit 0.8.4-main.abd8ff62ef → 0.8.4-main.bc2380dfbc
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/LICENSE +102 -5
- package/dist/lib/neutral/{add-artifact-BA5WQRDU.mjs → add-artifact-4IVGW6CI.mjs} +4 -4
- package/dist/lib/neutral/{add-artifact-BA5WQRDU.mjs.map → add-artifact-4IVGW6CI.mjs.map} +3 -3
- package/dist/lib/neutral/{agent-M2EW5M36.mjs → agent-F4L7UXME.mjs} +5 -5
- package/dist/lib/neutral/{agent-M2EW5M36.mjs.map → agent-F4L7UXME.mjs.map} +2 -2
- package/dist/lib/neutral/{chunk-CLHVRIYF.mjs → chunk-5GPL2WXU.mjs} +35 -36
- package/dist/lib/neutral/chunk-5GPL2WXU.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-CVUA23QI.mjs → chunk-7UCYAP3T.mjs} +17 -17
- package/dist/lib/neutral/chunk-7UCYAP3T.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-TO5IX24K.mjs → chunk-ANSF2BHN.mjs} +3 -3
- package/dist/lib/neutral/chunk-ANSF2BHN.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-D5MG5OKX.mjs → chunk-BCT55UTL.mjs} +2 -2
- package/dist/lib/neutral/{chunk-J37DYY7A.mjs → chunk-COL54UJ3.mjs} +12 -3
- package/dist/lib/neutral/chunk-COL54UJ3.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-E2XRNXWP.mjs → chunk-KS3IA6FQ.mjs} +11 -10
- package/dist/lib/neutral/chunk-KS3IA6FQ.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-KY2TIPJ5.mjs → chunk-MMQ7HFL4.mjs} +4 -5
- package/dist/lib/neutral/chunk-MMQ7HFL4.mjs.map +7 -0
- package/dist/lib/neutral/chunk-PLGEBNTO.mjs +65 -0
- package/dist/lib/neutral/chunk-PLGEBNTO.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-JCYLFOFK.mjs → chunk-W2722TC5.mjs} +5 -5
- package/dist/lib/neutral/{chunk-JCYLFOFK.mjs.map → chunk-W2722TC5.mjs.map} +3 -3
- package/dist/lib/neutral/{context-add-IIDPRRVB.mjs → context-add-S5MBW2NA.mjs} +4 -4
- package/dist/lib/neutral/context-add-S5MBW2NA.mjs.map +7 -0
- package/dist/lib/neutral/{context-remove-RDYV4PD4.mjs → context-remove-35O5T5N5.mjs} +4 -4
- package/dist/lib/neutral/context-remove-35O5T5N5.mjs.map +7 -0
- package/dist/lib/neutral/{create-project-GLDEAWTT.mjs → create-project-3AGXJ4TD.mjs} +5 -5
- package/dist/lib/neutral/{enable-blueprints-LBDZH2CY.mjs → enable-blueprints-IVKST3WH.mjs} +4 -4
- package/dist/lib/neutral/enable-blueprints-IVKST3WH.mjs.map +7 -0
- package/dist/lib/neutral/{fetch-messages-PWGUG5G3.mjs → fetch-messages-QOBBCTGC.mjs} +2 -2
- package/dist/lib/neutral/{get-context-B55SX5Y4.mjs → get-context-FBYWIP72.mjs} +4 -4
- package/dist/lib/neutral/{get-context-B55SX5Y4.mjs.map → get-context-FBYWIP72.mjs.map} +3 -3
- package/dist/lib/neutral/index.mjs +67 -57
- package/dist/lib/neutral/index.mjs.map +3 -3
- package/dist/lib/neutral/{load-LI7HHVD6.mjs → load-GAT3T2AD.mjs} +2 -2
- package/dist/lib/neutral/meta.json +1 -1
- package/dist/lib/neutral/{object-create-52Z7YKIA.mjs → object-create-PL3WRP74.mjs} +3 -3
- package/dist/lib/neutral/{object-delete-I266YAXI.mjs → object-delete-PZJQN5KW.mjs} +2 -2
- package/dist/lib/neutral/{object-update-HY4GI7LA.mjs → object-update-R43N3VJX.mjs} +2 -2
- package/dist/lib/neutral/{project-2YBPW5N7.mjs → project-VVXXUMAI.mjs} +4 -4
- package/dist/lib/neutral/{project-rules-XUBEPDP6.mjs → project-rules-KSVSOZJV.mjs} +3 -3
- package/dist/lib/neutral/{prompt-2WZQERT4.mjs → prompt-INL55Q2B.mjs} +10 -7
- package/dist/lib/neutral/{prompt-2WZQERT4.mjs.map → prompt-INL55Q2B.mjs.map} +3 -3
- package/dist/lib/neutral/{qualifier-2AC2ICOB.mjs → qualifier-DAF4H7V3.mjs} +11 -11
- package/dist/lib/neutral/qualifier-DAF4H7V3.mjs.map +7 -0
- package/dist/lib/neutral/{query-B3NOYFCK.mjs → query-MP5NSQKO.mjs} +3 -4
- package/dist/lib/neutral/query-MP5NSQKO.mjs.map +7 -0
- package/dist/lib/neutral/{query-blueprints-KXADGHSA.mjs → query-blueprints-PLWYVOI3.mjs} +2 -2
- package/dist/lib/neutral/{relation-create-Z3NGW4VU.mjs → relation-create-YAAAFTR2.mjs} +3 -3
- package/dist/lib/neutral/{relation-delete-LXY7W2YO.mjs → relation-delete-IEPKERFR.mjs} +2 -2
- package/dist/lib/neutral/{schema-add-4TXJO2V7.mjs → schema-add-5BNIINRS.mjs} +2 -2
- package/dist/lib/neutral/{schema-list-PJS5AFZ3.mjs → schema-list-54UK7S4R.mjs} +2 -2
- package/dist/lib/neutral/{sync-issues-LOLHZNFL.mjs → sync-issues-DWY76B3M.mjs} +6 -7
- package/dist/lib/neutral/sync-issues-DWY76B3M.mjs.map +7 -0
- package/dist/lib/neutral/{sync-triggers-EYJM4QWR.mjs → sync-triggers-NOIQLELD.mjs} +8 -9
- package/dist/lib/neutral/{sync-triggers-EYJM4QWR.mjs.map → sync-triggers-NOIQLELD.mjs.map} +3 -3
- package/dist/lib/neutral/{tag-add-5NOHUTIE.mjs → tag-add-NLVRGTC6.mjs} +2 -2
- package/dist/lib/neutral/{tag-remove-QTKYDJAW.mjs → tag-remove-N4HFBIA2.mjs} +2 -2
- package/dist/lib/neutral/testing/index.mjs +3 -3
- package/dist/lib/neutral/testing/index.mjs.map +3 -3
- package/dist/lib/neutral/{update-blueprints-N2AK2VUR.mjs → update-blueprints-2SNK6HLG.mjs} +2 -2
- package/dist/lib/neutral/update-tasks-QQUR53RN.mjs +13 -0
- package/dist/lib/neutral/update-tasks-QQUR53RN.mjs.map +7 -0
- package/dist/types/src/blueprints/blueprint-manager/functions/definitions.d.ts +10 -8
- package/dist/types/src/blueprints/blueprint-manager/functions/definitions.d.ts.map +1 -1
- package/dist/types/src/blueprints/blueprint-manager/functions/enable-blueprints.d.ts +6 -5
- package/dist/types/src/blueprints/blueprint-manager/functions/enable-blueprints.d.ts.map +1 -1
- package/dist/types/src/blueprints/blueprint-manager/functions/query-blueprints.d.ts +4 -3
- package/dist/types/src/blueprints/database/functions/context-add.d.ts +2 -2
- package/dist/types/src/blueprints/database/functions/context-add.d.ts.map +1 -1
- package/dist/types/src/blueprints/database/functions/context-remove.d.ts +2 -2
- package/dist/types/src/blueprints/database/functions/context-remove.d.ts.map +1 -1
- package/dist/types/src/blueprints/database/functions/definitions.d.ts +3 -3
- package/dist/types/src/blueprints/database/functions/definitions.d.ts.map +1 -1
- package/dist/types/src/blueprints/database/functions/query.d.ts +1 -2
- package/dist/types/src/blueprints/database/functions/query.d.ts.map +1 -1
- package/dist/types/src/blueprints/linear/functions/sync-issues.d.ts.map +1 -1
- package/dist/types/src/blueprints/planning/functions/index.d.ts +1 -1
- package/dist/types/src/blueprints/planning/functions/index.d.ts.map +1 -1
- package/dist/types/src/blueprints/planning/functions/update-tasks.d.ts +14 -1
- package/dist/types/src/blueprints/planning/functions/update-tasks.d.ts.map +1 -1
- package/dist/types/src/blueprints/planning/functions/update-tasks.test.d.ts +2 -0
- package/dist/types/src/blueprints/planning/functions/update-tasks.test.d.ts.map +1 -0
- package/dist/types/src/blueprints/project/functions/add-artifact.d.ts +1 -5
- package/dist/types/src/blueprints/project/functions/add-artifact.d.ts.map +1 -1
- package/dist/types/src/blueprints/project/functions/definitions.d.ts +16 -8
- package/dist/types/src/blueprints/project/functions/definitions.d.ts.map +1 -1
- package/dist/types/src/blueprints/project/functions/get-context.d.ts +1 -12
- package/dist/types/src/blueprints/project/functions/get-context.d.ts.map +1 -1
- package/dist/types/src/blueprints/project/functions/qualifier.d.ts +8 -4
- package/dist/types/src/blueprints/project/functions/qualifier.d.ts.map +1 -1
- package/dist/types/src/blueprints/project-wizard/functions/create-project.d.ts +6 -2
- package/dist/types/src/blueprints/project-wizard/functions/definitions.d.ts +12 -4
- package/dist/types/src/blueprints/project-wizard/functions/definitions.d.ts.map +1 -1
- package/dist/types/src/blueprints/project-wizard/functions/sync-triggers.d.ts +6 -2
- package/dist/types/src/blueprints/testing.d.ts +4 -4
- package/dist/types/src/blueprints/testing.d.ts.map +1 -1
- package/dist/types/src/crud/graph.d.ts +5 -7
- package/dist/types/src/crud/graph.d.ts.map +1 -1
- package/dist/types/src/functions/agent/definitions.d.ts +6 -5
- package/dist/types/src/functions/agent/definitions.d.ts.map +1 -1
- package/dist/types/src/sync/sync.d.ts +1 -2
- package/dist/types/src/sync/sync.d.ts.map +1 -1
- package/dist/types/src/types/Agent.d.ts +9 -7
- package/dist/types/src/types/Agent.d.ts.map +1 -1
- package/dist/types/src/types/McpServer.d.ts +4 -1
- package/dist/types/src/types/McpServer.d.ts.map +1 -1
- package/dist/types/src/types/Plan.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +26 -26
- package/src/blueprints/automation/blueprint.ts +1 -1
- package/src/blueprints/blueprint-manager/blueprint.conversations.json +1 -1
- package/src/blueprints/blueprint-manager/blueprint.test.ts +21 -17
- package/src/blueprints/blueprint-manager/blueprint.ts +2 -2
- package/src/blueprints/blueprint-manager/functions/definitions.ts +2 -2
- package/src/blueprints/blueprint-manager/functions/enable-blueprints.ts +2 -2
- package/src/blueprints/browser/blueprint.test.ts +3 -3
- package/src/blueprints/browser/blueprint.ts +1 -1
- package/src/blueprints/database/blueprint.conversations.json +1 -1
- package/src/blueprints/database/blueprint.test.ts +6 -6
- package/src/blueprints/database/blueprint.ts +1 -1
- package/src/blueprints/database/functions/context-add.ts +2 -2
- package/src/blueprints/database/functions/context-remove.ts +2 -2
- package/src/blueprints/database/functions/definitions.ts +16 -16
- package/src/blueprints/database/functions/query.ts +2 -3
- package/src/blueprints/discord/blueprint.ts +1 -1
- package/src/blueprints/discord/functions/fetch-messages.test.ts +7 -2
- package/src/blueprints/linear/blueprint.ts +1 -1
- package/src/blueprints/linear/functions/linear.test.ts +1 -2
- package/src/blueprints/linear/functions/sync-issues.ts +1 -2
- package/src/blueprints/memory/blueprint.conversations.json +1 -1
- package/src/blueprints/memory/blueprint.ts +1 -1
- package/src/blueprints/planning/blueprint.ts +1 -1
- package/src/blueprints/planning/functions/index.ts +1 -1
- package/src/blueprints/planning/functions/{definitions.ts → update-tasks.md} +29 -50
- package/src/blueprints/planning/functions/update-tasks.test.ts +55 -0
- package/src/blueprints/planning/functions/update-tasks.ts +25 -3
- package/src/blueprints/project/blueprint.conversations.json +1 -1
- package/src/blueprints/project/blueprint.test.ts +15 -17
- package/src/blueprints/project/blueprint.ts +2 -2
- package/src/blueprints/project/functions/add-artifact.ts +1 -0
- package/src/blueprints/project/functions/agent.ts +1 -1
- package/src/blueprints/project/functions/definitions.ts +8 -8
- package/src/blueprints/project/functions/get-context.ts +1 -0
- package/src/blueprints/project/functions/qualifier.ts +5 -5
- package/src/blueprints/project-wizard/functions/sync-triggers.ts +4 -9
- package/src/blueprints/testing.ts +10 -4
- package/src/blueprints/websearch/blueprint.conversations.json +1 -1
- package/src/crud/graph.test.ts +1 -1
- package/src/crud/graph.ts +125 -127
- package/src/functions/agent/definitions.ts +8 -3
- package/src/functions/agent/prompt.conversations.json +1 -1
- package/src/functions/agent/prompt.test.ts +8 -11
- package/src/functions/agent/prompt.ts +5 -2
- package/src/sync/sync.ts +1 -2
- package/src/types/Agent.ts +28 -29
- package/src/types/McpServer.ts +5 -5
- package/src/types/Plan.ts +1 -0
- package/dist/lib/neutral/chunk-CLHVRIYF.mjs.map +0 -7
- package/dist/lib/neutral/chunk-CVUA23QI.mjs.map +0 -7
- package/dist/lib/neutral/chunk-E2XRNXWP.mjs.map +0 -7
- package/dist/lib/neutral/chunk-J37DYY7A.mjs.map +0 -7
- package/dist/lib/neutral/chunk-KY2TIPJ5.mjs.map +0 -7
- package/dist/lib/neutral/chunk-MMTKJBB5.mjs +0 -140
- package/dist/lib/neutral/chunk-MMTKJBB5.mjs.map +0 -7
- package/dist/lib/neutral/chunk-TO5IX24K.mjs.map +0 -7
- package/dist/lib/neutral/context-add-IIDPRRVB.mjs.map +0 -7
- package/dist/lib/neutral/context-remove-RDYV4PD4.mjs.map +0 -7
- package/dist/lib/neutral/enable-blueprints-LBDZH2CY.mjs.map +0 -7
- package/dist/lib/neutral/qualifier-2AC2ICOB.mjs.map +0 -7
- package/dist/lib/neutral/query-B3NOYFCK.mjs.map +0 -7
- package/dist/lib/neutral/sync-issues-LOLHZNFL.mjs.map +0 -7
- package/dist/lib/neutral/update-tasks-ML2FCYU5.mjs +0 -46
- package/dist/lib/neutral/update-tasks-ML2FCYU5.mjs.map +0 -7
- package/dist/types/src/blueprints/planning/functions/definitions.d.ts +0 -11
- package/dist/types/src/blueprints/planning/functions/definitions.d.ts.map +0 -1
- /package/dist/lib/neutral/{chunk-D5MG5OKX.mjs.map → chunk-BCT55UTL.mjs.map} +0 -0
- /package/dist/lib/neutral/{create-project-GLDEAWTT.mjs.map → create-project-3AGXJ4TD.mjs.map} +0 -0
- /package/dist/lib/neutral/{fetch-messages-PWGUG5G3.mjs.map → fetch-messages-QOBBCTGC.mjs.map} +0 -0
- /package/dist/lib/neutral/{load-LI7HHVD6.mjs.map → load-GAT3T2AD.mjs.map} +0 -0
- /package/dist/lib/neutral/{object-create-52Z7YKIA.mjs.map → object-create-PL3WRP74.mjs.map} +0 -0
- /package/dist/lib/neutral/{object-delete-I266YAXI.mjs.map → object-delete-PZJQN5KW.mjs.map} +0 -0
- /package/dist/lib/neutral/{object-update-HY4GI7LA.mjs.map → object-update-R43N3VJX.mjs.map} +0 -0
- /package/dist/lib/neutral/{project-2YBPW5N7.mjs.map → project-VVXXUMAI.mjs.map} +0 -0
- /package/dist/lib/neutral/{project-rules-XUBEPDP6.mjs.map → project-rules-KSVSOZJV.mjs.map} +0 -0
- /package/dist/lib/neutral/{query-blueprints-KXADGHSA.mjs.map → query-blueprints-PLWYVOI3.mjs.map} +0 -0
- /package/dist/lib/neutral/{relation-create-Z3NGW4VU.mjs.map → relation-create-YAAAFTR2.mjs.map} +0 -0
- /package/dist/lib/neutral/{relation-delete-LXY7W2YO.mjs.map → relation-delete-IEPKERFR.mjs.map} +0 -0
- /package/dist/lib/neutral/{schema-add-4TXJO2V7.mjs.map → schema-add-5BNIINRS.mjs.map} +0 -0
- /package/dist/lib/neutral/{schema-list-PJS5AFZ3.mjs.map → schema-list-54UK7S4R.mjs.map} +0 -0
- /package/dist/lib/neutral/{tag-add-5NOHUTIE.mjs.map → tag-add-NLVRGTC6.mjs.map} +0 -0
- /package/dist/lib/neutral/{tag-remove-QTKYDJAW.mjs.map → tag-remove-N4HFBIA2.mjs.map} +0 -0
- /package/dist/lib/neutral/{update-blueprints-N2AK2VUR.mjs.map → update-blueprints-2SNK6HLG.mjs.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AgentPrompt
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-COL54UJ3.mjs";
|
|
4
4
|
import {
|
|
5
5
|
DeleteMemory,
|
|
6
6
|
QueryMemories,
|
|
@@ -10,19 +10,19 @@ import {
|
|
|
10
10
|
EnableBlueprints,
|
|
11
11
|
QueryBlueprints,
|
|
12
12
|
UpdateBlueprints
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-ANSF2BHN.mjs";
|
|
14
14
|
import {
|
|
15
15
|
AgentRules,
|
|
16
16
|
CreateAgent,
|
|
17
17
|
SyncTriggers
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-BCT55UTL.mjs";
|
|
19
19
|
import {
|
|
20
20
|
SyncIssues,
|
|
21
21
|
syncObjects
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-MMQ7HFL4.mjs";
|
|
23
23
|
import {
|
|
24
24
|
UpdateTasks
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-PLGEBNTO.mjs";
|
|
26
26
|
import {
|
|
27
27
|
Fetch
|
|
28
28
|
} from "./chunk-WLR3BGO4.mjs";
|
|
@@ -40,25 +40,25 @@ import {
|
|
|
40
40
|
SchemaList,
|
|
41
41
|
TagAdd,
|
|
42
42
|
TagRemove
|
|
43
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-7UCYAP3T.mjs";
|
|
44
44
|
import {
|
|
45
45
|
FetchMessages
|
|
46
46
|
} from "./chunk-ZFXLTBZG.mjs";
|
|
47
47
|
import {
|
|
48
48
|
AgentBlueprintHandlers,
|
|
49
49
|
blueprint_default
|
|
50
|
-
} from "./chunk-
|
|
50
|
+
} from "./chunk-W2722TC5.mjs";
|
|
51
51
|
import {
|
|
52
52
|
AddArtifact,
|
|
53
53
|
AgentWorker,
|
|
54
54
|
GetContext,
|
|
55
55
|
Qualifier
|
|
56
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-KS3IA6FQ.mjs";
|
|
57
57
|
import {
|
|
58
58
|
Agent_exports,
|
|
59
59
|
McpServer_exports,
|
|
60
60
|
Plan_exports
|
|
61
|
-
} from "./chunk-
|
|
61
|
+
} from "./chunk-5GPL2WXU.mjs";
|
|
62
62
|
import {
|
|
63
63
|
Chat_exports
|
|
64
64
|
} from "./chunk-NR3GTWRC.mjs";
|
|
@@ -77,7 +77,7 @@ import { trim } from "@dxos/util";
|
|
|
77
77
|
|
|
78
78
|
// src/blueprints/discord/functions/index.ts
|
|
79
79
|
import { OperationHandlerSet } from "@dxos/compute";
|
|
80
|
-
var DiscordHandlers = OperationHandlerSet.lazy(() => import("./fetch-messages-
|
|
80
|
+
var DiscordHandlers = OperationHandlerSet.lazy(() => import("./fetch-messages-QOBBCTGC.mjs"));
|
|
81
81
|
|
|
82
82
|
// src/blueprints/discord/blueprint.ts
|
|
83
83
|
var BLUEPRINT_KEY = "org.dxos.blueprint.discord";
|
|
@@ -93,7 +93,9 @@ var make = () => Blueprint.make({
|
|
|
93
93
|
name: "Discord",
|
|
94
94
|
description: "Discord integration.",
|
|
95
95
|
instructions: {
|
|
96
|
-
source: Ref.make(Text.make(
|
|
96
|
+
source: Ref.make(Text.make({
|
|
97
|
+
content: instructions
|
|
98
|
+
}))
|
|
97
99
|
},
|
|
98
100
|
tools: Blueprint.toolDefinitions({
|
|
99
101
|
operations: [
|
|
@@ -115,7 +117,7 @@ import { trim as trim2 } from "@dxos/util";
|
|
|
115
117
|
|
|
116
118
|
// src/blueprints/linear/functions/index.ts
|
|
117
119
|
import { OperationHandlerSet as OperationHandlerSet2 } from "@dxos/compute";
|
|
118
|
-
var LinearHandlers = OperationHandlerSet2.lazy(() => import("./sync-issues-
|
|
120
|
+
var LinearHandlers = OperationHandlerSet2.lazy(() => import("./sync-issues-DWY76B3M.mjs"));
|
|
119
121
|
|
|
120
122
|
// src/blueprints/linear/blueprint.ts
|
|
121
123
|
var BLUEPRINT_KEY2 = "org.dxos.blueprint.linear";
|
|
@@ -132,7 +134,9 @@ var make2 = () => Blueprint2.make({
|
|
|
132
134
|
name: "Linear",
|
|
133
135
|
description: "Syncs Linear workspaces.",
|
|
134
136
|
instructions: {
|
|
135
|
-
source: Ref2.make(Text2.make(
|
|
137
|
+
source: Ref2.make(Text2.make({
|
|
138
|
+
content: instructions2
|
|
139
|
+
}))
|
|
136
140
|
},
|
|
137
141
|
tools: Blueprint2.toolDefinitions({
|
|
138
142
|
operations: [
|
|
@@ -151,14 +155,14 @@ import { Blueprint as Blueprint3 } from "@dxos/compute";
|
|
|
151
155
|
|
|
152
156
|
// src/blueprints/planning/functions/index.ts
|
|
153
157
|
import { OperationHandlerSet as OperationHandlerSet3 } from "@dxos/compute";
|
|
154
|
-
var PlanningHandlers = OperationHandlerSet3.lazy(() => import("./update-tasks-
|
|
158
|
+
var PlanningHandlers = OperationHandlerSet3.lazy(() => import("./update-tasks-QQUR53RN.mjs"));
|
|
155
159
|
|
|
156
160
|
// src/blueprints/planning/blueprint.ts
|
|
157
161
|
var BLUEPRINT_KEY3 = "org.dxos.blueprint.planning";
|
|
158
162
|
var make3 = () => Blueprint3.make({
|
|
159
163
|
key: BLUEPRINT_KEY3,
|
|
160
164
|
name: "Planning",
|
|
161
|
-
description: "Plans and tracks complex tasks
|
|
165
|
+
description: "Plans and tracks complex tasks using artifacts.",
|
|
162
166
|
tools: Blueprint3.toolDefinitions({
|
|
163
167
|
operations: [
|
|
164
168
|
UpdateTasks
|
|
@@ -229,7 +233,9 @@ var make6 = () => Blueprint5.make({
|
|
|
229
233
|
description: "Access to a real isolated browser.",
|
|
230
234
|
agentCanEnable: true,
|
|
231
235
|
instructions: {
|
|
232
|
-
source: Ref4.make(Text4.make(
|
|
236
|
+
source: Ref4.make(Text4.make({
|
|
237
|
+
content: instructions3
|
|
238
|
+
}))
|
|
233
239
|
},
|
|
234
240
|
mcpServers: [
|
|
235
241
|
{
|
|
@@ -253,7 +259,7 @@ import { trim as trim4 } from "@dxos/util";
|
|
|
253
259
|
|
|
254
260
|
// src/blueprints/database/functions/index.ts
|
|
255
261
|
import { OperationHandlerSet as OperationHandlerSet5 } from "@dxos/compute";
|
|
256
|
-
var DatabaseHandlers = OperationHandlerSet5.lazy(() => import("./context-add-
|
|
262
|
+
var DatabaseHandlers = OperationHandlerSet5.lazy(() => import("./context-add-S5MBW2NA.mjs"), () => import("./context-remove-35O5T5N5.mjs"), () => import("./load-GAT3T2AD.mjs"), () => import("./object-create-PL3WRP74.mjs"), () => import("./object-delete-PZJQN5KW.mjs"), () => import("./object-update-R43N3VJX.mjs"), () => import("./query-MP5NSQKO.mjs"), () => import("./relation-create-YAAAFTR2.mjs"), () => import("./relation-delete-IEPKERFR.mjs"), () => import("./schema-add-5BNIINRS.mjs"), () => import("./schema-list-54UK7S4R.mjs"), () => import("./tag-add-NLVRGTC6.mjs"), () => import("./tag-remove-N4HFBIA2.mjs"));
|
|
257
263
|
|
|
258
264
|
// src/blueprints/database/blueprint.ts
|
|
259
265
|
var BLUEPRINT_KEY6 = "org.dxos.blueprint.database";
|
|
@@ -267,7 +273,9 @@ var make7 = () => Blueprint6.make({
|
|
|
267
273
|
description: "Query and manipulate objects in the ECHO database.",
|
|
268
274
|
agentCanEnable: true,
|
|
269
275
|
instructions: {
|
|
270
|
-
source: Ref5.make(Text5.make(
|
|
276
|
+
source: Ref5.make(Text5.make({
|
|
277
|
+
content: instructions4
|
|
278
|
+
}))
|
|
271
279
|
},
|
|
272
280
|
tools: Blueprint6.toolDefinitions({
|
|
273
281
|
operations: [
|
|
@@ -320,7 +328,9 @@ var make8 = () => Blueprint7.make({
|
|
|
320
328
|
description: "Persistent memory storage and retrieval.",
|
|
321
329
|
agentCanEnable: true,
|
|
322
330
|
instructions: {
|
|
323
|
-
source: Ref6.make(Text6.make(
|
|
331
|
+
source: Ref6.make(Text6.make({
|
|
332
|
+
content: instructions5
|
|
333
|
+
}))
|
|
324
334
|
},
|
|
325
335
|
tools: Blueprint7.toolDefinitions({
|
|
326
336
|
operations: [
|
|
@@ -424,7 +434,9 @@ var make9 = () => Blueprint8.make({
|
|
|
424
434
|
name: "Triggers",
|
|
425
435
|
description: "Trigger management and automation.",
|
|
426
436
|
instructions: {
|
|
427
|
-
source: Ref7.make(Text7.make(
|
|
437
|
+
source: Ref7.make(Text7.make({
|
|
438
|
+
content: instructions6
|
|
439
|
+
}))
|
|
428
440
|
}
|
|
429
441
|
});
|
|
430
442
|
var blueprint8 = {
|
|
@@ -439,7 +451,7 @@ import { trim as trim7 } from "@dxos/util";
|
|
|
439
451
|
|
|
440
452
|
// src/blueprints/blueprint-manager/functions/index.ts
|
|
441
453
|
import { OperationHandlerSet as OperationHandlerSet7 } from "@dxos/compute";
|
|
442
|
-
var BlueprintManagerHandlers = OperationHandlerSet7.lazy(() => import("./query-blueprints-
|
|
454
|
+
var BlueprintManagerHandlers = OperationHandlerSet7.lazy(() => import("./query-blueprints-PLWYVOI3.mjs"), () => import("./enable-blueprints-IVKST3WH.mjs"), () => import("./update-blueprints-2SNK6HLG.mjs"));
|
|
443
455
|
|
|
444
456
|
// src/blueprints/blueprint-manager/blueprint.ts
|
|
445
457
|
var BLUEPRINT_KEY9 = "org.dxos.blueprint.blueprint-manager";
|
|
@@ -466,8 +478,8 @@ var make10 = () => Blueprint9.make({
|
|
|
466
478
|
inputs: [
|
|
467
479
|
{
|
|
468
480
|
name: "blueprints",
|
|
469
|
-
kind: "
|
|
470
|
-
|
|
481
|
+
kind: "operation",
|
|
482
|
+
operation: QueryBlueprints.meta.key
|
|
471
483
|
}
|
|
472
484
|
]
|
|
473
485
|
}),
|
|
@@ -491,7 +503,7 @@ import { trim as trim8 } from "@dxos/util";
|
|
|
491
503
|
|
|
492
504
|
// src/blueprints/project-wizard/functions/index.ts
|
|
493
505
|
import { OperationHandlerSet as OperationHandlerSet8 } from "@dxos/compute";
|
|
494
|
-
var AgentWizardHandlers = OperationHandlerSet8.lazy(() => import("./create-project-
|
|
506
|
+
var AgentWizardHandlers = OperationHandlerSet8.lazy(() => import("./create-project-3AGXJ4TD.mjs"), () => import("./project-rules-KSVSOZJV.mjs"), () => import("./sync-triggers-NOIQLELD.mjs"));
|
|
495
507
|
|
|
496
508
|
// src/blueprints/project-wizard/blueprint.ts
|
|
497
509
|
var BLUEPRINT_KEY10 = "org.dxos.blueprint.agent-wizard";
|
|
@@ -545,16 +557,14 @@ import * as Function from "effect/Function";
|
|
|
545
557
|
import * as Option from "effect/Option";
|
|
546
558
|
import * as Schema from "effect/Schema";
|
|
547
559
|
import * as SchemaAST from "effect/SchemaAST";
|
|
548
|
-
import { Entity, Filter, Obj, Query as Query2, Type } from "@dxos/echo";
|
|
549
|
-
import { Database } from "@dxos/echo";
|
|
560
|
+
import { Database, Entity, Feed, Filter, Obj, Query as Query2, Type } from "@dxos/echo";
|
|
550
561
|
import { isEncodedReference } from "@dxos/echo-protocol";
|
|
551
562
|
import { ReferenceAnnotationId, RelationSourceDXNId, RelationSourceId, RelationTargetDXNId, RelationTargetId, createObject, getTypeAnnotation, getTypeIdentifierAnnotation } from "@dxos/echo/internal";
|
|
552
563
|
import { mapAst } from "@dxos/effect";
|
|
553
|
-
import { ContextQueueService } from "@dxos/functions";
|
|
554
564
|
import { DXN, ObjectId } from "@dxos/keys";
|
|
555
565
|
import { log } from "@dxos/log";
|
|
556
566
|
import { deepMapValues, isNonNullable, trim as trim9 } from "@dxos/util";
|
|
557
|
-
var __dxlog_file = "/__w/dxos/dxos/packages/core/assistant-toolkit/src/crud/graph.ts";
|
|
567
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/core/compute/assistant-toolkit/src/crud/graph.ts";
|
|
558
568
|
var Subgraph = Schema.Struct({
|
|
559
569
|
/** Objects and relations. */
|
|
560
570
|
objects: Schema.Array(Schema.Any)
|
|
@@ -565,13 +575,13 @@ var findRelatedSchema = async (db, anchor) => {
|
|
|
565
575
|
if (getTypeAnnotation(schema)?.kind !== Entity.Kind.Relation) {
|
|
566
576
|
return false;
|
|
567
577
|
}
|
|
568
|
-
return
|
|
578
|
+
return isSchemaAddressableByDXN(anchor, DXN.parse(getTypeAnnotation(schema).sourceSchema)) || isSchemaAddressableByDXN(anchor, DXN.parse(getTypeAnnotation(schema).targetSchema));
|
|
569
579
|
}).map((schema) => ({
|
|
570
580
|
kind: "relation",
|
|
571
581
|
schema
|
|
572
582
|
}));
|
|
573
583
|
};
|
|
574
|
-
var
|
|
584
|
+
var isSchemaAddressableByDXN = (schema, dxn) => {
|
|
575
585
|
if (getTypeIdentifierAnnotation(schema) === dxn.toString()) {
|
|
576
586
|
return true;
|
|
577
587
|
}
|
|
@@ -591,7 +601,8 @@ var LocalSearchToolkit = Toolkit2.make(Tool.make("search_local_search", {
|
|
|
591
601
|
success: Schema.Unknown,
|
|
592
602
|
failure: Schema.Never,
|
|
593
603
|
dependencies: [
|
|
594
|
-
Database.Service
|
|
604
|
+
Database.Service,
|
|
605
|
+
Feed.FeedService
|
|
595
606
|
]
|
|
596
607
|
}));
|
|
597
608
|
var LocalSearchHandler = LocalSearchToolkit.toLayer({
|
|
@@ -602,10 +613,10 @@ var LocalSearchHandler = LocalSearchToolkit.toLayer({
|
|
|
602
613
|
const results = [
|
|
603
614
|
...objects
|
|
604
615
|
];
|
|
605
|
-
const
|
|
606
|
-
if (Option.isSome(
|
|
607
|
-
const
|
|
608
|
-
results.push(...
|
|
616
|
+
const feedOption = yield* Effect.serviceOption(Feed.ContextFeedService);
|
|
617
|
+
if (Option.isSome(feedOption)) {
|
|
618
|
+
const feedObjects = yield* Feed.runQuery(feedOption.value.feed, Filter.everything());
|
|
619
|
+
results.push(...feedObjects);
|
|
609
620
|
}
|
|
610
621
|
return trim9`
|
|
611
622
|
<local_context>
|
|
@@ -624,7 +635,8 @@ var makeGraphWriterToolkit = ({ schema }) => {
|
|
|
624
635
|
failure: Schema.Never,
|
|
625
636
|
dependencies: [
|
|
626
637
|
Database.Service,
|
|
627
|
-
|
|
638
|
+
Feed.ContextFeedService,
|
|
639
|
+
Feed.FeedService
|
|
628
640
|
]
|
|
629
641
|
}).annotateContext(Context.make(GraphWriterSchema, {
|
|
630
642
|
schema
|
|
@@ -635,9 +647,9 @@ var makeGraphWriterHandler = (toolkit, { onAppend } = {}) => {
|
|
|
635
647
|
return toolkit.toLayer({
|
|
636
648
|
graph_writer: Effect.fn(function* (input) {
|
|
637
649
|
const { db } = yield* Database.Service;
|
|
638
|
-
const {
|
|
639
|
-
const data = yield*
|
|
640
|
-
yield*
|
|
650
|
+
const { feed } = yield* Feed.ContextFeedService;
|
|
651
|
+
const data = yield* sanitizeObjects(schema, input, db, feed);
|
|
652
|
+
yield* Feed.append(feed, data);
|
|
641
653
|
const dxns = data.map((obj) => Obj.getDXN(obj));
|
|
642
654
|
onAppend?.(dxns);
|
|
643
655
|
return dxns;
|
|
@@ -657,7 +669,7 @@ var createExtractionSchema = (types) => {
|
|
|
657
669
|
var getSanitizedSchemaName = (schema) => {
|
|
658
670
|
return Type.getDXN(schema).asTypeDXN().type.replaceAll(/[^a-zA-Z0-9]+/g, "_");
|
|
659
671
|
};
|
|
660
|
-
var sanitizeObjects =
|
|
672
|
+
var sanitizeObjects = (types, data, db, feed) => Effect.gen(function* () {
|
|
661
673
|
const entries = types.map((type) => data[`objects_${getSanitizedSchemaName(type)}`]?.map((object) => ({
|
|
662
674
|
data: object,
|
|
663
675
|
schema: type
|
|
@@ -701,41 +713,39 @@ var sanitizeObjects = async (types, data, db, queue) => {
|
|
|
701
713
|
return recurse(value);
|
|
702
714
|
});
|
|
703
715
|
if (Entity.getKind(entry.schema) === "relation") {
|
|
704
|
-
const
|
|
705
|
-
if (!
|
|
716
|
+
const sourceDXN = resolveId(data2.source);
|
|
717
|
+
if (!sourceDXN) {
|
|
706
718
|
log.warn("source not found", {
|
|
707
719
|
source: data2.source
|
|
708
|
-
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 193, S:
|
|
720
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 193, S: this });
|
|
709
721
|
}
|
|
710
|
-
const
|
|
711
|
-
if (!
|
|
722
|
+
const targetDXN = resolveId(data2.target);
|
|
723
|
+
if (!targetDXN) {
|
|
712
724
|
log.warn("target not found", {
|
|
713
725
|
target: data2.target
|
|
714
|
-
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 199, S:
|
|
726
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 199, S: this });
|
|
715
727
|
}
|
|
716
728
|
delete data2.source;
|
|
717
729
|
delete data2.target;
|
|
718
|
-
data2[RelationSourceDXNId] =
|
|
719
|
-
data2[RelationTargetDXNId] =
|
|
730
|
+
data2[RelationSourceDXNId] = sourceDXN;
|
|
731
|
+
data2[RelationTargetDXNId] = targetDXN;
|
|
720
732
|
}
|
|
721
733
|
return {
|
|
722
734
|
data: data2,
|
|
723
735
|
schema: entry.schema
|
|
724
736
|
};
|
|
725
737
|
}).filter((object) => !existingIds.has(object.data.id));
|
|
726
|
-
const dbObjects =
|
|
727
|
-
const
|
|
728
|
-
...existingIds
|
|
729
|
-
]) ?? [];
|
|
738
|
+
const dbObjects = yield* Effect.promise(() => db.query(Query2.select(Filter.id(...existingIds))).run());
|
|
739
|
+
const feedObjects = feed && existingIds.size > 0 ? yield* Feed.runQuery(feed, Filter.id(...existingIds)) : [];
|
|
730
740
|
const objects = [
|
|
731
741
|
...dbObjects,
|
|
732
|
-
...
|
|
742
|
+
...feedObjects
|
|
733
743
|
].filter(isNonNullable);
|
|
734
744
|
log.info("objects", {
|
|
735
745
|
dbObjects,
|
|
736
|
-
|
|
746
|
+
feedObjects,
|
|
737
747
|
existingIds
|
|
738
|
-
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L:
|
|
748
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 221, S: this });
|
|
739
749
|
const missing = Array.from(existingIds).filter((id) => !objects.some((object) => object.id === id));
|
|
740
750
|
if (missing.length > 0) {
|
|
741
751
|
throw new Error(`Object IDs do not point to existing objects: ${missing.join(", ")}`);
|
|
@@ -771,7 +781,7 @@ var sanitizeObjects = async (types, data, db, queue) => {
|
|
|
771
781
|
}
|
|
772
782
|
return [];
|
|
773
783
|
});
|
|
774
|
-
};
|
|
784
|
+
});
|
|
775
785
|
var SoftRef = Schema.Struct({
|
|
776
786
|
"/": Schema.String
|
|
777
787
|
}).annotations({
|
|
@@ -805,7 +815,7 @@ var preprocessSchema = (schema) => {
|
|
|
805
815
|
|
|
806
816
|
// src/functions/agent/index.ts
|
|
807
817
|
import { OperationHandlerSet as OperationHandlerSet9 } from "@dxos/compute";
|
|
808
|
-
var AgentHandlers = OperationHandlerSet9.lazy(() => import("./prompt-
|
|
818
|
+
var AgentHandlers = OperationHandlerSet9.lazy(() => import("./prompt-INL55Q2B.mjs"));
|
|
809
819
|
|
|
810
820
|
// src/toolkits/WebToolkit.ts
|
|
811
821
|
var WebToolkit_exports = {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/blueprints/discord/blueprint.ts", "../../../src/blueprints/discord/functions/index.ts", "../../../src/blueprints/linear/blueprint.ts", "../../../src/blueprints/linear/functions/index.ts", "../../../src/blueprints/planning/blueprint.ts", "../../../src/blueprints/planning/functions/index.ts", "../../../src/blueprints/websearch/blueprint.ts", "../../../src/blueprints/websearch/functions/index.ts", "../../../src/blueprints/websearch/toolkit.ts", "../../../src/blueprints/browser/blueprint.ts", "../../../src/blueprints/database/blueprint.ts", "../../../src/blueprints/database/functions/index.ts", "../../../src/blueprints/memory/blueprint.ts", "../../../src/blueprints/memory/functions/index.ts", "../../../src/blueprints/automation/blueprint.ts", "../../../src/blueprints/blueprint-manager/blueprint.ts", "../../../src/blueprints/blueprint-manager/functions/index.ts", "../../../src/blueprints/project-wizard/blueprint.ts", "../../../src/blueprints/project-wizard/functions/index.ts", "../../../src/crud/graph.ts", "../../../src/functions/agent/index.ts", "../../../src/toolkits/WebToolkit.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Blueprint } from '@dxos/compute';\nimport { Ref } from '@dxos/echo';\nimport { Text } from '@dxos/schema';\nimport { trim } from '@dxos/util';\n\nimport { FetchMessages } from './functions';\n\nconst BLUEPRINT_KEY = 'org.dxos.blueprint.discord';\n\n/**\n * Agent prompt instructions for managing hierarchical task lists.\n */\nconst instructions = trim`\n You are able to fetch messages from Discord servers.\n\n Known servers:\n\n DXOS serverId: 837138313172353095\n`;\n\nconst make = () =>\n Blueprint.make({\n key: BLUEPRINT_KEY,\n name: 'Discord',\n description: 'Discord integration.',\n instructions: {\n source: Ref.make(Text.make(instructions)),\n },\n tools: Blueprint.toolDefinitions({ operations: [FetchMessages] }),\n });\n\nconst blueprint: Blueprint.Definition = {\n key: BLUEPRINT_KEY,\n make,\n};\n\nexport default blueprint;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport * from './definitions';\n\nexport const DiscordHandlers = OperationHandlerSet.lazy(() => import('./fetch-messages'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Blueprint } from '@dxos/compute';\nimport { Ref } from '@dxos/echo';\nimport { Text } from '@dxos/schema';\nimport { trim } from '@dxos/util';\n\nimport { SyncIssues } from './functions';\n\nconst BLUEPRINT_KEY = 'org.dxos.blueprint.linear';\n\n/**\n * Agent prompt instructions for managing hierarchical task lists.\n */\nconst instructions = trim`\n You are able to sync Linear workspaces.\n Sometimes sync does not complete in one go and you need to call the function again.\n\n Known workspaces:\n\n DXOS teamId: 1127c63a-6f77-4725-9229-50f6cd47321c\n`;\n\nconst make = () =>\n Blueprint.make({\n key: BLUEPRINT_KEY,\n name: 'Linear',\n description: 'Syncs Linear workspaces.',\n instructions: {\n source: Ref.make(Text.make(instructions)),\n },\n tools: Blueprint.toolDefinitions({ operations: [SyncIssues] }),\n });\n\nconst blueprint: Blueprint.Definition = {\n key: BLUEPRINT_KEY,\n make,\n};\n\nexport default blueprint;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport * from './definitions';\n\nexport const LinearHandlers = OperationHandlerSet.lazy(() => import('./sync-issues'));\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { Blueprint } from '@dxos/compute';\n\nimport { UpdateTasks } from './functions';\n\nconst BLUEPRINT_KEY = 'org.dxos.blueprint.planning';\n\nconst make = () =>\n Blueprint.make({\n key: BLUEPRINT_KEY,\n name: 'Planning',\n description: 'Plans and tracks complex tasks with artifact management.',\n tools: Blueprint.toolDefinitions({ operations: [UpdateTasks] }),\n });\n\nconst blueprint: Blueprint.Definition = {\n key: BLUEPRINT_KEY,\n make,\n};\n\nexport default blueprint;\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport * from './definitions';\n\nexport const PlanningHandlers = OperationHandlerSet.lazy(() => import('./update-tasks'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Blueprint } from '@dxos/compute';\nimport { Ref } from '@dxos/echo';\nimport { Text } from '@dxos/schema';\n\nimport { Fetch } from './functions';\n\nconst BLUEPRINT_KEY = 'org.dxos.blueprint.web-search';\n\nconst make = () =>\n Blueprint.make({\n key: BLUEPRINT_KEY,\n name: 'Web Search',\n description: 'Search the web.',\n agentCanEnable: true,\n instructions: {\n source: Ref.make(Text.make()),\n },\n tools: Blueprint.toolDefinitions({ operations: [Fetch], tools: ['AnthropicWebSearch'] }),\n });\n\nconst blueprint: Blueprint.Definition = {\n key: BLUEPRINT_KEY,\n make,\n};\n\nexport default blueprint;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport * from './definitions';\n\nexport const WebSearchHandlers = OperationHandlerSet.lazy(() => import('./fetch'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as AnthropicTool from '@effect/ai-anthropic/AnthropicTool';\nimport * as Toolkit from '@effect/ai/Toolkit';\nimport * as Layer from 'effect/Layer';\n\nimport { OpaqueToolkit } from '@dxos/ai';\n\nexport const WebSearchToolkit = Toolkit.make(AnthropicTool.WebSearch_20250305({}));\n\nexport const WebSearchToolkitOpaque = OpaqueToolkit.make(WebSearchToolkit, Layer.empty);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Blueprint } from '@dxos/compute';\nimport { Ref } from '@dxos/echo';\nimport { Text } from '@dxos/schema';\nimport { trim } from '@dxos/util';\n\nconst BLUEPRINT_KEY = 'org.dxos.blueprint.browser';\n\nconst instructions = trim`\n You are able to connect and use a virtual browser with persistent session.\n Browser tools are provided via MCP.\n`;\n\nconst make = () =>\n Blueprint.make({\n key: BLUEPRINT_KEY,\n name: 'Browser',\n description: 'Access to a real isolated browser.',\n agentCanEnable: true,\n instructions: {\n source: Ref.make(Text.make(instructions)),\n },\n mcpServers: [\n {\n // https://dash.cloudflare.com/950816f3f59b079880a1ae33fb0ec320/workers/services/view/playwright-mcp-example/production\n url: 'https://playwright-mcp-example.dxos.workers.dev/sse',\n protocol: 'sse',\n },\n ],\n });\n\nconst blueprint: Blueprint.Definition = {\n key: BLUEPRINT_KEY,\n make,\n};\n\nexport default blueprint;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Blueprint } from '@dxos/compute';\nimport { Ref } from '@dxos/echo';\nimport { Text } from '@dxos/schema';\nimport { trim } from '@dxos/util';\n\nimport {\n Query,\n Load,\n ObjectCreate,\n ObjectUpdate,\n ObjectDelete,\n SchemaAdd,\n SchemaList,\n ContextAdd,\n ContextRemove,\n RelationCreate,\n RelationDelete,\n TagAdd,\n TagRemove,\n} from './functions';\n\nconst BLUEPRINT_KEY = 'org.dxos.blueprint.database';\n\nconst instructions = trim`\n You can query, create, update, and delete objects in ECHO.\n You can manage schemas, relations, tags, and add objects to the chat context.\n`;\n\nconst make = () =>\n Blueprint.make({\n key: BLUEPRINT_KEY,\n name: 'Database',\n description: 'Query and manipulate objects in the ECHO database.',\n agentCanEnable: true,\n instructions: {\n source: Ref.make(Text.make(instructions)),\n },\n tools: Blueprint.toolDefinitions({\n operations: [\n ContextAdd,\n ContextRemove,\n Load,\n ObjectCreate,\n ObjectDelete,\n ObjectUpdate,\n Query,\n RelationCreate,\n RelationDelete,\n SchemaAdd,\n SchemaList,\n TagAdd,\n TagRemove,\n ],\n }),\n });\n\nconst blueprint: Blueprint.Definition = {\n key: BLUEPRINT_KEY,\n make,\n};\n\nexport default blueprint;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport * from './definitions';\n\nexport const DatabaseHandlers = OperationHandlerSet.lazy(\n () => import('./context-add'),\n () => import('./context-remove'),\n () => import('./load'),\n () => import('./object-create'),\n () => import('./object-delete'),\n () => import('./object-update'),\n () => import('./query'),\n () => import('./relation-create'),\n () => import('./relation-delete'),\n () => import('./schema-add'),\n () => import('./schema-list'),\n () => import('./tag-add'),\n () => import('./tag-remove'),\n);\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { Blueprint } from '@dxos/compute';\nimport { Ref } from '@dxos/echo';\nimport { Text } from '@dxos/schema';\nimport { trim } from '@dxos/util';\n\nimport { QueryMemories, SaveMemory, DeleteMemory } from './functions';\n\nconst BLUEPRINT_KEY = 'org.dxos.blueprint.memory';\n\nconst instructions = trim`\n You have the ability to save and recall memories.\n Memories are persistent knowledge units stored in the database.\n Use memories to remember facts, user preferences, decisions, and any knowledge that should persist across conversations.\n\n When the user asks you to remember something, save it as a memory with a descriptive title.\n When the user asks about something you might have stored, query your memories first.\n You can also delete outdated or incorrect memories.\n`;\n\nconst make = () =>\n Blueprint.make({\n key: BLUEPRINT_KEY,\n name: 'Memory',\n description: 'Persistent memory storage and retrieval.',\n agentCanEnable: true,\n instructions: {\n source: Ref.make(Text.make(instructions)),\n },\n tools: Blueprint.toolDefinitions({ operations: [SaveMemory, QueryMemories, DeleteMemory] }),\n });\n\nconst blueprint: Blueprint.Definition = {\n key: BLUEPRINT_KEY,\n make,\n};\n\nexport default blueprint;\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport * from './definitions';\n\nexport const MemoryHandlers = OperationHandlerSet.lazy(\n () => import('./save'),\n () => import('./query'),\n () => import('./delete'),\n);\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { Blueprint, Trigger, Operation } from '@dxos/compute';\nimport { Ref } from '@dxos/echo';\nimport { Text } from '@dxos/schema';\nimport { trim } from '@dxos/util';\n\nconst BLUEPRINT_KEY = 'dxos.org/blueprint/automation';\n\nconst instructions = trim`\n Automation allows you to automatically initiate actions based on events.\n Automations are configured by creating a trigger that references a function.\n Whenever event that matches the trigger occurs, the function is invoked.\n\n ## Configuration\n\n Triggers are configured by the properties of the Trigger object.\n - enabled: Must be true for trigger to run.\n - spec: Events that the trigger matches.\n - function: Ref to a ${Operation.PersistentOperation.typename} object that will be invoked. Query the functions present in the space first, and reference them in the trigger.\n - input: The spec of the input data that will be passed to the function.\n\n ## Input patterns\n\n Input to the invoked function is defined by the input property of the Trigger object.\n It's an object that supports constants or template strings.\n\n Example:\n\n {\n item: '{{event.item}}',\n instructions: 'Summarize and perform entity-extraction'\n mailbox: { '/': 'dxn:echo:AAA:ZZZ' }\n }\n\n ## Trigger kinds\n\n - Timer: Triggered by a cron schedule.\n - Queue: Subscribes and processes items begginging to end.\n Note: queues are the same as feeds. The queue DXN should be of form: dxn:queue:data:<space-id>:<queue-id>.\n - Subscription: Subscribes and processes database items based on a query.\n\n Avoid: email and webhook triggers.\n\n ## Editing triggers\n\n Triggers are represented as objects of type ${Trigger.Trigger.typename}.\n You need access to the Database blueprint to manipulate triggers.\n Read trigger schema before manipulating triggers.\n Having a Trigger object in the database is enough to setup an automation. \n\n ## Examples\n\n Timer:\n\n {\n \"function\": { \"/\": \"dxn:echo:AAA:ZZZ\" },\n \"enabled\": true,\n \"spec\": {\n \"kind\": \"timer\",\n \"cron\": \"*/5 * * * *\"\n }\n }\n\n Queue:\n\n {\n \"function\": { \"/\": \"dxn:echo:AAA:ZZZ\" },\n \"enabled\": true,\n \"spec\": {\n \"kind\": \"queue\",\n \"queue\": \"dxn:queue:data:XXX:YYY\"\n }\n }\n\n Subscription:\n\n {\n \"function\": { \"/\": \"dxn:echo:AAA:ZZZ\" },\n \"enabled\": true,\n \"spec\": {\n \"kind\": \"subscription\",\n \"query\": { \"ast\": { \"type\": \"select\", \"filter\": { \"type\": \"object\", \"typename\": \"dxn:type:org.dxos.type.person\" } } }\n }\n }\n`;\n\nconst make = () =>\n Blueprint.make({\n key: BLUEPRINT_KEY,\n name: 'Triggers',\n description: 'Trigger management and automation.',\n instructions: {\n source: Ref.make(Text.make(instructions)),\n },\n });\n\nconst blueprint: Blueprint.Definition = {\n key: BLUEPRINT_KEY,\n make,\n};\n\nexport default blueprint;\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { Blueprint, Template } from '@dxos/compute';\nimport { trim } from '@dxos/util';\n\nimport { EnableBlueprints, QueryBlueprints, UpdateBlueprints } from './functions';\n\nconst BLUEPRINT_KEY = 'org.dxos.blueprint.blueprint-manager';\n\nconst make = () =>\n Blueprint.make({\n key: BLUEPRINT_KEY,\n name: 'Blueprint Manager',\n description: 'Query and enable blueprints in the current conversation.',\n instructions: Template.make({\n source: trim`\n You can query available blueprints and enable them in the current conversation.\n Use [query-blueprints] to refresh the list of available blueprints.\n Use [refresh-blueprints] to update blueprint objects stored in the database from the built-in registry when they have drifted.\n Use [enable-blueprints] to enable blueprints by their keys. Always call [query-blueprints] first.\n Only blueprints with agentCanEnable=true can be enabled by the agent.\n\n <available_blueprints>\n {{#each blueprints}}\n - {{key}} \"{{name}}\"{{#if description}} -- {{description}}{{/if}}{{#if agentCanEnable}} [agent-can-enable]{{/if}}\n {{/each}}\n </available_blueprints>\n\n NOTE: You must enable the blueprint to use it, only then the tools from that blueprint will appear.\n `,\n inputs: [\n {\n name: 'blueprints',\n kind: 'function',\n function: QueryBlueprints.meta.key,\n },\n ],\n }),\n tools: Blueprint.toolDefinitions({ operations: [QueryBlueprints, EnableBlueprints, UpdateBlueprints] }),\n });\n\nconst blueprint: Blueprint.Definition = {\n key: BLUEPRINT_KEY,\n make,\n};\n\nexport default blueprint;\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport * from './definitions';\n\nexport const BlueprintManagerHandlers = OperationHandlerSet.lazy(\n () => import('./query-blueprints'),\n () => import('./enable-blueprints'),\n () => import('./update-blueprints'),\n);\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { Blueprint, Template } from '@dxos/compute';\nimport { trim } from '@dxos/util';\n\nimport { AgentRules, CreateAgent, SyncTriggers } from './functions';\n\nconst BLUEPRINT_KEY = 'org.dxos.blueprint.agent-wizard';\n\n/**\n * Creates the Agent Wizard blueprint. This is a function to avoid circular dependency issues.\n */\n// TODO(dmaretskyi): Combine with Agent Blueprint.\nconst make = () =>\n Blueprint.make({\n key: BLUEPRINT_KEY,\n name: 'Agent Wizard',\n description: 'Help the user create a new agent (subscriptions, optional cron timer, sync-triggers after edits).',\n agentCanEnable: true,\n instructions: Template.make({\n source: trim`\n You are a wizard that helps the user create a new agent.\n\n Agents are goal oriented and autonomously driven.\n Each agent has instructions - the goal of the agent.\n The instructions also typically describe what actions to perform in reaction to events (emails).\n The agent has a number of associated artifacts to work with.\n Agents can subscribe to emails.\n\n Agents have a \\`cron\\` field: when set, the agent runs on a timer on that schedule (standard cron syntax).\n Use \\`cron\\` when the user wants the agent to run periodically (e.g. \"every morning\", \"once a day\", \"every 5 minutes\").\n Examples: \\`0 9 * * *\\` for daily at 09:00, or \\`*/5 * * * *\\` for every 5 minutes.\n Timer triggers bypass the qualifier and invoke the agent worker directly on the schedule.\n\n The agent itself is an ECHO object and can be edited like any other object using the database blueprint.\n You can edit the agent's instructions, name, and other properties directly.\n If you edit the agent's \\`enabled\\` field, \\`filterEvents\\` field, subscriptions array, or \\`cron\\` field, you MUST call the sync-triggers function afterward to synchronize the triggers (\\`enabled\\` is applied to all triggers).\n\n IMPORTANT: Before attempting to create an agent call the [agent-rules] tool to get the rules for creating an agent.\n `,\n }),\n tools: Blueprint.toolDefinitions({ operations: [AgentRules, CreateAgent, SyncTriggers] }),\n });\n\nconst blueprint: Blueprint.Definition = {\n key: BLUEPRINT_KEY,\n make,\n};\n\nexport default blueprint;\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport * from './definitions';\n\nexport const AgentWizardHandlers = OperationHandlerSet.lazy(\n () => import('./create-project'),\n () => import('./project-rules'),\n () => import('./sync-triggers'),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Tool from '@effect/ai/Tool';\nimport * as Toolkit from '@effect/ai/Toolkit';\nimport * as Context from 'effect/Context';\nimport * as Effect from 'effect/Effect';\nimport * as Function from 'effect/Function';\nimport * as Option from 'effect/Option';\nimport * as Schema from 'effect/Schema';\nimport * as SchemaAST from 'effect/SchemaAST';\n\nimport { Entity, Filter, Obj, Query, Type } from '@dxos/echo';\nimport { Database } from '@dxos/echo';\nimport { type Queue } from '@dxos/echo-db';\nimport { isEncodedReference } from '@dxos/echo-protocol';\nimport {\n ReferenceAnnotationId,\n RelationSourceDXNId,\n RelationSourceId,\n RelationTargetDXNId,\n RelationTargetId,\n createObject,\n getTypeAnnotation,\n getTypeIdentifierAnnotation,\n} from '@dxos/echo/internal';\nimport { mapAst } from '@dxos/effect';\nimport { ContextQueueService } from '@dxos/functions';\nimport { DXN, ObjectId } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { deepMapValues, isNonNullable, trim } from '@dxos/util';\n\n// TODO(burdon): Unify with the graph schema.\nexport const Subgraph = Schema.Struct({\n /** Objects and relations. */\n objects: Schema.Array(Schema.Any),\n});\n\nexport interface Subgraph extends Schema.Schema.Type<typeof Subgraph> {}\n\nexport type RelatedSchema = {\n schema: Type.AnyEntity;\n kind: 'reference' | 'relation';\n};\n\n/**\n * Find all schemas that are related to the given schema.\n *\n * @param db\n * @param schema\n * @returns\n */\nexport const findRelatedSchema = async (db: Database.Database, anchor: Type.AnyEntity): Promise<RelatedSchema[]> => {\n // TODO(dmaretskyi): Query stored schemas.\n const allSchemas = await db.graph.schemaRegistry.query().run();\n\n // TODO(dmaretskyi): Also do references.\n return allSchemas\n .filter((schema) => {\n if (getTypeAnnotation(schema)?.kind !== Entity.Kind.Relation) {\n return false;\n }\n\n return (\n isSchemaAddressableByDxn(anchor, DXN.parse(getTypeAnnotation(schema)!.sourceSchema!)) ||\n isSchemaAddressableByDxn(anchor, DXN.parse(getTypeAnnotation(schema)!.targetSchema!))\n );\n })\n .map(\n (schema): RelatedSchema => ({\n kind: 'relation',\n schema,\n }),\n );\n};\n\n/**\n * Non-strict DXN comparison.\n * Returns true if the DXN could be resolved to the schema.\n */\nconst isSchemaAddressableByDxn = (schema: Type.AnyEntity, dxn: DXN): boolean => {\n if (getTypeIdentifierAnnotation(schema) === dxn.toString()) {\n return true;\n }\n\n const t = dxn.asTypeDXN();\n if (t) {\n return t.type === Type.getTypename(schema);\n }\n\n return false;\n};\n\n/**\n * Perform vector search in the local database.\n */\n// TODO(dmaretskyi): Rename `GraphReadToolkit`.\nexport const LocalSearchToolkit = Toolkit.make(\n Tool.make('search_local_search', {\n description: 'Search the local database for information using a vector index',\n parameters: {\n query: Schema.String.annotations({\n description: 'The query to search for. Could be a question or a topic or a set of keywords.',\n }),\n },\n success: Schema.Unknown,\n failure: Schema.Never,\n dependencies: [Database.Service],\n }),\n);\n\nexport const LocalSearchHandler = LocalSearchToolkit.toLayer({\n search_local_search: Effect.fn(function* ({ query }) {\n const objects = yield* Database.runQuery(Query.select(Filter.text(query, { type: 'vector' })));\n const results = [...objects];\n\n const option = yield* Effect.serviceOption(ContextQueueService);\n if (Option.isSome(option)) {\n const queueObjects = yield* Effect.promise(() => option.value.queue.queryObjects());\n // TODO(dmaretskyi): Text search on the queue.\n results.push(...queueObjects);\n }\n\n return trim`\n <local_context>\n ${JSON.stringify(results, null, 2)}\n </local_context>\n `;\n }),\n});\n\n/**\n * Attached as an annotation to the writer tool.\n */\nclass GraphWriterSchema extends Context.Tag('@dxos/assistant/GraphWriterSchema')<\n GraphWriterSchema,\n {\n schema: Type.AnyEntity[];\n }\n>() {}\n\n/**\n * Forms typed objects that can be written to the graph database.\n */\nexport const makeGraphWriterToolkit = ({ schema }: { schema: Type.AnyEntity[] }) => {\n return Toolkit.make(\n Tool.make('graph_writer', {\n description: 'Write to the local graph database',\n parameters: createExtractionSchema(schema).fields,\n success: Schema.Unknown,\n failure: Schema.Never,\n dependencies: [Database.Service, ContextQueueService],\n }).annotateContext(Context.make(GraphWriterSchema, { schema })),\n );\n};\n\nexport const makeGraphWriterHandler = (\n toolkit: ReturnType<typeof makeGraphWriterToolkit>,\n {\n onAppend,\n }: {\n onAppend?: (object: DXN[]) => void;\n } = {},\n) => {\n const { schema } = Context.get(\n toolkit.tools.graph_writer.annotations as Context.Context<GraphWriterSchema>,\n GraphWriterSchema,\n );\n\n return toolkit.toLayer({\n graph_writer: Effect.fn(function* (input) {\n const { db } = yield* Database.Service;\n const { queue } = yield* ContextQueueService;\n const data = yield* Effect.promise(() => sanitizeObjects(schema, input as any, db, queue));\n yield* Effect.promise(() => queue.append(data as Obj.Unknown[]));\n\n const dxns = data.map((obj) => Obj.getDXN(obj));\n onAppend?.(dxns);\n return dxns;\n }),\n });\n};\n\n/**\n * Create a schema for structured data extraction.\n */\nexport const createExtractionSchema = (types: Type.AnyEntity[]) => {\n return Schema.Struct({\n ...Object.fromEntries(\n types.map(preprocessSchema).map((schema, index) => [\n `objects_${getSanitizedSchemaName(types[index])}`,\n Schema.optional(Schema.Array(schema)).annotations({\n description: `The objects of type: ${Type.getDXN(types[index])?.asTypeDXN()!.type}. ${SchemaAST.getDescriptionAnnotation(types[index].ast).pipe(Option.getOrElse(() => ''))}`,\n }),\n ]),\n ),\n });\n};\n\nexport const getSanitizedSchemaName = (schema: Type.AnyEntity) => {\n return Type.getDXN(schema)!\n .asTypeDXN()!\n .type.replaceAll(/[^a-zA-Z0-9]+/g, '_');\n};\n\nexport const sanitizeObjects = async (\n types: Type.AnyEntity[],\n data: Record<string, readonly unknown[]>,\n db: Database.Database,\n queue?: Queue,\n): Promise<Obj.Unknown[]> => {\n const entries = types\n .map(\n (type) =>\n data[`objects_${getSanitizedSchemaName(type)}`]?.map((object: any) => ({\n data: object,\n schema: type,\n })) ?? [],\n )\n .flat();\n\n const idMap = new Map<string, string>();\n const existingIds = new Set<ObjectId>();\n const enitties = new Map<ObjectId, Entity.Unknown>();\n\n const resolveId = (id: string): DXN | undefined => {\n if (ObjectId.isValid(id)) {\n existingIds.add(id);\n return DXN.fromLocalObjectId(id);\n }\n\n const mappedId = idMap.get(id);\n if (mappedId) {\n return DXN.fromLocalObjectId(mappedId);\n }\n\n return undefined;\n };\n\n const res = entries\n .map((entry) => {\n // This entry mutates existing object.\n if (ObjectId.isValid(entry.data.id)) {\n return entry;\n }\n\n idMap.set(entry.data.id, ObjectId.random());\n entry.data.id = idMap.get(entry.data.id);\n return entry;\n })\n .map((entry) => {\n const data = deepMapValues(entry.data, (value, recurse) => {\n if (isEncodedReference(value)) {\n const ref = value['/'];\n const id = resolveId(ref);\n\n if (id) {\n // Link to an existing object.\n return { '/': id.toString() };\n } else {\n // Search URIs?\n return { '/': `search:?q=${encodeURIComponent(ref)}` };\n }\n }\n\n return recurse(value);\n });\n\n if (Entity.getKind(entry.schema) === 'relation') {\n const sourceDxn = resolveId(data.source);\n if (!sourceDxn) {\n log.warn('source not found', { source: data.source });\n }\n const targetDxn = resolveId(data.target);\n if (!targetDxn) {\n log.warn('target not found', { target: data.target });\n }\n delete data.source;\n delete data.target;\n data[RelationSourceDXNId] = sourceDxn;\n data[RelationTargetDXNId] = targetDxn;\n }\n\n return {\n data,\n schema: entry.schema,\n };\n })\n .filter((object) => !existingIds.has(object.data.id)); // TODO(dmaretskyi): This dissallows updating existing objects.\n\n // TODO(dmaretskyi): Use ref resolver.\n const dbObjects = await db.query(Query.select(Filter.id(...existingIds))).run();\n const queueObjects = (await queue?.getObjectsById([...existingIds])) ?? [];\n const objects = [...dbObjects, ...queueObjects].filter(isNonNullable);\n\n // TODO(dmaretskyi): Returns everything if IDs are empty!\n log.info('objects', { dbObjects, queueObjects, existingIds });\n const missing = Array.from(existingIds).filter((id) => !objects.some((object) => object.id === id));\n if (missing.length > 0) {\n throw new Error(`Object IDs do not point to existing objects: ${missing.join(', ')}`);\n }\n\n return res.flatMap(({ data, schema }) => {\n let skip = false;\n if (RelationSourceDXNId in data) {\n const id = (data[RelationSourceDXNId] as DXN).asEchoDXN()?.echoId;\n const obj = objects.find((object) => object.id === id) ?? enitties.get(id!);\n if (obj) {\n delete data[RelationSourceDXNId];\n data[RelationSourceId] = obj;\n } else {\n skip = true;\n }\n }\n if (RelationTargetDXNId in data) {\n const id = (data[RelationTargetDXNId] as DXN).asEchoDXN()?.echoId;\n const obj = objects.find((object) => object.id === id) ?? enitties.get(id!);\n if (obj) {\n delete data[RelationTargetDXNId];\n data[RelationTargetId] = obj;\n } else {\n skip = true;\n }\n }\n if (!skip) {\n const obj = createObject(schema, data);\n enitties.set(obj.id, obj);\n return [obj];\n }\n return [];\n });\n};\n\nconst SoftRef = Schema.Struct({\n '/': Schema.String,\n}).annotations({\n description: 'Reference to another object.',\n});\n\nconst preprocessSchema = (schema: Schema.Schema.AnyNoContext) => {\n const isRelationSchema = Entity.getKind(schema) === 'relation';\n\n const go = (ast: SchemaAST.AST, visited = new Set<SchemaAST.AST>()): SchemaAST.AST => {\n if (visited.has(ast)) {\n // Already visited this node, prevent infinite recursion.\n return ast;\n }\n visited.add(ast);\n\n if (SchemaAST.getAnnotation(ast, ReferenceAnnotationId).pipe(Option.isSome)) {\n return SoftRef.ast;\n }\n\n return mapAst(ast, (child) => go(child, visited));\n };\n\n return Schema.make<any, any, never>(mapAst(schema.ast, (ast) => go(ast))).pipe(\n Schema.omit('id'),\n Schema.extend(\n Schema.Struct({\n id: Schema.String.annotations({\n description: 'The id of this object. Come up with a unique id based on your judgement.',\n }),\n }),\n ),\n isRelationSchema\n ? Schema.extend(\n Schema.Struct({\n source: Schema.String.annotations({\n description: 'The id of the source object for this relation.',\n }),\n target: Schema.String.annotations({\n description: 'The id of the target object for this relation.',\n }),\n }),\n )\n : Function.identity<Schema.Schema.AnyNoContext>,\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport * from './definitions';\n\nexport const AgentHandlers = OperationHandlerSet.lazy(() => import('./prompt'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as AnthropicTool from '@effect/ai-anthropic/AnthropicTool';\nimport * as Tool from '@effect/ai/Tool';\nimport * as Toolkit from '@effect/ai/Toolkit';\nimport * as Effect from 'effect/Effect';\nimport * as Schema from 'effect/Schema';\n\n// TODO(dmaretskyi): Testing only.\nexport const WebToolkit = Toolkit.make(\n AnthropicTool.WebSearch_20250305({}).pipe(\n // TODO(dmaretskyi): Effect bug -- provider-defined tools don't support annotations.\n // ToolFormatter.assign({\n // debugFormatResult: (result) =>\n // Array.isArray(result) ? result.map(Struct.pick('title', 'type', 'url', 'page_age')) : result,\n // }),\n ),\n Tool.make('WebFetch', {\n parameters: {\n url: Schema.String,\n },\n success: Schema.String,\n }),\n);\n\nexport const layer = WebToolkit.toLayer({\n WebFetch: Effect.fnUntraced(function* ({ url }) {\n const response = yield* Effect.promise(() => fetch(url).then((response) => response.text()));\n return response;\n }),\n});\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Blueprint", "Ref", "Text", "trim", "OperationHandlerSet", "DiscordHandlers", "lazy", "BLUEPRINT_KEY", "instructions", "trim", "make", "Blueprint", "key", "name", "description", "source", "Ref", "Text", "tools", "toolDefinitions", "operations", "FetchMessages", "blueprint", "blueprint_default", "Blueprint", "Ref", "Text", "trim", "OperationHandlerSet", "LinearHandlers", "lazy", "BLUEPRINT_KEY", "instructions", "trim", "make", "Blueprint", "key", "name", "description", "source", "Ref", "Text", "tools", "toolDefinitions", "operations", "SyncIssues", "blueprint", "blueprint_default", "Blueprint", "OperationHandlerSet", "PlanningHandlers", "lazy", "BLUEPRINT_KEY", "make", "Blueprint", "key", "name", "description", "tools", "toolDefinitions", "operations", "UpdateTasks", "blueprint", "blueprint_default", "Blueprint", "Ref", "Text", "OperationHandlerSet", "WebSearchHandlers", "lazy", "BLUEPRINT_KEY", "make", "Blueprint", "key", "name", "description", "agentCanEnable", "instructions", "source", "Ref", "Text", "tools", "toolDefinitions", "operations", "Fetch", "blueprint", "blueprint_default", "AnthropicTool", "Toolkit", "Layer", "OpaqueToolkit", "WebSearchToolkit", "make", "WebSearch_20250305", "WebSearchToolkitOpaque", "empty", "Blueprint", "Ref", "Text", "trim", "BLUEPRINT_KEY", "instructions", "make", "key", "name", "description", "agentCanEnable", "source", "mcpServers", "url", "protocol", "blueprint", "blueprint_default", "Blueprint", "Ref", "Text", "trim", "OperationHandlerSet", "DatabaseHandlers", "lazy", "BLUEPRINT_KEY", "instructions", "trim", "make", "Blueprint", "key", "name", "description", "agentCanEnable", "source", "Ref", "Text", "tools", "toolDefinitions", "operations", "ContextAdd", "ContextRemove", "Load", "ObjectCreate", "ObjectDelete", "ObjectUpdate", "Query", "RelationCreate", "RelationDelete", "SchemaAdd", "SchemaList", "TagAdd", "TagRemove", "blueprint", "blueprint_default", "Blueprint", "Ref", "Text", "trim", "OperationHandlerSet", "MemoryHandlers", "lazy", "BLUEPRINT_KEY", "instructions", "trim", "make", "Blueprint", "key", "name", "description", "agentCanEnable", "source", "Ref", "Text", "tools", "toolDefinitions", "operations", "SaveMemory", "QueryMemories", "DeleteMemory", "blueprint", "blueprint_default", "Blueprint", "Trigger", "Operation", "Ref", "Text", "trim", "BLUEPRINT_KEY", "instructions", "PersistentOperation", "typename", "make", "key", "name", "description", "source", "blueprint", "blueprint_default", "Blueprint", "Template", "trim", "OperationHandlerSet", "BlueprintManagerHandlers", "lazy", "BLUEPRINT_KEY", "make", "Blueprint", "key", "name", "description", "instructions", "Template", "source", "trim", "inputs", "kind", "
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Blueprint } from '@dxos/compute';\nimport { Ref } from '@dxos/echo';\nimport { Text } from '@dxos/schema';\nimport { trim } from '@dxos/util';\n\nimport { FetchMessages } from './functions';\n\nconst BLUEPRINT_KEY = 'org.dxos.blueprint.discord';\n\n/**\n * Agent prompt instructions for managing hierarchical task lists.\n */\nconst instructions = trim`\n You are able to fetch messages from Discord servers.\n\n Known servers:\n\n DXOS serverId: 837138313172353095\n`;\n\nconst make = () =>\n Blueprint.make({\n key: BLUEPRINT_KEY,\n name: 'Discord',\n description: 'Discord integration.',\n instructions: {\n source: Ref.make(Text.make({ content: instructions })),\n },\n tools: Blueprint.toolDefinitions({ operations: [FetchMessages] }),\n });\n\nconst blueprint: Blueprint.Definition = {\n key: BLUEPRINT_KEY,\n make,\n};\n\nexport default blueprint;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport * from './definitions';\n\nexport const DiscordHandlers = OperationHandlerSet.lazy(() => import('./fetch-messages'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Blueprint } from '@dxos/compute';\nimport { Ref } from '@dxos/echo';\nimport { Text } from '@dxos/schema';\nimport { trim } from '@dxos/util';\n\nimport { SyncIssues } from './functions';\n\nconst BLUEPRINT_KEY = 'org.dxos.blueprint.linear';\n\n/**\n * Agent prompt instructions for managing hierarchical task lists.\n */\nconst instructions = trim`\n You are able to sync Linear workspaces.\n Sometimes sync does not complete in one go and you need to call the function again.\n\n Known workspaces:\n\n DXOS teamId: 1127c63a-6f77-4725-9229-50f6cd47321c\n`;\n\nconst make = () =>\n Blueprint.make({\n key: BLUEPRINT_KEY,\n name: 'Linear',\n description: 'Syncs Linear workspaces.',\n instructions: {\n source: Ref.make(Text.make({ content: instructions })),\n },\n tools: Blueprint.toolDefinitions({ operations: [SyncIssues] }),\n });\n\nconst blueprint: Blueprint.Definition = {\n key: BLUEPRINT_KEY,\n make,\n};\n\nexport default blueprint;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport * from './definitions';\n\nexport const LinearHandlers = OperationHandlerSet.lazy(() => import('./sync-issues'));\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { Blueprint } from '@dxos/compute';\n\nimport { UpdateTasks } from './functions';\n\nconst BLUEPRINT_KEY = 'org.dxos.blueprint.planning';\n\nconst make = () =>\n Blueprint.make({\n key: BLUEPRINT_KEY,\n name: 'Planning',\n description: 'Plans and tracks complex tasks using artifacts.',\n tools: Blueprint.toolDefinitions({ operations: [UpdateTasks] }),\n });\n\nconst blueprint: Blueprint.Definition = {\n key: BLUEPRINT_KEY,\n make,\n};\n\nexport default blueprint;\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport * from './update-tasks';\n\nexport const PlanningHandlers = OperationHandlerSet.lazy(() => import('./update-tasks'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Blueprint } from '@dxos/compute';\nimport { Ref } from '@dxos/echo';\nimport { Text } from '@dxos/schema';\n\nimport { Fetch } from './functions';\n\nconst BLUEPRINT_KEY = 'org.dxos.blueprint.web-search';\n\nconst make = () =>\n Blueprint.make({\n key: BLUEPRINT_KEY,\n name: 'Web Search',\n description: 'Search the web.',\n agentCanEnable: true,\n instructions: {\n source: Ref.make(Text.make()),\n },\n tools: Blueprint.toolDefinitions({ operations: [Fetch], tools: ['AnthropicWebSearch'] }),\n });\n\nconst blueprint: Blueprint.Definition = {\n key: BLUEPRINT_KEY,\n make,\n};\n\nexport default blueprint;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport * from './definitions';\n\nexport const WebSearchHandlers = OperationHandlerSet.lazy(() => import('./fetch'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as AnthropicTool from '@effect/ai-anthropic/AnthropicTool';\nimport * as Toolkit from '@effect/ai/Toolkit';\nimport * as Layer from 'effect/Layer';\n\nimport { OpaqueToolkit } from '@dxos/ai';\n\nexport const WebSearchToolkit = Toolkit.make(AnthropicTool.WebSearch_20250305({}));\n\nexport const WebSearchToolkitOpaque = OpaqueToolkit.make(WebSearchToolkit, Layer.empty);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Blueprint } from '@dxos/compute';\nimport { Ref } from '@dxos/echo';\nimport { Text } from '@dxos/schema';\nimport { trim } from '@dxos/util';\n\nconst BLUEPRINT_KEY = 'org.dxos.blueprint.browser';\n\nconst instructions = trim`\n You are able to connect and use a virtual browser with persistent session.\n Browser tools are provided via MCP.\n`;\n\nconst make = () =>\n Blueprint.make({\n key: BLUEPRINT_KEY,\n name: 'Browser',\n description: 'Access to a real isolated browser.',\n agentCanEnable: true,\n instructions: {\n source: Ref.make(Text.make({ content: instructions })),\n },\n mcpServers: [\n {\n // https://dash.cloudflare.com/950816f3f59b079880a1ae33fb0ec320/workers/services/view/playwright-mcp-example/production\n url: 'https://playwright-mcp-example.dxos.workers.dev/sse',\n protocol: 'sse',\n },\n ],\n });\n\nconst blueprint: Blueprint.Definition = {\n key: BLUEPRINT_KEY,\n make,\n};\n\nexport default blueprint;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Blueprint } from '@dxos/compute';\nimport { Ref } from '@dxos/echo';\nimport { Text } from '@dxos/schema';\nimport { trim } from '@dxos/util';\n\nimport {\n Query,\n Load,\n ObjectCreate,\n ObjectUpdate,\n ObjectDelete,\n SchemaAdd,\n SchemaList,\n ContextAdd,\n ContextRemove,\n RelationCreate,\n RelationDelete,\n TagAdd,\n TagRemove,\n} from './functions';\n\nconst BLUEPRINT_KEY = 'org.dxos.blueprint.database';\n\nconst instructions = trim`\n You can query, create, update, and delete objects in ECHO.\n You can manage schemas, relations, tags, and add objects to the chat context.\n`;\n\nconst make = () =>\n Blueprint.make({\n key: BLUEPRINT_KEY,\n name: 'Database',\n description: 'Query and manipulate objects in the ECHO database.',\n agentCanEnable: true,\n instructions: {\n source: Ref.make(Text.make({ content: instructions })),\n },\n tools: Blueprint.toolDefinitions({\n operations: [\n ContextAdd,\n ContextRemove,\n Load,\n ObjectCreate,\n ObjectDelete,\n ObjectUpdate,\n Query,\n RelationCreate,\n RelationDelete,\n SchemaAdd,\n SchemaList,\n TagAdd,\n TagRemove,\n ],\n }),\n });\n\nconst blueprint: Blueprint.Definition = {\n key: BLUEPRINT_KEY,\n make,\n};\n\nexport default blueprint;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport * from './definitions';\n\nexport const DatabaseHandlers = OperationHandlerSet.lazy(\n () => import('./context-add'),\n () => import('./context-remove'),\n () => import('./load'),\n () => import('./object-create'),\n () => import('./object-delete'),\n () => import('./object-update'),\n () => import('./query'),\n () => import('./relation-create'),\n () => import('./relation-delete'),\n () => import('./schema-add'),\n () => import('./schema-list'),\n () => import('./tag-add'),\n () => import('./tag-remove'),\n);\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { Blueprint } from '@dxos/compute';\nimport { Ref } from '@dxos/echo';\nimport { Text } from '@dxos/schema';\nimport { trim } from '@dxos/util';\n\nimport { QueryMemories, SaveMemory, DeleteMemory } from './functions';\n\nconst BLUEPRINT_KEY = 'org.dxos.blueprint.memory';\n\nconst instructions = trim`\n You have the ability to save and recall memories.\n Memories are persistent knowledge units stored in the database.\n Use memories to remember facts, user preferences, decisions, and any knowledge that should persist across conversations.\n\n When the user asks you to remember something, save it as a memory with a descriptive title.\n When the user asks about something you might have stored, query your memories first.\n You can also delete outdated or incorrect memories.\n`;\n\nconst make = () =>\n Blueprint.make({\n key: BLUEPRINT_KEY,\n name: 'Memory',\n description: 'Persistent memory storage and retrieval.',\n agentCanEnable: true,\n instructions: {\n source: Ref.make(Text.make({ content: instructions })),\n },\n tools: Blueprint.toolDefinitions({ operations: [SaveMemory, QueryMemories, DeleteMemory] }),\n });\n\nconst blueprint: Blueprint.Definition = {\n key: BLUEPRINT_KEY,\n make,\n};\n\nexport default blueprint;\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport * from './definitions';\n\nexport const MemoryHandlers = OperationHandlerSet.lazy(\n () => import('./save'),\n () => import('./query'),\n () => import('./delete'),\n);\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { Blueprint, Trigger, Operation } from '@dxos/compute';\nimport { Ref } from '@dxos/echo';\nimport { Text } from '@dxos/schema';\nimport { trim } from '@dxos/util';\n\nconst BLUEPRINT_KEY = 'dxos.org/blueprint/automation';\n\nconst instructions = trim`\n Automation allows you to automatically initiate actions based on events.\n Automations are configured by creating a trigger that references a function.\n Whenever event that matches the trigger occurs, the function is invoked.\n\n ## Configuration\n\n Triggers are configured by the properties of the Trigger object.\n - enabled: Must be true for trigger to run.\n - spec: Events that the trigger matches.\n - function: Ref to a ${Operation.PersistentOperation.typename} object that will be invoked. Query the functions present in the space first, and reference them in the trigger.\n - input: The spec of the input data that will be passed to the function.\n\n ## Input patterns\n\n Input to the invoked function is defined by the input property of the Trigger object.\n It's an object that supports constants or template strings.\n\n Example:\n\n {\n item: '{{event.item}}',\n instructions: 'Summarize and perform entity-extraction'\n mailbox: { '/': 'dxn:echo:AAA:ZZZ' }\n }\n\n ## Trigger kinds\n\n - Timer: Triggered by a cron schedule.\n - Queue: Subscribes and processes items begginging to end.\n Note: queues are the same as feeds. The queue DXN should be of form: dxn:queue:data:<space-id>:<queue-id>.\n - Subscription: Subscribes and processes database items based on a query.\n\n Avoid: email and webhook triggers.\n\n ## Editing triggers\n\n Triggers are represented as objects of type ${Trigger.Trigger.typename}.\n You need access to the Database blueprint to manipulate triggers.\n Read trigger schema before manipulating triggers.\n Having a Trigger object in the database is enough to setup an automation. \n\n ## Examples\n\n Timer:\n\n {\n \"function\": { \"/\": \"dxn:echo:AAA:ZZZ\" },\n \"enabled\": true,\n \"spec\": {\n \"kind\": \"timer\",\n \"cron\": \"*/5 * * * *\"\n }\n }\n\n Queue:\n\n {\n \"function\": { \"/\": \"dxn:echo:AAA:ZZZ\" },\n \"enabled\": true,\n \"spec\": {\n \"kind\": \"queue\",\n \"queue\": \"dxn:queue:data:XXX:YYY\"\n }\n }\n\n Subscription:\n\n {\n \"function\": { \"/\": \"dxn:echo:AAA:ZZZ\" },\n \"enabled\": true,\n \"spec\": {\n \"kind\": \"subscription\",\n \"query\": { \"ast\": { \"type\": \"select\", \"filter\": { \"type\": \"object\", \"typename\": \"dxn:type:org.dxos.type.person\" } } }\n }\n }\n`;\n\nconst make = () =>\n Blueprint.make({\n key: BLUEPRINT_KEY,\n name: 'Triggers',\n description: 'Trigger management and automation.',\n instructions: {\n source: Ref.make(Text.make({ content: instructions })),\n },\n });\n\nconst blueprint: Blueprint.Definition = {\n key: BLUEPRINT_KEY,\n make,\n};\n\nexport default blueprint;\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { Blueprint, Template } from '@dxos/compute';\nimport { trim } from '@dxos/util';\n\nimport { EnableBlueprints, QueryBlueprints, UpdateBlueprints } from './functions';\n\nconst BLUEPRINT_KEY = 'org.dxos.blueprint.blueprint-manager';\n\nconst make = () =>\n Blueprint.make({\n key: BLUEPRINT_KEY,\n name: 'Blueprint Manager',\n description: 'Query and enable blueprints in the current conversation.',\n instructions: Template.make({\n source: trim`\n You can query available blueprints and enable them in the current conversation.\n Use [query-blueprints] to refresh the list of available blueprints.\n Use [refresh-blueprints] to update blueprint objects stored in the database from the built-in registry when they have drifted.\n Use [enable-blueprints] to enable blueprints by their keys. Always call [query-blueprints] first.\n Only blueprints with agentCanEnable=true can be enabled by the agent.\n\n <available_blueprints>\n {{#each blueprints}}\n - {{key}} \"{{name}}\"{{#if description}} -- {{description}}{{/if}}{{#if agentCanEnable}} [agent-can-enable]{{/if}}\n {{/each}}\n </available_blueprints>\n\n NOTE: You must enable the blueprint to use it, only then the tools from that blueprint will appear.\n `,\n inputs: [\n {\n name: 'blueprints',\n kind: 'operation',\n operation: QueryBlueprints.meta.key,\n },\n ],\n }),\n tools: Blueprint.toolDefinitions({ operations: [QueryBlueprints, EnableBlueprints, UpdateBlueprints] }),\n });\n\nconst blueprint: Blueprint.Definition = {\n key: BLUEPRINT_KEY,\n make,\n};\n\nexport default blueprint;\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport * from './definitions';\n\nexport const BlueprintManagerHandlers = OperationHandlerSet.lazy(\n () => import('./query-blueprints'),\n () => import('./enable-blueprints'),\n () => import('./update-blueprints'),\n);\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { Blueprint, Template } from '@dxos/compute';\nimport { trim } from '@dxos/util';\n\nimport { AgentRules, CreateAgent, SyncTriggers } from './functions';\n\nconst BLUEPRINT_KEY = 'org.dxos.blueprint.agent-wizard';\n\n/**\n * Creates the Agent Wizard blueprint. This is a function to avoid circular dependency issues.\n */\n// TODO(dmaretskyi): Combine with Agent Blueprint.\nconst make = () =>\n Blueprint.make({\n key: BLUEPRINT_KEY,\n name: 'Agent Wizard',\n description: 'Help the user create a new agent (subscriptions, optional cron timer, sync-triggers after edits).',\n agentCanEnable: true,\n instructions: Template.make({\n source: trim`\n You are a wizard that helps the user create a new agent.\n\n Agents are goal oriented and autonomously driven.\n Each agent has instructions - the goal of the agent.\n The instructions also typically describe what actions to perform in reaction to events (emails).\n The agent has a number of associated artifacts to work with.\n Agents can subscribe to emails.\n\n Agents have a \\`cron\\` field: when set, the agent runs on a timer on that schedule (standard cron syntax).\n Use \\`cron\\` when the user wants the agent to run periodically (e.g. \"every morning\", \"once a day\", \"every 5 minutes\").\n Examples: \\`0 9 * * *\\` for daily at 09:00, or \\`*/5 * * * *\\` for every 5 minutes.\n Timer triggers bypass the qualifier and invoke the agent worker directly on the schedule.\n\n The agent itself is an ECHO object and can be edited like any other object using the database blueprint.\n You can edit the agent's instructions, name, and other properties directly.\n If you edit the agent's \\`enabled\\` field, \\`filterEvents\\` field, subscriptions array, or \\`cron\\` field, you MUST call the sync-triggers function afterward to synchronize the triggers (\\`enabled\\` is applied to all triggers).\n\n IMPORTANT: Before attempting to create an agent call the [agent-rules] tool to get the rules for creating an agent.\n `,\n }),\n tools: Blueprint.toolDefinitions({ operations: [AgentRules, CreateAgent, SyncTriggers] }),\n });\n\nconst blueprint: Blueprint.Definition = {\n key: BLUEPRINT_KEY,\n make,\n};\n\nexport default blueprint;\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport * from './definitions';\n\nexport const AgentWizardHandlers = OperationHandlerSet.lazy(\n () => import('./create-project'),\n () => import('./project-rules'),\n () => import('./sync-triggers'),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Tool from '@effect/ai/Tool';\nimport * as Toolkit from '@effect/ai/Toolkit';\nimport * as Context from 'effect/Context';\nimport * as Effect from 'effect/Effect';\nimport * as Function from 'effect/Function';\nimport * as Option from 'effect/Option';\nimport * as Schema from 'effect/Schema';\nimport * as SchemaAST from 'effect/SchemaAST';\n\nimport { Database, Entity, Feed, Filter, Obj, Query, Type } from '@dxos/echo';\nimport { isEncodedReference } from '@dxos/echo-protocol';\nimport {\n ReferenceAnnotationId,\n RelationSourceDXNId,\n RelationSourceId,\n RelationTargetDXNId,\n RelationTargetId,\n createObject,\n getTypeAnnotation,\n getTypeIdentifierAnnotation,\n} from '@dxos/echo/internal';\nimport { mapAst } from '@dxos/effect';\nimport { DXN, ObjectId } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { deepMapValues, isNonNullable, trim } from '@dxos/util';\n\n// TODO(burdon): Unify with the graph schema.\nexport const Subgraph = Schema.Struct({\n /** Objects and relations. */\n objects: Schema.Array(Schema.Any),\n});\n\nexport interface Subgraph extends Schema.Schema.Type<typeof Subgraph> {}\n\nexport type RelatedSchema = {\n schema: Type.AnyEntity;\n kind: 'reference' | 'relation';\n};\n\n/**\n * Find all schemas that are related to the given schema.\n *\n * @param db\n * @param schema\n * @returns\n */\nexport const findRelatedSchema = async (db: Database.Database, anchor: Type.AnyEntity): Promise<RelatedSchema[]> => {\n // TODO(dmaretskyi): Query stored schemas.\n const allSchemas = await db.graph.schemaRegistry.query().run();\n\n // TODO(dmaretskyi): Also do references.\n return allSchemas\n .filter((schema) => {\n if (getTypeAnnotation(schema)?.kind !== Entity.Kind.Relation) {\n return false;\n }\n\n return (\n isSchemaAddressableByDXN(anchor, DXN.parse(getTypeAnnotation(schema)!.sourceSchema!)) ||\n isSchemaAddressableByDXN(anchor, DXN.parse(getTypeAnnotation(schema)!.targetSchema!))\n );\n })\n .map(\n (schema): RelatedSchema => ({\n kind: 'relation',\n schema,\n }),\n );\n};\n\n/**\n * Non-strict DXN comparison.\n * Returns true if the DXN could be resolved to the schema.\n */\nconst isSchemaAddressableByDXN = (schema: Type.AnyEntity, dxn: DXN): boolean => {\n if (getTypeIdentifierAnnotation(schema) === dxn.toString()) {\n return true;\n }\n\n const t = dxn.asTypeDXN();\n if (t) {\n return t.type === Type.getTypename(schema);\n }\n\n return false;\n};\n\n/**\n * Perform vector search in the local database.\n */\n// TODO(dmaretskyi): Rename `GraphReadToolkit`.\nexport const LocalSearchToolkit = Toolkit.make(\n Tool.make('search_local_search', {\n description: 'Search the local database for information using a vector index',\n parameters: {\n query: Schema.String.annotations({\n description: 'The query to search for. Could be a question or a topic or a set of keywords.',\n }),\n },\n success: Schema.Unknown,\n failure: Schema.Never,\n dependencies: [Database.Service, Feed.FeedService],\n }),\n);\n\nexport const LocalSearchHandler = LocalSearchToolkit.toLayer({\n search_local_search: Effect.fn(function* ({ query }) {\n const objects = yield* Database.runQuery(Query.select(Filter.text(query, { type: 'vector' })));\n const results = [...objects];\n\n const feedOption = yield* Effect.serviceOption(Feed.ContextFeedService);\n if (Option.isSome(feedOption)) {\n const feedObjects = yield* Feed.runQuery(feedOption.value.feed, Filter.everything());\n // TODO(dmaretskyi): Text search on the feed.\n results.push(...feedObjects);\n }\n\n return trim`\n <local_context>\n ${JSON.stringify(results, null, 2)}\n </local_context>\n `;\n }),\n});\n\n/**\n * Attached as an annotation to the writer tool.\n */\nclass GraphWriterSchema extends Context.Tag('@dxos/assistant/GraphWriterSchema')<\n GraphWriterSchema,\n {\n schema: Type.AnyEntity[];\n }\n>() {}\n\n/**\n * Forms typed objects that can be written to the graph database.\n */\nexport const makeGraphWriterToolkit = ({ schema }: { schema: Type.AnyEntity[] }) => {\n return Toolkit.make(\n Tool.make('graph_writer', {\n description: 'Write to the local graph database',\n parameters: createExtractionSchema(schema).fields,\n success: Schema.Unknown,\n failure: Schema.Never,\n dependencies: [Database.Service, Feed.ContextFeedService, Feed.FeedService],\n }).annotateContext(Context.make(GraphWriterSchema, { schema })),\n );\n};\n\nexport const makeGraphWriterHandler = (\n toolkit: ReturnType<typeof makeGraphWriterToolkit>,\n {\n onAppend,\n }: {\n onAppend?: (object: DXN[]) => void;\n } = {},\n) => {\n const { schema } = Context.get(\n toolkit.tools.graph_writer.annotations as Context.Context<GraphWriterSchema>,\n GraphWriterSchema,\n );\n\n return toolkit.toLayer({\n graph_writer: Effect.fn(function* (input) {\n const { db } = yield* Database.Service;\n const { feed } = yield* Feed.ContextFeedService;\n const data = yield* sanitizeObjects(schema, input as any, db, feed);\n yield* Feed.append(feed, data as Obj.Unknown[]);\n\n const dxns = data.map((obj) => Obj.getDXN(obj));\n onAppend?.(dxns);\n return dxns;\n }),\n });\n};\n\n/**\n * Create a schema for structured data extraction.\n */\nexport const createExtractionSchema = (types: Type.AnyEntity[]) => {\n return Schema.Struct({\n ...Object.fromEntries(\n types.map(preprocessSchema).map((schema, index) => [\n `objects_${getSanitizedSchemaName(types[index])}`,\n Schema.optional(Schema.Array(schema)).annotations({\n description: `The objects of type: ${Type.getDXN(types[index])?.asTypeDXN()!.type}. ${SchemaAST.getDescriptionAnnotation(types[index].ast).pipe(Option.getOrElse(() => ''))}`,\n }),\n ]),\n ),\n });\n};\n\nexport const getSanitizedSchemaName = (schema: Type.AnyEntity) => {\n return Type.getDXN(schema)!\n .asTypeDXN()!\n .type.replaceAll(/[^a-zA-Z0-9]+/g, '_');\n};\n\nexport const sanitizeObjects = (\n types: Type.AnyEntity[],\n data: Record<string, readonly unknown[]>,\n db: Database.Database,\n feed?: Feed.Feed,\n): Effect.Effect<Obj.Unknown[], never, Feed.FeedService> =>\n Effect.gen(function* () {\n const entries = types\n .map(\n (type) =>\n data[`objects_${getSanitizedSchemaName(type)}`]?.map((object: any) => ({\n data: object,\n schema: type,\n })) ?? [],\n )\n .flat();\n\n const idMap = new Map<string, string>();\n const existingIds = new Set<ObjectId>();\n const enitties = new Map<ObjectId, Entity.Unknown>();\n\n const resolveId = (id: string): DXN | undefined => {\n if (ObjectId.isValid(id)) {\n existingIds.add(id);\n return DXN.fromLocalObjectId(id);\n }\n\n const mappedId = idMap.get(id);\n if (mappedId) {\n return DXN.fromLocalObjectId(mappedId);\n }\n\n return undefined;\n };\n\n const res = entries\n .map((entry) => {\n // This entry mutates existing object.\n if (ObjectId.isValid(entry.data.id)) {\n return entry;\n }\n\n idMap.set(entry.data.id, ObjectId.random());\n entry.data.id = idMap.get(entry.data.id);\n return entry;\n })\n .map((entry) => {\n const data = deepMapValues(entry.data, (value, recurse) => {\n if (isEncodedReference(value)) {\n const ref = value['/'];\n const id = resolveId(ref);\n\n if (id) {\n // Link to an existing object.\n return { '/': id.toString() };\n } else {\n // Search URIs?\n return { '/': `search:?q=${encodeURIComponent(ref)}` };\n }\n }\n\n return recurse(value);\n });\n\n if (Entity.getKind(entry.schema) === 'relation') {\n const sourceDXN = resolveId(data.source);\n if (!sourceDXN) {\n log.warn('source not found', { source: data.source });\n }\n const targetDXN = resolveId(data.target);\n if (!targetDXN) {\n log.warn('target not found', { target: data.target });\n }\n delete data.source;\n delete data.target;\n data[RelationSourceDXNId] = sourceDXN;\n data[RelationTargetDXNId] = targetDXN;\n }\n\n return {\n data,\n schema: entry.schema,\n };\n })\n .filter((object) => !existingIds.has(object.data.id)); // TODO(dmaretskyi): This dissallows updating existing objects.\n\n // TODO(dmaretskyi): Use ref resolver.\n const dbObjects = yield* Effect.promise(() => db.query(Query.select(Filter.id(...existingIds))).run());\n const feedObjects = feed && existingIds.size > 0 ? yield* Feed.runQuery(feed, Filter.id(...existingIds)) : [];\n const objects = [...dbObjects, ...feedObjects].filter(isNonNullable);\n\n // TODO(dmaretskyi): Returns everything if IDs are empty!\n log.info('objects', { dbObjects, feedObjects, existingIds });\n const missing = Array.from(existingIds).filter((id) => !objects.some((object) => object.id === id));\n if (missing.length > 0) {\n throw new Error(`Object IDs do not point to existing objects: ${missing.join(', ')}`);\n }\n\n return res.flatMap(({ data, schema }) => {\n let skip = false;\n if (RelationSourceDXNId in data) {\n const id = (data[RelationSourceDXNId] as DXN).asEchoDXN()?.echoId;\n const obj = objects.find((object) => object.id === id) ?? enitties.get(id!);\n if (obj) {\n delete data[RelationSourceDXNId];\n data[RelationSourceId] = obj;\n } else {\n skip = true;\n }\n }\n if (RelationTargetDXNId in data) {\n const id = (data[RelationTargetDXNId] as DXN).asEchoDXN()?.echoId;\n const obj = objects.find((object) => object.id === id) ?? enitties.get(id!);\n if (obj) {\n delete data[RelationTargetDXNId];\n data[RelationTargetId] = obj;\n } else {\n skip = true;\n }\n }\n if (!skip) {\n const obj = createObject(schema, data);\n enitties.set(obj.id, obj);\n return [obj];\n }\n return [];\n });\n });\n\nconst SoftRef = Schema.Struct({\n '/': Schema.String,\n}).annotations({\n description: 'Reference to another object.',\n});\n\nconst preprocessSchema = (schema: Schema.Schema.AnyNoContext) => {\n const isRelationSchema = Entity.getKind(schema) === 'relation';\n\n const go = (ast: SchemaAST.AST, visited = new Set<SchemaAST.AST>()): SchemaAST.AST => {\n if (visited.has(ast)) {\n // Already visited this node, prevent infinite recursion.\n return ast;\n }\n visited.add(ast);\n\n if (SchemaAST.getAnnotation(ast, ReferenceAnnotationId).pipe(Option.isSome)) {\n return SoftRef.ast;\n }\n\n return mapAst(ast, (child) => go(child, visited));\n };\n\n return Schema.make<any, any, never>(mapAst(schema.ast, (ast) => go(ast))).pipe(\n Schema.omit('id'),\n Schema.extend(\n Schema.Struct({\n id: Schema.String.annotations({\n description: 'The id of this object. Come up with a unique id based on your judgement.',\n }),\n }),\n ),\n isRelationSchema\n ? Schema.extend(\n Schema.Struct({\n source: Schema.String.annotations({\n description: 'The id of the source object for this relation.',\n }),\n target: Schema.String.annotations({\n description: 'The id of the target object for this relation.',\n }),\n }),\n )\n : Function.identity<Schema.Schema.AnyNoContext>,\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport * from './definitions';\n\nexport const AgentHandlers = OperationHandlerSet.lazy(() => import('./prompt'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as AnthropicTool from '@effect/ai-anthropic/AnthropicTool';\nimport * as Tool from '@effect/ai/Tool';\nimport * as Toolkit from '@effect/ai/Toolkit';\nimport * as Effect from 'effect/Effect';\nimport * as Schema from 'effect/Schema';\n\n// TODO(dmaretskyi): Testing only.\nexport const WebToolkit = Toolkit.make(\n AnthropicTool.WebSearch_20250305({}).pipe(\n // TODO(dmaretskyi): Effect bug -- provider-defined tools don't support annotations.\n // ToolFormatter.assign({\n // debugFormatResult: (result) =>\n // Array.isArray(result) ? result.map(Struct.pick('title', 'type', 'url', 'page_age')) : result,\n // }),\n ),\n Tool.make('WebFetch', {\n parameters: {\n url: Schema.String,\n },\n success: Schema.String,\n }),\n);\n\nexport const layer = WebToolkit.toLayer({\n WebFetch: Effect.fnUntraced(function* ({ url }) {\n const response = yield* Effect.promise(() => fetch(url).then((response) => response.text()));\n return response;\n }),\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Blueprint", "Ref", "Text", "trim", "OperationHandlerSet", "DiscordHandlers", "lazy", "BLUEPRINT_KEY", "instructions", "trim", "make", "Blueprint", "key", "name", "description", "source", "Ref", "Text", "content", "tools", "toolDefinitions", "operations", "FetchMessages", "blueprint", "blueprint_default", "Blueprint", "Ref", "Text", "trim", "OperationHandlerSet", "LinearHandlers", "lazy", "BLUEPRINT_KEY", "instructions", "trim", "make", "Blueprint", "key", "name", "description", "source", "Ref", "Text", "content", "tools", "toolDefinitions", "operations", "SyncIssues", "blueprint", "blueprint_default", "Blueprint", "OperationHandlerSet", "PlanningHandlers", "lazy", "BLUEPRINT_KEY", "make", "Blueprint", "key", "name", "description", "tools", "toolDefinitions", "operations", "UpdateTasks", "blueprint", "blueprint_default", "Blueprint", "Ref", "Text", "OperationHandlerSet", "WebSearchHandlers", "lazy", "BLUEPRINT_KEY", "make", "Blueprint", "key", "name", "description", "agentCanEnable", "instructions", "source", "Ref", "Text", "tools", "toolDefinitions", "operations", "Fetch", "blueprint", "blueprint_default", "AnthropicTool", "Toolkit", "Layer", "OpaqueToolkit", "WebSearchToolkit", "make", "WebSearch_20250305", "WebSearchToolkitOpaque", "empty", "Blueprint", "Ref", "Text", "trim", "BLUEPRINT_KEY", "instructions", "make", "key", "name", "description", "agentCanEnable", "source", "content", "mcpServers", "url", "protocol", "blueprint", "blueprint_default", "Blueprint", "Ref", "Text", "trim", "OperationHandlerSet", "DatabaseHandlers", "lazy", "BLUEPRINT_KEY", "instructions", "trim", "make", "Blueprint", "key", "name", "description", "agentCanEnable", "source", "Ref", "Text", "content", "tools", "toolDefinitions", "operations", "ContextAdd", "ContextRemove", "Load", "ObjectCreate", "ObjectDelete", "ObjectUpdate", "Query", "RelationCreate", "RelationDelete", "SchemaAdd", "SchemaList", "TagAdd", "TagRemove", "blueprint", "blueprint_default", "Blueprint", "Ref", "Text", "trim", "OperationHandlerSet", "MemoryHandlers", "lazy", "BLUEPRINT_KEY", "instructions", "trim", "make", "Blueprint", "key", "name", "description", "agentCanEnable", "source", "Ref", "Text", "content", "tools", "toolDefinitions", "operations", "SaveMemory", "QueryMemories", "DeleteMemory", "blueprint", "blueprint_default", "Blueprint", "Trigger", "Operation", "Ref", "Text", "trim", "BLUEPRINT_KEY", "instructions", "PersistentOperation", "typename", "make", "key", "name", "description", "source", "content", "blueprint", "blueprint_default", "Blueprint", "Template", "trim", "OperationHandlerSet", "BlueprintManagerHandlers", "lazy", "BLUEPRINT_KEY", "make", "Blueprint", "key", "name", "description", "instructions", "Template", "source", "trim", "inputs", "kind", "operation", "QueryBlueprints", "meta", "tools", "toolDefinitions", "operations", "EnableBlueprints", "UpdateBlueprints", "blueprint", "blueprint_default", "Blueprint", "Template", "trim", "OperationHandlerSet", "AgentWizardHandlers", "lazy", "BLUEPRINT_KEY", "make", "Blueprint", "key", "name", "description", "agentCanEnable", "instructions", "Template", "source", "trim", "tools", "toolDefinitions", "operations", "AgentRules", "CreateAgent", "SyncTriggers", "blueprint", "blueprint_default", "Tool", "Toolkit", "Context", "Effect", "Function", "Option", "Schema", "SchemaAST", "Database", "Entity", "Feed", "Filter", "Obj", "Query", "Type", "isEncodedReference", "ReferenceAnnotationId", "RelationSourceDXNId", "RelationSourceId", "RelationTargetDXNId", "RelationTargetId", "createObject", "getTypeAnnotation", "getTypeIdentifierAnnotation", "mapAst", "DXN", "ObjectId", "log", "deepMapValues", "isNonNullable", "trim", "allSchemas", "schemaRegistry", "query", "filter", "schema", "isSchemaAddressableByDXN", "map", "kind", "dxn", "type", "parameters", "description", "success", "failure", "dependencies", "Service", "FeedService", "results", "feedOption", "feedObjects", "stringify", "createExtractionSchema", "ContextFeedService", "annotateContext", "toolkit", "graph_writer", "input", "data", "sanitizeObjects", "append", "feed", "dxns", "getDXN", "obj", "onAppend", "Object", "preprocessSchema", "optional", "Array", "annotations", "db", "object", "idMap", "Map", "existingIds", "Set", "enitties", "resolveId", "id", "isValid", "fromLocalObjectId", "mappedId", "undefined", "res", "entry", "ref", "getKind", "sourceDXN", "targetDXN", "dbObjects", "promise", "objects", "length", "Error", "missing", "join", "flatMap", "find", "skip", "SoftRef", "visited", "ast", "isRelationSchema", "source", "target", "String", "identity", "OperationHandlerSet", "AgentHandlers", "lazy", "AnthropicTool", "Tool", "Toolkit", "Effect", "Schema", "WebToolkit", "make", "WebSearch_20250305", "pipe", "parameters", "url", "String", "success", "layer", "toLayer", "WebFetch", "fnUntraced", "response", "promise", "fetch", "then", "text"]
|
|
7
7
|
}
|