@particle-academy/agent-integrations 0.43.0 → 0.45.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/README.md +32 -0
- package/dist/bridges/artboard.d.cts +3 -3
- package/dist/bridges/artboard.d.ts +3 -3
- package/dist/bridges/catalog.d.cts +3 -3
- package/dist/bridges/catalog.d.ts +3 -3
- package/dist/bridges/charts.d.cts +3 -3
- package/dist/bridges/charts.d.ts +3 -3
- package/dist/bridges/cms.d.cts +3 -3
- package/dist/bridges/cms.d.ts +3 -3
- package/dist/bridges/code.d.cts +3 -3
- package/dist/bridges/code.d.ts +3 -3
- package/dist/bridges/doc.d.cts +3 -3
- package/dist/bridges/doc.d.ts +3 -3
- package/dist/bridges/features.d.cts +3 -3
- package/dist/bridges/features.d.ts +3 -3
- package/dist/bridges/files.d.cts +3 -3
- package/dist/bridges/files.d.ts +3 -3
- package/dist/bridges/flow.d.cts +3 -3
- package/dist/bridges/flow.d.ts +3 -3
- package/dist/bridges/forms.d.cts +3 -3
- package/dist/bridges/forms.d.ts +3 -3
- package/dist/bridges/git.d.cts +3 -3
- package/dist/bridges/git.d.ts +3 -3
- package/dist/bridges/grid.d.cts +3 -3
- package/dist/bridges/grid.d.ts +3 -3
- package/dist/bridges/map.d.cts +3 -3
- package/dist/bridges/map.d.ts +3 -3
- package/dist/bridges/passkeys.d.cts +3 -3
- package/dist/bridges/passkeys.d.ts +3 -3
- package/dist/bridges/scene.d.cts +3 -3
- package/dist/bridges/scene.d.ts +3 -3
- package/dist/bridges/screens.d.cts +3 -3
- package/dist/bridges/screens.d.ts +3 -3
- package/dist/bridges/sheets.d.cts +3 -3
- package/dist/bridges/sheets.d.ts +3 -3
- package/dist/bridges/slides.d.cts +3 -3
- package/dist/bridges/slides.d.ts +3 -3
- package/dist/bridges/terminal.d.cts +3 -3
- package/dist/bridges/terminal.d.ts +3 -3
- package/dist/bridges/tui.d.cts +2 -2
- package/dist/bridges/tui.d.ts +2 -2
- package/dist/bridges/whiteboard.d.cts +3 -3
- package/dist/bridges/whiteboard.d.ts +3 -3
- package/dist/bridges-artboard.cjs.map +1 -1
- package/dist/bridges-artboard.js +2 -2
- package/dist/bridges-catalog.cjs.map +1 -1
- package/dist/bridges-catalog.js +3 -3
- package/dist/bridges-charts.cjs.map +1 -1
- package/dist/bridges-charts.js +3 -3
- package/dist/bridges-cms.cjs.map +1 -1
- package/dist/bridges-cms.js +4 -4
- package/dist/bridges-code.cjs.map +1 -1
- package/dist/bridges-code.js +3 -3
- package/dist/bridges-doc.cjs.map +1 -1
- package/dist/bridges-doc.js +3 -3
- package/dist/bridges-features.cjs.map +1 -1
- package/dist/bridges-features.js +3 -3
- package/dist/bridges-files.cjs.map +1 -1
- package/dist/bridges-files.js +3 -3
- package/dist/bridges-flow.cjs.map +1 -1
- package/dist/bridges-flow.js +2 -2
- package/dist/bridges-forms.cjs.map +1 -1
- package/dist/bridges-forms.js +3 -3
- package/dist/bridges-git.cjs.map +1 -1
- package/dist/bridges-git.js +3 -3
- package/dist/bridges-grid.cjs.map +1 -1
- package/dist/bridges-grid.js +3 -3
- package/dist/bridges-map.cjs.map +1 -1
- package/dist/bridges-map.js +3 -3
- package/dist/bridges-passkeys.cjs.map +1 -1
- package/dist/bridges-passkeys.js +3 -3
- package/dist/bridges-scene.cjs.map +1 -1
- package/dist/bridges-scene.js +3 -3
- package/dist/bridges-screens.cjs.map +1 -1
- package/dist/bridges-screens.js +3 -3
- package/dist/bridges-sheets.cjs.map +1 -1
- package/dist/bridges-sheets.js +3 -3
- package/dist/bridges-slides.cjs.map +1 -1
- package/dist/bridges-slides.js +3 -3
- package/dist/bridges-terminal.cjs.map +1 -1
- package/dist/bridges-terminal.js +3 -3
- package/dist/bridges-tui.cjs.map +1 -1
- package/dist/bridges-tui.js +2 -2
- package/dist/bridges-whiteboard.cjs.map +1 -1
- package/dist/bridges-whiteboard.js +3 -3
- package/dist/{chunk-5W6YOXLT.js → chunk-36MKPTVD.js} +4 -4
- package/dist/{chunk-5W6YOXLT.js.map → chunk-36MKPTVD.js.map} +1 -1
- package/dist/{chunk-SXVRIIXW.js → chunk-3HVYUMQF.js} +4 -4
- package/dist/{chunk-SXVRIIXW.js.map → chunk-3HVYUMQF.js.map} +1 -1
- package/dist/{chunk-MZ74LLDS.js → chunk-3UUF5KKZ.js} +4 -4
- package/dist/{chunk-MZ74LLDS.js.map → chunk-3UUF5KKZ.js.map} +1 -1
- package/dist/{chunk-WEXMZMJH.js → chunk-3WVXAB3D.js} +3 -3
- package/dist/{chunk-WEXMZMJH.js.map → chunk-3WVXAB3D.js.map} +1 -1
- package/dist/{chunk-Z4L2GOAK.js → chunk-5ZWNCHZS.js} +4 -4
- package/dist/{chunk-Z4L2GOAK.js.map → chunk-5ZWNCHZS.js.map} +1 -1
- package/dist/{chunk-TEB5U6Y5.js → chunk-7NVATRLE.js} +4 -4
- package/dist/{chunk-TEB5U6Y5.js.map → chunk-7NVATRLE.js.map} +1 -1
- package/dist/{chunk-PUMQDV67.js → chunk-AXWMWYH5.js} +4 -4
- package/dist/{chunk-PUMQDV67.js.map → chunk-AXWMWYH5.js.map} +1 -1
- package/dist/{chunk-NKAH67JK.js → chunk-CS3CHGYC.js} +4 -4
- package/dist/{chunk-NKAH67JK.js.map → chunk-CS3CHGYC.js.map} +1 -1
- package/dist/{chunk-QJYRWEXD.js → chunk-CZV3WUW5.js} +35 -8
- package/dist/chunk-CZV3WUW5.js.map +1 -0
- package/dist/{chunk-PCFRBVKS.js → chunk-FCXSR7I5.js} +4 -4
- package/dist/{chunk-PCFRBVKS.js.map → chunk-FCXSR7I5.js.map} +1 -1
- package/dist/{chunk-NIFPRC7P.js → chunk-GVTBMJU6.js} +4 -4
- package/dist/{chunk-NIFPRC7P.js.map → chunk-GVTBMJU6.js.map} +1 -1
- package/dist/{chunk-E2I3YVKC.js → chunk-JLHVQWOV.js} +3 -3
- package/dist/{chunk-E2I3YVKC.js.map → chunk-JLHVQWOV.js.map} +1 -1
- package/dist/{chunk-2LSU3NFO.js → chunk-LQB42OSA.js} +4 -4
- package/dist/{chunk-2LSU3NFO.js.map → chunk-LQB42OSA.js.map} +1 -1
- package/dist/{chunk-VJD3Y7E5.js → chunk-MIDZWKIF.js} +4 -4
- package/dist/{chunk-VJD3Y7E5.js.map → chunk-MIDZWKIF.js.map} +1 -1
- package/dist/{chunk-QOANLXSW.js → chunk-OZBUPO4K.js} +110 -8
- package/dist/chunk-OZBUPO4K.js.map +1 -0
- package/dist/{chunk-LOD77NCD.js → chunk-PWYEW6NL.js} +4 -4
- package/dist/{chunk-LOD77NCD.js.map → chunk-PWYEW6NL.js.map} +1 -1
- package/dist/{chunk-HVDHT7DM.js → chunk-R4XXOGQH.js} +3 -3
- package/dist/{chunk-HVDHT7DM.js.map → chunk-R4XXOGQH.js.map} +1 -1
- package/dist/{chunk-7LLMILTM.js → chunk-RVMM4BHK.js} +4 -4
- package/dist/{chunk-7LLMILTM.js.map → chunk-RVMM4BHK.js.map} +1 -1
- package/dist/{chunk-NIXOY473.js → chunk-SWWJUOCY.js} +3 -3
- package/dist/{chunk-NIXOY473.js.map → chunk-SWWJUOCY.js.map} +1 -1
- package/dist/{chunk-EIBV76IB.js → chunk-VFWFT3OK.js} +4 -4
- package/dist/{chunk-EIBV76IB.js.map → chunk-VFWFT3OK.js.map} +1 -1
- package/dist/{chunk-2Q4EGZHJ.js → chunk-VMRUW4B4.js} +4 -4
- package/dist/{chunk-2Q4EGZHJ.js.map → chunk-VMRUW4B4.js.map} +1 -1
- package/dist/{chunk-GT63LSPJ.js → chunk-VOCUGTZB.js} +4 -4
- package/dist/{chunk-GT63LSPJ.js.map → chunk-VOCUGTZB.js.map} +1 -1
- package/dist/{chunk-N5VOPV64.js → chunk-Z5NL5D4J.js} +4 -4
- package/dist/{chunk-N5VOPV64.js.map → chunk-Z5NL5D4J.js.map} +1 -1
- package/dist/components-shared-whiteboard.cjs +33 -6
- package/dist/components-shared-whiteboard.cjs.map +1 -1
- package/dist/components-shared-whiteboard.js +3 -3
- package/dist/index.cjs +33 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +7 -7
- package/dist/index.d.ts +7 -7
- package/dist/index.js +27 -27
- package/dist/mcp/index.d.cts +5 -5
- package/dist/mcp/index.d.ts +5 -5
- package/dist/mcp/stdio.d.cts +94 -0
- package/dist/mcp/stdio.d.ts +94 -0
- package/dist/mcp-stdio.cjs +120 -0
- package/dist/mcp-stdio.cjs.map +1 -0
- package/dist/mcp-stdio.js +117 -0
- package/dist/mcp-stdio.js.map +1 -0
- package/dist/mcp.cjs +33 -6
- package/dist/mcp.cjs.map +1 -1
- package/dist/mcp.js +1 -1
- package/dist/presence/index.d.cts +1 -1
- package/dist/presence/index.d.ts +1 -1
- package/dist/relay-server/index.d.cts +44 -2
- package/dist/relay-server/index.d.ts +44 -2
- package/dist/relay-server-cli.cjs +108 -6
- package/dist/relay-server-cli.cjs.map +1 -1
- package/dist/relay-server-cli.js +1 -1
- package/dist/relay-server.cjs +108 -6
- package/dist/relay-server.cjs.map +1 -1
- package/dist/relay-server.js +1 -1
- package/dist/{server-BJNF7pQe.d.cts → server-BIcA3ZtK.d.cts} +32 -3
- package/dist/{server-Dt97UxuD.d.ts → server-DnUyeavY.d.ts} +32 -3
- package/dist/sharing/index.d.cts +3 -3
- package/dist/sharing/index.d.ts +3 -3
- package/dist/sheets-adapter.d.cts +3 -3
- package/dist/sheets-adapter.d.ts +3 -3
- package/dist/{tool-host-BpEBqf5u.d.cts → tool-host-LVBgCN5m.d.cts} +1 -1
- package/dist/{tool-host-xY5F-eqG.d.ts → tool-host-Wo0pkY83.d.ts} +1 -1
- package/dist/{types-DSwsNTBG.d.ts → types-BxNRKSVd.d.ts} +1 -1
- package/dist/{types-C58ZXs4K.d.cts → types-C2DtnHIn.d.cts} +25 -1
- package/dist/{types-C58ZXs4K.d.ts → types-C2DtnHIn.d.ts} +25 -1
- package/dist/{types-C4NaIW6B.d.cts → types-EcElKOlk.d.cts} +1 -1
- package/dist/undo/index.d.cts +2 -2
- package/dist/undo/index.d.ts +2 -2
- package/dist/undo.cjs.map +1 -1
- package/dist/undo.js +3 -3
- package/docs/relay-protocol.md +33 -0
- package/package.json +13 -2
- package/dist/chunk-QJYRWEXD.js.map +0 -1
- package/dist/chunk-QOANLXSW.js.map +0 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ShareControls, AgentCursor, AgentActivityHighlight, AgentPanel } from './chunk-QDC7MXBH.js';
|
|
2
2
|
import { createSessionDescriptor, attachSseRelay } from './chunk-6TZ5IBRN.js';
|
|
3
3
|
import { attachInProcess } from './chunk-AFUULW5E.js';
|
|
4
|
-
import { registerWhiteboardBridge } from './chunk-
|
|
5
|
-
import './chunk-
|
|
4
|
+
import { registerWhiteboardBridge } from './chunk-LQB42OSA.js';
|
|
5
|
+
import './chunk-R4XXOGQH.js';
|
|
6
6
|
import './chunk-2VENWGLZ.js';
|
|
7
7
|
import './chunk-C3TYI5TJ.js';
|
|
8
|
-
import { MicroMcpServer } from './chunk-
|
|
8
|
+
import { MicroMcpServer } from './chunk-CZV3WUW5.js';
|
|
9
9
|
import { useState, useRef, useEffect, useCallback, useMemo } from 'react';
|
|
10
10
|
import { Board, Connector, Shape, StickyNote, CursorLayer } from '@particle-academy/fancy-whiteboard';
|
|
11
11
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
package/dist/index.cjs
CHANGED
|
@@ -101,10 +101,18 @@ var MicroMcpServer = class extends ToolRegistry {
|
|
|
101
101
|
constructor(options) {
|
|
102
102
|
super();
|
|
103
103
|
this.transports = /* @__PURE__ */ new Set();
|
|
104
|
-
|
|
104
|
+
/**
|
|
105
|
+
* Transports owed a `tools/list_changed` at the end of this tick. Empty when
|
|
106
|
+
* none is scheduled. See {@link scheduleListChangedNotification}.
|
|
107
|
+
*/
|
|
108
|
+
this.listChangedOwed = /* @__PURE__ */ new Set();
|
|
105
109
|
this.info = options.info;
|
|
106
110
|
this.capabilities = options.capabilities ?? { tools: { listChanged: true } };
|
|
107
111
|
this.instructions = options.instructions;
|
|
112
|
+
if (options.protocolVersions && options.protocolVersions.length === 0) {
|
|
113
|
+
throw new Error("MicroMcpServer: protocolVersions is empty \u2014 a server must speak at least one protocol revision.");
|
|
114
|
+
}
|
|
115
|
+
this.protocolVersions = options.protocolVersions ? [...options.protocolVersions] : [MCP_PROTOCOL_VERSION];
|
|
108
116
|
}
|
|
109
117
|
attach(transport) {
|
|
110
118
|
this.transports.add(transport);
|
|
@@ -150,7 +158,7 @@ var MicroMcpServer = class extends ToolRegistry {
|
|
|
150
158
|
switch (method) {
|
|
151
159
|
case "initialize":
|
|
152
160
|
return {
|
|
153
|
-
protocolVersion:
|
|
161
|
+
protocolVersion: this.negotiate(params?.protocolVersion),
|
|
154
162
|
capabilities: this.capabilities,
|
|
155
163
|
serverInfo: this.info,
|
|
156
164
|
...this.instructions ? { instructions: this.instructions } : {}
|
|
@@ -176,12 +184,31 @@ var MicroMcpServer = class extends ToolRegistry {
|
|
|
176
184
|
throw rpcError(JSONRPC_METHOD_NOT_FOUND, `Unsupported method: ${method}`);
|
|
177
185
|
}
|
|
178
186
|
}
|
|
187
|
+
/** The revision to answer `initialize` with: the one asked for if spoken, else the newest. */
|
|
188
|
+
negotiate(requested) {
|
|
189
|
+
return typeof requested === "string" && this.protocolVersions.includes(requested) ? requested : this.protocolVersions[0];
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Tell the transports that SAW the old tool list that it changed.
|
|
193
|
+
*
|
|
194
|
+
* Changes in one tick coalesce into one notification. The recipients are the
|
|
195
|
+
* transports attached at the moment of a change, not at the moment the
|
|
196
|
+
* notification goes out: a transport attached afterwards never had the old
|
|
197
|
+
* list, so "your list is stale" is noise to it — and on stdio, where a host
|
|
198
|
+
* builds the server and attaches stdin/stdout in the same tick, it was the
|
|
199
|
+
* first frame a client received, before it had even sent `initialize`.
|
|
200
|
+
*/
|
|
179
201
|
scheduleListChangedNotification() {
|
|
180
|
-
if (this.
|
|
181
|
-
this.
|
|
202
|
+
if (this.transports.size === 0) return;
|
|
203
|
+
const scheduled = this.listChangedOwed.size > 0;
|
|
204
|
+
for (const t of this.transports) this.listChangedOwed.add(t);
|
|
205
|
+
if (scheduled) return;
|
|
182
206
|
queueMicrotask(() => {
|
|
183
|
-
|
|
184
|
-
this.
|
|
207
|
+
const owed = this.listChangedOwed;
|
|
208
|
+
this.listChangedOwed = /* @__PURE__ */ new Set();
|
|
209
|
+
for (const t of owed) {
|
|
210
|
+
if (this.transports.has(t)) t.send({ jsonrpc: "2.0", method: "notifications/tools/list_changed" });
|
|
211
|
+
}
|
|
185
212
|
});
|
|
186
213
|
}
|
|
187
214
|
/** Send an application notification to every client, or one attached transport. */
|