@portel/photon 1.20.0 → 1.21.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 +5 -5
- package/dist/ag-ui/adapter.d.ts.map +1 -1
- package/dist/ag-ui/adapter.js +25 -0
- package/dist/ag-ui/adapter.js.map +1 -1
- package/dist/auto-ui/beam/routes/api-browse.d.ts.map +1 -1
- package/dist/auto-ui/beam/routes/api-browse.js +8 -49
- package/dist/auto-ui/beam/routes/api-browse.js.map +1 -1
- package/dist/auto-ui/beam/routes/api-config.d.ts.map +1 -1
- package/dist/auto-ui/beam/routes/api-config.js +161 -20
- package/dist/auto-ui/beam/routes/api-config.js.map +1 -1
- package/dist/auto-ui/beam.d.ts.map +1 -1
- package/dist/auto-ui/beam.js +24 -31
- package/dist/auto-ui/beam.js.map +1 -1
- package/dist/auto-ui/bridge/index.d.ts.map +1 -1
- package/dist/auto-ui/bridge/index.js +107 -11
- package/dist/auto-ui/bridge/index.js.map +1 -1
- package/dist/auto-ui/bridge/renderers.d.ts +14 -0
- package/dist/auto-ui/bridge/renderers.d.ts.map +1 -1
- package/dist/auto-ui/bridge/renderers.js +692 -61
- package/dist/auto-ui/bridge/renderers.js.map +1 -1
- package/dist/auto-ui/frontend/index.html +3 -3
- package/dist/auto-ui/frontend/pure-view.html +19 -19
- package/dist/auto-ui/streamable-http-transport.d.ts.map +1 -1
- package/dist/auto-ui/streamable-http-transport.js +144 -28
- package/dist/auto-ui/streamable-http-transport.js.map +1 -1
- package/dist/auto-ui/ui-resolver.d.ts +25 -0
- package/dist/auto-ui/ui-resolver.d.ts.map +1 -0
- package/dist/auto-ui/ui-resolver.js +95 -0
- package/dist/auto-ui/ui-resolver.js.map +1 -0
- package/dist/beam-form.bundle.js +26 -189
- package/dist/beam-form.bundle.js.map +4 -4
- package/dist/beam.bundle.js +1646 -494
- package/dist/beam.bundle.js.map +4 -4
- package/dist/cli/commands/beam.d.ts.map +1 -1
- package/dist/cli/commands/beam.js +47 -30
- package/dist/cli/commands/beam.js.map +1 -1
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/build.js +36 -7
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/cli/commands/daemon.d.ts.map +1 -1
- package/dist/cli/commands/daemon.js +12 -6
- package/dist/cli/commands/daemon.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +90 -50
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/mcp.d.ts.map +1 -1
- package/dist/cli/commands/mcp.js +18 -6
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/publish.d.ts +14 -0
- package/dist/cli/commands/publish.d.ts.map +1 -0
- package/dist/cli/commands/publish.js +126 -0
- package/dist/cli/commands/publish.js.map +1 -0
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +2 -0
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/serve.d.ts.map +1 -1
- package/dist/cli/commands/serve.js +14 -2
- package/dist/cli/commands/serve.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +3 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli-alias.d.ts.map +1 -1
- package/dist/cli-alias.js +2 -3
- package/dist/cli-alias.js.map +1 -1
- package/dist/context-store.d.ts +4 -4
- package/dist/context-store.d.ts.map +1 -1
- package/dist/context-store.js +18 -15
- package/dist/context-store.js.map +1 -1
- package/dist/context.d.ts +31 -2
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +86 -9
- package/dist/context.js.map +1 -1
- package/dist/daemon/client.d.ts +9 -1
- package/dist/daemon/client.d.ts.map +1 -1
- package/dist/daemon/client.js +58 -2
- package/dist/daemon/client.js.map +1 -1
- package/dist/daemon/manager.d.ts +5 -0
- package/dist/daemon/manager.d.ts.map +1 -1
- package/dist/daemon/manager.js +116 -34
- package/dist/daemon/manager.js.map +1 -1
- package/dist/daemon/ownership.d.ts +12 -0
- package/dist/daemon/ownership.d.ts.map +1 -0
- package/dist/daemon/ownership.js +55 -0
- package/dist/daemon/ownership.js.map +1 -0
- package/dist/daemon/protocol.d.ts +3 -1
- package/dist/daemon/protocol.d.ts.map +1 -1
- package/dist/daemon/protocol.js +14 -2
- package/dist/daemon/protocol.js.map +1 -1
- package/dist/daemon/server.js +587 -77
- package/dist/daemon/server.js.map +1 -1
- package/dist/daemon/session-manager.d.ts +9 -1
- package/dist/daemon/session-manager.d.ts.map +1 -1
- package/dist/daemon/session-manager.js +54 -1
- package/dist/daemon/session-manager.js.map +1 -1
- package/dist/daemon/worker-host.js +7 -0
- package/dist/daemon/worker-host.js.map +1 -1
- package/dist/daemon/worker-manager.d.ts +12 -0
- package/dist/daemon/worker-manager.d.ts.map +1 -1
- package/dist/daemon/worker-manager.js +147 -16
- package/dist/daemon/worker-manager.js.map +1 -1
- package/dist/daemon/worker-protocol.d.ts +3 -0
- package/dist/daemon/worker-protocol.d.ts.map +1 -1
- package/dist/deploy/cloudflare.d.ts.map +1 -1
- package/dist/deploy/cloudflare.js +2 -4
- package/dist/deploy/cloudflare.js.map +1 -1
- package/dist/loader.d.ts +10 -9
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +224 -115
- package/dist/loader.js.map +1 -1
- package/dist/marketplace-manager.d.ts +1 -1
- package/dist/marketplace-manager.d.ts.map +1 -1
- package/dist/marketplace-manager.js +5 -4
- package/dist/marketplace-manager.js.map +1 -1
- package/dist/photon-cli-runner.d.ts.map +1 -1
- package/dist/photon-cli-runner.js +66 -23
- package/dist/photon-cli-runner.js.map +1 -1
- package/dist/photon-doc-extractor.d.ts.map +1 -1
- package/dist/photon-doc-extractor.js +59 -15
- package/dist/photon-doc-extractor.js.map +1 -1
- package/dist/photons/canvas/ui/canvas.photon.html +1493 -0
- package/dist/photons/canvas.photon.d.ts +400 -0
- package/dist/photons/canvas.photon.d.ts.map +1 -0
- package/dist/photons/canvas.photon.js +662 -0
- package/dist/photons/canvas.photon.js.map +1 -0
- package/dist/photons/canvas.photon.ts +814 -0
- package/dist/photons/publish.photon.d.ts +97 -0
- package/dist/photons/publish.photon.d.ts.map +1 -0
- package/dist/photons/publish.photon.js +569 -0
- package/dist/photons/publish.photon.js.map +1 -0
- package/dist/photons/publish.photon.ts +683 -0
- package/dist/photons/ui/canvas.photon.html +624 -0
- package/dist/resource-server.d.ts.map +1 -1
- package/dist/resource-server.js +7 -1
- package/dist/resource-server.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +14 -16
- package/dist/server.js.map +1 -1
- package/dist/shared-utils.d.ts +4 -0
- package/dist/shared-utils.d.ts.map +1 -1
- package/dist/shared-utils.js +24 -2
- package/dist/shared-utils.js.map +1 -1
- package/dist/template-manager.d.ts.map +1 -1
- package/dist/template-manager.js +56 -234
- package/dist/template-manager.js.map +1 -1
- package/dist/tsx-compiler.d.ts +23 -0
- package/dist/tsx-compiler.d.ts.map +1 -0
- package/dist/tsx-compiler.js +221 -0
- package/dist/tsx-compiler.js.map +1 -0
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderers.js","sourceRoot":"","sources":["../../../src/auto-ui/bridge/renderers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,UAAU,uBAAuB;IACrC,iEAAiE;IACjE,6DAA6D;IAC7D,OAAO
|
|
1
|
+
{"version":3,"file":"renderers.js","sourceRoot":"","sources":["../../../src/auto-ui/bridge/renderers.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>Photon Beam</title>
|
|
7
|
-
<meta name="theme-color" content="#
|
|
7
|
+
<meta name="theme-color" content="#0B1018" />
|
|
8
8
|
<meta name="mobile-web-app-capable" content="yes" />
|
|
9
9
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
|
10
10
|
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
13
13
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
14
14
|
<link
|
|
15
|
-
href="https://fonts.googleapis.com/css2?family=
|
|
15
|
+
href="https://fonts.googleapis.com/css2?family=Sora:wght@300;400;500;600;700&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&family=Azeret+Mono:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500&display=swap"
|
|
16
16
|
rel="stylesheet"
|
|
17
17
|
/>
|
|
18
18
|
<script src="https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.min.js"></script>
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
height: 100%;
|
|
41
41
|
width: 100%;
|
|
42
42
|
overflow: hidden;
|
|
43
|
-
background: #
|
|
43
|
+
background: #0B1018;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
/* Prism.js Dark Theme (One Dark inspired) */
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<meta name="photon-template" content="true" />
|
|
7
|
-
<meta name="theme-color" content="#
|
|
7
|
+
<meta name="theme-color" content="#0B1018" />
|
|
8
8
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
9
9
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
10
10
|
<link
|
|
@@ -65,22 +65,22 @@
|
|
|
65
65
|
padding: 24px;
|
|
66
66
|
|
|
67
67
|
/* Colors — dark theme (matches beam-app :host defaults) */
|
|
68
|
-
--bg-app:
|
|
69
|
-
--bg-glass: hsla(
|
|
70
|
-
--bg-glass-strong: hsla(
|
|
71
|
-
--bg-panel:
|
|
72
|
-
--t-primary:
|
|
73
|
-
--t-secondary:
|
|
74
|
-
--t-muted:
|
|
75
|
-
--border-glass: hsla(
|
|
76
|
-
--accent-primary:
|
|
77
|
-
--accent-secondary:
|
|
78
|
-
--glow-primary:
|
|
79
|
-
--color-error: #
|
|
80
|
-
--color-error-glow: rgba(255,
|
|
81
|
-
--color-error-bg: rgba(255,
|
|
82
|
-
--color-success: #
|
|
83
|
-
--color-warning: #
|
|
68
|
+
--bg-app: #0B1018;
|
|
69
|
+
--bg-glass: hsla(215, 25%, 12%, 0.6);
|
|
70
|
+
--bg-glass-strong: hsla(215, 25%, 12%, 0.85);
|
|
71
|
+
--bg-panel: #131B28;
|
|
72
|
+
--t-primary: #F0EDE6;
|
|
73
|
+
--t-secondary: #8BA0A0;
|
|
74
|
+
--t-muted: #6B8A8A;
|
|
75
|
+
--border-glass: hsla(210, 20%, 50%, 0.12);
|
|
76
|
+
--accent-primary: #FFB000;
|
|
77
|
+
--accent-secondary: #78E6FF;
|
|
78
|
+
--glow-primary: rgba(255, 176, 0, 0.3);
|
|
79
|
+
--color-error: #FF6B6B;
|
|
80
|
+
--color-error-glow: rgba(255, 107, 107, 0.6);
|
|
81
|
+
--color-error-bg: rgba(255, 107, 107, 0.1);
|
|
82
|
+
--color-success: #58D68D;
|
|
83
|
+
--color-warning: #FFB347;
|
|
84
84
|
|
|
85
85
|
/* Spacing / radius / typography */
|
|
86
86
|
--space-xs: 4px;
|
|
@@ -93,8 +93,8 @@
|
|
|
93
93
|
--radius-md: 12px;
|
|
94
94
|
--radius-lg: 18px;
|
|
95
95
|
--radius-full: 9999px;
|
|
96
|
-
--font-sans: '
|
|
97
|
-
--font-mono: 'JetBrains Mono', monospace;
|
|
96
|
+
--font-sans: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;
|
|
97
|
+
--font-mono: 'Berkeley Mono', 'JetBrains Mono', 'Fira Code', monospace;
|
|
98
98
|
--text-md: 0.9rem;
|
|
99
99
|
--text-sm: 0.8rem;
|
|
100
100
|
--text-xs: 0.7rem;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamable-http-transport.d.ts","sourceRoot":"","sources":["../../src/auto-ui/streamable-http-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAU5D,OAAO,KAAK,EAOV,aAAa,EACb,cAAc,EACd,eAAe,EAChB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"streamable-http-transport.d.ts","sourceRoot":"","sources":["../../src/auto-ui/streamable-http-transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -172,6 +172,90 @@ function parseDurationToMs(duration) {
|
|
|
172
172
|
return 5 * 60 * 1000;
|
|
173
173
|
}
|
|
174
174
|
}
|
|
175
|
+
// ── Elicitation lifecycle helpers ──
|
|
176
|
+
/** Duration before an unanswered elicitation moves to pending approvals */
|
|
177
|
+
const ELICITATION_DEFER_MS = 30_000; // 30 seconds
|
|
178
|
+
/** Maximum time an elicitation stays alive in pending queue */
|
|
179
|
+
const ELICITATION_EXPIRY_MS = 30 * 60 * 1000; // 30 minutes
|
|
180
|
+
/** Interval between progress keepalive broadcasts */
|
|
181
|
+
const KEEPALIVE_INTERVAL_MS = 25_000; // 25 seconds (under 30s SDK default)
|
|
182
|
+
/** Clean up all timers associated with a pending elicitation */
|
|
183
|
+
function cleanupElicitation(pending) {
|
|
184
|
+
if (pending.timer)
|
|
185
|
+
clearTimeout(pending.timer);
|
|
186
|
+
if (pending.deferTimer)
|
|
187
|
+
clearTimeout(pending.deferTimer);
|
|
188
|
+
if (pending.keepaliveInterval)
|
|
189
|
+
clearInterval(pending.keepaliveInterval);
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Set up two-phase timeout for an elicitation:
|
|
193
|
+
* Phase 1 (30s): Modal shown to user. If no response, move to pending queue.
|
|
194
|
+
* Phase 2 (30min): Keepalive progress notifications sent. Final expiry cancels.
|
|
195
|
+
*/
|
|
196
|
+
function setupElicitationTimeout(elicitationId, pending, resolve) {
|
|
197
|
+
const photon = pending.photonName || 'unknown';
|
|
198
|
+
const method = pending.methodName || 'unknown';
|
|
199
|
+
const message = pending.message || 'Approval required';
|
|
200
|
+
// Phase 1: After 30s without response, defer to pending queue
|
|
201
|
+
pending.deferTimer = setTimeout(() => {
|
|
202
|
+
// Only defer if still pending (user may have responded)
|
|
203
|
+
if (!pendingElicitations.has(elicitationId))
|
|
204
|
+
return;
|
|
205
|
+
const approvalId = elicitationId; // reuse ID for linking
|
|
206
|
+
pending.approvalId = approvalId;
|
|
207
|
+
const expiresAt = new Date(Date.now() + ELICITATION_EXPIRY_MS).toISOString();
|
|
208
|
+
// Write to persistent approval storage (fire-and-forget, non-blocking)
|
|
209
|
+
void addApproval({
|
|
210
|
+
id: approvalId,
|
|
211
|
+
photon,
|
|
212
|
+
method,
|
|
213
|
+
message,
|
|
214
|
+
status: 'pending',
|
|
215
|
+
createdAt: new Date().toISOString(),
|
|
216
|
+
expiresAt,
|
|
217
|
+
});
|
|
218
|
+
// Tell Beam frontend to close modal and show badge
|
|
219
|
+
broadcastToBeam('beam/elicitation-deferred', {
|
|
220
|
+
elicitationId,
|
|
221
|
+
approvalId,
|
|
222
|
+
photon,
|
|
223
|
+
method,
|
|
224
|
+
message,
|
|
225
|
+
expiresAt,
|
|
226
|
+
});
|
|
227
|
+
// Start progress keepalives to prevent external MCP client timeout
|
|
228
|
+
pending.keepaliveInterval = setInterval(() => {
|
|
229
|
+
if (!pendingElicitations.has(elicitationId)) {
|
|
230
|
+
if (pending.keepaliveInterval)
|
|
231
|
+
clearInterval(pending.keepaliveInterval);
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
broadcastNotification('notifications/progress', {
|
|
235
|
+
progressToken: `approval_${elicitationId}`,
|
|
236
|
+
progress: 0,
|
|
237
|
+
total: 0,
|
|
238
|
+
message: `Waiting for user approval: ${message}`,
|
|
239
|
+
});
|
|
240
|
+
}, KEEPALIVE_INTERVAL_MS);
|
|
241
|
+
// Phase 2: Final expiry after 30 minutes
|
|
242
|
+
pending.timer = setTimeout(() => {
|
|
243
|
+
if (pendingElicitations.has(elicitationId)) {
|
|
244
|
+
cleanupElicitation(pending);
|
|
245
|
+
pendingElicitations.delete(elicitationId);
|
|
246
|
+
// Mark approval as expired on disk
|
|
247
|
+
void resolveApproval(photon, approvalId, 'rejected');
|
|
248
|
+
// Notify frontend
|
|
249
|
+
broadcastToBeam('beam/approval-resolved', {
|
|
250
|
+
approvalId,
|
|
251
|
+
photon,
|
|
252
|
+
status: 'expired',
|
|
253
|
+
});
|
|
254
|
+
resolve({ action: 'cancel' });
|
|
255
|
+
}
|
|
256
|
+
}, ELICITATION_EXPIRY_MS);
|
|
257
|
+
}, ELICITATION_DEFER_MS);
|
|
258
|
+
}
|
|
175
259
|
// Clean up old sessions periodically (30 min timeout)
|
|
176
260
|
const SESSION_TIMEOUT_MS = 30 * 60 * 1000;
|
|
177
261
|
let sessionCleanupInterval = null;
|
|
@@ -546,8 +630,17 @@ const handlers = {
|
|
|
546
630
|
};
|
|
547
631
|
}
|
|
548
632
|
pendingElicitations.delete(elicitationId);
|
|
549
|
-
|
|
550
|
-
|
|
633
|
+
cleanupElicitation(pending);
|
|
634
|
+
// If this elicitation was deferred to approvals, resolve the approval on disk too
|
|
635
|
+
if (pending.approvalId) {
|
|
636
|
+
const status = params?.cancelled ? 'rejected' : 'approved';
|
|
637
|
+
await resolveApproval(pending.photonName || 'unknown', pending.approvalId, status);
|
|
638
|
+
broadcastToBeam('beam/approval-resolved', {
|
|
639
|
+
approvalId: pending.approvalId,
|
|
640
|
+
photon: pending.photonName || 'unknown',
|
|
641
|
+
status,
|
|
642
|
+
});
|
|
643
|
+
}
|
|
551
644
|
if (params?.cancelled) {
|
|
552
645
|
pending.reject(new Error('Elicitation cancelled by user'));
|
|
553
646
|
}
|
|
@@ -580,8 +673,7 @@ const handlers = {
|
|
|
580
673
|
const pending = pendingElicitations.get(params.approvalId);
|
|
581
674
|
if (pending) {
|
|
582
675
|
pendingElicitations.delete(params.approvalId);
|
|
583
|
-
|
|
584
|
-
clearTimeout(pending.timer);
|
|
676
|
+
cleanupElicitation(pending);
|
|
585
677
|
if (params.approved) {
|
|
586
678
|
pending.resolve(true);
|
|
587
679
|
}
|
|
@@ -1159,7 +1251,7 @@ const handlers = {
|
|
|
1159
1251
|
const elicitResult = await requestBeamElicitation({
|
|
1160
1252
|
ask: 'confirm',
|
|
1161
1253
|
message: `"${methodName}" is a destructive operation. Continue?`,
|
|
1162
|
-
});
|
|
1254
|
+
}, { photonName: serverName, methodName });
|
|
1163
1255
|
if (elicitResult.action !== 'accept' || elicitResult.content === false) {
|
|
1164
1256
|
return {
|
|
1165
1257
|
jsonrpc: '2.0',
|
|
@@ -1203,7 +1295,7 @@ const handlers = {
|
|
|
1203
1295
|
ask: 'select',
|
|
1204
1296
|
message: 'Select an instance',
|
|
1205
1297
|
options: selectOptions,
|
|
1206
|
-
});
|
|
1298
|
+
}, { photonName: serverName, methodName });
|
|
1207
1299
|
if (elicitResult.action !== 'accept' || !elicitResult.content) {
|
|
1208
1300
|
return {
|
|
1209
1301
|
jsonrpc: '2.0',
|
|
@@ -1221,7 +1313,7 @@ const handlers = {
|
|
|
1221
1313
|
ask: 'text',
|
|
1222
1314
|
message: 'Enter a name for the new instance',
|
|
1223
1315
|
placeholder: 'e.g. groceries, work, personal',
|
|
1224
|
-
});
|
|
1316
|
+
}, { photonName: serverName, methodName });
|
|
1225
1317
|
if (nameResult.action !== 'accept' || !nameResult.content) {
|
|
1226
1318
|
return {
|
|
1227
1319
|
jsonrpc: '2.0',
|
|
@@ -1509,6 +1601,35 @@ const handlers = {
|
|
|
1509
1601
|
});
|
|
1510
1602
|
return;
|
|
1511
1603
|
}
|
|
1604
|
+
// Forward canvas:ui events — AI-generated UI layout with data-slot placeholders
|
|
1605
|
+
if (yieldValue?.emit === 'canvas:ui') {
|
|
1606
|
+
ctx.broadcast({
|
|
1607
|
+
jsonrpc: '2.0',
|
|
1608
|
+
method: 'beam/canvas',
|
|
1609
|
+
params: {
|
|
1610
|
+
type: 'ui',
|
|
1611
|
+
photon: photonName,
|
|
1612
|
+
method: methodName,
|
|
1613
|
+
html: yieldValue.html || '',
|
|
1614
|
+
},
|
|
1615
|
+
});
|
|
1616
|
+
return;
|
|
1617
|
+
}
|
|
1618
|
+
// Forward canvas:data events — data targeting named slots
|
|
1619
|
+
if (yieldValue?.emit === 'canvas:data') {
|
|
1620
|
+
ctx.broadcast({
|
|
1621
|
+
jsonrpc: '2.0',
|
|
1622
|
+
method: 'beam/canvas',
|
|
1623
|
+
params: {
|
|
1624
|
+
type: 'data',
|
|
1625
|
+
photon: photonName,
|
|
1626
|
+
method: methodName,
|
|
1627
|
+
slot: yieldValue.slot,
|
|
1628
|
+
data: yieldValue.data,
|
|
1629
|
+
},
|
|
1630
|
+
});
|
|
1631
|
+
return;
|
|
1632
|
+
}
|
|
1512
1633
|
// Forward render:clear events — clear the render zone
|
|
1513
1634
|
if (yieldValue?.emit === 'render:clear') {
|
|
1514
1635
|
ctx.broadcast({
|
|
@@ -2100,7 +2221,7 @@ const handlers = {
|
|
|
2100
2221
|
}
|
|
2101
2222
|
// If input_required right now, handle elicitation before waiting
|
|
2102
2223
|
if (task.state === 'input_required' && task.input) {
|
|
2103
|
-
const elicitResult = await requestBeamElicitation(task.input);
|
|
2224
|
+
const elicitResult = await requestBeamElicitation(task.input, { photonName: task.photon || 'task', methodName: task.method || taskId });
|
|
2104
2225
|
if (elicitResult.action === 'accept') {
|
|
2105
2226
|
resolveTaskInput(taskId, elicitResult.content);
|
|
2106
2227
|
}
|
|
@@ -2121,7 +2242,7 @@ const handlers = {
|
|
|
2121
2242
|
}
|
|
2122
2243
|
if (current.state === 'input_required' && current.input) {
|
|
2123
2244
|
// Send elicitation to the client
|
|
2124
|
-
const elicitResult = await requestBeamElicitation(current.input);
|
|
2245
|
+
const elicitResult = await requestBeamElicitation(current.input, { photonName: task.photon || 'task', methodName: task.method || taskId });
|
|
2125
2246
|
if (elicitResult.action === 'accept') {
|
|
2126
2247
|
resolveTaskInput(taskId, elicitResult.content);
|
|
2127
2248
|
}
|
|
@@ -2408,7 +2529,7 @@ async function handleBeamRemove(req, ctx, args) {
|
|
|
2408
2529
|
const elicitResult = await requestBeamElicitation({
|
|
2409
2530
|
ask: 'confirm',
|
|
2410
2531
|
message: `Remove "${photonName}"? The photon and its assets will be moved to trash.`,
|
|
2411
|
-
});
|
|
2532
|
+
}, { photonName, methodName: 'remove' });
|
|
2412
2533
|
if (elicitResult.action !== 'accept' || elicitResult.content === false) {
|
|
2413
2534
|
return {
|
|
2414
2535
|
jsonrpc: '2.0',
|
|
@@ -3416,8 +3537,7 @@ export function sendToSession(sessionId, method, params) {
|
|
|
3416
3537
|
*/
|
|
3417
3538
|
export function requestExternalElicitation(mcpName, request) {
|
|
3418
3539
|
const elicitationId = randomUUID();
|
|
3419
|
-
return new Promise((resolve
|
|
3420
|
-
// Store pending elicitation
|
|
3540
|
+
return new Promise((resolve) => {
|
|
3421
3541
|
const pending = {
|
|
3422
3542
|
resolve: (value) => {
|
|
3423
3543
|
resolve({ action: 'accept', content: value });
|
|
@@ -3430,7 +3550,10 @@ export function requestExternalElicitation(mcpName, request) {
|
|
|
3430
3550
|
resolve({ action: 'decline' });
|
|
3431
3551
|
}
|
|
3432
3552
|
},
|
|
3433
|
-
sessionId: '',
|
|
3553
|
+
sessionId: '',
|
|
3554
|
+
photonName: mcpName,
|
|
3555
|
+
methodName: 'elicitation',
|
|
3556
|
+
message: request.message,
|
|
3434
3557
|
};
|
|
3435
3558
|
pendingElicitations.set(elicitationId, pending);
|
|
3436
3559
|
// Broadcast elicitation request to all Beam clients
|
|
@@ -3442,13 +3565,8 @@ export function requestExternalElicitation(mcpName, request) {
|
|
|
3442
3565
|
schema: request.requestedSchema,
|
|
3443
3566
|
url: request.url,
|
|
3444
3567
|
});
|
|
3445
|
-
//
|
|
3446
|
-
pending
|
|
3447
|
-
if (pendingElicitations.has(elicitationId)) {
|
|
3448
|
-
pendingElicitations.delete(elicitationId);
|
|
3449
|
-
resolve({ action: 'cancel' });
|
|
3450
|
-
}
|
|
3451
|
-
}, 300000);
|
|
3568
|
+
// Two-phase timeout: 30s modal → pending queue with keepalives → 30min expiry
|
|
3569
|
+
setupElicitationTimeout(elicitationId, pending, resolve);
|
|
3452
3570
|
});
|
|
3453
3571
|
}
|
|
3454
3572
|
/**
|
|
@@ -3456,7 +3574,7 @@ export function requestExternalElicitation(mcpName, request) {
|
|
|
3456
3574
|
* Unlike requestExternalElicitation which uses MCP form/url mode, this sends
|
|
3457
3575
|
* the ask type directly so the elicitation modal renders the appropriate UI.
|
|
3458
3576
|
*/
|
|
3459
|
-
function requestBeamElicitation(data) {
|
|
3577
|
+
function requestBeamElicitation(data, context) {
|
|
3460
3578
|
const elicitationId = randomUUID();
|
|
3461
3579
|
return new Promise((resolve) => {
|
|
3462
3580
|
const pending = {
|
|
@@ -3472,6 +3590,9 @@ function requestBeamElicitation(data) {
|
|
|
3472
3590
|
}
|
|
3473
3591
|
},
|
|
3474
3592
|
sessionId: '',
|
|
3593
|
+
photonName: context?.photonName,
|
|
3594
|
+
methodName: context?.methodName,
|
|
3595
|
+
message: data.message,
|
|
3475
3596
|
};
|
|
3476
3597
|
pendingElicitations.set(elicitationId, pending);
|
|
3477
3598
|
// Broadcast with Photon-native ask format (not MCP form mode)
|
|
@@ -3479,13 +3600,8 @@ function requestBeamElicitation(data) {
|
|
|
3479
3600
|
elicitationId,
|
|
3480
3601
|
...data,
|
|
3481
3602
|
});
|
|
3482
|
-
//
|
|
3483
|
-
pending
|
|
3484
|
-
if (pendingElicitations.has(elicitationId)) {
|
|
3485
|
-
pendingElicitations.delete(elicitationId);
|
|
3486
|
-
resolve({ action: 'cancel' });
|
|
3487
|
-
}
|
|
3488
|
-
}, 300000);
|
|
3603
|
+
// Two-phase timeout: 30s modal → pending queue with keepalives → 30min expiry
|
|
3604
|
+
setupElicitationTimeout(elicitationId, pending, resolve);
|
|
3489
3605
|
});
|
|
3490
3606
|
}
|
|
3491
3607
|
//# sourceMappingURL=streamable-http-transport.js.map
|