@portel/photon 1.34.2 → 1.35.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 (105) hide show
  1. package/README.md +1 -0
  2. package/dist/a2a/card-generator.js +1 -1
  3. package/dist/auto-ui/beam/external-mcp.js.map +1 -1
  4. package/dist/auto-ui/beam/routes/api-browse.js +1 -1
  5. package/dist/auto-ui/beam/routes/api-browse.js.map +1 -1
  6. package/dist/auto-ui/beam/routes/api-config.d.ts.map +1 -1
  7. package/dist/auto-ui/beam/routes/api-config.js +27 -8
  8. package/dist/auto-ui/beam/routes/api-config.js.map +1 -1
  9. package/dist/auto-ui/beam/subscription.d.ts.map +1 -1
  10. package/dist/auto-ui/beam/subscription.js +4 -1
  11. package/dist/auto-ui/beam/subscription.js.map +1 -1
  12. package/dist/auto-ui/beam.d.ts +2 -0
  13. package/dist/auto-ui/beam.d.ts.map +1 -1
  14. package/dist/auto-ui/beam.js +60 -3
  15. package/dist/auto-ui/beam.js.map +1 -1
  16. package/dist/auto-ui/bridge/renderers.d.ts.map +1 -1
  17. package/dist/auto-ui/bridge/renderers.js +44 -1
  18. package/dist/auto-ui/bridge/renderers.js.map +1 -1
  19. package/dist/auto-ui/streamable-http-transport.d.ts.map +1 -1
  20. package/dist/auto-ui/streamable-http-transport.js +1 -1
  21. package/dist/auto-ui/streamable-http-transport.js.map +1 -1
  22. package/dist/beam.bundle.js +81 -83
  23. package/dist/beam.bundle.js.map +3 -3
  24. package/dist/cli/commands/info.d.ts.map +1 -1
  25. package/dist/cli/commands/info.js +3 -1
  26. package/dist/cli/commands/info.js.map +1 -1
  27. package/dist/cli/commands/ps.d.ts +2 -4
  28. package/dist/cli/commands/ps.d.ts.map +1 -1
  29. package/dist/cli/commands/ps.js +5 -11
  30. package/dist/cli/commands/ps.js.map +1 -1
  31. package/dist/cli-alias.js +1 -0
  32. package/dist/cli-alias.js.map +1 -1
  33. package/dist/daemon/client.d.ts.map +1 -1
  34. package/dist/daemon/client.js +31 -19
  35. package/dist/daemon/client.js.map +1 -1
  36. package/dist/daemon/manager.d.ts.map +1 -1
  37. package/dist/daemon/manager.js +9 -0
  38. package/dist/daemon/manager.js.map +1 -1
  39. package/dist/daemon/registry-keys.d.ts +6 -0
  40. package/dist/daemon/registry-keys.d.ts.map +1 -1
  41. package/dist/daemon/registry-keys.js +9 -0
  42. package/dist/daemon/registry-keys.js.map +1 -1
  43. package/dist/daemon/server.js +154 -30
  44. package/dist/daemon/server.js.map +1 -1
  45. package/dist/deploy/cloudflare.js.map +1 -1
  46. package/dist/formats/format-registry.d.ts +32 -0
  47. package/dist/formats/format-registry.d.ts.map +1 -0
  48. package/dist/formats/format-registry.js +67 -0
  49. package/dist/formats/format-registry.js.map +1 -0
  50. package/dist/loader.d.ts +6 -0
  51. package/dist/loader.d.ts.map +1 -1
  52. package/dist/loader.js +121 -30
  53. package/dist/loader.js.map +1 -1
  54. package/dist/marketplace-manager.js +1 -1
  55. package/dist/marketplace-manager.js.map +1 -1
  56. package/dist/photon-cli-runner.d.ts.map +1 -1
  57. package/dist/photon-cli-runner.js +1 -0
  58. package/dist/photon-cli-runner.js.map +1 -1
  59. package/dist/serv/middleware/tenant.d.ts.map +1 -1
  60. package/dist/serv/middleware/tenant.js +1 -0
  61. package/dist/serv/middleware/tenant.js.map +1 -1
  62. package/dist/server.d.ts +10 -0
  63. package/dist/server.d.ts.map +1 -1
  64. package/dist/server.js +158 -153
  65. package/dist/server.js.map +1 -1
  66. package/dist/settings-persistence.d.ts +10 -0
  67. package/dist/settings-persistence.d.ts.map +1 -1
  68. package/dist/settings-persistence.js +25 -4
  69. package/dist/settings-persistence.js.map +1 -1
  70. package/dist/shared/audit.d.ts.map +1 -1
  71. package/dist/shared/audit.js +2 -1
  72. package/dist/shared/audit.js.map +1 -1
  73. package/dist/shared/identity.d.ts +50 -0
  74. package/dist/shared/identity.d.ts.map +1 -0
  75. package/dist/shared/identity.js +61 -0
  76. package/dist/shared/identity.js.map +1 -0
  77. package/dist/shared/memory-sqlite.d.ts.map +1 -1
  78. package/dist/shared/memory-sqlite.js +1 -0
  79. package/dist/shared/memory-sqlite.js.map +1 -1
  80. package/dist/shared/security.d.ts.map +1 -1
  81. package/dist/shared/security.js +7 -1
  82. package/dist/shared/security.js.map +1 -1
  83. package/dist/shared-utils.d.ts.map +1 -1
  84. package/dist/shared-utils.js +2 -2
  85. package/dist/shared-utils.js.map +1 -1
  86. package/dist/tasks/store.d.ts.map +1 -1
  87. package/dist/tasks/store.js +2 -1
  88. package/dist/tasks/store.js.map +1 -1
  89. package/dist/telemetry/context.d.ts.map +1 -1
  90. package/dist/telemetry/context.js +8 -2
  91. package/dist/telemetry/context.js.map +1 -1
  92. package/dist/types/server-types.d.ts +12 -0
  93. package/dist/types/server-types.d.ts.map +1 -1
  94. package/dist/version-notify.d.ts.map +1 -1
  95. package/dist/version-notify.js +2 -1
  96. package/dist/version-notify.js.map +1 -1
  97. package/package.json +4 -3
  98. package/templates/cloudflare/worker.ts.template +182 -4
  99. package/dist/photons/canvas/ui/canvas.photon.html +0 -1493
  100. package/dist/photons/canvas.photon.d.ts +0 -400
  101. package/dist/photons/canvas.photon.d.ts.map +0 -1
  102. package/dist/photons/canvas.photon.js +0 -662
  103. package/dist/photons/canvas.photon.js.map +0 -1
  104. package/dist/photons/canvas.photon.ts +0 -814
  105. package/dist/photons/ui/canvas.photon.html +0 -624
@@ -1 +1 @@
1
- {"version":3,"file":"version-notify.js","sourceRoot":"","sources":["../src/version-notify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"version-notify.js","sourceRoot":"","sources":["../src/version-notify.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@portel/photon",
3
- "version": "1.34.2",
3
+ "version": "1.35.0",
4
4
  "description": "Build MCP servers, CLI tools, and web dashboards for AI agents from a single TypeScript file.",
5
5
  "type": "module",
6
6
  "packageManager": "bun@1.2.20",
@@ -91,7 +91,8 @@
91
91
  "test:e2e": "bun run build && playwright test",
92
92
  "test:e2e:ui": "bun run build && playwright test --ui",
93
93
  "test:visual": "bun run build && bun run build:beam && tsx tests/beam/visual/visual.test.ts",
94
- "test:contracts": "tsx tests/contract/format-coverage.test.ts && tsx tests/contract/schema-contract.test.ts",
94
+ "test:contracts": "tsx tests/contract/format-coverage.test.ts && tsx tests/contract/schema-contract.test.ts && tsx tests/contract/render-dom.test.ts && tsx tests/contract/security-posture.test.ts && tsx tests/contract/coverage-gate.test.ts",
95
+ "test:conformance": "bun run build && tsx tests/conformance/conformance.test.ts",
95
96
  "test:a2ui": "bun run build && tsx tests/a2ui-mapper.test.ts && tsx tests/a2ui-e2e.test.ts && tsx tests/a2ui-renderer-script.test.ts",
96
97
  "test:dom": "bun run build && bun run build:beam && tsx tests/contract/dom-structure.test.ts",
97
98
  "test:promises": "bun run build && bun run build:beam && tsx tests/promises.test.ts",
@@ -140,7 +141,7 @@
140
141
  "@modelcontextprotocol/ext-apps": "^1.0.1",
141
142
  "@modelcontextprotocol/sdk": "^1.29.0",
142
143
  "@portel/cli": "^1.1.0",
143
- "@portel/photon-core": "^2.27.0",
144
+ "@portel/photon-core": "^2.27.1",
144
145
  "boxen": "^8.0.1",
145
146
  "chalk": "^5.4.1",
146
147
  "chart.js": "^4.5.1",
@@ -138,6 +138,166 @@ function createMemoryProxy(ctx: DurableObjectState) {
138
138
  };
139
139
  }
140
140
 
141
+ // ════════════════════════════════════════════════════════════════════════════
142
+ // Data provider — ctx.storage backing for this.data
143
+ // ════════════════════════════════════════════════════════════════════════════
144
+
145
+ function dataSegment(value: string): string {
146
+ return encodeURIComponent(value).replace(/%/g, '~') || '_';
147
+ }
148
+
149
+ function dataPrefix(photonName: string, scope: string, kind: 'table' | 'log', name: string): string {
150
+ const sessionId = requestContext.getStore()?.sessionId;
151
+ const scoped =
152
+ scope === 'photon'
153
+ ? `photon:${dataSegment(photonName)}`
154
+ : scope === 'session' && sessionId
155
+ ? `session:${dataSegment(sessionId)}:${dataSegment(photonName)}`
156
+ : (() => {
157
+ if (scope === 'global') {
158
+ throw new Error(
159
+ 'Global-scoped data on Cloudflare requires a shared global data Durable Object binding'
160
+ );
161
+ }
162
+ throw new Error(
163
+ 'Session-scoped data requires Mcp-Session-Id in the Cloudflare request context'
164
+ );
165
+ })();
166
+ return `data:${scoped}:${kind}:${dataSegment(name)}:`;
167
+ }
168
+
169
+ function createDataProvider(ctx: DurableObjectState, photonName: string) {
170
+ const cursorOffset = (cursor: string | number | null | undefined): number => {
171
+ if (cursor === null || cursor === undefined || cursor === '') return 0;
172
+ const parsed = Number(cursor);
173
+ return Number.isFinite(parsed) && parsed > 0 ? Math.floor(parsed) : 0;
174
+ };
175
+ const safeLimit = (limit: number | undefined, fallback = 100): number => {
176
+ if (limit === undefined) return fallback;
177
+ if (!Number.isFinite(limit) || limit <= 0) return fallback;
178
+ return Math.floor(limit);
179
+ };
180
+
181
+ const table = (name: string, scope = 'photon') => ({
182
+ async get(id: string) {
183
+ const envelope = await ctx.storage.get<any>(
184
+ `${dataPrefix(photonName, scope, 'table', name)}${dataSegment(id)}`
185
+ );
186
+ return envelope === undefined ? null : envelope.value;
187
+ },
188
+ async put(id: string, value: unknown) {
189
+ await ctx.storage.put(
190
+ `${dataPrefix(photonName, scope, 'table', name)}${dataSegment(id)}`,
191
+ { id, value, updated_at: new Date().toISOString() }
192
+ );
193
+ },
194
+ async delete(id: string) {
195
+ return ctx.storage.delete(`${dataPrefix(photonName, scope, 'table', name)}${dataSegment(id)}`);
196
+ },
197
+ async has(id: string) {
198
+ return (await ctx.storage.get(`${dataPrefix(photonName, scope, 'table', name)}${dataSegment(id)}`)) !== undefined;
199
+ },
200
+ async list(options: { prefix?: string; limit?: number; cursor?: string | number | null } = {}) {
201
+ const prefix = dataPrefix(photonName, scope, 'table', name);
202
+ const rows = Array.from((await ctx.storage.list<any>({ prefix })).values())
203
+ .filter((envelope) => !options.prefix || envelope.id.startsWith(options.prefix))
204
+ .sort((a, b) => String(a.id).localeCompare(String(b.id)));
205
+ const total = rows.length;
206
+ const offset = cursorOffset(options.cursor);
207
+ const limit = safeLimit(options.limit);
208
+ const page = rows.slice(offset, offset + limit);
209
+ return {
210
+ items: page.map((envelope) => ({
211
+ id: envelope.id,
212
+ value: envelope.value,
213
+ updated_at: envelope.updated_at,
214
+ })),
215
+ next_cursor: offset + page.length < total ? String(offset + page.length) : null,
216
+ total,
217
+ };
218
+ },
219
+ async clear() {
220
+ const keys = Array.from((await ctx.storage.list({ prefix: dataPrefix(photonName, scope, 'table', name) })).keys());
221
+ if (keys.length > 0) await ctx.storage.delete(keys);
222
+ },
223
+ });
224
+
225
+ const log = (name: string, scope = 'photon') => {
226
+ const prefix = () => dataPrefix(photonName, scope, 'log', name);
227
+ const metaKey = () => `${prefix()}__meta`;
228
+ const entryKey = (index: number) => `${prefix()}${String(index).padStart(20, '0')}`;
229
+ return {
230
+ async append(value: unknown) {
231
+ const meta = (await ctx.storage.get<{ nextIndex: number }>(metaKey())) ?? { nextIndex: 0 };
232
+ const entry = {
233
+ index: meta.nextIndex,
234
+ value,
235
+ timestamp: new Date().toISOString(),
236
+ };
237
+ await ctx.storage.put(entryKey(entry.index), { value, timestamp: entry.timestamp });
238
+ await ctx.storage.put(metaKey(), { nextIndex: entry.index + 1 });
239
+ return entry;
240
+ },
241
+ async read(options: { after?: string | number; before?: string | number; limit?: number } = {}) {
242
+ const p = prefix();
243
+ const after = options.after === undefined ? -1 : Number(options.after);
244
+ const before = options.before === undefined ? Number.POSITIVE_INFINITY : Number(options.before);
245
+ const entries = Array.from((await ctx.storage.list<any>({ prefix: p })).entries())
246
+ .filter(([key]) => key !== metaKey())
247
+ .map(([key, envelope]) => ({
248
+ index: Number(key.slice(p.length)),
249
+ value: envelope.value,
250
+ timestamp: envelope.timestamp,
251
+ }))
252
+ .filter((entry) => Number.isFinite(entry.index) && entry.index > after && entry.index < before)
253
+ .sort((a, b) => a.index - b.index);
254
+ const total = entries.length;
255
+ const limit = safeLimit(options.limit);
256
+ const page = entries.slice(0, limit);
257
+ return {
258
+ entries: page,
259
+ next_cursor: page.length < total && page.length > 0 ? String(page[page.length - 1].index) : null,
260
+ total,
261
+ };
262
+ },
263
+ async clear() {
264
+ const keys = Array.from((await ctx.storage.list({ prefix: prefix() })).keys());
265
+ if (keys.length > 0) await ctx.storage.delete(keys);
266
+ },
267
+ async delete() {
268
+ await this.clear();
269
+ },
270
+ };
271
+ };
272
+
273
+ return {
274
+ table,
275
+ log,
276
+ get sql() {
277
+ const sql = (ctx.storage as any).sql;
278
+ if (!sql) {
279
+ throw new Error(
280
+ 'Data SQL is not available on this Durable Object storage; enable SQLite-backed Durable Objects'
281
+ );
282
+ }
283
+ return {
284
+ exec: async (query: string, params: unknown[] = []) => {
285
+ const cursor = sql.exec(query, ...params);
286
+ const rows =
287
+ typeof cursor?.toArray === 'function'
288
+ ? cursor.toArray()
289
+ : Array.isArray(cursor?.rows)
290
+ ? cursor.rows
291
+ : Array.isArray(cursor)
292
+ ? cursor
293
+ : [];
294
+ return { rows };
295
+ },
296
+ };
297
+ },
298
+ };
299
+ }
300
+
141
301
  // ════════════════════════════════════════════════════════════════════════════
142
302
  // Schedule provider — DO alarm multiplexer
143
303
  // ════════════════════════════════════════════════════════════════════════════
@@ -433,6 +593,13 @@ function withCfCapabilities(
433
593
  configurable: false,
434
594
  });
435
595
 
596
+ Object.defineProperty(instance, 'data', {
597
+ value: createDataProvider(ctx, photonName),
598
+ writable: false,
599
+ enumerable: false,
600
+ configurable: false,
601
+ });
602
+
436
603
  Object.defineProperty(instance, 'emit', {
437
604
  value: (event: { emit?: string; [k: string]: unknown }) => {
438
605
  // SSE forwarding for in-flight tool calls. When an SSE
@@ -755,6 +922,8 @@ interface RequestContext {
755
922
  * the client didn't supply one.
756
923
  */
757
924
  progressToken?: string | number;
925
+ /** Client session id from Mcp-Session-Id, used for session-scoped data. */
926
+ sessionId?: string;
758
927
  }
759
928
 
760
929
  /**
@@ -1619,12 +1788,20 @@ abstract class BasePhotonDO extends DurableObject<Env> {
1619
1788
  // tool calls from JSON-only clients) use the plain JSON path.
1620
1789
  const accept = request.headers.get('Accept') ?? '';
1621
1790
  const wantsSse = accept.includes('text/event-stream');
1791
+ const sessionId = request.headers.get('Mcp-Session-Id') ?? undefined;
1622
1792
  if (body?.method === 'tools/call' && wantsSse) {
1623
- return mcpAuthContext.run(authContext, () => this._streamToolCall(body));
1793
+ return mcpAuthContext.run(authContext, () => this._streamToolCall(body, sessionId));
1624
1794
  }
1625
1795
 
1626
- const result = await mcpAuthContext.run(authContext, () =>
1627
- handleMCPRequest(body, this.photon, this.photonName, this.toolDefinitions)
1796
+ const result = await requestContext.run(
1797
+ {
1798
+ send: async () => {},
1799
+ pendingRequests: this.pendingRequests,
1800
+ sessionId,
1801
+ },
1802
+ () => mcpAuthContext.run(authContext, () =>
1803
+ handleMCPRequest(body, this.photon, this.photonName, this.toolDefinitions)
1804
+ )
1628
1805
  );
1629
1806
  return Response.json(result, { headers: CORS_HEADERS });
1630
1807
  }
@@ -1635,7 +1812,7 @@ abstract class BasePhotonDO extends DurableObject<Env> {
1635
1812
  * MCP requests over the same stream and await the client's responses
1636
1813
  * (which arrive as separate POST /mcp requests routed by `_handleMcpPost`).
1637
1814
  */
1638
- private _streamToolCall(rpcRequest: any): Response {
1815
+ private _streamToolCall(rpcRequest: any, sessionId?: string): Response {
1639
1816
  this.getPhoton();
1640
1817
  const { readable, writable } = new TransformStream();
1641
1818
  const writer = writable.getWriter();
@@ -1653,6 +1830,7 @@ abstract class BasePhotonDO extends DurableObject<Env> {
1653
1830
  send,
1654
1831
  pendingRequests: this.pendingRequests,
1655
1832
  progressToken: clientProgressToken ?? `progress_${toolName}`,
1833
+ sessionId,
1656
1834
  };
1657
1835
 
1658
1836
  // Fire-and-forget: the response stream stays open as long as the writer