@dxos/plugin-debug 0.8.4-main.3c1ae3b → 0.8.4-main.3fbcb4aa9b
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/neutral/DebugGraph-G4FWS57E.mjs +15 -0
- package/dist/lib/neutral/DebugGraph-G4FWS57E.mjs.map +7 -0
- package/dist/lib/neutral/DebugObjectPanel-UJ63CV25.mjs +59 -0
- package/dist/lib/neutral/DebugObjectPanel-UJ63CV25.mjs.map +7 -0
- package/dist/lib/neutral/DebugPlugin.mjs +47 -0
- package/dist/lib/neutral/DebugPlugin.mjs.map +7 -0
- package/dist/lib/neutral/DebugPlugin.node.mjs +18 -0
- package/dist/lib/neutral/DebugPlugin.node.mjs.map +7 -0
- package/dist/lib/neutral/DebugSettings-Z3XADRNK.mjs +224 -0
- package/dist/lib/neutral/DebugSettings-Z3XADRNK.mjs.map +7 -0
- package/dist/lib/neutral/DebugSpaceObjectsPanel-NISULU6U.mjs +34 -0
- package/dist/lib/neutral/DebugSpaceObjectsPanel-NISULU6U.mjs.map +7 -0
- package/dist/lib/neutral/DebugStatus-YB3KFP7G.mjs +121 -0
- package/dist/lib/neutral/DebugStatus-YB3KFP7G.mjs.map +7 -0
- package/dist/lib/neutral/DevtoolsOverviewContainer-YX7Z3D2H.mjs +23 -0
- package/dist/lib/neutral/DevtoolsOverviewContainer-YX7Z3D2H.mjs.map +7 -0
- package/dist/lib/neutral/SpaceGenerator-UBYB4NPD.mjs +143 -0
- package/dist/lib/neutral/SpaceGenerator-UBYB4NPD.mjs.map +7 -0
- package/dist/lib/neutral/Wireframe-7SNRUKET.mjs +52 -0
- package/dist/lib/neutral/Wireframe-7SNRUKET.mjs.map +7 -0
- package/dist/lib/neutral/app-graph-builder-YPYHL2K5.mjs +577 -0
- package/dist/lib/neutral/app-graph-builder-YPYHL2K5.mjs.map +7 -0
- package/dist/lib/neutral/capabilities/index.mjs +15 -0
- package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
- package/dist/lib/{browser/chunk-WZFZ4ESO.mjs → neutral/chunk-3OGPOE7H.mjs} +2 -2
- package/dist/lib/neutral/chunk-3OGPOE7H.mjs.map +7 -0
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
- package/dist/lib/{browser/chunk-SRV2AIGJ.mjs → neutral/chunk-NFIOTQRZ.mjs} +30 -9
- package/dist/lib/neutral/chunk-NFIOTQRZ.mjs.map +7 -0
- package/dist/lib/{browser/SpaceGenerator-GYCIEMMO.mjs → neutral/components/index.mjs} +293 -470
- package/dist/lib/neutral/components/index.mjs.map +7 -0
- package/dist/lib/neutral/containers/index.mjs +21 -0
- package/dist/lib/neutral/containers/index.mjs.map +7 -0
- package/dist/lib/neutral/index.mjs +18 -0
- package/dist/lib/neutral/index.mjs.map +7 -0
- package/dist/lib/neutral/meta.json +1 -0
- package/dist/lib/neutral/meta.mjs +8 -0
- package/dist/lib/neutral/meta.mjs.map +7 -0
- package/dist/lib/neutral/plugin.mjs +12 -0
- package/dist/lib/neutral/plugin.mjs.map +7 -0
- package/dist/lib/neutral/react-context-MUZ3KVLU.mjs +17 -0
- package/dist/lib/neutral/react-context-MUZ3KVLU.mjs.map +7 -0
- package/dist/lib/neutral/react-surface-NH2H63KW.mjs +420 -0
- package/dist/lib/neutral/react-surface-NH2H63KW.mjs.map +7 -0
- package/dist/lib/neutral/settings-MPM6YUP4.mjs +28 -0
- package/dist/lib/neutral/settings-MPM6YUP4.mjs.map +7 -0
- package/dist/lib/neutral/translations.mjs +83 -0
- package/dist/lib/neutral/translations.mjs.map +7 -0
- package/dist/lib/neutral/types/index.mjs +14 -0
- package/dist/lib/neutral/types/index.mjs.map +7 -0
- package/dist/types/src/DebugPlugin.d.ts +4 -1
- package/dist/types/src/DebugPlugin.d.ts.map +1 -1
- package/dist/types/src/DebugPlugin.node.d.ts +5 -0
- package/dist/types/src/DebugPlugin.node.d.ts.map +1 -0
- package/dist/types/src/DebugPlugin.test.d.ts +2 -0
- package/dist/types/src/DebugPlugin.test.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +8 -5
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-context.d.ts +4 -2
- package/dist/types/src/capabilities/react-context.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +7 -2
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.d.ts +5 -2
- package/dist/types/src/capabilities/settings.d.ts.map +1 -1
- package/dist/types/src/components/DebugSettings/DebugSettings.d.ts +11 -0
- package/dist/types/src/components/DebugSettings/DebugSettings.d.ts.map +1 -0
- package/dist/types/src/components/DebugSettings/DebugSettings.stories.d.ts +99 -0
- package/dist/types/src/components/DebugSettings/DebugSettings.stories.d.ts.map +1 -0
- package/dist/types/src/components/DebugSettings/index.d.ts +2 -0
- package/dist/types/src/components/DebugSettings/index.d.ts.map +1 -0
- package/dist/types/src/components/SchemaTable/SchemaTable.d.ts.map +1 -0
- package/dist/types/src/components/SchemaTable/index.d.ts +2 -0
- package/dist/types/src/components/SchemaTable/index.d.ts.map +1 -0
- package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts +2 -2
- package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts.map +1 -1
- package/dist/types/src/components/SpaceGenerator/draw-util.d.ts.map +1 -1
- package/dist/types/src/components/SpaceGenerator/index.d.ts +2 -2
- package/dist/types/src/components/SpaceGenerator/index.d.ts.map +1 -1
- package/dist/types/src/components/SpaceGenerator/presets.d.ts +1 -48
- package/dist/types/src/components/SpaceGenerator/presets.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +4 -10
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts +8 -0
- package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts.map +1 -0
- package/dist/types/src/containers/DebugGraph/index.d.ts +2 -0
- package/dist/types/src/containers/DebugGraph/index.d.ts.map +1 -0
- package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts +6 -0
- package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts.map +1 -0
- package/dist/types/src/containers/DebugObjectPanel/index.d.ts +2 -0
- package/dist/types/src/containers/DebugObjectPanel/index.d.ts.map +1 -0
- package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts +5 -0
- package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts.map +1 -0
- package/dist/types/src/containers/DebugSpaceObjectsPanel/index.d.ts +2 -0
- package/dist/types/src/containers/DebugSpaceObjectsPanel/index.d.ts.map +1 -0
- package/dist/types/src/containers/DebugStatus/DebugStatus.d.ts.map +1 -0
- package/dist/types/src/containers/DebugStatus/index.d.ts +2 -0
- package/dist/types/src/containers/DebugStatus/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers/DevtoolsOverviewContainer}/DevtoolsOverviewContainer.d.ts +0 -1
- package/dist/types/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.d.ts.map +1 -0
- package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts +2 -0
- package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts.map +1 -0
- package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.d.ts +11 -0
- package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.d.ts.map +1 -0
- package/dist/types/src/containers/SpaceGenerator/index.d.ts +2 -0
- package/dist/types/src/containers/SpaceGenerator/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers/Wireframe}/Wireframe.d.ts +1 -1
- package/dist/types/src/containers/Wireframe/Wireframe.d.ts.map +1 -0
- package/dist/types/src/containers/Wireframe/index.d.ts +2 -0
- package/dist/types/src/containers/Wireframe/index.d.ts.map +1 -0
- package/dist/types/src/containers/index.d.ts +9 -0
- package/dist/types/src/containers/index.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +1 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/plugin.d.ts +4 -0
- package/dist/types/src/plugin.d.ts.map +1 -0
- package/dist/types/src/translations.d.ts +80 -59
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Settings.d.ts +8 -0
- package/dist/types/src/types/Settings.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +69 -0
- package/dist/types/src/types/index.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +131 -75
- package/src/DebugPlugin.node.ts +18 -0
- package/src/DebugPlugin.test.ts +29 -0
- package/src/DebugPlugin.tsx +28 -34
- package/src/capabilities/app-graph-builder.ts +362 -388
- package/src/capabilities/index.ts +5 -5
- package/src/capabilities/react-context.tsx +16 -7
- package/src/capabilities/react-surface.tsx +377 -356
- package/src/capabilities/settings.ts +24 -12
- package/src/components/DebugSettings/DebugSettings.stories.tsx +36 -0
- package/src/components/DebugSettings/DebugSettings.tsx +262 -0
- package/src/components/DebugSettings/index.ts +5 -0
- package/src/components/{SpaceGenerator → SchemaTable}/SchemaTable.tsx +2 -2
- package/src/components/SchemaTable/index.ts +5 -0
- package/src/components/SpaceGenerator/ObjectGenerator.tsx +18 -19
- package/src/components/SpaceGenerator/draw-util.ts +8 -8
- package/src/components/SpaceGenerator/index.ts +2 -3
- package/src/components/SpaceGenerator/presets.ts +179 -96
- package/src/components/index.ts +4 -8
- package/src/containers/DebugGraph/DebugGraph.tsx +14 -0
- package/src/containers/DebugGraph/index.ts +5 -0
- package/src/containers/DebugObjectPanel/DebugObjectPanel.tsx +76 -0
- package/src/containers/DebugObjectPanel/index.ts +5 -0
- package/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.tsx +47 -0
- package/src/containers/DebugSpaceObjectsPanel/index.ts +5 -0
- package/src/{components → containers/DebugStatus}/DebugStatus.tsx +41 -19
- package/src/containers/DebugStatus/index.ts +5 -0
- package/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.tsx +25 -0
- package/src/containers/DevtoolsOverviewContainer/index.ts +5 -0
- package/src/containers/SpaceGenerator/SpaceGenerator.tsx +126 -0
- package/src/containers/SpaceGenerator/index.ts +5 -0
- package/src/{components → containers/Wireframe}/Wireframe.tsx +5 -9
- package/src/containers/Wireframe/index.ts +5 -0
- package/src/containers/index.ts +13 -0
- package/src/index.ts +1 -1
- package/src/meta.ts +3 -3
- package/src/plugin.ts +10 -0
- package/src/translations.ts +75 -58
- package/src/types/Settings.ts +16 -0
- package/src/{types.ts → types/index.ts} +20 -11
- package/dist/lib/browser/DebugGraph-EDOH6R2G.mjs +0 -20
- package/dist/lib/browser/DebugGraph-EDOH6R2G.mjs.map +0 -7
- package/dist/lib/browser/DevtoolsOverviewContainer-JXVZVPHN.mjs +0 -25
- package/dist/lib/browser/DevtoolsOverviewContainer-JXVZVPHN.mjs.map +0 -7
- package/dist/lib/browser/SpaceGenerator-GYCIEMMO.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-CRH2HJKT.mjs +0 -588
- package/dist/lib/browser/app-graph-builder-CRH2HJKT.mjs.map +0 -7
- package/dist/lib/browser/chunk-SRV2AIGJ.mjs.map +0 -7
- package/dist/lib/browser/chunk-WZFZ4ESO.mjs.map +0 -7
- package/dist/lib/browser/index.mjs +0 -130
- package/dist/lib/browser/index.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/browser/react-context-P2YDWEWI.mjs +0 -16
- package/dist/lib/browser/react-context-P2YDWEWI.mjs.map +0 -7
- package/dist/lib/browser/react-surface-RFG63TTF.mjs +0 -774
- package/dist/lib/browser/react-surface-RFG63TTF.mjs.map +0 -7
- package/dist/lib/browser/settings-SQXR3OAH.mjs +0 -22
- package/dist/lib/browser/settings-SQXR3OAH.mjs.map +0 -7
- package/dist/types/src/components/Container.d.ts +0 -5
- package/dist/types/src/components/Container.d.ts.map +0 -1
- package/dist/types/src/components/DebugGraph.d.ts +0 -8
- package/dist/types/src/components/DebugGraph.d.ts.map +0 -1
- package/dist/types/src/components/DebugObjectPanel.d.ts +0 -7
- package/dist/types/src/components/DebugObjectPanel.d.ts.map +0 -1
- package/dist/types/src/components/DebugSettings.d.ts +0 -6
- package/dist/types/src/components/DebugSettings.d.ts.map +0 -1
- package/dist/types/src/components/DebugStatus.d.ts.map +0 -1
- package/dist/types/src/components/DevtoolsOverviewContainer.d.ts.map +0 -1
- package/dist/types/src/components/SpaceGenerator/SchemaTable.d.ts.map +0 -1
- package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts +0 -9
- package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts.map +0 -1
- package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts +0 -15
- package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts.map +0 -1
- package/dist/types/src/components/Wireframe.d.ts.map +0 -1
- package/dist/types/src/types.d.ts +0 -63
- package/dist/types/src/types.d.ts.map +0 -1
- package/src/components/Container.tsx +0 -15
- package/src/components/DebugGraph.tsx +0 -14
- package/src/components/DebugObjectPanel.tsx +0 -33
- package/src/components/DebugSettings.tsx +0 -180
- package/src/components/DevtoolsOverviewContainer.tsx +0 -20
- package/src/components/SpaceGenerator/SpaceGenerator.stories.tsx +0 -52
- package/src/components/SpaceGenerator/SpaceGenerator.tsx +0 -126
- /package/dist/types/src/components/{SpaceGenerator → SchemaTable}/SchemaTable.d.ts +0 -0
- /package/dist/types/src/{components → containers/DebugStatus}/DebugStatus.d.ts +0 -0
|
@@ -4,15 +4,14 @@
|
|
|
4
4
|
|
|
5
5
|
import * as Schema from 'effect/Schema';
|
|
6
6
|
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
7
|
+
import { AgentPrompt, WebSearchBlueprint } from '@dxos/assistant-toolkit';
|
|
8
|
+
import { Routine, Trigger, Operation } from '@dxos/compute';
|
|
9
9
|
import { type ComputeGraphModel, NODE_INPUT } from '@dxos/conductor';
|
|
10
|
-
import { DXN, Filter, Key, Obj, Query, Ref, Tag
|
|
11
|
-
import { Trigger, serializeFunction } from '@dxos/functions';
|
|
10
|
+
import { DXN, Feed, Filter, JsonSchema, Key, Obj, Query, type QueryAST, Ref, Tag } from '@dxos/echo';
|
|
12
11
|
import { invariant } from '@dxos/invariant';
|
|
13
|
-
import {
|
|
14
|
-
import { Mailbox } from '@dxos/plugin-inbox
|
|
15
|
-
import { Markdown } from '@dxos/plugin-markdown
|
|
12
|
+
import { InboxOperation } from '@dxos/plugin-inbox';
|
|
13
|
+
import { Mailbox } from '@dxos/plugin-inbox';
|
|
14
|
+
import { Markdown } from '@dxos/plugin-markdown';
|
|
16
15
|
import { type Space } from '@dxos/react-client/echo';
|
|
17
16
|
import {
|
|
18
17
|
type ComputeShape,
|
|
@@ -20,24 +19,18 @@ import {
|
|
|
20
19
|
createChat,
|
|
21
20
|
createComputeGraph,
|
|
22
21
|
createConstant,
|
|
22
|
+
createFeed,
|
|
23
23
|
createFunction,
|
|
24
24
|
createGpt,
|
|
25
|
-
createQueue,
|
|
26
25
|
createRandom,
|
|
27
26
|
createSurface,
|
|
28
27
|
createTemplate,
|
|
29
28
|
createText,
|
|
30
29
|
createTrigger,
|
|
31
30
|
} from '@dxos/react-ui-canvas-compute';
|
|
32
|
-
import {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
pointMultiply,
|
|
36
|
-
pointsToRect,
|
|
37
|
-
rectToPoints,
|
|
38
|
-
} from '@dxos/react-ui-canvas-editor';
|
|
39
|
-
import { View } from '@dxos/schema';
|
|
40
|
-
import { Message, Organization, Person, Project } from '@dxos/types';
|
|
31
|
+
import { CanvasBoard, CanvasGraphModel, pointMultiply, pointsToRect, rectToPoints } from '@dxos/react-ui-canvas-editor';
|
|
32
|
+
import { ViewModel } from '@dxos/schema';
|
|
33
|
+
import { Message, Organization, Person, Pipeline } from '@dxos/types';
|
|
41
34
|
import { range, trim } from '@dxos/util';
|
|
42
35
|
|
|
43
36
|
import { type ObjectGenerator } from './ObjectGenerator';
|
|
@@ -57,14 +50,19 @@ export enum PresetName {
|
|
|
57
50
|
}
|
|
58
51
|
|
|
59
52
|
export const generator = () => ({
|
|
60
|
-
schemas: [
|
|
53
|
+
schemas: [CanvasBoard.CanvasBoard, Trigger.Trigger] as any[],
|
|
61
54
|
types: Object.values(PresetName).map((name) => ({ typename: name })),
|
|
62
55
|
items: [
|
|
63
56
|
[
|
|
64
57
|
PresetName.DXOS_TEAM,
|
|
65
58
|
async (space, n, cb) => {
|
|
66
59
|
const objects = range(n, () => {
|
|
67
|
-
const org = space.db.add(
|
|
60
|
+
const org = space.db.add(
|
|
61
|
+
Obj.make(Organization.Organization, {
|
|
62
|
+
name: 'DXOS',
|
|
63
|
+
website: 'https://dxos.org',
|
|
64
|
+
}),
|
|
65
|
+
);
|
|
68
66
|
const doc = space.db.add(
|
|
69
67
|
Markdown.make({
|
|
70
68
|
name: 'DXOS Research',
|
|
@@ -74,7 +72,9 @@ export const generator = () => ({
|
|
|
74
72
|
|
|
75
73
|
const tag = space.db.add(Tag.make({ label: 'Investor' }));
|
|
76
74
|
const tagDxn = Obj.getDXN(tag).toString();
|
|
77
|
-
Obj.
|
|
75
|
+
Obj.update(doc, (doc) => {
|
|
76
|
+
Obj.getMeta(doc).tags = [tagDxn];
|
|
77
|
+
});
|
|
78
78
|
|
|
79
79
|
// space.db.add(
|
|
80
80
|
// Relation.make(HasSubject, {
|
|
@@ -84,10 +84,27 @@ export const generator = () => ({
|
|
|
84
84
|
// }),
|
|
85
85
|
// );
|
|
86
86
|
|
|
87
|
-
space.db.add(
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
space.db.add(
|
|
87
|
+
space.db.add(
|
|
88
|
+
Obj.make(Person.Person, { [Obj.Meta]: { tags: [tagDxn] }, fullName: 'Rich', organization: Ref.make(org) }),
|
|
89
|
+
);
|
|
90
|
+
space.db.add(
|
|
91
|
+
Obj.make(Person.Person, {
|
|
92
|
+
fullName: 'Josiah',
|
|
93
|
+
organization: Ref.make(org),
|
|
94
|
+
}),
|
|
95
|
+
);
|
|
96
|
+
space.db.add(
|
|
97
|
+
Obj.make(Person.Person, {
|
|
98
|
+
fullName: 'Dima',
|
|
99
|
+
organization: Ref.make(org),
|
|
100
|
+
}),
|
|
101
|
+
);
|
|
102
|
+
space.db.add(
|
|
103
|
+
Obj.make(Person.Person, {
|
|
104
|
+
fullName: 'Mykola',
|
|
105
|
+
organization: Ref.make(org),
|
|
106
|
+
}),
|
|
107
|
+
);
|
|
91
108
|
|
|
92
109
|
return doc;
|
|
93
110
|
});
|
|
@@ -98,7 +115,13 @@ export const generator = () => ({
|
|
|
98
115
|
[
|
|
99
116
|
PresetName.ORG_RESEARCH_PROJECT,
|
|
100
117
|
async (space, n, cb) => {
|
|
101
|
-
const
|
|
118
|
+
const mailboxes = await space.db.query(Filter.type(Mailbox.Mailbox)).run();
|
|
119
|
+
const mailbox = mailboxes[0];
|
|
120
|
+
invariant(mailbox, 'Mailbox not found');
|
|
121
|
+
const mailboxFeed = await mailbox.feed?.tryLoad();
|
|
122
|
+
invariant(mailboxFeed, 'Mailbox missing feed reference');
|
|
123
|
+
const queueDxn = Feed.getQueueDxn(mailboxFeed)?.toString();
|
|
124
|
+
invariant(queueDxn, 'Mailbox feed missing queue DXN key');
|
|
102
125
|
const tag = await space.db.query(Filter.type(Tag.Tag, { label: 'Investor' })).first();
|
|
103
126
|
const tagDxn = Obj.getDXN(tag).toString();
|
|
104
127
|
|
|
@@ -110,34 +133,16 @@ export const generator = () => ({
|
|
|
110
133
|
space.db.add(
|
|
111
134
|
Trigger.make({
|
|
112
135
|
enabled: true,
|
|
113
|
-
spec:
|
|
114
|
-
|
|
115
|
-
cron: '* * * * *', // Every minute.
|
|
116
|
-
},
|
|
117
|
-
function: Ref.make(serializeFunction(gmail.sync)),
|
|
118
|
-
input: {
|
|
119
|
-
mailboxId: Obj.getDXN(mailbox).toString(),
|
|
120
|
-
},
|
|
121
|
-
}),
|
|
122
|
-
);
|
|
123
|
-
|
|
124
|
-
space.db.add(
|
|
125
|
-
Trigger.make({
|
|
126
|
-
enabled: true,
|
|
127
|
-
// TODO(wittjosiah): Queue trigger doesn't support matching query of the column.
|
|
128
|
-
spec: {
|
|
129
|
-
kind: 'queue',
|
|
130
|
-
queue: mailbox.queue.dxn.toString(),
|
|
131
|
-
},
|
|
132
|
-
function: Ref.make(serializeFunction(EntityExtraction.extract)),
|
|
136
|
+
spec: Trigger.specTimer('* * * * *'), // Every minute.
|
|
137
|
+
function: Ref.make(Operation.serialize(InboxOperation.GoogleMailSync)),
|
|
133
138
|
input: {
|
|
134
|
-
|
|
139
|
+
mailbox: Ref.make(mailbox),
|
|
135
140
|
},
|
|
136
141
|
}),
|
|
137
142
|
);
|
|
138
143
|
|
|
139
144
|
const researchPrompt = space.db.add(
|
|
140
|
-
|
|
145
|
+
Routine.make({
|
|
141
146
|
name: 'Research',
|
|
142
147
|
description: 'Research organization',
|
|
143
148
|
input: Schema.Struct({
|
|
@@ -152,20 +157,15 @@ export const generator = () => ({
|
|
|
152
157
|
Create a research note for it at the end.
|
|
153
158
|
NOTE: Do mocked reseach (set mockSearch to true).
|
|
154
159
|
`,
|
|
155
|
-
blueprints: [Ref.make(
|
|
160
|
+
blueprints: [Ref.make(WebSearchBlueprint.make())],
|
|
156
161
|
}),
|
|
157
162
|
);
|
|
158
163
|
|
|
159
164
|
space.db.add(
|
|
160
165
|
Trigger.make({
|
|
161
166
|
enabled: true,
|
|
162
|
-
spec:
|
|
163
|
-
|
|
164
|
-
query: {
|
|
165
|
-
ast: organizationsQuery.ast,
|
|
166
|
-
},
|
|
167
|
-
},
|
|
168
|
-
function: Ref.make(serializeFunction(Agent.prompt)),
|
|
167
|
+
spec: Trigger.specSubscription(organizationsQuery),
|
|
168
|
+
function: Ref.make(Operation.serialize(AgentPrompt)),
|
|
169
169
|
input: {
|
|
170
170
|
prompt: Ref.make(researchPrompt),
|
|
171
171
|
input: '{{event.subject}}',
|
|
@@ -173,29 +173,31 @@ export const generator = () => ({
|
|
|
173
173
|
}),
|
|
174
174
|
);
|
|
175
175
|
|
|
176
|
-
const mailboxView =
|
|
176
|
+
const mailboxView = ViewModel.make({
|
|
177
177
|
query: Query.select(
|
|
178
|
-
Filter.type(Message.Message, {
|
|
179
|
-
|
|
180
|
-
|
|
178
|
+
Filter.type(Message.Message, {
|
|
179
|
+
properties: { labels: Filter.contains('investor') },
|
|
180
|
+
}),
|
|
181
|
+
).from({
|
|
182
|
+
queues: [queueDxn],
|
|
181
183
|
}),
|
|
182
|
-
jsonSchema:
|
|
184
|
+
jsonSchema: JsonSchema.toJsonSchema(Message.Message),
|
|
183
185
|
});
|
|
184
|
-
const contactsView =
|
|
186
|
+
const contactsView = ViewModel.make({
|
|
185
187
|
query: contactsQuery,
|
|
186
|
-
jsonSchema:
|
|
188
|
+
jsonSchema: JsonSchema.toJsonSchema(Person.Person),
|
|
187
189
|
});
|
|
188
|
-
const organizationsView =
|
|
190
|
+
const organizationsView = ViewModel.make({
|
|
189
191
|
query: organizationsQuery,
|
|
190
|
-
jsonSchema:
|
|
192
|
+
jsonSchema: JsonSchema.toJsonSchema(Organization.Organization),
|
|
191
193
|
});
|
|
192
|
-
const notesView =
|
|
194
|
+
const notesView = ViewModel.make({
|
|
193
195
|
query: notesQuery,
|
|
194
|
-
jsonSchema:
|
|
196
|
+
jsonSchema: JsonSchema.toJsonSchema(Markdown.Document),
|
|
195
197
|
});
|
|
196
198
|
|
|
197
199
|
return space.db.add(
|
|
198
|
-
|
|
200
|
+
Pipeline.make({
|
|
199
201
|
name: 'Investor Research',
|
|
200
202
|
columns: [
|
|
201
203
|
{
|
|
@@ -247,10 +249,24 @@ export const generator = () => ({
|
|
|
247
249
|
const append = canvasModel.createNode(createAppend(position({ x: 10, y: 6 })));
|
|
248
250
|
|
|
249
251
|
builder
|
|
250
|
-
.createEdge({
|
|
252
|
+
.createEdge({
|
|
253
|
+
source: trigger.id,
|
|
254
|
+
target: gpt.id,
|
|
255
|
+
input: 'prompt',
|
|
256
|
+
output: 'bodyText',
|
|
257
|
+
})
|
|
251
258
|
.createEdge({ source: gpt.id, target: text.id, output: 'text' })
|
|
252
|
-
.createEdge({
|
|
253
|
-
|
|
259
|
+
.createEdge({
|
|
260
|
+
source: queueId.id,
|
|
261
|
+
target: append.id,
|
|
262
|
+
input: 'id',
|
|
263
|
+
})
|
|
264
|
+
.createEdge({
|
|
265
|
+
source: gpt.id,
|
|
266
|
+
target: append.id,
|
|
267
|
+
output: 'messages',
|
|
268
|
+
input: 'items',
|
|
269
|
+
});
|
|
254
270
|
|
|
255
271
|
functionTrigger = triggerShape.functionTrigger!.target!;
|
|
256
272
|
});
|
|
@@ -275,7 +291,7 @@ export const generator = () => ({
|
|
|
275
291
|
'subscription',
|
|
276
292
|
(triggerSpec) =>
|
|
277
293
|
(triggerSpec.query = {
|
|
278
|
-
ast: Query.select(Filter.typename('dxos.
|
|
294
|
+
ast: Query.select(Filter.typename('org.dxos.type.chess')).ast as Obj.Mutable<QueryAST.Query>,
|
|
279
295
|
}),
|
|
280
296
|
'type',
|
|
281
297
|
);
|
|
@@ -360,7 +376,7 @@ export const generator = () => ({
|
|
|
360
376
|
// const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);
|
|
361
377
|
// invariant(templateComputeNode, 'Template compute node was not created.');
|
|
362
378
|
// templateComputeNode.value = templateContent.join('\n');
|
|
363
|
-
// templateComputeNode.inputSchema =
|
|
379
|
+
// templateComputeNode.inputSchema = JsonSchema.toJsonSchema(EmailTriggerOutput);
|
|
364
380
|
|
|
365
381
|
// attachTrigger(functionTrigger, computeModel);
|
|
366
382
|
|
|
@@ -388,8 +404,17 @@ export const generator = () => ({
|
|
|
388
404
|
builder
|
|
389
405
|
.createEdge({ source: chat.id, target: gpt.id, input: 'prompt' })
|
|
390
406
|
.createEdge({ source: gpt.id, target: text.id, output: 'text' })
|
|
391
|
-
.createEdge({
|
|
392
|
-
|
|
407
|
+
.createEdge({
|
|
408
|
+
source: queueId.id,
|
|
409
|
+
target: append.id,
|
|
410
|
+
input: 'id',
|
|
411
|
+
})
|
|
412
|
+
.createEdge({
|
|
413
|
+
source: gpt.id,
|
|
414
|
+
target: append.id,
|
|
415
|
+
output: 'messages',
|
|
416
|
+
input: 'items',
|
|
417
|
+
});
|
|
393
418
|
});
|
|
394
419
|
|
|
395
420
|
const computeModel = createComputeGraph(canvasModel);
|
|
@@ -485,7 +510,7 @@ export const generator = () => ({
|
|
|
485
510
|
// invariant(templateComputeNode, 'Template compute node was not created.');
|
|
486
511
|
// templateComputeNode.value = templateContent.join('\n');
|
|
487
512
|
// const extendedSchema = Schema.extend(EmailTriggerOutput, Schema.Struct({ text: Schema.String }));
|
|
488
|
-
// templateComputeNode.inputSchema =
|
|
513
|
+
// templateComputeNode.inputSchema = JsonSchema.toJsonSchema(extendedSchema);
|
|
489
514
|
|
|
490
515
|
// attachTrigger(functionTrigger, computeModel);
|
|
491
516
|
|
|
@@ -513,9 +538,21 @@ export const generator = () => ({
|
|
|
513
538
|
const view = canvasModel.createNode(createSurface(position({ x: 12, y: 0 })));
|
|
514
539
|
|
|
515
540
|
builder
|
|
516
|
-
.createEdge({
|
|
517
|
-
|
|
518
|
-
|
|
541
|
+
.createEdge({
|
|
542
|
+
source: sourceCurrency.id,
|
|
543
|
+
target: converter.id,
|
|
544
|
+
input: 'from',
|
|
545
|
+
})
|
|
546
|
+
.createEdge({
|
|
547
|
+
source: targetCurrency.id,
|
|
548
|
+
target: converter.id,
|
|
549
|
+
input: 'to',
|
|
550
|
+
})
|
|
551
|
+
.createEdge({
|
|
552
|
+
source: converter.id,
|
|
553
|
+
target: view.id,
|
|
554
|
+
output: 'rate',
|
|
555
|
+
});
|
|
519
556
|
});
|
|
520
557
|
|
|
521
558
|
const computeModel = createComputeGraph(canvasModel);
|
|
@@ -543,7 +580,10 @@ export const generator = () => ({
|
|
|
543
580
|
const trigger = canvasModel.createNode(triggerShape);
|
|
544
581
|
// DXOS dev-null channel.
|
|
545
582
|
const channelId = canvasModel.createNode(
|
|
546
|
-
createConstant({
|
|
583
|
+
createConstant({
|
|
584
|
+
value: '1088569858767212554',
|
|
585
|
+
...position({ x: -10, y: 0 }),
|
|
586
|
+
}),
|
|
547
587
|
);
|
|
548
588
|
const queueId = canvasModel.createNode(
|
|
549
589
|
createConstant({
|
|
@@ -553,14 +593,34 @@ export const generator = () => ({
|
|
|
553
593
|
);
|
|
554
594
|
const converter = canvasModel.createNode(createFunction(position({ x: 0, y: 0 })));
|
|
555
595
|
const view = canvasModel.createNode(createText(position({ x: 12, y: 0 })));
|
|
556
|
-
const queue = canvasModel.createNode(
|
|
596
|
+
const queue = canvasModel.createNode(createFeed(position({ x: 0, y: 12 })));
|
|
557
597
|
|
|
558
598
|
builder
|
|
559
|
-
.createEdge({
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
599
|
+
.createEdge({
|
|
600
|
+
source: trigger.id,
|
|
601
|
+
target: converter.id,
|
|
602
|
+
input: 'tick',
|
|
603
|
+
})
|
|
604
|
+
.createEdge({
|
|
605
|
+
source: channelId.id,
|
|
606
|
+
target: converter.id,
|
|
607
|
+
input: 'channelId',
|
|
608
|
+
})
|
|
609
|
+
.createEdge({
|
|
610
|
+
source: queueId.id,
|
|
611
|
+
target: converter.id,
|
|
612
|
+
input: 'queueId',
|
|
613
|
+
})
|
|
614
|
+
.createEdge({
|
|
615
|
+
source: converter.id,
|
|
616
|
+
target: view.id,
|
|
617
|
+
output: 'newMessages',
|
|
618
|
+
})
|
|
619
|
+
.createEdge({
|
|
620
|
+
source: queueId.id,
|
|
621
|
+
target: queue.id,
|
|
622
|
+
input: 'input',
|
|
623
|
+
});
|
|
564
624
|
|
|
565
625
|
functionTrigger = triggerShape.functionTrigger!.target!;
|
|
566
626
|
});
|
|
@@ -630,7 +690,7 @@ export const generator = () => ({
|
|
|
630
690
|
const createQueueSinkPreset = <SpecType extends Trigger.Kind>(
|
|
631
691
|
space: Space,
|
|
632
692
|
triggerKind: SpecType,
|
|
633
|
-
initSpec: (spec: Extract<Trigger.Spec, { kind: SpecType }
|
|
693
|
+
initSpec: (spec: Obj.Mutable<Extract<Trigger.Spec, { kind: SpecType }>>) => void,
|
|
634
694
|
triggerOutputName: string,
|
|
635
695
|
) => {
|
|
636
696
|
const canvasModel = CanvasGraphModel.create<ComputeShape>();
|
|
@@ -663,7 +723,12 @@ const createQueueSinkPreset = <SpecType extends Trigger.Kind>(
|
|
|
663
723
|
builder
|
|
664
724
|
.createEdge({ source: queueId.id, target: append.id, input: 'id' })
|
|
665
725
|
.createEdge({ source: template.id, target: append.id, input: 'items' })
|
|
666
|
-
.createEdge({
|
|
726
|
+
.createEdge({
|
|
727
|
+
source: trigger.id,
|
|
728
|
+
target: template.id,
|
|
729
|
+
output: triggerOutputName,
|
|
730
|
+
input: 'type',
|
|
731
|
+
})
|
|
667
732
|
.createEdge({
|
|
668
733
|
source: random.id,
|
|
669
734
|
target: template.id,
|
|
@@ -673,15 +738,20 @@ const createQueueSinkPreset = <SpecType extends Trigger.Kind>(
|
|
|
673
738
|
functionTrigger = triggerShape.functionTrigger!.target!;
|
|
674
739
|
const triggerSpec = functionTrigger.spec;
|
|
675
740
|
invariant(triggerSpec && triggerSpec.kind === triggerKind, 'No trigger spec.');
|
|
676
|
-
|
|
741
|
+
Obj.update(functionTrigger, (functionTrigger) => {
|
|
742
|
+
initSpec(functionTrigger.spec as any);
|
|
743
|
+
});
|
|
677
744
|
});
|
|
678
745
|
|
|
679
746
|
const computeModel = createComputeGraph(canvasModel);
|
|
680
747
|
|
|
681
748
|
const templateComputeNode = computeModel.nodes.find((n) => n.id === template.node);
|
|
682
749
|
invariant(templateComputeNode, 'Template compute node was not created.');
|
|
750
|
+
// NOTE: These are plain object mutations during model construction, not ECHO object mutations.
|
|
683
751
|
templateComputeNode.value = ['{', ' "@type": "{{type}}",', ' "id": "@{{changeId}}"', '}'].join('\n');
|
|
684
|
-
templateComputeNode.inputSchema =
|
|
752
|
+
templateComputeNode.inputSchema = JsonSchema.toJsonSchema(
|
|
753
|
+
Schema.Struct({ type: Schema.String, changeId: Schema.String }),
|
|
754
|
+
);
|
|
685
755
|
attachTrigger(functionTrigger, computeModel);
|
|
686
756
|
|
|
687
757
|
return { canvasModel, computeModel };
|
|
@@ -689,7 +759,7 @@ const createQueueSinkPreset = <SpecType extends Trigger.Kind>(
|
|
|
689
759
|
|
|
690
760
|
const addToSpace = (name: string, space: Space, canvas: CanvasGraphModel, compute: ComputeGraphModel) => {
|
|
691
761
|
return space.db.add(
|
|
692
|
-
Obj.make(
|
|
762
|
+
Obj.make(CanvasBoard.CanvasBoard, {
|
|
693
763
|
name,
|
|
694
764
|
computeGraph: Ref.make(compute.root),
|
|
695
765
|
layout: canvas.graph,
|
|
@@ -709,7 +779,7 @@ const setupQueue = (
|
|
|
709
779
|
}),
|
|
710
780
|
);
|
|
711
781
|
const queue = canvasModel.createNode(
|
|
712
|
-
|
|
782
|
+
createFeed(
|
|
713
783
|
args?.queuePosition ? rawPosition(args.queuePosition) : position({ x: -3, y: 3, width: 14, height: 10 }),
|
|
714
784
|
),
|
|
715
785
|
);
|
|
@@ -719,15 +789,25 @@ const setupQueue = (
|
|
|
719
789
|
|
|
720
790
|
const attachTrigger = (functionTrigger: Trigger.Trigger | undefined, computeModel: ComputeGraphModel) => {
|
|
721
791
|
invariant(functionTrigger);
|
|
722
|
-
functionTrigger.function = Ref.make(computeModel.root);
|
|
723
792
|
const inputNode = computeModel.nodes.find((node) => node.type === NODE_INPUT)!;
|
|
724
|
-
functionTrigger
|
|
793
|
+
Obj.update(functionTrigger, (functionTrigger) => {
|
|
794
|
+
functionTrigger.function = Ref.make(computeModel.root);
|
|
795
|
+
functionTrigger.inputNodeId = inputNode.id;
|
|
796
|
+
});
|
|
725
797
|
};
|
|
726
798
|
|
|
727
|
-
type RawPositionInput = {
|
|
799
|
+
type RawPositionInput = {
|
|
800
|
+
centerX: number;
|
|
801
|
+
centerY: number;
|
|
802
|
+
width: number;
|
|
803
|
+
height: number;
|
|
804
|
+
};
|
|
728
805
|
|
|
729
806
|
const rawPosition = (args: RawPositionInput) => {
|
|
730
|
-
return {
|
|
807
|
+
return {
|
|
808
|
+
center: { x: args.centerX, y: args.centerY },
|
|
809
|
+
size: { width: args.width, height: args.height },
|
|
810
|
+
};
|
|
731
811
|
};
|
|
732
812
|
|
|
733
813
|
const position = (rect: { x: number; y: number; width?: number; height?: number }) => {
|
|
@@ -735,7 +815,10 @@ const position = (rect: { x: number; y: number; width?: number; height?: number
|
|
|
735
815
|
const [center, size] = rectToPoints({ width: 0, height: 0, ...rect });
|
|
736
816
|
const { x, y, width, height } = pointsToRect([pointMultiply(center, snap), pointMultiply(size, snap)]);
|
|
737
817
|
if (width && height) {
|
|
738
|
-
return {
|
|
818
|
+
return {
|
|
819
|
+
center: { x, y },
|
|
820
|
+
size: width && height ? { width, height } : undefined,
|
|
821
|
+
};
|
|
739
822
|
} else {
|
|
740
823
|
return { center: { x, y } };
|
|
741
824
|
}
|
package/src/components/index.ts
CHANGED
|
@@ -2,13 +2,9 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { lazy } from 'react';
|
|
5
|
+
import { type ComponentType, lazy } from 'react';
|
|
6
6
|
|
|
7
|
-
export const
|
|
8
|
-
export const DevtoolsOverviewContainer = lazy(() => import('./DevtoolsOverviewContainer'));
|
|
9
|
-
export const SpaceGenerator = lazy(() => import('./SpaceGenerator'));
|
|
7
|
+
export const DebugSettings: ComponentType<any> = lazy(() => import('./DebugSettings'));
|
|
10
8
|
|
|
11
|
-
export * from './
|
|
12
|
-
export * from './
|
|
13
|
-
export * from './DebugStatus';
|
|
14
|
-
export * from './Wireframe';
|
|
9
|
+
export * from './SchemaTable';
|
|
10
|
+
export * from './SpaceGenerator';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2023 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import React from 'react';
|
|
6
|
+
|
|
7
|
+
import { Tree } from '@dxos/devtools';
|
|
8
|
+
import { Graph } from '@dxos/plugin-graph';
|
|
9
|
+
|
|
10
|
+
export type DebugGraphProps = { graph: Graph.Graph; root: string };
|
|
11
|
+
|
|
12
|
+
export const DebugGraph = ({ graph, root }: DebugGraphProps) => {
|
|
13
|
+
return <Tree data={Graph.toJSON(graph, root)} />;
|
|
14
|
+
};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2024 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import React, { useMemo, useState } from 'react';
|
|
6
|
+
|
|
7
|
+
import { AppSurface } from '@dxos/app-toolkit/ui';
|
|
8
|
+
import { ObjectsTree } from '@dxos/devtools';
|
|
9
|
+
import { Filter, Json, Obj, Query } from '@dxos/echo';
|
|
10
|
+
import type { ObjectId } from '@dxos/keys';
|
|
11
|
+
import { useQuery } from '@dxos/react-client/echo';
|
|
12
|
+
import { Clipboard, Input, Panel, ScrollArea, Toolbar } from '@dxos/react-ui';
|
|
13
|
+
import { Syntax } from '@dxos/react-ui-syntax-highlighter';
|
|
14
|
+
import { mx } from '@dxos/ui-theme';
|
|
15
|
+
|
|
16
|
+
export type DebugObjectPanelProps = Pick<
|
|
17
|
+
AppSurface.ObjectArticleProps<Obj.Unknown, {}, Obj.Unknown>,
|
|
18
|
+
'role' | 'companionTo'
|
|
19
|
+
>;
|
|
20
|
+
|
|
21
|
+
export const DebugObjectPanel = ({ role, companionTo }: DebugObjectPanelProps) => {
|
|
22
|
+
const db = Obj.getDatabase(companionTo);
|
|
23
|
+
const [selectedId, setSelectedId] = useState<ObjectId | null>(null);
|
|
24
|
+
const [depth, setDepth] = useState(0);
|
|
25
|
+
const [selectedObject] = useQuery(
|
|
26
|
+
db,
|
|
27
|
+
Query.select(Filter.id(selectedId ?? companionTo.id)).options({ deleted: 'include' }),
|
|
28
|
+
);
|
|
29
|
+
const refReplacer = useMemo(() => (db ? Json.createRefReplacer({ db, depth }) : undefined), [db, depth]);
|
|
30
|
+
|
|
31
|
+
return (
|
|
32
|
+
<Clipboard.Provider>
|
|
33
|
+
<Panel.Root role={role}>
|
|
34
|
+
<Panel.Toolbar asChild>
|
|
35
|
+
<Toolbar.Root />
|
|
36
|
+
</Panel.Toolbar>
|
|
37
|
+
<Panel.Content asChild>
|
|
38
|
+
<div className={mx('grid divide-y divide-separator', db && 'grid-rows-[1fr_2fr]')}>
|
|
39
|
+
{db && (
|
|
40
|
+
<ScrollArea.Root>
|
|
41
|
+
<ScrollArea.Viewport>
|
|
42
|
+
<ObjectsTree db={db} root={companionTo} onSelect={(entity) => setSelectedId(entity.id)} />
|
|
43
|
+
</ScrollArea.Viewport>
|
|
44
|
+
</ScrollArea.Root>
|
|
45
|
+
)}
|
|
46
|
+
<Syntax.Root data={selectedObject} replacer={refReplacer}>
|
|
47
|
+
<Panel.Root>
|
|
48
|
+
<Panel.Toolbar asChild>
|
|
49
|
+
<Toolbar.Root classNames='grid grid-cols-[1fr_3rem]'>
|
|
50
|
+
<Syntax.Filter />
|
|
51
|
+
<Input.Root>
|
|
52
|
+
<Input.TextInput
|
|
53
|
+
variant='subdued'
|
|
54
|
+
type='number'
|
|
55
|
+
min={0}
|
|
56
|
+
step={1}
|
|
57
|
+
aria-label='Ref depth'
|
|
58
|
+
value={depth}
|
|
59
|
+
onChange={(event) => setDepth(Math.max(0, Number(event.target.value) || 0))}
|
|
60
|
+
/>
|
|
61
|
+
</Input.Root>
|
|
62
|
+
</Toolbar.Root>
|
|
63
|
+
</Panel.Toolbar>
|
|
64
|
+
<Panel.Content asChild>
|
|
65
|
+
<Syntax.Viewport>
|
|
66
|
+
<Syntax.Code />
|
|
67
|
+
</Syntax.Viewport>
|
|
68
|
+
</Panel.Content>
|
|
69
|
+
</Panel.Root>
|
|
70
|
+
</Syntax.Root>
|
|
71
|
+
</div>
|
|
72
|
+
</Panel.Content>
|
|
73
|
+
</Panel.Root>
|
|
74
|
+
</Clipboard.Provider>
|
|
75
|
+
);
|
|
76
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2024 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import React, { useState } from 'react';
|
|
6
|
+
|
|
7
|
+
import { type AppSurface } from '@dxos/app-toolkit/ui';
|
|
8
|
+
import { ObjectsTree } from '@dxos/devtools';
|
|
9
|
+
import { Filter, Query } from '@dxos/echo';
|
|
10
|
+
import { type ObjectId } from '@dxos/keys';
|
|
11
|
+
import { useQuery } from '@dxos/react-client/echo';
|
|
12
|
+
import { Clipboard, Grid, Input, Panel, ScrollArea, Toolbar } from '@dxos/react-ui';
|
|
13
|
+
import { JsonHighlighter } from '@dxos/react-ui-syntax-highlighter';
|
|
14
|
+
|
|
15
|
+
export type DebugSpaceObjectsPanelProps = AppSurface.SpaceArticleProps;
|
|
16
|
+
|
|
17
|
+
export const DebugSpaceObjectsPanel = ({ space }: DebugSpaceObjectsPanelProps) => {
|
|
18
|
+
const [selectedId, setSelectedId] = useState<ObjectId | null>(null);
|
|
19
|
+
const [selectedObject] = useQuery(
|
|
20
|
+
space.db,
|
|
21
|
+
selectedId ? Query.select(Filter.id(selectedId)) : Query.select(Filter.nothing()),
|
|
22
|
+
);
|
|
23
|
+
|
|
24
|
+
return (
|
|
25
|
+
<Clipboard.Provider>
|
|
26
|
+
<Panel.Root>
|
|
27
|
+
<Panel.Toolbar asChild>
|
|
28
|
+
<Toolbar.Root>
|
|
29
|
+
<Input.Root>
|
|
30
|
+
<Input.TextInput disabled placeholder='Search...' />
|
|
31
|
+
</Input.Root>
|
|
32
|
+
</Toolbar.Root>
|
|
33
|
+
</Panel.Toolbar>
|
|
34
|
+
<Panel.Content asChild>
|
|
35
|
+
<Grid rows={2} classNames='divide-y divide-separator'>
|
|
36
|
+
<ScrollArea.Root>
|
|
37
|
+
<ScrollArea.Viewport>
|
|
38
|
+
<ObjectsTree db={space.db} onSelect={(entity) => setSelectedId(entity.id)} />
|
|
39
|
+
</ScrollArea.Viewport>
|
|
40
|
+
</ScrollArea.Root>
|
|
41
|
+
{selectedObject && <JsonHighlighter classNames='p-1' data={selectedObject} />}
|
|
42
|
+
</Grid>
|
|
43
|
+
</Panel.Content>
|
|
44
|
+
</Panel.Root>
|
|
45
|
+
</Clipboard.Provider>
|
|
46
|
+
);
|
|
47
|
+
};
|