@maxhealth.tech/prefab 0.2.1 → 0.2.3

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.
@@ -2,19 +2,34 @@
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
- * Dual protocol:
6
- * Primary: prefab:* custom protocol (supported by VS Code Copilot, MistralOS)
7
- * Fallback: ext-apps JSON-RPC 2.0 (@modelcontextprotocol/ext-apps)
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 (1.5s timeout).
10
- * If no response, falls back to ext-apps.
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
  */
27
+ /** Type guard: is this a JSON-RPC 2.0 envelope? */
28
+ function isJsonRpcEnvelope(msg) {
29
+ return (msg !== null &&
30
+ typeof msg === 'object' &&
31
+ msg.jsonrpc === '2.0');
32
+ }
18
33
  // ── Bridge Class ─────────────────────────────────────────────────────────────
19
34
  export class Bridge {
20
35
  hostOrigin;
@@ -24,58 +39,84 @@ export class Bridge {
24
39
  // prefab:* state
25
40
  pending = new Map();
26
41
  callIdCounter = 0;
42
+ // JSON-RPC state
43
+ rpcPending = new Map();
44
+ rpcIdCounter = 0;
45
+ sentRpcIds = new Set();
46
+ postFn;
27
47
  // ext-apps state (lazy)
28
48
  extApp;
29
49
  constructor(hostOrigin = '*') {
30
50
  this.hostOrigin = hostOrigin;
31
51
  }
32
- /** Start listening for prefab:* messages. */
52
+ /** Start listening for messages (prefab:* and JSON-RPC ui/*). */
33
53
  connect() {
34
54
  if (typeof window === 'undefined')
35
55
  return;
56
+ // Detect VS Code webview API (provides postMessage without origin restrictions)
57
+ const vscodeApi = detectVsCodeApi();
58
+ if (vscodeApi) {
59
+ this.postFn = (msg) => vscodeApi.postMessage(msg);
60
+ }
36
61
  const handler = (event) => {
37
62
  if (this.hostOrigin !== '*' && event.origin !== this.hostOrigin)
38
63
  return;
39
64
  const msg = event.data;
40
- if (!msg?.type.startsWith('prefab:'))
65
+ // ── JSON-RPC 2.0 messages (ui/* protocol) ───────────────────────────
66
+ if (isJsonRpcEnvelope(msg)) {
67
+ this.handleJsonRpc(msg);
68
+ return;
69
+ }
70
+ // ── prefab:* messages ───────────────────────────────────────────────
71
+ const bmsg = msg;
72
+ if (!bmsg?.type.startsWith('prefab:'))
41
73
  return;
42
74
  // Resolve pending tool-call promises
43
- if (msg.type === 'prefab:tool-call-response' && msg.id) {
44
- const p = this.pending.get(msg.id);
75
+ if (bmsg.type === 'prefab:tool-call-response' && bmsg.id) {
76
+ const p = this.pending.get(bmsg.id);
45
77
  if (p) {
46
- this.pending.delete(msg.id);
47
- if (msg.payload?.error != null) {
48
- p.reject(new Error(msg.payload.error));
78
+ this.pending.delete(bmsg.id);
79
+ if (bmsg.payload?.error != null) {
80
+ p.reject(new Error(bmsg.payload.error));
49
81
  }
50
82
  else {
51
- p.resolve(msg.payload?.result);
83
+ p.resolve(bmsg.payload?.result);
52
84
  }
53
85
  return;
54
86
  }
55
87
  }
56
88
  // Dispatch to registered listeners
57
- const handlers = this.listeners.get(msg.type);
89
+ const handlers = this.listeners.get(bmsg.type);
58
90
  if (handlers) {
59
91
  for (const fn of handlers)
60
- fn(msg.payload ?? {});
92
+ fn(bmsg.payload ?? {});
61
93
  }
62
94
  };
63
95
  window.addEventListener('message', handler);
64
96
  this.cleanup = () => window.removeEventListener('message', handler);
65
97
  }
66
98
  /**
67
- * Init handshake. Tries prefab:init first, falls back to ext-apps.
99
+ * Init handshake. Tries prefab:init first, then ui/initialize JSON-RPC,
100
+ * then falls back to ext-apps SDK.
68
101
  */
69
102
  async initialize(appCapabilities) {
70
103
  try {
71
104
  return await this.initPrefab(appCapabilities);
72
105
  }
73
106
  catch {
74
- return this.initExtApps(appCapabilities);
107
+ try {
108
+ return await this.initJsonRpc(appCapabilities);
109
+ }
110
+ catch {
111
+ return this.initExtApps(appCapabilities);
112
+ }
75
113
  }
76
114
  }
77
115
  /** Create an McpTransport that routes through the active protocol. */
78
116
  createTransport() {
117
+ if (this.protocol === 'jsonrpc') {
118
+ return this.createJsonRpcTransport();
119
+ }
79
120
  if (this.protocol === 'ext-apps' && this.extApp) {
80
121
  return this.createExtAppsTransport();
81
122
  }
@@ -83,7 +124,10 @@ export class Bridge {
83
124
  }
84
125
  /** Request a display mode change. */
85
126
  requestMode(mode) {
86
- if (this.protocol === 'ext-apps' && this.extApp) {
127
+ if (this.protocol === 'jsonrpc') {
128
+ void this.sendRpcRequest('ui/request-display-mode', { mode });
129
+ }
130
+ else if (this.protocol === 'ext-apps' && this.extApp) {
87
131
  void this.extApp.requestDisplayMode({ mode });
88
132
  }
89
133
  else {
@@ -92,7 +136,10 @@ export class Bridge {
92
136
  }
93
137
  /** Request the host to open a URL. */
94
138
  openLink(url, target) {
95
- if (this.protocol === 'ext-apps' && this.extApp) {
139
+ if (this.protocol === 'jsonrpc') {
140
+ void this.sendRpcRequest('ui/open-link', { url, target });
141
+ }
142
+ else if (this.protocol === 'ext-apps' && this.extApp) {
96
143
  void this.extApp.openLink({ url });
97
144
  }
98
145
  else {
@@ -101,7 +148,10 @@ export class Bridge {
101
148
  }
102
149
  /** Send context updates to the host. */
103
150
  updateContext(context) {
104
- if (this.protocol === 'ext-apps' && this.extApp) {
151
+ if (this.protocol === 'jsonrpc') {
152
+ void this.sendRpcRequest('ui/update-model-context', { structuredContent: context });
153
+ }
154
+ else if (this.protocol === 'ext-apps' && this.extApp) {
105
155
  void this.extApp.updateModelContext({ structuredContent: context });
106
156
  }
107
157
  else {
@@ -130,6 +180,11 @@ export class Bridge {
130
180
  p.reject(new Error('Bridge disconnected'));
131
181
  }
132
182
  this.pending.clear();
183
+ for (const [, p] of this.rpcPending) {
184
+ p.reject(new Error('Bridge disconnected'));
185
+ }
186
+ this.rpcPending.clear();
187
+ this.sentRpcIds.clear();
133
188
  }
134
189
  /** Which protocol is active after initialize(). */
135
190
  get activeProtocol() {
@@ -187,6 +242,194 @@ export class Bridge {
187
242
  const msg = { type, payload, id };
188
243
  target.postMessage(msg, this.hostOrigin);
189
244
  }
245
+ // ── JSON-RPC ui/* protocol (MCP Apps spec 2026-01-26) ────────────────
246
+ /** Handle incoming JSON-RPC message. */
247
+ handleJsonRpc(msg) {
248
+ // Response to a request we sent (has no 'method' → must be JsonRpcResponse)
249
+ if (!('method' in msg)) {
250
+ const p = this.rpcPending.get(msg.id);
251
+ if (p) {
252
+ this.rpcPending.delete(msg.id);
253
+ if (msg.error) {
254
+ p.reject(new Error(msg.error.message));
255
+ }
256
+ else {
257
+ p.resolve(msg.result);
258
+ }
259
+ }
260
+ return;
261
+ }
262
+ // Request or notification from host (JsonRpcRequest)
263
+ const method = msg.method;
264
+ const params = msg.params ?? {};
265
+ // Skip our own outgoing requests bounced back (same-window postMessage in tests)
266
+ if (msg.id != null && this.sentRpcIds.delete(msg.id))
267
+ return;
268
+ // Auto-acknowledge host requests (those with an id) so we don't deadlock
269
+ if (msg.id != null) {
270
+ this.postJsonRpc({ jsonrpc: '2.0', id: msg.id, result: {} });
271
+ }
272
+ // Map ui/* notifications to internal prefab:* events
273
+ switch (method) {
274
+ case 'ui/notifications/tool-input':
275
+ this.dispatch('prefab:tool-input', { args: params.arguments ?? params });
276
+ break;
277
+ case 'ui/notifications/tool-input-partial':
278
+ this.dispatch('prefab:tool-input-partial', { args: params.arguments ?? params });
279
+ break;
280
+ case 'ui/notifications/tool-result':
281
+ this.dispatch('prefab:tool-result', { result: params });
282
+ break;
283
+ case 'ui/notifications/tool-cancelled':
284
+ this.dispatch('prefab:tool-cancelled', params);
285
+ break;
286
+ case 'ui/notifications/host-context-changed': {
287
+ const theme = {};
288
+ if (typeof params.theme === 'string') {
289
+ theme.colorScheme = params.theme;
290
+ }
291
+ if (typeof params.styles === 'object' && params.styles !== null) {
292
+ const styles = params.styles;
293
+ if (styles.variables)
294
+ theme.variables = styles.variables;
295
+ }
296
+ this.dispatch('prefab:theme-update', theme);
297
+ break;
298
+ }
299
+ case 'ui/resource-teardown':
300
+ this.dispatch('prefab:teardown', params);
301
+ break;
302
+ }
303
+ }
304
+ /** Initialize via MCP Apps JSON-RPC ui/initialize handshake. */
305
+ initJsonRpc(appCapabilities) {
306
+ return new Promise((resolve, reject) => {
307
+ const id = ++this.rpcIdCounter;
308
+ let settled = false;
309
+ this.rpcPending.set(id, {
310
+ resolve: (result) => {
311
+ if (settled)
312
+ return;
313
+ settled = true;
314
+ this.protocol = 'jsonrpc';
315
+ const r = (result ?? {});
316
+ const hostInfo = (r.hostInfo ?? {});
317
+ const hostCtx = (r.hostContext ?? {});
318
+ const hostCaps = (r.hostCapabilities ?? {});
319
+ // Parse theme from hostContext
320
+ let theme;
321
+ if (typeof hostCtx.theme === 'string' || typeof hostCtx.styles === 'object') {
322
+ theme = {};
323
+ if (typeof hostCtx.theme === 'string') {
324
+ theme.colorScheme = hostCtx.theme;
325
+ }
326
+ if (typeof hostCtx.styles === 'object' && hostCtx.styles !== null) {
327
+ const styles = hostCtx.styles;
328
+ if (styles.variables)
329
+ theme.variables = styles.variables;
330
+ }
331
+ }
332
+ // Send ui/notifications/initialized to confirm readiness
333
+ this.postJsonRpc({
334
+ jsonrpc: '2.0',
335
+ method: 'ui/notifications/initialized',
336
+ params: {},
337
+ });
338
+ resolve({
339
+ hostName: hostInfo.name,
340
+ hostVersion: hostInfo.version,
341
+ capabilities: {
342
+ toast: true,
343
+ navigation: hostCaps.openLinks != null,
344
+ messaging: true,
345
+ displayModes: (hostCtx.availableDisplayModes ?? []),
346
+ },
347
+ theme,
348
+ toolInput: undefined,
349
+ meta: hostCtx,
350
+ });
351
+ },
352
+ reject: (err) => {
353
+ if (settled)
354
+ return;
355
+ settled = true;
356
+ reject(err);
357
+ },
358
+ });
359
+ // Send ui/initialize request
360
+ this.postJsonRpc({
361
+ jsonrpc: '2.0',
362
+ id,
363
+ method: 'ui/initialize',
364
+ params: {
365
+ protocolVersion: '2026-01-26',
366
+ capabilities: {},
367
+ clientInfo: { name: 'prefab', version: '0.2' },
368
+ appCapabilities: {
369
+ ...(appCapabilities.displayModes && {
370
+ availableDisplayModes: appCapabilities.displayModes,
371
+ }),
372
+ },
373
+ },
374
+ });
375
+ // Timeout — fall through to ext-apps
376
+ setTimeout(() => {
377
+ if (!settled) {
378
+ settled = true;
379
+ this.rpcPending.delete(id);
380
+ reject(new Error('ui/initialize timeout'));
381
+ }
382
+ }, 1500);
383
+ });
384
+ }
385
+ /** Create transport that routes tool calls via JSON-RPC tools/call. */
386
+ createJsonRpcTransport() {
387
+ return {
388
+ callTool: (name, args) => {
389
+ return this.sendRpcRequest('tools/call', { name, arguments: args });
390
+ },
391
+ sendMessage: (message) => {
392
+ return this.sendRpcRequest('ui/message', {
393
+ role: 'user',
394
+ content: { type: 'text', text: message },
395
+ });
396
+ },
397
+ };
398
+ }
399
+ /** Send a JSON-RPC request and return a promise for the response. */
400
+ sendRpcRequest(method, params) {
401
+ const id = ++this.rpcIdCounter;
402
+ return new Promise((resolve, reject) => {
403
+ this.rpcPending.set(id, { resolve, reject });
404
+ this.postJsonRpc({ jsonrpc: '2.0', id, method, params });
405
+ setTimeout(() => {
406
+ if (this.rpcPending.has(id)) {
407
+ this.rpcPending.delete(id);
408
+ reject(new Error(`JSON-RPC '${method}' timed out`));
409
+ }
410
+ }, 30000);
411
+ });
412
+ }
413
+ /** Send a JSON-RPC notification (no id, no response expected). */
414
+ sendRpcNotification(method, params) {
415
+ this.postJsonRpc({ jsonrpc: '2.0', method, params });
416
+ }
417
+ /** Low-level: post a JSON-RPC envelope. Uses acquireVsCodeApi if available. */
418
+ postJsonRpc(msg) {
419
+ if (typeof window === 'undefined')
420
+ return;
421
+ // Track outgoing request ids to filter self-messages in same-window envs
422
+ if (msg.id != null && typeof msg.method === 'string') {
423
+ this.sentRpcIds.add(msg.id);
424
+ }
425
+ if (this.postFn) {
426
+ this.postFn(msg);
427
+ }
428
+ else {
429
+ const target = window.parent !== window ? window.parent : window;
430
+ target.postMessage(msg, this.hostOrigin);
431
+ }
432
+ }
190
433
  // ── ext-apps fallback ──────────────────────────────────────────────────
191
434
  async initExtApps(appCapabilities) {
192
435
  const { App, PostMessageTransport } = await import('@modelcontextprotocol/ext-apps');
@@ -299,4 +542,22 @@ export function isIframe() {
299
542
  return true;
300
543
  }
301
544
  }
545
+ /** Detect VS Code webview API (acquireVsCodeApi). Returns the API object or undefined. */
546
+ function detectVsCodeApi() {
547
+ if (typeof window === 'undefined')
548
+ return undefined;
549
+ const win = window;
550
+ if (typeof win.acquireVsCodeApi === 'function') {
551
+ try {
552
+ const api = win.acquireVsCodeApi();
553
+ if (api !== null && typeof api === 'object' && 'postMessage' in api) {
554
+ return api;
555
+ }
556
+ }
557
+ catch {
558
+ return undefined;
559
+ }
560
+ }
561
+ return undefined;
562
+ }
302
563
  //# sourceMappingURL=bridge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/renderer/bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/renderer/bridge.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../../../src/renderer/components/control.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,wBAAgB,yBAAyB,IAAI,IAAI,CAQhD"}
1
+ {"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../../../src/renderer/components/control.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,wBAAgB,yBAAyB,IAAI,IAAI,CAShD"}
@@ -8,6 +8,7 @@ export function registerControlComponents() {
8
8
  registerComponent('If', renderIf);
9
9
  registerComponent('Elif', renderElif);
10
10
  registerComponent('Else', renderElse);
11
+ registerComponent('Condition', renderCondition);
11
12
  registerComponent('Define', renderDefine);
12
13
  registerComponent('Use', renderUse);
13
14
  registerComponent('Slot', renderSlot);
@@ -87,6 +88,31 @@ function evaluateCondition(condition, ctx) {
87
88
  return Boolean(ctx.store.get(condition));
88
89
  }
89
90
  // ── Define / Use / Slot ──────────────────────────────────────────────────────
91
+ /**
92
+ * Condition: Prefect-compatible conditional rendering.
93
+ * Evaluates `cases: [{ when, children }]` in order, renders the first match.
94
+ * Falls back to `else` children if no case matches.
95
+ */
96
+ function renderCondition(node, ctx) {
97
+ const frag = document.createDocumentFragment();
98
+ const cases = node.cases;
99
+ const elseChildren = node.else;
100
+ if (cases) {
101
+ for (const c of cases) {
102
+ if (evaluateCondition(c.when, ctx)) {
103
+ if (c.children) {
104
+ renderChildArray(c.children, frag, ctx);
105
+ }
106
+ return frag;
107
+ }
108
+ }
109
+ }
110
+ // No case matched — render else branch if present
111
+ if (elseChildren) {
112
+ renderChildArray(elseChildren, frag, ctx);
113
+ }
114
+ return frag;
115
+ }
90
116
  /**
91
117
  * Define: stores named template children in the context defs map.
92
118
  * Renders nothing — content is materialized via Use.
@@ -1 +1 @@
1
- {"version":3,"file":"control.js","sourceRoot":"","sources":["../../../src/renderer/components/control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"control.js","sourceRoot":"","sources":["../../../src/renderer/components/control.ts"],"names":[],"mappings":"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"}