@abraca/mcp 1.6.0 → 1.8.0
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/abracadabra-mcp.cjs +888 -19
- package/dist/abracadabra-mcp.cjs.map +1 -1
- package/dist/abracadabra-mcp.esm.js +888 -19
- package/dist/abracadabra-mcp.esm.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/package.json +1 -1
- package/src/converters/page-types.ts +408 -0
- package/src/converters/types.ts +15 -11
- package/src/resources/agent-guide.ts +151 -29
- package/src/server.ts +13 -0
- package/src/tools/meta.ts +1 -1
- package/src/tools/tree.ts +27 -2
|
@@ -20145,6 +20145,17 @@ var AbracadabraMCPServer = class {
|
|
|
20145
20145
|
getTrashMap() {
|
|
20146
20146
|
return this._activeConnection?.doc.getMap("doc-trash") ?? null;
|
|
20147
20147
|
}
|
|
20148
|
+
/** Get plugin names enabled in the active space via space-plugins Y.Map. */
|
|
20149
|
+
getEnabledPluginNames() {
|
|
20150
|
+
const doc = this._activeConnection?.doc;
|
|
20151
|
+
if (!doc) return [];
|
|
20152
|
+
const pluginsMap = doc.getMap("space-plugins");
|
|
20153
|
+
const names = [];
|
|
20154
|
+
pluginsMap.forEach((value, key) => {
|
|
20155
|
+
if ((value?.toJSON ? value.toJSON() : value)?.enabled) names.push(key);
|
|
20156
|
+
});
|
|
20157
|
+
return names;
|
|
20158
|
+
}
|
|
20148
20159
|
/**
|
|
20149
20160
|
* Get or create a child provider for a given document ID.
|
|
20150
20161
|
* Caches providers and waits for sync before returning.
|
|
@@ -20431,6 +20442,724 @@ function docToSpaceMeta(doc) {
|
|
|
20431
20442
|
};
|
|
20432
20443
|
}
|
|
20433
20444
|
|
|
20445
|
+
//#endregion
|
|
20446
|
+
//#region packages/mcp/src/converters/page-types.ts
|
|
20447
|
+
const PAGE_TYPES = {
|
|
20448
|
+
doc: {
|
|
20449
|
+
key: "doc",
|
|
20450
|
+
label: "Document",
|
|
20451
|
+
icon: "file-text",
|
|
20452
|
+
description: "Rich text document with real-time collaboration",
|
|
20453
|
+
core: true,
|
|
20454
|
+
supportsChildren: true
|
|
20455
|
+
},
|
|
20456
|
+
kanban: {
|
|
20457
|
+
key: "kanban",
|
|
20458
|
+
label: "Kanban",
|
|
20459
|
+
icon: "kanban",
|
|
20460
|
+
description: "Drag-and-drop task board with columns and cards",
|
|
20461
|
+
core: true,
|
|
20462
|
+
supportsChildren: true,
|
|
20463
|
+
childLabel: "Column",
|
|
20464
|
+
grandchildLabel: "Card",
|
|
20465
|
+
defaultMetaFields: [{
|
|
20466
|
+
type: "select",
|
|
20467
|
+
key: "kanbanColumnWidth",
|
|
20468
|
+
options: [
|
|
20469
|
+
"narrow",
|
|
20470
|
+
"default",
|
|
20471
|
+
"wide"
|
|
20472
|
+
],
|
|
20473
|
+
label: "Column Width"
|
|
20474
|
+
}]
|
|
20475
|
+
},
|
|
20476
|
+
gallery: {
|
|
20477
|
+
key: "gallery",
|
|
20478
|
+
label: "Gallery",
|
|
20479
|
+
icon: "images",
|
|
20480
|
+
description: "Visual grid of items with rich content",
|
|
20481
|
+
core: true,
|
|
20482
|
+
supportsChildren: true,
|
|
20483
|
+
childLabel: "Item",
|
|
20484
|
+
metaSchema: [
|
|
20485
|
+
{
|
|
20486
|
+
type: "location",
|
|
20487
|
+
latKey: "geoLat",
|
|
20488
|
+
lngKey: "geoLng",
|
|
20489
|
+
label: "Location"
|
|
20490
|
+
},
|
|
20491
|
+
{
|
|
20492
|
+
type: "datetime",
|
|
20493
|
+
key: "datetimeStart",
|
|
20494
|
+
label: "Date"
|
|
20495
|
+
},
|
|
20496
|
+
{
|
|
20497
|
+
type: "tags",
|
|
20498
|
+
key: "tags",
|
|
20499
|
+
label: "Tags"
|
|
20500
|
+
},
|
|
20501
|
+
{
|
|
20502
|
+
type: "rating",
|
|
20503
|
+
key: "rating",
|
|
20504
|
+
max: 5,
|
|
20505
|
+
label: "Rating"
|
|
20506
|
+
},
|
|
20507
|
+
{
|
|
20508
|
+
type: "icon",
|
|
20509
|
+
key: "icon",
|
|
20510
|
+
label: "Icon"
|
|
20511
|
+
},
|
|
20512
|
+
{
|
|
20513
|
+
type: "colorPreset",
|
|
20514
|
+
key: "color",
|
|
20515
|
+
presets: [
|
|
20516
|
+
"#6366f1",
|
|
20517
|
+
"#ec4899",
|
|
20518
|
+
"#f97316",
|
|
20519
|
+
"#22c55e",
|
|
20520
|
+
"#3b82f6",
|
|
20521
|
+
"#a855f7"
|
|
20522
|
+
],
|
|
20523
|
+
label: "Color"
|
|
20524
|
+
}
|
|
20525
|
+
],
|
|
20526
|
+
defaultMetaFields: [
|
|
20527
|
+
{
|
|
20528
|
+
type: "number",
|
|
20529
|
+
key: "galleryColumns",
|
|
20530
|
+
min: 1,
|
|
20531
|
+
max: 6,
|
|
20532
|
+
step: 1,
|
|
20533
|
+
label: "Columns"
|
|
20534
|
+
},
|
|
20535
|
+
{
|
|
20536
|
+
type: "select",
|
|
20537
|
+
key: "galleryAspect",
|
|
20538
|
+
options: [
|
|
20539
|
+
"square",
|
|
20540
|
+
"4:3",
|
|
20541
|
+
"3:2",
|
|
20542
|
+
"16:9",
|
|
20543
|
+
"free"
|
|
20544
|
+
],
|
|
20545
|
+
label: "Aspect Ratio"
|
|
20546
|
+
},
|
|
20547
|
+
{
|
|
20548
|
+
type: "select",
|
|
20549
|
+
key: "galleryCardStyle",
|
|
20550
|
+
options: [
|
|
20551
|
+
"default",
|
|
20552
|
+
"compact",
|
|
20553
|
+
"detailed"
|
|
20554
|
+
],
|
|
20555
|
+
label: "Card Style"
|
|
20556
|
+
},
|
|
20557
|
+
{
|
|
20558
|
+
type: "toggle",
|
|
20559
|
+
key: "galleryShowLabels",
|
|
20560
|
+
label: "Show Labels"
|
|
20561
|
+
},
|
|
20562
|
+
{
|
|
20563
|
+
type: "select",
|
|
20564
|
+
key: "gallerySortBy",
|
|
20565
|
+
options: [
|
|
20566
|
+
"manual",
|
|
20567
|
+
"date",
|
|
20568
|
+
"name",
|
|
20569
|
+
"rating"
|
|
20570
|
+
],
|
|
20571
|
+
label: "Sort"
|
|
20572
|
+
}
|
|
20573
|
+
]
|
|
20574
|
+
},
|
|
20575
|
+
table: {
|
|
20576
|
+
key: "table",
|
|
20577
|
+
label: "Table",
|
|
20578
|
+
icon: "table",
|
|
20579
|
+
description: "Collaborative spreadsheet with custom fields",
|
|
20580
|
+
core: true,
|
|
20581
|
+
supportsChildren: true,
|
|
20582
|
+
childLabel: "Column",
|
|
20583
|
+
grandchildLabel: "Row",
|
|
20584
|
+
defaultMetaFields: [{
|
|
20585
|
+
type: "select",
|
|
20586
|
+
key: "tableMode",
|
|
20587
|
+
options: ["hierarchy", "flat"],
|
|
20588
|
+
label: "Mode"
|
|
20589
|
+
}, {
|
|
20590
|
+
type: "select",
|
|
20591
|
+
key: "tableSortDir",
|
|
20592
|
+
options: ["asc", "desc"],
|
|
20593
|
+
label: "Sort Direction"
|
|
20594
|
+
}]
|
|
20595
|
+
},
|
|
20596
|
+
outline: {
|
|
20597
|
+
key: "outline",
|
|
20598
|
+
label: "Outline",
|
|
20599
|
+
icon: "list-tree",
|
|
20600
|
+
description: "Hierarchical outline with keyboard navigation",
|
|
20601
|
+
core: true,
|
|
20602
|
+
supportsChildren: true,
|
|
20603
|
+
childLabel: "Item",
|
|
20604
|
+
defaultDepth: -1
|
|
20605
|
+
},
|
|
20606
|
+
checklist: {
|
|
20607
|
+
key: "checklist",
|
|
20608
|
+
label: "Checklist",
|
|
20609
|
+
icon: "check-square",
|
|
20610
|
+
description: "Collaborative checklist with sub-tasks, drag-and-drop, and due dates",
|
|
20611
|
+
core: true,
|
|
20612
|
+
supportsChildren: true,
|
|
20613
|
+
childLabel: "Task",
|
|
20614
|
+
defaultDepth: -1,
|
|
20615
|
+
metaSchema: [
|
|
20616
|
+
{
|
|
20617
|
+
type: "toggle",
|
|
20618
|
+
key: "checked",
|
|
20619
|
+
label: "Done"
|
|
20620
|
+
},
|
|
20621
|
+
{
|
|
20622
|
+
type: "select",
|
|
20623
|
+
key: "priority",
|
|
20624
|
+
options: [
|
|
20625
|
+
"none",
|
|
20626
|
+
"low",
|
|
20627
|
+
"medium",
|
|
20628
|
+
"high"
|
|
20629
|
+
],
|
|
20630
|
+
label: "Priority"
|
|
20631
|
+
},
|
|
20632
|
+
{
|
|
20633
|
+
type: "date",
|
|
20634
|
+
key: "dateEnd",
|
|
20635
|
+
label: "Due date"
|
|
20636
|
+
}
|
|
20637
|
+
],
|
|
20638
|
+
defaultMetaFields: [{
|
|
20639
|
+
type: "select",
|
|
20640
|
+
key: "checklistFilter",
|
|
20641
|
+
options: [
|
|
20642
|
+
"all",
|
|
20643
|
+
"active",
|
|
20644
|
+
"completed"
|
|
20645
|
+
],
|
|
20646
|
+
label: "Filter"
|
|
20647
|
+
}, {
|
|
20648
|
+
type: "select",
|
|
20649
|
+
key: "checklistSort",
|
|
20650
|
+
options: [
|
|
20651
|
+
"manual",
|
|
20652
|
+
"priority",
|
|
20653
|
+
"due"
|
|
20654
|
+
],
|
|
20655
|
+
label: "Sort"
|
|
20656
|
+
}]
|
|
20657
|
+
},
|
|
20658
|
+
graph: {
|
|
20659
|
+
key: "graph",
|
|
20660
|
+
label: "Graph",
|
|
20661
|
+
icon: "git-fork",
|
|
20662
|
+
description: "Force-directed knowledge graph — full document tree as nodes & edges",
|
|
20663
|
+
core: true,
|
|
20664
|
+
supportsChildren: true,
|
|
20665
|
+
childLabel: "Node",
|
|
20666
|
+
defaultMetaFields: [{
|
|
20667
|
+
type: "toggle",
|
|
20668
|
+
key: "showRefEdges",
|
|
20669
|
+
label: "Show Ref Edges",
|
|
20670
|
+
default: true
|
|
20671
|
+
}]
|
|
20672
|
+
},
|
|
20673
|
+
timeline: {
|
|
20674
|
+
key: "timeline",
|
|
20675
|
+
label: "Timeline",
|
|
20676
|
+
icon: "gantt-chart",
|
|
20677
|
+
description: "Gantt-style project timeline with epics and tasks",
|
|
20678
|
+
core: true,
|
|
20679
|
+
supportsChildren: true,
|
|
20680
|
+
childLabel: "Epic",
|
|
20681
|
+
grandchildLabel: "Task",
|
|
20682
|
+
metaSchema: [
|
|
20683
|
+
{
|
|
20684
|
+
type: "daterange",
|
|
20685
|
+
startKey: "dateStart",
|
|
20686
|
+
endKey: "dateEnd"
|
|
20687
|
+
},
|
|
20688
|
+
{
|
|
20689
|
+
type: "slider",
|
|
20690
|
+
key: "taskProgress",
|
|
20691
|
+
min: 0,
|
|
20692
|
+
max: 100,
|
|
20693
|
+
label: "Progress"
|
|
20694
|
+
},
|
|
20695
|
+
{
|
|
20696
|
+
type: "colorPreset",
|
|
20697
|
+
key: "color",
|
|
20698
|
+
presets: [
|
|
20699
|
+
"#6366f1",
|
|
20700
|
+
"#818cf8",
|
|
20701
|
+
"#f97316",
|
|
20702
|
+
"#22c55e",
|
|
20703
|
+
"#3b82f6",
|
|
20704
|
+
"#a855f7"
|
|
20705
|
+
],
|
|
20706
|
+
label: "Color"
|
|
20707
|
+
}
|
|
20708
|
+
]
|
|
20709
|
+
},
|
|
20710
|
+
calendar: {
|
|
20711
|
+
key: "calendar",
|
|
20712
|
+
label: "Calendar",
|
|
20713
|
+
icon: "calendar",
|
|
20714
|
+
description: "Event calendar with month, week, and day views",
|
|
20715
|
+
core: true,
|
|
20716
|
+
supportsChildren: true,
|
|
20717
|
+
childLabel: "Event",
|
|
20718
|
+
metaSchema: [
|
|
20719
|
+
{
|
|
20720
|
+
type: "datetimerange",
|
|
20721
|
+
startKey: "datetimeStart",
|
|
20722
|
+
endKey: "datetimeEnd",
|
|
20723
|
+
allDayKey: "allDay"
|
|
20724
|
+
},
|
|
20725
|
+
{
|
|
20726
|
+
type: "colorPreset",
|
|
20727
|
+
key: "color",
|
|
20728
|
+
presets: [
|
|
20729
|
+
"#6366f1",
|
|
20730
|
+
"#ec4899",
|
|
20731
|
+
"#f97316",
|
|
20732
|
+
"#22c55e",
|
|
20733
|
+
"#3b82f6",
|
|
20734
|
+
"#a855f7"
|
|
20735
|
+
],
|
|
20736
|
+
label: "Color"
|
|
20737
|
+
},
|
|
20738
|
+
{
|
|
20739
|
+
type: "icon",
|
|
20740
|
+
key: "icon",
|
|
20741
|
+
label: "Icon"
|
|
20742
|
+
}
|
|
20743
|
+
],
|
|
20744
|
+
defaultMetaFields: [
|
|
20745
|
+
{
|
|
20746
|
+
type: "select",
|
|
20747
|
+
key: "calendarWeekStart",
|
|
20748
|
+
options: ["sun", "mon"],
|
|
20749
|
+
label: "Week Starts"
|
|
20750
|
+
},
|
|
20751
|
+
{
|
|
20752
|
+
type: "select",
|
|
20753
|
+
key: "calendarView",
|
|
20754
|
+
options: [
|
|
20755
|
+
"month",
|
|
20756
|
+
"week",
|
|
20757
|
+
"day"
|
|
20758
|
+
],
|
|
20759
|
+
label: "Default View"
|
|
20760
|
+
},
|
|
20761
|
+
{
|
|
20762
|
+
type: "toggle",
|
|
20763
|
+
key: "calendarShowWeekNumbers",
|
|
20764
|
+
label: "Show Week Numbers"
|
|
20765
|
+
}
|
|
20766
|
+
]
|
|
20767
|
+
},
|
|
20768
|
+
map: {
|
|
20769
|
+
key: "map",
|
|
20770
|
+
label: "Map",
|
|
20771
|
+
icon: "map",
|
|
20772
|
+
description: "Collaborative world map with shared markers",
|
|
20773
|
+
core: true,
|
|
20774
|
+
supportsChildren: true,
|
|
20775
|
+
childLabel: "Location",
|
|
20776
|
+
defaultMetaFields: [{
|
|
20777
|
+
type: "toggle",
|
|
20778
|
+
key: "mapShowLabels",
|
|
20779
|
+
label: "Show Labels",
|
|
20780
|
+
default: true
|
|
20781
|
+
}]
|
|
20782
|
+
},
|
|
20783
|
+
dashboard: {
|
|
20784
|
+
key: "dashboard",
|
|
20785
|
+
label: "Dashboard",
|
|
20786
|
+
icon: "layout-dashboard",
|
|
20787
|
+
description: "Arrange documents as draggable icons with optional widget views",
|
|
20788
|
+
core: true,
|
|
20789
|
+
supportsChildren: true,
|
|
20790
|
+
childLabel: "Item"
|
|
20791
|
+
},
|
|
20792
|
+
call: {
|
|
20793
|
+
key: "call",
|
|
20794
|
+
label: "Call",
|
|
20795
|
+
icon: "phone",
|
|
20796
|
+
description: "Video call room with live audio and screen sharing",
|
|
20797
|
+
core: true,
|
|
20798
|
+
supportsChildren: false
|
|
20799
|
+
},
|
|
20800
|
+
chart: {
|
|
20801
|
+
key: "chart",
|
|
20802
|
+
label: "Chart",
|
|
20803
|
+
icon: "bar-chart-3",
|
|
20804
|
+
description: "Charts — manual data points or aggregation over document trees",
|
|
20805
|
+
core: true,
|
|
20806
|
+
supportsChildren: true,
|
|
20807
|
+
childLabel: "Data Point",
|
|
20808
|
+
grandchildLabel: "Data Point",
|
|
20809
|
+
metaSchema: [
|
|
20810
|
+
{
|
|
20811
|
+
type: "number",
|
|
20812
|
+
key: "number",
|
|
20813
|
+
step: .01,
|
|
20814
|
+
label: "Value"
|
|
20815
|
+
},
|
|
20816
|
+
{
|
|
20817
|
+
type: "colorPreset",
|
|
20818
|
+
key: "color",
|
|
20819
|
+
presets: [
|
|
20820
|
+
"#6366f1",
|
|
20821
|
+
"#ec4899",
|
|
20822
|
+
"#f97316",
|
|
20823
|
+
"#22c55e",
|
|
20824
|
+
"#3b82f6",
|
|
20825
|
+
"#a855f7",
|
|
20826
|
+
"#14b8a6",
|
|
20827
|
+
"#eab308"
|
|
20828
|
+
],
|
|
20829
|
+
label: "Color"
|
|
20830
|
+
},
|
|
20831
|
+
{
|
|
20832
|
+
type: "tags",
|
|
20833
|
+
key: "tags",
|
|
20834
|
+
label: "Tags"
|
|
20835
|
+
}
|
|
20836
|
+
],
|
|
20837
|
+
defaultMetaFields: [
|
|
20838
|
+
{
|
|
20839
|
+
type: "select",
|
|
20840
|
+
key: "chartType",
|
|
20841
|
+
options: [
|
|
20842
|
+
"bar",
|
|
20843
|
+
"stacked bar",
|
|
20844
|
+
"line",
|
|
20845
|
+
"donut",
|
|
20846
|
+
"treemap"
|
|
20847
|
+
],
|
|
20848
|
+
label: "Chart Type"
|
|
20849
|
+
},
|
|
20850
|
+
{
|
|
20851
|
+
type: "select",
|
|
20852
|
+
key: "chartMetric",
|
|
20853
|
+
options: [
|
|
20854
|
+
"value",
|
|
20855
|
+
"type",
|
|
20856
|
+
"tag",
|
|
20857
|
+
"status",
|
|
20858
|
+
"priority",
|
|
20859
|
+
"activity",
|
|
20860
|
+
"completion"
|
|
20861
|
+
],
|
|
20862
|
+
label: "Metric"
|
|
20863
|
+
},
|
|
20864
|
+
{
|
|
20865
|
+
type: "select",
|
|
20866
|
+
key: "chartColorScheme",
|
|
20867
|
+
options: [
|
|
20868
|
+
"default",
|
|
20869
|
+
"warm",
|
|
20870
|
+
"cool",
|
|
20871
|
+
"mono"
|
|
20872
|
+
],
|
|
20873
|
+
label: "Colors"
|
|
20874
|
+
},
|
|
20875
|
+
{
|
|
20876
|
+
type: "number",
|
|
20877
|
+
key: "chartLimit",
|
|
20878
|
+
min: 3,
|
|
20879
|
+
max: 30,
|
|
20880
|
+
step: 1,
|
|
20881
|
+
label: "Max Items"
|
|
20882
|
+
},
|
|
20883
|
+
{
|
|
20884
|
+
type: "toggle",
|
|
20885
|
+
key: "chartShowLegend",
|
|
20886
|
+
label: "Show Legend",
|
|
20887
|
+
default: true
|
|
20888
|
+
},
|
|
20889
|
+
{
|
|
20890
|
+
type: "toggle",
|
|
20891
|
+
key: "chartShowValues",
|
|
20892
|
+
label: "Show Values"
|
|
20893
|
+
}
|
|
20894
|
+
]
|
|
20895
|
+
},
|
|
20896
|
+
sheets: {
|
|
20897
|
+
key: "sheets",
|
|
20898
|
+
label: "Sheets",
|
|
20899
|
+
icon: "grid-3x3",
|
|
20900
|
+
description: "Spreadsheet — cells, formulas, and formatting in a collaborative grid",
|
|
20901
|
+
core: true,
|
|
20902
|
+
supportsChildren: true,
|
|
20903
|
+
childLabel: "Column",
|
|
20904
|
+
grandchildLabel: "Cell",
|
|
20905
|
+
defaultMetaFields: [
|
|
20906
|
+
{
|
|
20907
|
+
type: "number",
|
|
20908
|
+
key: "sheetsDefaultColWidth",
|
|
20909
|
+
min: 40,
|
|
20910
|
+
max: 500,
|
|
20911
|
+
step: 10,
|
|
20912
|
+
label: "Column Width"
|
|
20913
|
+
},
|
|
20914
|
+
{
|
|
20915
|
+
type: "number",
|
|
20916
|
+
key: "sheetsDefaultRowHeight",
|
|
20917
|
+
min: 20,
|
|
20918
|
+
max: 100,
|
|
20919
|
+
step: 2,
|
|
20920
|
+
label: "Row Height"
|
|
20921
|
+
},
|
|
20922
|
+
{
|
|
20923
|
+
type: "toggle",
|
|
20924
|
+
key: "sheetsShowGridlines",
|
|
20925
|
+
label: "Gridlines"
|
|
20926
|
+
}
|
|
20927
|
+
]
|
|
20928
|
+
},
|
|
20929
|
+
slides: {
|
|
20930
|
+
key: "slides",
|
|
20931
|
+
label: "Slides",
|
|
20932
|
+
icon: "presentation",
|
|
20933
|
+
description: "Presentation slides with two-axis navigation",
|
|
20934
|
+
core: true,
|
|
20935
|
+
supportsChildren: true,
|
|
20936
|
+
childLabel: "Slide",
|
|
20937
|
+
grandchildLabel: "Sub-slide",
|
|
20938
|
+
metaSchema: [{
|
|
20939
|
+
type: "select",
|
|
20940
|
+
key: "slidesTransition",
|
|
20941
|
+
options: [
|
|
20942
|
+
"none",
|
|
20943
|
+
"fade",
|
|
20944
|
+
"slide"
|
|
20945
|
+
],
|
|
20946
|
+
label: "Transition"
|
|
20947
|
+
}, {
|
|
20948
|
+
type: "colorPreset",
|
|
20949
|
+
key: "color",
|
|
20950
|
+
presets: [
|
|
20951
|
+
"#6366f1",
|
|
20952
|
+
"#ec4899",
|
|
20953
|
+
"#f97316",
|
|
20954
|
+
"#22c55e",
|
|
20955
|
+
"#3b82f6",
|
|
20956
|
+
"#a855f7"
|
|
20957
|
+
],
|
|
20958
|
+
label: "Accent"
|
|
20959
|
+
}],
|
|
20960
|
+
defaultMetaFields: [{
|
|
20961
|
+
type: "select",
|
|
20962
|
+
key: "slidesTheme",
|
|
20963
|
+
options: ["dark", "light"],
|
|
20964
|
+
label: "Theme"
|
|
20965
|
+
}]
|
|
20966
|
+
},
|
|
20967
|
+
overview: {
|
|
20968
|
+
key: "overview",
|
|
20969
|
+
label: "Overview",
|
|
20970
|
+
icon: "radar",
|
|
20971
|
+
description: "Space home — activity, people, stats, and health at a glance",
|
|
20972
|
+
core: true,
|
|
20973
|
+
supportsChildren: true,
|
|
20974
|
+
childLabel: "Page"
|
|
20975
|
+
},
|
|
20976
|
+
spatial: {
|
|
20977
|
+
key: "spatial",
|
|
20978
|
+
label: "Spatial",
|
|
20979
|
+
icon: "box",
|
|
20980
|
+
description: "3D scene with collaborative objects and real-time presence",
|
|
20981
|
+
core: false,
|
|
20982
|
+
plugin: "spatial",
|
|
20983
|
+
supportsChildren: true,
|
|
20984
|
+
childLabel: "Object",
|
|
20985
|
+
grandchildLabel: "Part",
|
|
20986
|
+
defaultDepth: -1,
|
|
20987
|
+
metaSchema: [
|
|
20988
|
+
{
|
|
20989
|
+
type: "select",
|
|
20990
|
+
key: "spShape",
|
|
20991
|
+
options: [
|
|
20992
|
+
"box",
|
|
20993
|
+
"sphere",
|
|
20994
|
+
"cylinder",
|
|
20995
|
+
"cone",
|
|
20996
|
+
"plane",
|
|
20997
|
+
"torus",
|
|
20998
|
+
"glb"
|
|
20999
|
+
],
|
|
21000
|
+
label: "Shape"
|
|
21001
|
+
},
|
|
21002
|
+
{
|
|
21003
|
+
type: "colorPreset",
|
|
21004
|
+
key: "color",
|
|
21005
|
+
presets: [
|
|
21006
|
+
"#6366f1",
|
|
21007
|
+
"#ef4444",
|
|
21008
|
+
"#22c55e",
|
|
21009
|
+
"#3b82f6",
|
|
21010
|
+
"#f97316",
|
|
21011
|
+
"#a855f7",
|
|
21012
|
+
"#ec4899",
|
|
21013
|
+
"#14b8a6"
|
|
21014
|
+
],
|
|
21015
|
+
label: "Color"
|
|
21016
|
+
},
|
|
21017
|
+
{
|
|
21018
|
+
type: "slider",
|
|
21019
|
+
key: "spOpacity",
|
|
21020
|
+
min: 0,
|
|
21021
|
+
max: 100,
|
|
21022
|
+
label: "Opacity"
|
|
21023
|
+
},
|
|
21024
|
+
{
|
|
21025
|
+
type: "number",
|
|
21026
|
+
key: "spX",
|
|
21027
|
+
step: .1,
|
|
21028
|
+
label: "X"
|
|
21029
|
+
},
|
|
21030
|
+
{
|
|
21031
|
+
type: "number",
|
|
21032
|
+
key: "spY",
|
|
21033
|
+
step: .1,
|
|
21034
|
+
label: "Y"
|
|
21035
|
+
},
|
|
21036
|
+
{
|
|
21037
|
+
type: "number",
|
|
21038
|
+
key: "spZ",
|
|
21039
|
+
step: .1,
|
|
21040
|
+
label: "Z"
|
|
21041
|
+
},
|
|
21042
|
+
{
|
|
21043
|
+
type: "number",
|
|
21044
|
+
key: "spRX",
|
|
21045
|
+
min: -180,
|
|
21046
|
+
max: 180,
|
|
21047
|
+
step: 1,
|
|
21048
|
+
label: "Rot X"
|
|
21049
|
+
},
|
|
21050
|
+
{
|
|
21051
|
+
type: "number",
|
|
21052
|
+
key: "spRY",
|
|
21053
|
+
min: -180,
|
|
21054
|
+
max: 180,
|
|
21055
|
+
step: 1,
|
|
21056
|
+
label: "Rot Y"
|
|
21057
|
+
},
|
|
21058
|
+
{
|
|
21059
|
+
type: "number",
|
|
21060
|
+
key: "spRZ",
|
|
21061
|
+
min: -180,
|
|
21062
|
+
max: 180,
|
|
21063
|
+
step: 1,
|
|
21064
|
+
label: "Rot Z"
|
|
21065
|
+
},
|
|
21066
|
+
{
|
|
21067
|
+
type: "number",
|
|
21068
|
+
key: "spSX",
|
|
21069
|
+
min: .01,
|
|
21070
|
+
max: 100,
|
|
21071
|
+
step: .1,
|
|
21072
|
+
label: "Scale X"
|
|
21073
|
+
},
|
|
21074
|
+
{
|
|
21075
|
+
type: "number",
|
|
21076
|
+
key: "spSY",
|
|
21077
|
+
min: .01,
|
|
21078
|
+
max: 100,
|
|
21079
|
+
step: .1,
|
|
21080
|
+
label: "Scale Y"
|
|
21081
|
+
},
|
|
21082
|
+
{
|
|
21083
|
+
type: "number",
|
|
21084
|
+
key: "spSZ",
|
|
21085
|
+
min: .01,
|
|
21086
|
+
max: 100,
|
|
21087
|
+
step: .1,
|
|
21088
|
+
label: "Scale Z"
|
|
21089
|
+
}
|
|
21090
|
+
],
|
|
21091
|
+
defaultMetaFields: [{
|
|
21092
|
+
type: "toggle",
|
|
21093
|
+
key: "spatialGridVisible",
|
|
21094
|
+
label: "Show Grid",
|
|
21095
|
+
default: true
|
|
21096
|
+
}]
|
|
21097
|
+
},
|
|
21098
|
+
media: {
|
|
21099
|
+
key: "media",
|
|
21100
|
+
label: "Media",
|
|
21101
|
+
icon: "disc-3",
|
|
21102
|
+
description: "Media player with synced listening and playlists",
|
|
21103
|
+
core: false,
|
|
21104
|
+
plugin: "media",
|
|
21105
|
+
supportsChildren: true,
|
|
21106
|
+
childLabel: "Track",
|
|
21107
|
+
defaultDepth: -1,
|
|
21108
|
+
metaSchema: [{
|
|
21109
|
+
type: "tags",
|
|
21110
|
+
key: "tags",
|
|
21111
|
+
label: "Tags"
|
|
21112
|
+
}],
|
|
21113
|
+
defaultMetaFields: [{
|
|
21114
|
+
type: "select",
|
|
21115
|
+
key: "mediaRepeat",
|
|
21116
|
+
options: [
|
|
21117
|
+
"off",
|
|
21118
|
+
"all",
|
|
21119
|
+
"one"
|
|
21120
|
+
],
|
|
21121
|
+
label: "Repeat"
|
|
21122
|
+
}, {
|
|
21123
|
+
type: "toggle",
|
|
21124
|
+
key: "mediaShuffle",
|
|
21125
|
+
label: "Shuffle"
|
|
21126
|
+
}]
|
|
21127
|
+
},
|
|
21128
|
+
coder: {
|
|
21129
|
+
key: "coder",
|
|
21130
|
+
label: "Coder",
|
|
21131
|
+
icon: "code-2",
|
|
21132
|
+
description: "Collaborative multi-file coding environment",
|
|
21133
|
+
core: false,
|
|
21134
|
+
plugin: "coder",
|
|
21135
|
+
supportsChildren: true,
|
|
21136
|
+
childLabel: "File",
|
|
21137
|
+
defaultDepth: -1,
|
|
21138
|
+
metaSchema: [{
|
|
21139
|
+
type: "select",
|
|
21140
|
+
key: "fileType",
|
|
21141
|
+
options: [
|
|
21142
|
+
"vue",
|
|
21143
|
+
"ts",
|
|
21144
|
+
"js",
|
|
21145
|
+
"css",
|
|
21146
|
+
"json",
|
|
21147
|
+
"folder"
|
|
21148
|
+
],
|
|
21149
|
+
label: "Type"
|
|
21150
|
+
}, {
|
|
21151
|
+
type: "toggle",
|
|
21152
|
+
key: "entry",
|
|
21153
|
+
label: "Entry Point"
|
|
21154
|
+
}]
|
|
21155
|
+
}
|
|
21156
|
+
};
|
|
21157
|
+
const TYPE_ALIASES = { desktop: "dashboard" };
|
|
21158
|
+
function resolvePageType(key) {
|
|
21159
|
+
if (!key) return void 0;
|
|
21160
|
+
return PAGE_TYPES[TYPE_ALIASES[key] ?? key];
|
|
21161
|
+
}
|
|
21162
|
+
|
|
20434
21163
|
//#endregion
|
|
20435
21164
|
//#region packages/mcp/src/tools/tree.ts
|
|
20436
21165
|
/**
|
|
@@ -20596,7 +21325,7 @@ function registerTreeTools(mcp, server) {
|
|
|
20596
21325
|
mcp.tool("create_document", "Create a new document in the tree. Returns the new document ID.", {
|
|
20597
21326
|
parentId: z.string().optional().describe("Parent document ID. Omit for top-level pages. Use a document ID for nested/child pages."),
|
|
20598
21327
|
label: z.string().describe("Display name / title for the document."),
|
|
20599
|
-
type: z.string().optional().describe("Page type — sets how this document renders. \"doc\" (rich text), \"kanban\" (columns → cards), \"table\" (columns → rows
|
|
21328
|
+
type: z.string().optional().describe("Page type — sets how this document renders. Core types (always available): \"doc\" (rich text), \"kanban\" (columns → cards), \"table\" (columns → rows, positional), \"calendar\" (events with datetimeStart/End), \"timeline\" (epics → tasks with dateStart/End + taskProgress), \"checklist\" (tasks with checked/priority, unlimited nesting), \"outline\" (nested items, unlimited depth), \"gallery\" (visual grid with covers/ratings), \"map\" (markers/lines with geoLat/geoLng), \"graph\" (force-directed knowledge graph), \"dashboard\" (positioned widgets with deskX/deskY/deskMode), \"slides\" (slides → sub-slides with transitions), \"chart\" (bar/stacked bar/line/donut/treemap from data points or aggregation), \"sheets\" (spreadsheet with formulas and formatting), \"overview\" (space home — activity and stats), \"call\" (video call room, no children). Plugin types (require plugin enabled on the server): \"spatial\" (3D scene with spShape/spX/spY/spZ + universal color, plugin: spatial), \"media\" (audio/video player with playlists, plugin: media), \"coder\" (collaborative multi-file coding env with fileType/entry, plugin: coder). Alias: \"desktop\" → \"dashboard\". Omit to inherit parent view. Only set on the parent page, NEVER on child items."),
|
|
20600
21329
|
meta: z.record(z.unknown()).optional().describe("Initial metadata (PageMeta fields: color as hex string, icon as Lucide kebab-case name like \"star\"/\"code-2\"/\"users\" — never emoji, dateStart, dateEnd, priority 0-4, tags array, etc). Omit icon entirely to use page type default.")
|
|
20601
21330
|
}, async ({ parentId, label, type, meta }) => {
|
|
20602
21331
|
server.setAutoStatus("creating");
|
|
@@ -20757,7 +21486,7 @@ function registerTreeTools(mcp, server) {
|
|
|
20757
21486
|
});
|
|
20758
21487
|
mcp.tool("change_document_type", "Change the page type view of a document (data is preserved).", {
|
|
20759
21488
|
id: z.string().describe("Document ID."),
|
|
20760
|
-
type: z.string().describe("New page type: \"doc\", \"kanban\", \"table\", \"calendar\", \"timeline\", \"checklist\", \"outline\", \"gallery\", \"map\", \"graph\", \"dashboard\", \"
|
|
21489
|
+
type: z.string().describe("New page type. Core: \"doc\", \"kanban\", \"table\", \"calendar\", \"timeline\", \"checklist\", \"outline\", \"gallery\", \"map\", \"graph\", \"dashboard\", \"slides\", \"chart\", \"sheets\", \"overview\", \"call\". Plugin (require plugin enabled): \"spatial\", \"media\", \"coder\". Switching preserves the tree — children, labels, and meta are all retained; only the view changes.")
|
|
20761
21490
|
}, async ({ id, type }) => {
|
|
20762
21491
|
server.setAutoStatus("writing");
|
|
20763
21492
|
server.setActiveToolCall({
|
|
@@ -20842,6 +21571,27 @@ function registerTreeTools(mcp, server) {
|
|
|
20842
21571
|
}, null, 2)
|
|
20843
21572
|
}] };
|
|
20844
21573
|
});
|
|
21574
|
+
mcp.tool("list_page_types", "Enumerate all known Abracadabra page types with their metadata schemas. Returns an array of { key, label, icon, description, core, plugin, supportsChildren, childLabel, grandchildLabel, defaultDepth, metaSchema, defaultMetaFields }. `metaSchema` describes fields that apply to DESCENDANTS (children, grandchildren, ...) of a page of this type. `defaultMetaFields` are view-config fields on the page doc itself. Plugin types (core: false) require the named plugin to be enabled on the server. Use this to discover what meta keys a given renderer supports instead of guessing.", { key: z.string().optional().describe("Filter to a single type by key (e.g. \"kanban\", \"calendar\"). Aliases are resolved (e.g. \"desktop\" → \"dashboard\"). Omit to list all types.") }, async ({ key }) => {
|
|
21575
|
+
if (key) {
|
|
21576
|
+
const resolved = resolvePageType(key);
|
|
21577
|
+
if (!resolved) return { content: [{
|
|
21578
|
+
type: "text",
|
|
21579
|
+
text: `Unknown page type "${key}". Call list_page_types with no args to see all types.`
|
|
21580
|
+
}] };
|
|
21581
|
+
return { content: [{
|
|
21582
|
+
type: "text",
|
|
21583
|
+
text: JSON.stringify(resolved, null, 2)
|
|
21584
|
+
}] };
|
|
21585
|
+
}
|
|
21586
|
+
const all = Object.values(PAGE_TYPES);
|
|
21587
|
+
return { content: [{
|
|
21588
|
+
type: "text",
|
|
21589
|
+
text: JSON.stringify({
|
|
21590
|
+
types: all,
|
|
21591
|
+
aliases: TYPE_ALIASES
|
|
21592
|
+
}, null, 2)
|
|
21593
|
+
}] };
|
|
21594
|
+
});
|
|
20845
21595
|
}
|
|
20846
21596
|
|
|
20847
21597
|
//#endregion
|
|
@@ -22137,7 +22887,7 @@ function registerMetaTools(mcp, server) {
|
|
|
22137
22887
|
});
|
|
22138
22888
|
mcp.tool("update_metadata", "Update metadata fields on a document. Merges the provided fields into existing metadata.", {
|
|
22139
22889
|
docId: z.string().describe("Document ID."),
|
|
22140
|
-
meta: z.record(z.unknown()).describe("Metadata fields to update (merged with existing). Universal keys: color (hex), icon (Lucide kebab-case — NEVER emoji), dateStart/dateEnd, datetimeStart/datetimeEnd, allDay, tags (string[]), checked (bool), priority (0=none,1=low,2=med,3=high,4=urgent), status, rating (0-5), url, email, phone, number, unit, subtitle, note, taskProgress (0-100), members ({id,label}[]), coverUploadId. Geo/Map: geoType (\"marker\"|\"line\"|\"measure\"), geoLat, geoLng, geoDescription. Spatial 3D: spShape (\"box\"|\"sphere\"|\"cylinder\"|\"cone\"|\"plane\"|\"torus\"|\"glb\"), spX/spY/spZ, spRX/spRY/spRZ, spSX/spSY/spSZ
|
|
22890
|
+
meta: z.record(z.unknown()).describe("Metadata fields to update (merged with existing). Universal keys: color (hex), icon (Lucide kebab-case — NEVER emoji), dateStart/dateEnd, datetimeStart/datetimeEnd, allDay, timeStart/timeEnd, tags (string[]), checked (bool), priority (0=none,1=low,2=med,3=high,4=urgent), status, rating (0-5), url, email, phone, number, unit, subtitle, note, taskProgress (0-100), members ({id,label}[]), coverUploadId, coverDocId, dateTaken. Geo/Map (children): geoType (\"marker\"|\"line\"|\"measure\"), geoLat, geoLng, geoDescription. Spatial 3D (children, plugin: spatial): spShape (\"box\"|\"sphere\"|\"cylinder\"|\"cone\"|\"plane\"|\"torus\"|\"glb\"), spX/spY/spZ, spRX/spRY/spRZ (deg), spSX/spSY/spSZ (scale), spOpacity (0-100), spModelUploadId, spModelDocId — spatial uses the universal `color` key, NOT spColor. Dashboard (children): deskX, deskY, deskZ, deskMode (\"icon\"|\"widget-sm\"|\"widget-lg\"). Mindmap-layout (children): mmX, mmY. Graph-layout (children): graphX, graphY, graphPinned. Slides (children): slidesTransition (\"none\"|\"fade\"|\"slide\"). Coder (children, plugin: coder): fileType (\"vue\"|\"ts\"|\"js\"|\"css\"|\"json\"|\"folder\"), entry (bool). Cell formatting (sheets cells): bold, italic, textColor, bgColor, align (\"left\"|\"center\"|\"right\"), formula. Renderer config (on the PAGE doc itself, not children): kanbanColumnWidth (\"narrow\"|\"default\"|\"wide\"), galleryColumns (1-6), galleryAspect (\"square\"|\"4:3\"|\"3:2\"|\"16:9\"|\"free\"), galleryCardStyle (\"default\"|\"compact\"|\"detailed\"), galleryShowLabels, gallerySortBy (\"manual\"|\"date\"|\"name\"|\"rating\"), calendarView (\"month\"|\"week\"|\"day\"), calendarWeekStart (\"sun\"|\"mon\"), calendarShowWeekNumbers, tableMode (\"hierarchy\"|\"flat\"), tableSortKey, tableSortDir (\"asc\"|\"desc\"), timelineZoom (\"week\"|\"month\"|\"quarter\"), timelinePixelsPerDay, timelineCenterDate (ISO date), checklistFilter (\"all\"|\"active\"|\"completed\"), checklistSort (\"manual\"|\"priority\"|\"due\"), mapShowLabels, graphSpacing (\"compact\"|\"default\"|\"spacious\"), graphShowLabels, graphEdgeThickness (\"thin\"|\"normal\"|\"thick\"), showRefEdges, mmSpacing, spatialGridVisible, slidesTheme (\"dark\"|\"light\"), chartType (\"bar\"|\"stacked bar\"|\"line\"|\"donut\"|\"treemap\"), chartMetric (\"value\"|\"type\"|\"tag\"|\"status\"|\"priority\"|\"activity\"|\"completion\"), chartColorScheme (\"default\"|\"warm\"|\"cool\"|\"mono\"), chartLimit (3-30), chartShowLegend, chartShowValues, sheetsDefaultColWidth (40-500), sheetsDefaultRowHeight (20-100), sheetsShowGridlines, sheetsFreezeRows, sheetsFreezeCols, mediaRepeat (\"off\"|\"all\"|\"one\"), mediaShuffle. Set a key to null to clear it.")
|
|
22141
22891
|
}, async ({ docId, meta }) => {
|
|
22142
22892
|
server.setAutoStatus("writing", docId);
|
|
22143
22893
|
server.setActiveToolCall({
|
|
@@ -22704,24 +23454,38 @@ If you are adding content to an existing space, call \`get_document_tree(rootId:
|
|
|
22704
23454
|
|
|
22705
23455
|
## Page Types Reference
|
|
22706
23456
|
|
|
23457
|
+
### Core Types (always available)
|
|
23458
|
+
|
|
22707
23459
|
| Type | Children Are | Grandchildren Are | Depth | Key Meta on Children |
|
|
22708
23460
|
|------|-------------|-------------------|-------|---------------------|
|
|
22709
23461
|
| **doc** | Sub-documents | Sub-sub-documents | ∞ | — |
|
|
22710
23462
|
| **kanban** | Columns | Cards | 2 | color, icon on cards |
|
|
22711
23463
|
| **table** | Columns | Cells (positional rows) | 2 | — |
|
|
22712
|
-
| **calendar** | Events | — | 1 | datetimeStart, datetimeEnd, allDay, color |
|
|
23464
|
+
| **calendar** | Events | — | 1 | datetimeStart, datetimeEnd, allDay, color, icon |
|
|
22713
23465
|
| **timeline** | Epics | Tasks | 2 | dateStart, dateEnd, taskProgress, color |
|
|
22714
23466
|
| **checklist** | Tasks | Sub-tasks | ∞ | checked, priority, dateEnd |
|
|
22715
23467
|
| **outline** | Items | Sub-items | ∞ | — |
|
|
22716
|
-
| **mindmap** | Central nodes | Branches | ∞ | mmX, mmY |
|
|
22717
23468
|
| **graph** | Nodes | — | 1 | graphX, graphY, graphPinned, color |
|
|
22718
|
-
| **gallery** | Items | — | 1 | geoLat, geoLng, datetimeStart, tags |
|
|
23469
|
+
| **gallery** | Items | — | 1 | geoLat, geoLng, datetimeStart, tags, rating, icon, color |
|
|
22719
23470
|
| **map** | Markers/Lines | Points (for lines) | 2 | geoType, geoLat, geoLng, icon, color |
|
|
22720
|
-
| **
|
|
22721
|
-
| **
|
|
22722
|
-
| **
|
|
22723
|
-
| **
|
|
22724
|
-
| **
|
|
23471
|
+
| **slides** | Slides | Sub-slides | 2 | slidesTransition, color |
|
|
23472
|
+
| **dashboard** | Items | — | 1 | deskX, deskY, deskZ, deskMode |
|
|
23473
|
+
| **chart** | Data points | Data points | 2 | number (value), color, tags |
|
|
23474
|
+
| **sheets** | Columns | Cells | 2 | formula, bold, italic, textColor, bgColor, align |
|
|
23475
|
+
| **overview** | Pages | — | 1 | — |
|
|
23476
|
+
| **call** | — (no children) | — | 0 | — |
|
|
23477
|
+
|
|
23478
|
+
Alias: \`desktop\` → \`dashboard\`.
|
|
23479
|
+
|
|
23480
|
+
### Plugin Types (require plugin enabled on the server)
|
|
23481
|
+
|
|
23482
|
+
| Type | Plugin | Children Are | Grandchildren Are | Depth | Key Meta on Children |
|
|
23483
|
+
|------|--------|-------------|-------------------|-------|---------------------|
|
|
23484
|
+
| **spatial** | spatial | Objects | Sub-parts | ∞ | spShape, spX/Y/Z, spRX/RY/RZ, spSX/SY/SZ, color, spOpacity |
|
|
23485
|
+
| **media** | media | Tracks | — | ∞ | tags |
|
|
23486
|
+
| **coder** | coder | Files/Folders | — | ∞ | fileType, entry |
|
|
23487
|
+
|
|
23488
|
+
> Spatial uses the universal \`color\` key for object color — there is no \`spColor\`.
|
|
22725
23489
|
|
|
22726
23490
|
---
|
|
22727
23491
|
|
|
@@ -22794,18 +23558,65 @@ If you are adding content to an existing space, call \`get_document_tree(rootId:
|
|
|
22794
23558
|
4. Modes: \`"icon"\` (small), \`"widget-sm"\` (240×180), \`"widget-lg"\` (400×320)
|
|
22795
23559
|
5. Grid uses 80px cells
|
|
22796
23560
|
|
|
22797
|
-
**Spatial (3D scene)
|
|
23561
|
+
**Spatial (3D scene)** *(requires spatial plugin):*
|
|
22798
23562
|
1. \`create_document(parentId, "3D Scene", "spatial")\`
|
|
22799
23563
|
2. Create objects: \`create_document(sceneId, "Red Cube")\`
|
|
22800
|
-
3. Set 3D properties: \`update_metadata(objId, { spShape: "box",
|
|
22801
|
-
4. Shapes: \`"box"\`, \`"sphere"\`, \`"cylinder"\`, \`"cone"\`, \`"plane"\`, \`"torus"\`, \`"glb"\` (uploaded 3D model)
|
|
23564
|
+
3. Set 3D properties: \`update_metadata(objId, { spShape: "box", color: "#ef4444", spX: 0, spY: 1, spZ: 0, spSX: 2, spSY: 2, spSZ: 2 })\`
|
|
23565
|
+
4. Shapes: \`"box"\`, \`"sphere"\`, \`"cylinder"\`, \`"cone"\`, \`"plane"\`, \`"torus"\`, \`"glb"\` (uploaded 3D model — set \`spModelUploadId\` and \`spModelDocId\`)
|
|
22802
23566
|
5. Rotation (degrees): \`spRX\`, \`spRY\`, \`spRZ\`. Scale: \`spSX\`, \`spSY\`, \`spSZ\` (default 1). Opacity: \`spOpacity\` (0–100)
|
|
23567
|
+
6. Use the universal \`color\` key — **never \`spColor\`**
|
|
22803
23568
|
|
|
22804
23569
|
**Outline (nested items):**
|
|
22805
23570
|
1. \`create_document(parentId, "Meeting Notes", "outline")\`
|
|
22806
23571
|
2. Create items: \`create_document(outlineId, "Agenda Item 1")\`
|
|
22807
23572
|
3. Create sub-items (unlimited depth): \`create_document(itemId, "Sub-point")\`
|
|
22808
23573
|
|
|
23574
|
+
**Slides (presentation with two-axis nav):**
|
|
23575
|
+
1. \`create_document(parentId, "Q1 Review", "slides")\`
|
|
23576
|
+
2. Create slides as direct children: \`create_document(deckId, "Intro")\`
|
|
23577
|
+
3. Create sub-slides (vertical navigation) as grandchildren: \`create_document(slideId, "Deep dive")\`
|
|
23578
|
+
4. Per-slide transition: \`update_metadata(slideId, { slidesTransition: "fade", color: "#6366f1" })\`
|
|
23579
|
+
5. Deck-level theme: \`update_metadata(deckId, { slidesTheme: "dark" })\`
|
|
23580
|
+
|
|
23581
|
+
**Chart (data viz — manual or aggregation):**
|
|
23582
|
+
1. \`create_document(parentId, "Sales", "chart")\`
|
|
23583
|
+
2. Configure: \`update_metadata(chartId, { chartType: "bar", chartMetric: "value", chartShowLegend: true, chartLimit: 10 })\`
|
|
23584
|
+
3. Modes:
|
|
23585
|
+
- **Manual data points**: create children with \`number\` (value) and optional \`tags\`/\`color\`
|
|
23586
|
+
\`create_document(chartId, "Q1")\` then \`update_metadata(dpId, { number: 42500, color: "#6366f1" })\`
|
|
23587
|
+
- **Aggregation**: set \`chartMetric\` to \`"type"\`/\`"tag"\`/\`"status"\`/\`"priority"\`/\`"activity"\`/\`"completion"\` and point the chart at a subtree — it aggregates the descendants' meta automatically
|
|
23588
|
+
4. Chart types: \`"bar"\`, \`"stacked bar"\`, \`"line"\`, \`"donut"\`, \`"treemap"\`
|
|
23589
|
+
5. Color schemes: \`"default"\`, \`"warm"\`, \`"cool"\`, \`"mono"\`
|
|
23590
|
+
|
|
23591
|
+
**Sheets (spreadsheet with formulas):**
|
|
23592
|
+
1. \`create_document(parentId, "Budget", "sheets")\`
|
|
23593
|
+
2. Create columns: \`create_document(sheetId, "A")\`, \`create_document(sheetId, "B")\`
|
|
23594
|
+
3. Create cells under columns (positional rows, like \`table\`)
|
|
23595
|
+
4. Formulas on cells: \`update_metadata(cellId, { formula: "=A1+B1" })\`
|
|
23596
|
+
5. Cell formatting: \`update_metadata(cellId, { bold: true, bgColor: "#fef3c7", align: "right" })\`
|
|
23597
|
+
6. Deck config: \`update_metadata(sheetId, { sheetsDefaultColWidth: 120, sheetsDefaultRowHeight: 28, sheetsShowGridlines: true, sheetsFreezeRows: 1, sheetsFreezeCols: 1 })\`
|
|
23598
|
+
|
|
23599
|
+
**Overview (space home):**
|
|
23600
|
+
1. \`create_document(parentId, "Home", "overview")\`
|
|
23601
|
+
2. No children required — renders activity, people, stats from the surrounding space
|
|
23602
|
+
3. Children (if any) show as linked pages
|
|
23603
|
+
|
|
23604
|
+
**Call (video room):**
|
|
23605
|
+
1. \`create_document(parentId, "Daily Standup", "call")\`
|
|
23606
|
+
2. Video rooms have **no children** — do not add documents underneath
|
|
23607
|
+
|
|
23608
|
+
**Coder (multi-file collaborative editor)** *(requires coder plugin):*
|
|
23609
|
+
1. \`create_document(parentId, "My App", "coder")\`
|
|
23610
|
+
2. Create files/folders: \`create_document(projectId, "App.vue")\`, \`create_document(projectId, "src")\`
|
|
23611
|
+
3. Set file type: \`update_metadata(fileId, { fileType: "vue", entry: true })\`
|
|
23612
|
+
4. \`fileType\` options: \`"vue"\`, \`"ts"\`, \`"js"\`, \`"css"\`, \`"json"\`, \`"folder"\`
|
|
23613
|
+
5. Mark the entry file with \`entry: true\` — the renderer uses it as the preview root
|
|
23614
|
+
|
|
23615
|
+
**Media (audio/video playlist)** *(requires media plugin):*
|
|
23616
|
+
1. \`create_document(parentId, "Focus Mix", "media")\`
|
|
23617
|
+
2. Create tracks: \`create_document(playlistId, "Track 1")\` — attach audio/video file via upload tool
|
|
23618
|
+
3. Playlist config: \`update_metadata(playlistId, { mediaRepeat: "all", mediaShuffle: false })\`
|
|
23619
|
+
|
|
22809
23620
|
---
|
|
22810
23621
|
|
|
22811
23622
|
## Document References
|
|
@@ -22880,22 +23691,55 @@ In the **graph** page type, document references (embeds and links) create visibl
|
|
|
22880
23691
|
|-----|------|-----------|--------|
|
|
22881
23692
|
| \`kanbanColumnWidth\` | string | kanban | "narrow", "default", "wide" |
|
|
22882
23693
|
| \`galleryColumns\` | number | gallery | 1–6 |
|
|
22883
|
-
| \`galleryAspect\` | string | gallery | "square", "4:3", "16:9" |
|
|
23694
|
+
| \`galleryAspect\` | string | gallery | "square", "4:3", "3:2", "16:9", "free" |
|
|
23695
|
+
| \`galleryCardStyle\` | string | gallery | "default", "compact", "detailed" |
|
|
23696
|
+
| \`galleryShowLabels\` | boolean | gallery | show item labels |
|
|
23697
|
+
| \`gallerySortBy\` | string | gallery | "manual", "date", "name", "rating" |
|
|
22884
23698
|
| \`calendarView\` | string | calendar | "month", "week", "day" |
|
|
22885
23699
|
| \`calendarWeekStart\` | string | calendar | "sun", "mon" |
|
|
23700
|
+
| \`calendarShowWeekNumbers\` | boolean | calendar | — |
|
|
22886
23701
|
| \`tableMode\` | string | table | "hierarchy", "flat" |
|
|
23702
|
+
| \`tableSortKey\` | string | table | meta key to sort by |
|
|
23703
|
+
| \`tableSortDir\` | string | table | "asc", "desc" |
|
|
23704
|
+
| \`timelineZoom\` | string | timeline | "week", "month", "quarter" |
|
|
23705
|
+
| \`timelinePixelsPerDay\` | number | timeline | zoom granularity |
|
|
23706
|
+
| \`timelineCenterDate\` | string | timeline | ISO date to center view |
|
|
23707
|
+
| \`checklistFilter\` | string | checklist | "all", "active", "completed" |
|
|
23708
|
+
| \`checklistSort\` | string | checklist | "manual", "priority", "due" |
|
|
23709
|
+
| \`mapShowLabels\` | boolean | map | — |
|
|
23710
|
+
| \`graphSpacing\` | string | graph | "compact", "default", "spacious" |
|
|
23711
|
+
| \`graphShowLabels\` | boolean | graph | — |
|
|
23712
|
+
| \`graphEdgeThickness\` | string | graph | "thin", "normal", "thick" |
|
|
22887
23713
|
| \`showRefEdges\` | boolean | graph | show doc-reference edges |
|
|
22888
|
-
|
|
22889
|
-
|
|
23714
|
+
| \`mmSpacing\` | string | mindmap-layout | spacing between branches |
|
|
23715
|
+
| \`spatialGridVisible\` | boolean | spatial | show ground grid |
|
|
23716
|
+
| \`slidesTheme\` | string | slides | "dark", "light" |
|
|
23717
|
+
| \`chartType\` | string | chart | "bar", "stacked bar", "line", "donut", "treemap" |
|
|
23718
|
+
| \`chartMetric\` | string | chart | "value", "type", "tag", "status", "priority", "activity", "completion" |
|
|
23719
|
+
| \`chartColorScheme\` | string | chart | "default", "warm", "cool", "mono" |
|
|
23720
|
+
| \`chartLimit\` | number | chart | 3–30 (max items) |
|
|
23721
|
+
| \`chartShowLegend\` | boolean | chart | — |
|
|
23722
|
+
| \`chartShowValues\` | boolean | chart | — |
|
|
23723
|
+
| \`sheetsDefaultColWidth\` | number | sheets | 40–500 |
|
|
23724
|
+
| \`sheetsDefaultRowHeight\` | number | sheets | 20–100 |
|
|
23725
|
+
| \`sheetsShowGridlines\` | boolean | sheets | — |
|
|
23726
|
+
| \`sheetsFreezeRows\` | number | sheets | frozen rows count |
|
|
23727
|
+
| \`sheetsFreezeCols\` | number | sheets | frozen cols count |
|
|
23728
|
+
| \`mediaRepeat\` | string | media | "off", "all", "one" (plugin) |
|
|
23729
|
+
| \`mediaShuffle\` | boolean | media | plugin |
|
|
23730
|
+
|
|
23731
|
+
### Spatial 3D Keys (for spatial children — requires spatial plugin)
|
|
22890
23732
|
|
|
22891
23733
|
| Key | Type | Default | Meaning |
|
|
22892
23734
|
|-----|------|---------|---------|
|
|
22893
23735
|
| \`spShape\` | string | — | "box", "sphere", "cylinder", "cone", "plane", "torus", "glb" |
|
|
22894
|
-
| \`
|
|
23736
|
+
| \`color\` | string | — | CSS color — universal key, **not** \`spColor\` |
|
|
22895
23737
|
| \`spOpacity\` | number | 100 | 0–100 |
|
|
22896
23738
|
| \`spX\`, \`spY\`, \`spZ\` | number | 0 | Position |
|
|
22897
23739
|
| \`spRX\`, \`spRY\`, \`spRZ\` | number | 0 | Rotation (degrees) |
|
|
22898
23740
|
| \`spSX\`, \`spSY\`, \`spSZ\` | number | 1 | Scale |
|
|
23741
|
+
| \`spModelUploadId\` | string | — | GLB upload ID (when \`spShape: "glb"\`) |
|
|
23742
|
+
| \`spModelDocId\` | string | — | Doc ID that owns the GLB upload |
|
|
22899
23743
|
|
|
22900
23744
|
### Dashboard Keys (for dashboard children)
|
|
22901
23745
|
|
|
@@ -22905,6 +23749,28 @@ In the **graph** page type, document references (embeds and links) create visibl
|
|
|
22905
23749
|
| \`deskZ\` | number | Z-index (layering) |
|
|
22906
23750
|
| \`deskMode\` | string | "icon", "widget-sm" (240×180), "widget-lg" (400×320) |
|
|
22907
23751
|
|
|
23752
|
+
### Sheets Cell Formatting (per-cell meta)
|
|
23753
|
+
|
|
23754
|
+
| Key | Type | Meaning |
|
|
23755
|
+
|-----|------|---------|
|
|
23756
|
+
| \`formula\` | string | Cell formula (e.g. "=A1+B1") |
|
|
23757
|
+
| \`bold\` | boolean | — |
|
|
23758
|
+
| \`italic\` | boolean | — |
|
|
23759
|
+
| \`textColor\` | string | CSS color |
|
|
23760
|
+
| \`bgColor\` | string | CSS color |
|
|
23761
|
+
| \`align\` | string | "left", "center", "right" |
|
|
23762
|
+
|
|
23763
|
+
### Coder Keys (for coder children — plugin)
|
|
23764
|
+
|
|
23765
|
+
| Key | Type | Meaning |
|
|
23766
|
+
|-----|------|---------|
|
|
23767
|
+
| \`fileType\` | string | "vue", "ts", "js", "css", "json", "folder" |
|
|
23768
|
+
| \`entry\` | boolean | Mark this file as the preview entry point |
|
|
23769
|
+
|
|
23770
|
+
### Discovering What Metadata Applies
|
|
23771
|
+
|
|
23772
|
+
Use the \`list_page_types\` tool to enumerate all known page types and their declared \`metaSchema\` (fields that apply to children/descendants) and \`defaultMetaFields\` (renderer config fields on the page itself). It's the authoritative list of what meta keys make sense for any given page type.
|
|
23773
|
+
|
|
22908
23774
|
---
|
|
22909
23775
|
|
|
22910
23776
|
## Content Structure
|
|
@@ -22987,8 +23853,11 @@ Always clear fields when done by setting them to \`null\`.
|
|
|
22987
23853
|
| **Outline** | \`outline:editing\` | nodeId | Editing an outline node |
|
|
22988
23854
|
| **Gallery** | \`gallery:focused\` | itemId | Item hovered/selected |
|
|
22989
23855
|
| **Timeline** | \`timeline:focused\` | taskId | Task selected |
|
|
22990
|
-
| **Mindmap** | \`mindmap:focused\` | nodeId | Node selected/edited |
|
|
22991
23856
|
| **Graph** | \`graph:focused\` | nodeId | Node hovered/selected |
|
|
23857
|
+
| **Slides** | \`slides:current\` | slideId | Slide being presented |
|
|
23858
|
+
| **Spatial** | \`spatial:selected\`, \`spatial:camera\` | objectId / camera state | plugin |
|
|
23859
|
+
| **Media** | \`media:playing\`, \`media:position\` | trackId / 0–1 | plugin |
|
|
23860
|
+
| **Coder** | \`coder:activeFile\` | fileId | plugin |
|
|
22992
23861
|
| **Map** | \`map:focused\` | markerId | Marker hovered/selected |
|
|
22993
23862
|
| **Doc** | \`doc:scroll\` | 0–1 number | Scroll position in document |
|
|
22994
23863
|
|