@particle-academy/agent-integrations 0.26.0 → 0.28.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.
Files changed (123) hide show
  1. package/dist/bridges/artboard.d.cts +3 -3
  2. package/dist/bridges/artboard.d.ts +3 -3
  3. package/dist/bridges/catalog.d.cts +3 -3
  4. package/dist/bridges/catalog.d.ts +3 -3
  5. package/dist/bridges/charts.d.cts +3 -3
  6. package/dist/bridges/charts.d.ts +3 -3
  7. package/dist/bridges/cms.d.cts +50 -0
  8. package/dist/bridges/cms.d.ts +50 -0
  9. package/dist/bridges/code.d.cts +3 -3
  10. package/dist/bridges/code.d.ts +3 -3
  11. package/dist/bridges/doc.d.cts +68 -0
  12. package/dist/bridges/doc.d.ts +68 -0
  13. package/dist/bridges/features.d.cts +3 -3
  14. package/dist/bridges/features.d.ts +3 -3
  15. package/dist/bridges/files.d.cts +3 -3
  16. package/dist/bridges/files.d.ts +3 -3
  17. package/dist/bridges/flow.d.cts +3 -3
  18. package/dist/bridges/flow.d.ts +3 -3
  19. package/dist/bridges/forms.d.cts +3 -3
  20. package/dist/bridges/forms.d.ts +3 -3
  21. package/dist/bridges/map.d.cts +3 -3
  22. package/dist/bridges/map.d.ts +3 -3
  23. package/dist/bridges/scene.d.cts +3 -3
  24. package/dist/bridges/scene.d.ts +3 -3
  25. package/dist/bridges/screens.d.cts +3 -3
  26. package/dist/bridges/screens.d.ts +3 -3
  27. package/dist/bridges/sheets.d.cts +3 -3
  28. package/dist/bridges/sheets.d.ts +3 -3
  29. package/dist/bridges/slides.d.cts +3 -3
  30. package/dist/bridges/slides.d.ts +3 -3
  31. package/dist/bridges/terminal.d.cts +3 -3
  32. package/dist/bridges/terminal.d.ts +3 -3
  33. package/dist/bridges/whiteboard.d.cts +3 -3
  34. package/dist/bridges/whiteboard.d.ts +3 -3
  35. package/dist/bridges-artboard.js +1 -1
  36. package/dist/bridges-catalog.js +2 -2
  37. package/dist/bridges-charts.js +2 -2
  38. package/dist/bridges-cms.cjs +437 -0
  39. package/dist/bridges-cms.cjs.map +1 -0
  40. package/dist/bridges-cms.js +8 -0
  41. package/dist/bridges-cms.js.map +1 -0
  42. package/dist/bridges-code.js +2 -2
  43. package/dist/bridges-doc.cjs +364 -0
  44. package/dist/bridges-doc.cjs.map +1 -0
  45. package/dist/bridges-doc.js +7 -0
  46. package/dist/bridges-doc.js.map +1 -0
  47. package/dist/bridges-features.js +2 -2
  48. package/dist/bridges-files.js +2 -2
  49. package/dist/bridges-flow.js +1 -1
  50. package/dist/bridges-forms.js +2 -2
  51. package/dist/bridges-map.js +2 -2
  52. package/dist/bridges-scene.js +2 -2
  53. package/dist/bridges-screens.js +2 -2
  54. package/dist/bridges-sheets.js +2 -2
  55. package/dist/bridges-slides.js +2 -2
  56. package/dist/bridges-terminal.js +2 -2
  57. package/dist/bridges-whiteboard.js +2 -2
  58. package/dist/{chunk-HKQBG2HZ.js → chunk-5KLUYF4D.js} +3 -3
  59. package/dist/{chunk-HKQBG2HZ.js.map → chunk-5KLUYF4D.js.map} +1 -1
  60. package/dist/{chunk-YMX7G3XM.js → chunk-66WOHZZJ.js} +3 -3
  61. package/dist/{chunk-YMX7G3XM.js.map → chunk-66WOHZZJ.js.map} +1 -1
  62. package/dist/chunk-A57CRGEK.js +79 -0
  63. package/dist/chunk-A57CRGEK.js.map +1 -0
  64. package/dist/{chunk-XQZGB4FP.js → chunk-AAD3Z5E7.js} +3 -3
  65. package/dist/{chunk-XQZGB4FP.js.map → chunk-AAD3Z5E7.js.map} +1 -1
  66. package/dist/{chunk-3QJSOS7G.js → chunk-AAMQOXZC.js} +3 -3
  67. package/dist/{chunk-3QJSOS7G.js.map → chunk-AAMQOXZC.js.map} +1 -1
  68. package/dist/{chunk-EP3G4LYW.js → chunk-AROVENCE.js} +3 -3
  69. package/dist/{chunk-EP3G4LYW.js.map → chunk-AROVENCE.js.map} +1 -1
  70. package/dist/chunk-FF5F526J.js +245 -0
  71. package/dist/chunk-FF5F526J.js.map +1 -0
  72. package/dist/{chunk-57KAMBAR.js → chunk-HWVVS6HE.js} +3 -3
  73. package/dist/{chunk-57KAMBAR.js.map → chunk-HWVVS6HE.js.map} +1 -1
  74. package/dist/{chunk-FUI7KXE7.js → chunk-KMSRG5KH.js} +35 -2
  75. package/dist/chunk-KMSRG5KH.js.map +1 -0
  76. package/dist/{chunk-QDF37J3V.js → chunk-NN3ELTVO.js} +3 -3
  77. package/dist/{chunk-QDF37J3V.js.map → chunk-NN3ELTVO.js.map} +1 -1
  78. package/dist/{chunk-775LJJTJ.js → chunk-PCW2EK5G.js} +3 -3
  79. package/dist/{chunk-775LJJTJ.js.map → chunk-PCW2EK5G.js.map} +1 -1
  80. package/dist/{chunk-46H4C5AP.js → chunk-QDD4WHIV.js} +3 -3
  81. package/dist/{chunk-46H4C5AP.js.map → chunk-QDD4WHIV.js.map} +1 -1
  82. package/dist/{chunk-V5BXBX7U.js → chunk-QRDVJW6Q.js} +3 -3
  83. package/dist/{chunk-V5BXBX7U.js.map → chunk-QRDVJW6Q.js.map} +1 -1
  84. package/dist/{chunk-267JS64O.js → chunk-VFKO2VUR.js} +3 -3
  85. package/dist/{chunk-267JS64O.js.map → chunk-VFKO2VUR.js.map} +1 -1
  86. package/dist/{chunk-CLFDQ2BW.js → chunk-XMMCSQ4I.js} +3 -3
  87. package/dist/{chunk-CLFDQ2BW.js.map → chunk-XMMCSQ4I.js.map} +1 -1
  88. package/dist/{chunk-K3S6WSHZ.js → chunk-YGD2VTUM.js} +3 -3
  89. package/dist/{chunk-K3S6WSHZ.js.map → chunk-YGD2VTUM.js.map} +1 -1
  90. package/dist/{chunk-NKRSLCS7.js → chunk-ZX6UQURN.js} +3 -3
  91. package/dist/{chunk-NKRSLCS7.js.map → chunk-ZX6UQURN.js.map} +1 -1
  92. package/dist/components-shared-whiteboard.cjs +32 -0
  93. package/dist/components-shared-whiteboard.cjs.map +1 -1
  94. package/dist/components-shared-whiteboard.js +4 -4
  95. package/dist/index.cjs +376 -9
  96. package/dist/index.cjs.map +1 -1
  97. package/dist/index.d.cts +14 -7
  98. package/dist/index.d.ts +14 -7
  99. package/dist/index.js +54 -29
  100. package/dist/index.js.map +1 -1
  101. package/dist/mcp/index.d.cts +5 -5
  102. package/dist/mcp/index.d.ts +5 -5
  103. package/dist/presence/index.d.cts +1 -1
  104. package/dist/presence/index.d.ts +1 -1
  105. package/dist/{server-BsSwfemr.d.cts → server-Dr3j48CU.d.cts} +2 -2
  106. package/dist/{server-Du3-IGqM.d.ts → server-FFZpYPyM.d.ts} +2 -2
  107. package/dist/sharing/index.d.cts +4 -3
  108. package/dist/sharing/index.d.ts +4 -3
  109. package/dist/sharing.cjs +32 -0
  110. package/dist/sharing.cjs.map +1 -1
  111. package/dist/sharing.js +2 -1
  112. package/dist/sheets-adapter.d.cts +3 -3
  113. package/dist/sheets-adapter.d.ts +3 -3
  114. package/dist/{tool-host-C8JMMGYq.d.ts → tool-host-C_Vh17J_.d.ts} +1 -1
  115. package/dist/{tool-host-BQuUygLF.d.cts → tool-host-IDecPrF1.d.cts} +1 -1
  116. package/dist/{types-CCSBGW9T.d.cts → types-B0rmWyoR.d.cts} +1 -1
  117. package/dist/{types-aOQLTW0E.d.cts → types-BDI_g5UG.d.cts} +1 -1
  118. package/dist/{types-aOQLTW0E.d.ts → types-BDI_g5UG.d.ts} +1 -1
  119. package/dist/{types-DIVNcIQO.d.ts → types-CBoQhR8L.d.ts} +1 -1
  120. package/dist/undo/index.d.cts +2 -2
  121. package/dist/undo/index.d.ts +2 -2
  122. package/package.json +23 -2
  123. package/dist/chunk-FUI7KXE7.js.map +0 -1
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-BQuUygLF.cjs';
2
- import { B as Bridge } from '../types-CCSBGW9T.cjs';
3
- import '../types-aOQLTW0E.cjs';
1
+ import { T as ToolHost } from '../tool-host-IDecPrF1.cjs';
2
+ import { B as Bridge } from '../types-B0rmWyoR.cjs';
3
+ import '../types-BDI_g5UG.cjs';
4
4
 
5
5
  /**
6
6
  * Transport-level JSON shapes. These intentionally mirror fancy-artboard's
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-C8JMMGYq.js';
2
- import { B as Bridge } from '../types-DIVNcIQO.js';
3
- import '../types-aOQLTW0E.js';
1
+ import { T as ToolHost } from '../tool-host-C_Vh17J_.js';
2
+ import { B as Bridge } from '../types-CBoQhR8L.js';
3
+ import '../types-BDI_g5UG.js';
4
4
 
5
5
  /**
6
6
  * Transport-level JSON shapes. These intentionally mirror fancy-artboard's
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-BQuUygLF.cjs';
2
- import { B as Bridge } from '../types-CCSBGW9T.cjs';
3
- import '../types-aOQLTW0E.cjs';
1
+ import { T as ToolHost } from '../tool-host-IDecPrF1.cjs';
2
+ import { B as Bridge } from '../types-B0rmWyoR.cjs';
3
+ import '../types-BDI_g5UG.cjs';
4
4
 
5
5
  /**
6
6
  * Headless bridge for `@particle-academy/fancy-catalog` — a Stripe catalog with
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-C8JMMGYq.js';
2
- import { B as Bridge } from '../types-DIVNcIQO.js';
3
- import '../types-aOQLTW0E.js';
1
+ import { T as ToolHost } from '../tool-host-C_Vh17J_.js';
2
+ import { B as Bridge } from '../types-CBoQhR8L.js';
3
+ import '../types-BDI_g5UG.js';
4
4
 
5
5
  /**
6
6
  * Headless bridge for `@particle-academy/fancy-catalog` — a Stripe catalog with
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-BQuUygLF.cjs';
2
- import { B as Bridge } from '../types-CCSBGW9T.cjs';
3
- import '../types-aOQLTW0E.cjs';
1
+ import { T as ToolHost } from '../tool-host-IDecPrF1.cjs';
2
+ import { B as Bridge } from '../types-B0rmWyoR.cjs';
3
+ import '../types-BDI_g5UG.cjs';
4
4
 
5
5
  /**
6
6
  * Adapter wires a single fancy-echarts chart to the bridge. Charts are
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-C8JMMGYq.js';
2
- import { B as Bridge } from '../types-DIVNcIQO.js';
3
- import '../types-aOQLTW0E.js';
1
+ import { T as ToolHost } from '../tool-host-C_Vh17J_.js';
2
+ import { B as Bridge } from '../types-CBoQhR8L.js';
3
+ import '../types-BDI_g5UG.js';
4
4
 
5
5
  /**
6
6
  * Adapter wires a single fancy-echarts chart to the bridge. Charts are
@@ -0,0 +1,50 @@
1
+ import { T as ToolHost } from '../tool-host-IDecPrF1.cjs';
2
+ import { B as Bridge } from '../types-B0rmWyoR.cjs';
3
+ import { DocAdapter } from './doc.cjs';
4
+ import { StyledNode, StagePolicy, TreeOp, StyleProps, LayoutMode, DocReducer, DocTree } from '@particle-academy/fancy-doc-commons';
5
+ import '../types-BDI_g5UG.cjs';
6
+
7
+ /**
8
+ * registerCmsBridge — the greenfield CMS agent bridge, built entirely on
9
+ * {@link registerDocBridge}. cms had NO bridge before (its op-spine was
10
+ * agent-ready but unwired); this is the §8-decided "build registerCmsBridge on
11
+ * registerDocBridge BEFORE deprecating ScreenSchema" step.
12
+ *
13
+ * A CMS page is a `DocTree<StyledNode>` (fancy-doc-commons): the generic bridge
14
+ * supplies `cms_describe/get/list/get_node` + `cms_add/update/remove/move` +
15
+ * undo/activity/staging for free; this layer adds the two domain ops a page
16
+ * needs — `cms_set_style` (per-node base StyleProps) and `cms_set_layout` — and a
17
+ * reducer that handles them alongside the substrate tree ops.
18
+ */
19
+
20
+ /** The CMS op union: the substrate tree ops + per-node style/layout. */
21
+ type CmsOp = TreeOp<StyledNode> | {
22
+ t: "set_style";
23
+ id: string;
24
+ patch: Partial<StyleProps>;
25
+ } | {
26
+ t: "set_layout";
27
+ id: string;
28
+ layout?: LayoutMode;
29
+ };
30
+ /** A pure reducer over a `DocTree<StyledNode>` handling tree ops + style/layout. */
31
+ declare function cmsReducer(): DocReducer<DocTree<StyledNode>, CmsOp>;
32
+ interface CmsBridgeOptions {
33
+ adapter: DocAdapter<StyledNode>;
34
+ agent?: {
35
+ id: string;
36
+ name?: string;
37
+ color?: string;
38
+ };
39
+ /** Auto-apply vs. confirm per op (trust-but-verify). Default: auto. */
40
+ stagePolicy?: StagePolicy<CmsOp>;
41
+ onPending?: (staged: {
42
+ id: string;
43
+ op: CmsOp;
44
+ label: string;
45
+ }) => void;
46
+ }
47
+ /** Register the CMS bridge (prefix `cms_`) over a `DocTree<StyledNode>`. */
48
+ declare function registerCmsBridge(host: ToolHost, options: CmsBridgeOptions): Bridge;
49
+
50
+ export { type CmsBridgeOptions, type CmsOp, cmsReducer, registerCmsBridge };
@@ -0,0 +1,50 @@
1
+ import { T as ToolHost } from '../tool-host-C_Vh17J_.js';
2
+ import { B as Bridge } from '../types-CBoQhR8L.js';
3
+ import { DocAdapter } from './doc.js';
4
+ import { StyledNode, StagePolicy, TreeOp, StyleProps, LayoutMode, DocReducer, DocTree } from '@particle-academy/fancy-doc-commons';
5
+ import '../types-BDI_g5UG.js';
6
+
7
+ /**
8
+ * registerCmsBridge — the greenfield CMS agent bridge, built entirely on
9
+ * {@link registerDocBridge}. cms had NO bridge before (its op-spine was
10
+ * agent-ready but unwired); this is the §8-decided "build registerCmsBridge on
11
+ * registerDocBridge BEFORE deprecating ScreenSchema" step.
12
+ *
13
+ * A CMS page is a `DocTree<StyledNode>` (fancy-doc-commons): the generic bridge
14
+ * supplies `cms_describe/get/list/get_node` + `cms_add/update/remove/move` +
15
+ * undo/activity/staging for free; this layer adds the two domain ops a page
16
+ * needs — `cms_set_style` (per-node base StyleProps) and `cms_set_layout` — and a
17
+ * reducer that handles them alongside the substrate tree ops.
18
+ */
19
+
20
+ /** The CMS op union: the substrate tree ops + per-node style/layout. */
21
+ type CmsOp = TreeOp<StyledNode> | {
22
+ t: "set_style";
23
+ id: string;
24
+ patch: Partial<StyleProps>;
25
+ } | {
26
+ t: "set_layout";
27
+ id: string;
28
+ layout?: LayoutMode;
29
+ };
30
+ /** A pure reducer over a `DocTree<StyledNode>` handling tree ops + style/layout. */
31
+ declare function cmsReducer(): DocReducer<DocTree<StyledNode>, CmsOp>;
32
+ interface CmsBridgeOptions {
33
+ adapter: DocAdapter<StyledNode>;
34
+ agent?: {
35
+ id: string;
36
+ name?: string;
37
+ color?: string;
38
+ };
39
+ /** Auto-apply vs. confirm per op (trust-but-verify). Default: auto. */
40
+ stagePolicy?: StagePolicy<CmsOp>;
41
+ onPending?: (staged: {
42
+ id: string;
43
+ op: CmsOp;
44
+ label: string;
45
+ }) => void;
46
+ }
47
+ /** Register the CMS bridge (prefix `cms_`) over a `DocTree<StyledNode>`. */
48
+ declare function registerCmsBridge(host: ToolHost, options: CmsBridgeOptions): Bridge;
49
+
50
+ export { type CmsBridgeOptions, type CmsOp, cmsReducer, registerCmsBridge };
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-BQuUygLF.cjs';
2
- import { B as Bridge } from '../types-CCSBGW9T.cjs';
3
- import '../types-aOQLTW0E.cjs';
1
+ import { T as ToolHost } from '../tool-host-IDecPrF1.cjs';
2
+ import { B as Bridge } from '../types-B0rmWyoR.cjs';
3
+ import '../types-BDI_g5UG.cjs';
4
4
 
5
5
  /**
6
6
  * Adapter the host wires to a fancy-code CodeEditor (typically via the
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-C8JMMGYq.js';
2
- import { B as Bridge } from '../types-DIVNcIQO.js';
3
- import '../types-aOQLTW0E.js';
1
+ import { T as ToolHost } from '../tool-host-C_Vh17J_.js';
2
+ import { B as Bridge } from '../types-CBoQhR8L.js';
3
+ import '../types-BDI_g5UG.js';
4
4
 
5
5
  /**
6
6
  * Adapter the host wires to a fancy-code CodeEditor (typically via the
@@ -0,0 +1,68 @@
1
+ import { T as ToolHost } from '../tool-host-IDecPrF1.cjs';
2
+ import { J as JsonObject } from '../types-BDI_g5UG.cjs';
3
+ import { B as Bridge } from '../types-B0rmWyoR.cjs';
4
+ import { DocNode, DocTree, TreeOp, DocReducer, StagePolicy } from '@particle-academy/fancy-doc-commons';
5
+
6
+ /** Host-provided access to the document tree. */
7
+ interface DocAdapter<N extends DocNode> {
8
+ /** Read the current tree. */
9
+ get(): DocTree<N>;
10
+ /** Replace the tree — host wires this to its `onChange` / `setState`. */
11
+ set(next: DocTree<N>): void;
12
+ /** Optional fancy-screens screen id, for presence scoping. */
13
+ screenId?: string;
14
+ /** Mint a fresh, unique node id. Default: `<surface>-<n>`. */
15
+ newId?(): string;
16
+ }
17
+ /**
18
+ * A domain op tool beyond the built-in add/update/remove/move — lets a surface
19
+ * expose its own ops (e.g. cms `set_style`) through the same undo + activity path.
20
+ */
21
+ interface DocOpTool<N extends DocNode, TOp> {
22
+ /** Verb, prefixed with the surface (e.g. `set_style` → `cms_set_style`). */
23
+ verb: string;
24
+ description: string;
25
+ properties: Record<string, unknown>;
26
+ required: string[];
27
+ /** Build the op from the args (or return `{ error }`). */
28
+ build(args: JsonObject, tree: DocTree<N>): TOp | {
29
+ error: string;
30
+ };
31
+ /** Node id this op targets (for the activity target + undo label). */
32
+ targetId?(args: JsonObject): string | undefined;
33
+ }
34
+ interface DocBridgeOptions<N extends DocNode, TOp = TreeOp<N>> {
35
+ adapter: DocAdapter<N>;
36
+ /** Tool-name prefix + activity kind (e.g. `"cms"` → `cms_add`, kind `"cms"`). */
37
+ surface: string;
38
+ agent?: {
39
+ id: string;
40
+ name?: string;
41
+ color?: string;
42
+ };
43
+ /** Reducer for reduce + invert. Default: the substrate `treeReducer<N>()`. */
44
+ reducer?: DocReducer<DocTree<N>, TOp>;
45
+ /** Build a full node from the core fields + props (fill surface defaults, e.g. `style`). */
46
+ makeNode?: (core: {
47
+ id: string;
48
+ type: string;
49
+ parent: string | null;
50
+ order: string;
51
+ }, props: Record<string, unknown>) => N;
52
+ /** Domain op tools beyond the built-ins. */
53
+ opTools?: DocOpTool<N, TOp>[];
54
+ /** Decide auto-apply vs. confirm per op. Default: everything auto-applies. */
55
+ stagePolicy?: StagePolicy<TOp>;
56
+ /** Fired when an op is staged pending human confirmation. */
57
+ onPending?: (staged: {
58
+ id: string;
59
+ op: TOp;
60
+ label: string;
61
+ }) => void;
62
+ /** Summarize a node for describe/list. Default: id/type/parent + prop keys. */
63
+ describeNode?: (node: N) => Record<string, unknown>;
64
+ }
65
+ /** Register the generic doc-surface bridge. Returns a {@link Bridge}. */
66
+ declare function registerDocBridge<N extends DocNode, TOp = TreeOp<N>>(host: ToolHost, options: DocBridgeOptions<N, TOp>): Bridge;
67
+
68
+ export { type DocAdapter, type DocBridgeOptions, type DocOpTool, registerDocBridge };
@@ -0,0 +1,68 @@
1
+ import { T as ToolHost } from '../tool-host-C_Vh17J_.js';
2
+ import { J as JsonObject } from '../types-BDI_g5UG.js';
3
+ import { B as Bridge } from '../types-CBoQhR8L.js';
4
+ import { DocNode, DocTree, TreeOp, DocReducer, StagePolicy } from '@particle-academy/fancy-doc-commons';
5
+
6
+ /** Host-provided access to the document tree. */
7
+ interface DocAdapter<N extends DocNode> {
8
+ /** Read the current tree. */
9
+ get(): DocTree<N>;
10
+ /** Replace the tree — host wires this to its `onChange` / `setState`. */
11
+ set(next: DocTree<N>): void;
12
+ /** Optional fancy-screens screen id, for presence scoping. */
13
+ screenId?: string;
14
+ /** Mint a fresh, unique node id. Default: `<surface>-<n>`. */
15
+ newId?(): string;
16
+ }
17
+ /**
18
+ * A domain op tool beyond the built-in add/update/remove/move — lets a surface
19
+ * expose its own ops (e.g. cms `set_style`) through the same undo + activity path.
20
+ */
21
+ interface DocOpTool<N extends DocNode, TOp> {
22
+ /** Verb, prefixed with the surface (e.g. `set_style` → `cms_set_style`). */
23
+ verb: string;
24
+ description: string;
25
+ properties: Record<string, unknown>;
26
+ required: string[];
27
+ /** Build the op from the args (or return `{ error }`). */
28
+ build(args: JsonObject, tree: DocTree<N>): TOp | {
29
+ error: string;
30
+ };
31
+ /** Node id this op targets (for the activity target + undo label). */
32
+ targetId?(args: JsonObject): string | undefined;
33
+ }
34
+ interface DocBridgeOptions<N extends DocNode, TOp = TreeOp<N>> {
35
+ adapter: DocAdapter<N>;
36
+ /** Tool-name prefix + activity kind (e.g. `"cms"` → `cms_add`, kind `"cms"`). */
37
+ surface: string;
38
+ agent?: {
39
+ id: string;
40
+ name?: string;
41
+ color?: string;
42
+ };
43
+ /** Reducer for reduce + invert. Default: the substrate `treeReducer<N>()`. */
44
+ reducer?: DocReducer<DocTree<N>, TOp>;
45
+ /** Build a full node from the core fields + props (fill surface defaults, e.g. `style`). */
46
+ makeNode?: (core: {
47
+ id: string;
48
+ type: string;
49
+ parent: string | null;
50
+ order: string;
51
+ }, props: Record<string, unknown>) => N;
52
+ /** Domain op tools beyond the built-ins. */
53
+ opTools?: DocOpTool<N, TOp>[];
54
+ /** Decide auto-apply vs. confirm per op. Default: everything auto-applies. */
55
+ stagePolicy?: StagePolicy<TOp>;
56
+ /** Fired when an op is staged pending human confirmation. */
57
+ onPending?: (staged: {
58
+ id: string;
59
+ op: TOp;
60
+ label: string;
61
+ }) => void;
62
+ /** Summarize a node for describe/list. Default: id/type/parent + prop keys. */
63
+ describeNode?: (node: N) => Record<string, unknown>;
64
+ }
65
+ /** Register the generic doc-surface bridge. Returns a {@link Bridge}. */
66
+ declare function registerDocBridge<N extends DocNode, TOp = TreeOp<N>>(host: ToolHost, options: DocBridgeOptions<N, TOp>): Bridge;
67
+
68
+ export { type DocAdapter, type DocBridgeOptions, type DocOpTool, registerDocBridge };
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-BQuUygLF.cjs';
2
- import { B as Bridge } from '../types-CCSBGW9T.cjs';
3
- import '../types-aOQLTW0E.cjs';
1
+ import { T as ToolHost } from '../tool-host-IDecPrF1.cjs';
2
+ import { B as Bridge } from '../types-B0rmWyoR.cjs';
3
+ import '../types-BDI_g5UG.cjs';
4
4
 
5
5
  /**
6
6
  * Headless bridge for `@particle-academy/fancy-features` — feature management
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-C8JMMGYq.js';
2
- import { B as Bridge } from '../types-DIVNcIQO.js';
3
- import '../types-aOQLTW0E.js';
1
+ import { T as ToolHost } from '../tool-host-C_Vh17J_.js';
2
+ import { B as Bridge } from '../types-CBoQhR8L.js';
3
+ import '../types-BDI_g5UG.js';
4
4
 
5
5
  /**
6
6
  * Headless bridge for `@particle-academy/fancy-features` — feature management
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-BQuUygLF.cjs';
2
- import { B as Bridge } from '../types-CCSBGW9T.cjs';
3
- import '../types-aOQLTW0E.cjs';
1
+ import { T as ToolHost } from '../tool-host-IDecPrF1.cjs';
2
+ import { B as Bridge } from '../types-B0rmWyoR.cjs';
3
+ import '../types-BDI_g5UG.cjs';
4
4
 
5
5
  type FileKind = "file" | "dir";
6
6
  type FileEntry = {
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-C8JMMGYq.js';
2
- import { B as Bridge } from '../types-DIVNcIQO.js';
3
- import '../types-aOQLTW0E.js';
1
+ import { T as ToolHost } from '../tool-host-C_Vh17J_.js';
2
+ import { B as Bridge } from '../types-CBoQhR8L.js';
3
+ import '../types-BDI_g5UG.js';
4
4
 
5
5
  type FileKind = "file" | "dir";
6
6
  type FileEntry = {
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-BQuUygLF.cjs';
2
- import { B as Bridge } from '../types-CCSBGW9T.cjs';
3
- import '../types-aOQLTW0E.cjs';
1
+ import { T as ToolHost } from '../tool-host-IDecPrF1.cjs';
2
+ import { B as Bridge } from '../types-B0rmWyoR.cjs';
3
+ import '../types-BDI_g5UG.cjs';
4
4
 
5
5
  type FlowNode = {
6
6
  id: string;
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-C8JMMGYq.js';
2
- import { B as Bridge } from '../types-DIVNcIQO.js';
3
- import '../types-aOQLTW0E.js';
1
+ import { T as ToolHost } from '../tool-host-C_Vh17J_.js';
2
+ import { B as Bridge } from '../types-CBoQhR8L.js';
3
+ import '../types-BDI_g5UG.js';
4
4
 
5
5
  type FlowNode = {
6
6
  id: string;
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-BQuUygLF.cjs';
2
- import { B as Bridge } from '../types-CCSBGW9T.cjs';
3
- import '../types-aOQLTW0E.cjs';
1
+ import { T as ToolHost } from '../tool-host-IDecPrF1.cjs';
2
+ import { B as Bridge } from '../types-B0rmWyoR.cjs';
3
+ import '../types-BDI_g5UG.cjs';
4
4
 
5
5
  /**
6
6
  * Field descriptor — what the host says about each form field. Mirrors the
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-C8JMMGYq.js';
2
- import { B as Bridge } from '../types-DIVNcIQO.js';
3
- import '../types-aOQLTW0E.js';
1
+ import { T as ToolHost } from '../tool-host-C_Vh17J_.js';
2
+ import { B as Bridge } from '../types-CBoQhR8L.js';
3
+ import '../types-BDI_g5UG.js';
4
4
 
5
5
  /**
6
6
  * Field descriptor — what the host says about each form field. Mirrors the
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-BQuUygLF.cjs';
2
- import { B as Bridge } from '../types-CCSBGW9T.cjs';
3
- import '../types-aOQLTW0E.cjs';
1
+ import { T as ToolHost } from '../tool-host-IDecPrF1.cjs';
2
+ import { B as Bridge } from '../types-B0rmWyoR.cjs';
3
+ import '../types-BDI_g5UG.cjs';
4
4
 
5
5
  type LatLng = {
6
6
  lat: number;
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-C8JMMGYq.js';
2
- import { B as Bridge } from '../types-DIVNcIQO.js';
3
- import '../types-aOQLTW0E.js';
1
+ import { T as ToolHost } from '../tool-host-C_Vh17J_.js';
2
+ import { B as Bridge } from '../types-CBoQhR8L.js';
3
+ import '../types-BDI_g5UG.js';
4
4
 
5
5
  type LatLng = {
6
6
  lat: number;
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-BQuUygLF.cjs';
2
- import { B as Bridge } from '../types-CCSBGW9T.cjs';
3
- import '../types-aOQLTW0E.cjs';
1
+ import { T as ToolHost } from '../tool-host-IDecPrF1.cjs';
2
+ import { B as Bridge } from '../types-B0rmWyoR.cjs';
3
+ import '../types-BDI_g5UG.cjs';
4
4
 
5
5
  /**
6
6
  * Loose Scene types — mirror the public surface of fancy-3d's Scene
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-C8JMMGYq.js';
2
- import { B as Bridge } from '../types-DIVNcIQO.js';
3
- import '../types-aOQLTW0E.js';
1
+ import { T as ToolHost } from '../tool-host-C_Vh17J_.js';
2
+ import { B as Bridge } from '../types-CBoQhR8L.js';
3
+ import '../types-BDI_g5UG.js';
4
4
 
5
5
  /**
6
6
  * Loose Scene types — mirror the public surface of fancy-3d's Scene
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-BQuUygLF.cjs';
2
- import { B as Bridge } from '../types-CCSBGW9T.cjs';
3
- import '../types-aOQLTW0E.cjs';
1
+ import { T as ToolHost } from '../tool-host-IDecPrF1.cjs';
2
+ import { B as Bridge } from '../types-B0rmWyoR.cjs';
3
+ import '../types-BDI_g5UG.cjs';
4
4
 
5
5
  /**
6
6
  * Loose snapshot of a screen — what's in fancy-screens' ScreenMeta plus
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-C8JMMGYq.js';
2
- import { B as Bridge } from '../types-DIVNcIQO.js';
3
- import '../types-aOQLTW0E.js';
1
+ import { T as ToolHost } from '../tool-host-C_Vh17J_.js';
2
+ import { B as Bridge } from '../types-CBoQhR8L.js';
3
+ import '../types-BDI_g5UG.js';
4
4
 
5
5
  /**
6
6
  * Loose snapshot of a screen — what's in fancy-screens' ScreenMeta plus
@@ -1,7 +1,7 @@
1
- import { T as ToolHost } from '../tool-host-BQuUygLF.cjs';
2
- import { B as Bridge } from '../types-CCSBGW9T.cjs';
1
+ import { T as ToolHost } from '../tool-host-IDecPrF1.cjs';
2
+ import { B as Bridge } from '../types-B0rmWyoR.cjs';
3
3
  import { WorkbookData } from '@particle-academy/fancy-sheets';
4
- import '../types-aOQLTW0E.cjs';
4
+ import '../types-BDI_g5UG.cjs';
5
5
 
6
6
  /**
7
7
  * Cell writes funnel through fancy-sheets' own `reduceWorkbook` + `SheetOp` —
@@ -1,7 +1,7 @@
1
- import { T as ToolHost } from '../tool-host-C8JMMGYq.js';
2
- import { B as Bridge } from '../types-DIVNcIQO.js';
1
+ import { T as ToolHost } from '../tool-host-C_Vh17J_.js';
2
+ import { B as Bridge } from '../types-CBoQhR8L.js';
3
3
  import { WorkbookData } from '@particle-academy/fancy-sheets';
4
- import '../types-aOQLTW0E.js';
4
+ import '../types-BDI_g5UG.js';
5
5
 
6
6
  /**
7
7
  * Cell writes funnel through fancy-sheets' own `reduceWorkbook` + `SheetOp` —
@@ -1,7 +1,7 @@
1
1
  import { Deck, DeckOp } from '@particle-academy/fancy-slides';
2
- import { T as ToolHost } from '../tool-host-BQuUygLF.cjs';
3
- import { B as Bridge } from '../types-CCSBGW9T.cjs';
4
- import '../types-aOQLTW0E.cjs';
2
+ import { T as ToolHost } from '../tool-host-IDecPrF1.cjs';
3
+ import { B as Bridge } from '../types-B0rmWyoR.cjs';
4
+ import '../types-BDI_g5UG.cjs';
5
5
 
6
6
  /**
7
7
  * Adapter — the bridge calls into these to read or change deck state. The
@@ -1,7 +1,7 @@
1
1
  import { Deck, DeckOp } from '@particle-academy/fancy-slides';
2
- import { T as ToolHost } from '../tool-host-C8JMMGYq.js';
3
- import { B as Bridge } from '../types-DIVNcIQO.js';
4
- import '../types-aOQLTW0E.js';
2
+ import { T as ToolHost } from '../tool-host-C_Vh17J_.js';
3
+ import { B as Bridge } from '../types-CBoQhR8L.js';
4
+ import '../types-BDI_g5UG.js';
5
5
 
6
6
  /**
7
7
  * Adapter — the bridge calls into these to read or change deck state. The
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-BQuUygLF.cjs';
2
- import { B as Bridge } from '../types-CCSBGW9T.cjs';
3
- import '../types-aOQLTW0E.cjs';
1
+ import { T as ToolHost } from '../tool-host-IDecPrF1.cjs';
2
+ import { B as Bridge } from '../types-B0rmWyoR.cjs';
3
+ import '../types-BDI_g5UG.cjs';
4
4
 
5
5
  /**
6
6
  * A shell/profile an agent can switch a terminal to. Mirrors fancy-term's
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-C8JMMGYq.js';
2
- import { B as Bridge } from '../types-DIVNcIQO.js';
3
- import '../types-aOQLTW0E.js';
1
+ import { T as ToolHost } from '../tool-host-C_Vh17J_.js';
2
+ import { B as Bridge } from '../types-CBoQhR8L.js';
3
+ import '../types-BDI_g5UG.js';
4
4
 
5
5
  /**
6
6
  * A shell/profile an agent can switch a terminal to. Mirrors fancy-term's
@@ -1,7 +1,7 @@
1
1
  import { StickyNoteItem, ShapeItem, ConnectorItem, Stroke, Viewport, RemoteCursor } from '@particle-academy/fancy-whiteboard';
2
- import { T as ToolHost } from '../tool-host-BQuUygLF.cjs';
3
- import { B as Bridge } from '../types-CCSBGW9T.cjs';
4
- import '../types-aOQLTW0E.cjs';
2
+ import { T as ToolHost } from '../tool-host-IDecPrF1.cjs';
3
+ import { B as Bridge } from '../types-B0rmWyoR.cjs';
4
+ import '../types-BDI_g5UG.cjs';
5
5
 
6
6
  /**
7
7
  * State accessors / mutators the bridge needs from the host. The host owns
@@ -1,7 +1,7 @@
1
1
  import { StickyNoteItem, ShapeItem, ConnectorItem, Stroke, Viewport, RemoteCursor } from '@particle-academy/fancy-whiteboard';
2
- import { T as ToolHost } from '../tool-host-C8JMMGYq.js';
3
- import { B as Bridge } from '../types-DIVNcIQO.js';
4
- import '../types-aOQLTW0E.js';
2
+ import { T as ToolHost } from '../tool-host-C_Vh17J_.js';
3
+ import { B as Bridge } from '../types-CBoQhR8L.js';
4
+ import '../types-BDI_g5UG.js';
5
5
 
6
6
  /**
7
7
  * State accessors / mutators the bridge needs from the host. The host owns
@@ -1,5 +1,5 @@
1
- import { ensureUndoToolsRegistered, pushUndoEntry } from './chunk-KJ5AOOV7.js';
2
1
  import { wrapToolWithActivity } from './chunk-ULJL53DL.js';
2
+ import { ensureUndoToolsRegistered, pushUndoEntry } from './chunk-KJ5AOOV7.js';
3
3
  import './chunk-C3TYI5TJ.js';
4
4
  import { errorResult, textResult } from './chunk-4KAIV6OD.js';
5
5
 
@@ -1,6 +1,6 @@
1
- export { registerCatalogBridge } from './chunk-267JS64O.js';
2
- import './chunk-KJ5AOOV7.js';
1
+ export { registerCatalogBridge } from './chunk-VFKO2VUR.js';
3
2
  import './chunk-ULJL53DL.js';
3
+ import './chunk-KJ5AOOV7.js';
4
4
  import './chunk-C3TYI5TJ.js';
5
5
  import './chunk-4KAIV6OD.js';
6
6
  //# sourceMappingURL=bridges-catalog.js.map
@@ -1,6 +1,6 @@
1
- export { registerChartsBridge } from './chunk-EP3G4LYW.js';
2
- import './chunk-KJ5AOOV7.js';
1
+ export { registerChartsBridge } from './chunk-AROVENCE.js';
3
2
  import './chunk-ULJL53DL.js';
3
+ import './chunk-KJ5AOOV7.js';
4
4
  import './chunk-C3TYI5TJ.js';
5
5
  import './chunk-4KAIV6OD.js';
6
6
  //# sourceMappingURL=bridges-charts.js.map