@maxhealth.tech/prefab 0.2.2 → 0.2.4
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/app.d.ts +1 -1
- package/dist/app.js +1 -1
- package/dist/components/charts/index.d.ts +5 -0
- package/dist/components/charts/index.d.ts.map +1 -1
- package/dist/components/charts/index.js +2 -0
- package/dist/components/charts/index.js.map +1 -1
- package/dist/renderer/auto.d.ts +5 -0
- package/dist/renderer/auto.d.ts.map +1 -1
- package/dist/renderer/auto.js +42 -8
- package/dist/renderer/auto.js.map +1 -1
- package/dist/renderer/bridge.d.ts +34 -8
- package/dist/renderer/bridge.d.ts.map +1 -1
- package/dist/renderer/bridge.js +281 -20
- package/dist/renderer/bridge.js.map +1 -1
- package/dist/renderer/components/charts.js +199 -35
- package/dist/renderer/components/charts.js.map +1 -1
- package/dist/renderer.auto.min.js +29 -29
- package/dist/renderer.min.js +29 -29
- package/package.json +1 -1
package/dist/app.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ import type { ComponentJSON } from './core/component.js';
|
|
|
9
9
|
import type { Action, ActionJSON } from './actions/types.js';
|
|
10
10
|
import type { PipeFn } from './rx/pipes.js';
|
|
11
11
|
/** Package version — injected by build script, updated at release time. */
|
|
12
|
-
export declare const VERSION = "0.2.
|
|
12
|
+
export declare const VERSION = "0.2.4";
|
|
13
13
|
export interface Theme {
|
|
14
14
|
light?: Record<string, string>;
|
|
15
15
|
dark?: Record<string, string>;
|
package/dist/app.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import {} from './core/component.js';
|
|
8
8
|
import { drainAutoState } from './rx/state-collector.js';
|
|
9
9
|
/** Package version — injected by build script, updated at release time. */
|
|
10
|
-
export const VERSION = '0.2.
|
|
10
|
+
export const VERSION = '0.2.4';
|
|
11
11
|
export class PrefabApp {
|
|
12
12
|
title;
|
|
13
13
|
view;
|
|
@@ -7,6 +7,8 @@ export interface ChartSeries {
|
|
|
7
7
|
dataKey: string;
|
|
8
8
|
label?: string;
|
|
9
9
|
color?: string;
|
|
10
|
+
/** Which Y-axis this series binds to: 'left' (default) or 'right'. */
|
|
11
|
+
yAxisId?: 'left' | 'right';
|
|
10
12
|
}
|
|
11
13
|
export interface BaseChartProps extends ComponentProps {
|
|
12
14
|
data: unknown[];
|
|
@@ -18,6 +20,9 @@ export interface BaseChartProps extends ComponentProps {
|
|
|
18
20
|
showGrid?: boolean;
|
|
19
21
|
showYAxis?: boolean;
|
|
20
22
|
yAxisFormat?: string;
|
|
23
|
+
/** Show a secondary Y-axis on the right for series with yAxisId:'right'. */
|
|
24
|
+
showYAxisRight?: boolean;
|
|
25
|
+
yAxisRightFormat?: string;
|
|
21
26
|
animate?: boolean;
|
|
22
27
|
}
|
|
23
28
|
export interface BarChartProps extends BaseChartProps {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/charts/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAI7D,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/charts/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAI7D,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAC3B;AAID,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,IAAI,EAAE,OAAO,EAAE,CAAA;IACf,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4EAA4E;IAC5E,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAsBD,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,CAQxD;AAID,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CAI1D;AAID,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CAI1D;AAID,wBAAgB,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CAIzD;AAID,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CAI3D;AAID,wBAAgB,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CAI7D;AAID,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAA;IACpC,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;CACtB;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CAU1D;AAID,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,SAAS,CAQ9D;AAID,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CAW1D"}
|
|
@@ -13,6 +13,8 @@ function chartGetProps(props, extra) {
|
|
|
13
13
|
...(props.showGrid !== undefined && { showGrid: props.showGrid }),
|
|
14
14
|
...(props.showYAxis !== undefined && { showYAxis: props.showYAxis }),
|
|
15
15
|
...(props.yAxisFormat && { yAxisFormat: props.yAxisFormat }),
|
|
16
|
+
...(props.showYAxisRight !== undefined && { showYAxisRight: props.showYAxisRight }),
|
|
17
|
+
...(props.yAxisRightFormat && { yAxisRightFormat: props.yAxisRightFormat }),
|
|
16
18
|
...(props.animate !== undefined && { animate: props.animate }),
|
|
17
19
|
...extra,
|
|
18
20
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/charts/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/charts/index.ts"],"names":[],"mappings":"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"}
|
package/dist/renderer/auto.d.ts
CHANGED
|
@@ -9,6 +9,11 @@
|
|
|
9
9
|
* Designed for CSP-restricted environments (VS Code webviews, sandboxed iframes)
|
|
10
10
|
* where inline `<script>` blocks are forbidden.
|
|
11
11
|
*
|
|
12
|
+
* Supports all three Bridge protocols:
|
|
13
|
+
* - prefab:* (MistralOS)
|
|
14
|
+
* - ui/* JSON-RPC (VS Code, Claude, ChatGPT)
|
|
15
|
+
* - ext-apps SDK (legacy)
|
|
16
|
+
*
|
|
12
17
|
* The host HTML only needs:
|
|
13
18
|
* ```html
|
|
14
19
|
* <div id="root"></div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto.d.ts","sourceRoot":"","sources":["../../src/renderer/auto.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"auto.d.ts","sourceRoot":"","sources":["../../src/renderer/auto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG"}
|
package/dist/renderer/auto.js
CHANGED
|
@@ -9,6 +9,11 @@
|
|
|
9
9
|
* Designed for CSP-restricted environments (VS Code webviews, sandboxed iframes)
|
|
10
10
|
* where inline `<script>` blocks are forbidden.
|
|
11
11
|
*
|
|
12
|
+
* Supports all three Bridge protocols:
|
|
13
|
+
* - prefab:* (MistralOS)
|
|
14
|
+
* - ui/* JSON-RPC (VS Code, Claude, ChatGPT)
|
|
15
|
+
* - ext-apps SDK (legacy)
|
|
16
|
+
*
|
|
12
17
|
* The host HTML only needs:
|
|
13
18
|
* ```html
|
|
14
19
|
* <div id="root"></div>
|
|
@@ -24,20 +29,50 @@ function isPrefabWire(data) {
|
|
|
24
29
|
function isPrefabUpdate(data) {
|
|
25
30
|
return PrefabRenderer.isPrefabUpdate(data);
|
|
26
31
|
}
|
|
32
|
+
function extractWireData(payload) {
|
|
33
|
+
if (isPrefabWire(payload))
|
|
34
|
+
return payload;
|
|
35
|
+
if (payload !== null && typeof payload === 'object') {
|
|
36
|
+
const obj = payload;
|
|
37
|
+
// MCP Apps tool-result: { content: [...], structuredContent: { $prefab, view } }
|
|
38
|
+
if (isPrefabWire(obj.structuredContent))
|
|
39
|
+
return obj.structuredContent;
|
|
40
|
+
// Try parsing text content items
|
|
41
|
+
if (Array.isArray(obj.content)) {
|
|
42
|
+
for (const raw of obj.content) {
|
|
43
|
+
const item = raw;
|
|
44
|
+
if (item.type === 'text' && typeof item.text === 'string') {
|
|
45
|
+
try {
|
|
46
|
+
const parsed = JSON.parse(item.text);
|
|
47
|
+
if (isPrefabWire(parsed))
|
|
48
|
+
return parsed;
|
|
49
|
+
}
|
|
50
|
+
catch { /* skip non-JSON */ }
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
27
57
|
async function boot() {
|
|
28
58
|
const root = document.querySelector(ROOT_SELECTOR);
|
|
29
59
|
if (!root) {
|
|
30
60
|
console.error(`[prefab:auto] Mount target "${ROOT_SELECTOR}" not found`);
|
|
31
61
|
return;
|
|
32
62
|
}
|
|
63
|
+
const el = root;
|
|
33
64
|
const ui = await app();
|
|
34
65
|
let mounted;
|
|
66
|
+
function mount(data) {
|
|
67
|
+
if (mounted)
|
|
68
|
+
mounted.destroy();
|
|
69
|
+
mounted = ui.mount(el, data);
|
|
70
|
+
}
|
|
35
71
|
// ── Tool result handler (structuredContent from MCP) ───────────────────
|
|
36
72
|
ui.onToolResult((result) => {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
mounted = ui.mount(root, result);
|
|
73
|
+
const wire = extractWireData(result);
|
|
74
|
+
if (wire) {
|
|
75
|
+
mount(wire);
|
|
41
76
|
}
|
|
42
77
|
else if (isPrefabUpdate(result) && mounted) {
|
|
43
78
|
mounted.update(result);
|
|
@@ -45,10 +80,9 @@ async function boot() {
|
|
|
45
80
|
});
|
|
46
81
|
// ── Tool input handler (initial data or dynamic args) ──────────────────
|
|
47
82
|
ui.onToolInput((args) => {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
mounted = ui.mount(root, args);
|
|
83
|
+
const wire = extractWireData(args);
|
|
84
|
+
if (wire) {
|
|
85
|
+
mount(wire);
|
|
52
86
|
}
|
|
53
87
|
else if (isPrefabUpdate(args) && mounted) {
|
|
54
88
|
mounted.update(args);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto.js","sourceRoot":"","sources":["../../src/renderer/auto.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"auto.js","sourceRoot":"","sources":["../../src/renderer/auto.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,18 +2,27 @@
|
|
|
2
2
|
* Bridge -- PostMessage-based communication between a prefab app
|
|
3
3
|
* (running in an iframe) and its host (the parent window).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* Triple protocol:
|
|
6
|
+
* 1. prefab:* — custom protocol (MistralOS, self-hosted)
|
|
7
|
+
* 2. ui/* — MCP Apps JSON-RPC 2.0 (VS Code, Claude, ChatGPT, Goose)
|
|
8
|
+
* 3. ext-apps — @modelcontextprotocol/ext-apps SDK (legacy fallback)
|
|
8
9
|
*
|
|
9
|
-
* Protocol detection: tries prefab:init first (
|
|
10
|
-
*
|
|
10
|
+
* Protocol detection: tries prefab:init first (1s timeout),
|
|
11
|
+
* then ui/initialize JSON-RPC (1.5s), then ext-apps SDK.
|
|
11
12
|
*
|
|
12
13
|
* prefab:* messages:
|
|
13
14
|
* App → Host: prefab:init, prefab:tool-call, prefab:send-message,
|
|
14
15
|
* prefab:request-mode, prefab:open-link, prefab:update-context
|
|
15
16
|
* Host → App: prefab:init-response, prefab:tool-input, prefab:tool-result,
|
|
16
17
|
* prefab:tool-cancelled, prefab:theme-update, prefab:state-update
|
|
18
|
+
*
|
|
19
|
+
* ui/* JSON-RPC messages (MCP Apps spec 2026-01-26):
|
|
20
|
+
* App → Host: ui/initialize, ui/notifications/initialized,
|
|
21
|
+
* ui/notifications/size-changed, ui/open-link, ui/message,
|
|
22
|
+
* ui/request-display-mode, ui/update-model-context
|
|
23
|
+
* Host → App: ui/notifications/tool-input, ui/notifications/tool-result,
|
|
24
|
+
* ui/notifications/tool-cancelled, ui/notifications/tool-input-partial,
|
|
25
|
+
* ui/notifications/host-context-changed, ui/resource-teardown
|
|
17
26
|
*/
|
|
18
27
|
import type { McpTransport } from './actions.js';
|
|
19
28
|
export interface BridgeMessage<T extends string = string> {
|
|
@@ -54,12 +63,17 @@ export declare class Bridge {
|
|
|
54
63
|
private cleanup;
|
|
55
64
|
private pending;
|
|
56
65
|
private callIdCounter;
|
|
66
|
+
private rpcPending;
|
|
67
|
+
private rpcIdCounter;
|
|
68
|
+
private sentRpcIds;
|
|
69
|
+
private postFn;
|
|
57
70
|
private extApp;
|
|
58
71
|
constructor(hostOrigin?: string);
|
|
59
|
-
/** Start listening for prefab:*
|
|
72
|
+
/** Start listening for messages (prefab:* and JSON-RPC ui/*). */
|
|
60
73
|
connect(): void;
|
|
61
74
|
/**
|
|
62
|
-
* Init handshake. Tries prefab:init first,
|
|
75
|
+
* Init handshake. Tries prefab:init first, then ui/initialize JSON-RPC,
|
|
76
|
+
* then falls back to ext-apps SDK.
|
|
63
77
|
*/
|
|
64
78
|
initialize(appCapabilities: AppCapabilities): Promise<HostContext>;
|
|
65
79
|
/** Create an McpTransport that routes through the active protocol. */
|
|
@@ -77,10 +91,22 @@ export declare class Bridge {
|
|
|
77
91
|
/** Disconnect and clean up. */
|
|
78
92
|
disconnect(): void;
|
|
79
93
|
/** Which protocol is active after initialize(). */
|
|
80
|
-
get activeProtocol(): 'prefab' | 'ext-apps';
|
|
94
|
+
get activeProtocol(): 'prefab' | 'jsonrpc' | 'ext-apps';
|
|
81
95
|
private initPrefab;
|
|
82
96
|
private createPrefabTransport;
|
|
83
97
|
private sendPrefab;
|
|
98
|
+
/** Handle incoming JSON-RPC message. */
|
|
99
|
+
private handleJsonRpc;
|
|
100
|
+
/** Initialize via MCP Apps JSON-RPC ui/initialize handshake. */
|
|
101
|
+
private initJsonRpc;
|
|
102
|
+
/** Create transport that routes tool calls via JSON-RPC tools/call. */
|
|
103
|
+
private createJsonRpcTransport;
|
|
104
|
+
/** Send a JSON-RPC request and return a promise for the response. */
|
|
105
|
+
private sendRpcRequest;
|
|
106
|
+
/** Send a JSON-RPC notification (no id, no response expected). */
|
|
107
|
+
private sendRpcNotification;
|
|
108
|
+
/** Low-level: post a JSON-RPC envelope. Uses acquireVsCodeApi if available. */
|
|
109
|
+
private postJsonRpc;
|
|
84
110
|
private initExtApps;
|
|
85
111
|
private wireExtAppsEvents;
|
|
86
112
|
private createExtAppsTransport;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/renderer/bridge.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/renderer/bridge.ts"],"names":[],"mappings":"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"}
|