@portel/photon 1.28.2 → 1.31.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 (183) hide show
  1. package/README.md +42 -11
  2. package/dist/asset-resolver.d.ts +44 -0
  3. package/dist/asset-resolver.d.ts.map +1 -0
  4. package/dist/asset-resolver.js +105 -0
  5. package/dist/asset-resolver.js.map +1 -0
  6. package/dist/auto-ui/beam/external-mcp-manager.d.ts +73 -0
  7. package/dist/auto-ui/beam/external-mcp-manager.d.ts.map +1 -0
  8. package/dist/auto-ui/beam/external-mcp-manager.js +65 -0
  9. package/dist/auto-ui/beam/external-mcp-manager.js.map +1 -0
  10. package/dist/auto-ui/beam/external-mcp.d.ts.map +1 -1
  11. package/dist/auto-ui/beam/external-mcp.js +25 -1
  12. package/dist/auto-ui/beam/external-mcp.js.map +1 -1
  13. package/dist/auto-ui/beam/photon-management.d.ts.map +1 -1
  14. package/dist/auto-ui/beam/photon-management.js +11 -8
  15. package/dist/auto-ui/beam/photon-management.js.map +1 -1
  16. package/dist/auto-ui/beam/routes/api-browse.d.ts.map +1 -1
  17. package/dist/auto-ui/beam/routes/api-browse.js +7 -4
  18. package/dist/auto-ui/beam/routes/api-browse.js.map +1 -1
  19. package/dist/auto-ui/beam/routes/api-config.d.ts.map +1 -1
  20. package/dist/auto-ui/beam/routes/api-config.js +3 -2
  21. package/dist/auto-ui/beam/routes/api-config.js.map +1 -1
  22. package/dist/auto-ui/beam/routes/api-marketplace.d.ts.map +1 -1
  23. package/dist/auto-ui/beam/routes/api-marketplace.js +6 -2
  24. package/dist/auto-ui/beam/routes/api-marketplace.js.map +1 -1
  25. package/dist/auto-ui/beam/startup.js.map +1 -1
  26. package/dist/auto-ui/beam/types.d.ts +5 -2
  27. package/dist/auto-ui/beam/types.d.ts.map +1 -1
  28. package/dist/auto-ui/beam.d.ts.map +1 -1
  29. package/dist/auto-ui/beam.js +239 -88
  30. package/dist/auto-ui/beam.js.map +1 -1
  31. package/dist/auto-ui/bridge/index.d.ts.map +1 -1
  32. package/dist/auto-ui/bridge/index.js +11 -0
  33. package/dist/auto-ui/bridge/index.js.map +1 -1
  34. package/dist/auto-ui/bridge/types.d.ts +2 -0
  35. package/dist/auto-ui/bridge/types.d.ts.map +1 -1
  36. package/dist/auto-ui/openapi-generator.js +1 -4
  37. package/dist/auto-ui/openapi-generator.js.map +1 -1
  38. package/dist/auto-ui/photon-bridge.d.ts +4 -0
  39. package/dist/auto-ui/photon-bridge.d.ts.map +1 -1
  40. package/dist/auto-ui/photon-bridge.js.map +1 -1
  41. package/dist/auto-ui/photon-host.js.map +1 -1
  42. package/dist/auto-ui/streamable-http-transport.d.ts +7 -0
  43. package/dist/auto-ui/streamable-http-transport.d.ts.map +1 -1
  44. package/dist/auto-ui/streamable-http-transport.js +252 -43
  45. package/dist/auto-ui/streamable-http-transport.js.map +1 -1
  46. package/dist/auto-ui/types.d.ts +24 -2
  47. package/dist/auto-ui/types.d.ts.map +1 -1
  48. package/dist/auto-ui/types.js.map +1 -1
  49. package/dist/beam.bundle.js +202 -24
  50. package/dist/beam.bundle.js.map +3 -3
  51. package/dist/capability-negotiator.d.ts +39 -1
  52. package/dist/capability-negotiator.d.ts.map +1 -1
  53. package/dist/capability-negotiator.js +5 -0
  54. package/dist/capability-negotiator.js.map +1 -1
  55. package/dist/cf-bindings-parser.d.ts +15 -0
  56. package/dist/cf-bindings-parser.d.ts.map +1 -0
  57. package/dist/cf-bindings-parser.js +98 -0
  58. package/dist/cf-bindings-parser.js.map +1 -0
  59. package/dist/cf-usage-scanner.d.ts +76 -0
  60. package/dist/cf-usage-scanner.d.ts.map +1 -0
  61. package/dist/cf-usage-scanner.js +179 -0
  62. package/dist/cf-usage-scanner.js.map +1 -0
  63. package/dist/cli/commands/build.d.ts.map +1 -1
  64. package/dist/cli/commands/build.js +124 -16
  65. package/dist/cli/commands/build.js.map +1 -1
  66. package/dist/cli/commands/cf.d.ts +18 -0
  67. package/dist/cli/commands/cf.d.ts.map +1 -0
  68. package/dist/cli/commands/cf.js +207 -0
  69. package/dist/cli/commands/cf.js.map +1 -0
  70. package/dist/cli/commands/info.js +1 -1
  71. package/dist/cli/commands/info.js.map +1 -1
  72. package/dist/cli/commands/init.d.ts.map +1 -1
  73. package/dist/cli/commands/init.js +59 -46
  74. package/dist/cli/commands/init.js.map +1 -1
  75. package/dist/cli/commands/run.d.ts.map +1 -1
  76. package/dist/cli/commands/run.js +3 -0
  77. package/dist/cli/commands/run.js.map +1 -1
  78. package/dist/cli/index.d.ts.map +1 -1
  79. package/dist/cli/index.js +43 -6
  80. package/dist/cli/index.js.map +1 -1
  81. package/dist/daemon/client.d.ts.map +1 -1
  82. package/dist/daemon/client.js +40 -33
  83. package/dist/daemon/client.js.map +1 -1
  84. package/dist/daemon/manager.d.ts +6 -2
  85. package/dist/daemon/manager.d.ts.map +1 -1
  86. package/dist/daemon/manager.js +75 -20
  87. package/dist/daemon/manager.js.map +1 -1
  88. package/dist/daemon/server.js +69 -11
  89. package/dist/daemon/server.js.map +1 -1
  90. package/dist/daemon/worker-host.js.map +1 -1
  91. package/dist/deploy/cloudflare.d.ts +27 -0
  92. package/dist/deploy/cloudflare.d.ts.map +1 -1
  93. package/dist/deploy/cloudflare.js +210 -3
  94. package/dist/deploy/cloudflare.js.map +1 -1
  95. package/dist/editor-support/docblock-tag-catalog.d.ts.map +1 -1
  96. package/dist/editor-support/docblock-tag-catalog.js +32 -2
  97. package/dist/editor-support/docblock-tag-catalog.js.map +1 -1
  98. package/dist/embedded-runtime.js.map +1 -1
  99. package/dist/format/registry.d.ts +83 -0
  100. package/dist/format/registry.d.ts.map +1 -0
  101. package/dist/format/registry.js +139 -0
  102. package/dist/format/registry.js.map +1 -0
  103. package/dist/format/seed.d.ts +18 -0
  104. package/dist/format/seed.d.ts.map +1 -0
  105. package/dist/format/seed.js +246 -0
  106. package/dist/format/seed.js.map +1 -0
  107. package/dist/loader.d.ts +61 -66
  108. package/dist/loader.d.ts.map +1 -1
  109. package/dist/loader.js +315 -327
  110. package/dist/loader.js.map +1 -1
  111. package/dist/photon-cli-runner.d.ts.map +1 -1
  112. package/dist/photon-cli-runner.js +20 -11
  113. package/dist/photon-cli-runner.js.map +1 -1
  114. package/dist/photons/maker.photon.d.ts +2 -2
  115. package/dist/photons/maker.photon.d.ts.map +1 -1
  116. package/dist/photons/maker.photon.js +5 -6
  117. package/dist/photons/maker.photon.js.map +1 -1
  118. package/dist/photons/maker.photon.ts +5 -6
  119. package/dist/resource-server.d.ts +55 -15
  120. package/dist/resource-server.d.ts.map +1 -1
  121. package/dist/resource-server.js +205 -50
  122. package/dist/resource-server.js.map +1 -1
  123. package/dist/runtime/cf-local.d.ts +157 -0
  124. package/dist/runtime/cf-local.d.ts.map +1 -0
  125. package/dist/runtime/cf-local.js +406 -0
  126. package/dist/runtime/cf-local.js.map +1 -0
  127. package/dist/server.d.ts +117 -2
  128. package/dist/server.d.ts.map +1 -1
  129. package/dist/server.js +681 -67
  130. package/dist/server.js.map +1 -1
  131. package/dist/settings-persistence.d.ts +50 -0
  132. package/dist/settings-persistence.d.ts.map +1 -0
  133. package/dist/settings-persistence.js +188 -0
  134. package/dist/settings-persistence.js.map +1 -0
  135. package/dist/shared/asset-encoding.d.ts +30 -0
  136. package/dist/shared/asset-encoding.d.ts.map +1 -0
  137. package/dist/shared/asset-encoding.js +0 -0
  138. package/dist/shared/asset-encoding.js.map +1 -0
  139. package/dist/shared/audit-sqlite.d.ts.map +1 -1
  140. package/dist/shared/audit-sqlite.js +0 -1
  141. package/dist/shared/audit-sqlite.js.map +1 -1
  142. package/dist/shared/cross-origin-headers.d.ts +47 -0
  143. package/dist/shared/cross-origin-headers.d.ts.map +1 -0
  144. package/dist/shared/cross-origin-headers.js +61 -0
  145. package/dist/shared/cross-origin-headers.js.map +1 -0
  146. package/dist/shared/error-handler.d.ts.map +1 -1
  147. package/dist/shared/error-handler.js +3 -1
  148. package/dist/shared/error-handler.js.map +1 -1
  149. package/dist/shared/expose-route-extractor.d.ts +36 -0
  150. package/dist/shared/expose-route-extractor.d.ts.map +1 -0
  151. package/dist/shared/expose-route-extractor.js +64 -0
  152. package/dist/shared/expose-route-extractor.js.map +1 -0
  153. package/dist/shared/extract-claims.d.ts +33 -0
  154. package/dist/shared/extract-claims.d.ts.map +1 -0
  155. package/dist/shared/extract-claims.js +60 -0
  156. package/dist/shared/extract-claims.js.map +1 -0
  157. package/dist/shared/http-route-extractor.d.ts +6 -0
  158. package/dist/shared/http-route-extractor.d.ts.map +1 -1
  159. package/dist/shared/http-route-extractor.js +29 -5
  160. package/dist/shared/http-route-extractor.js.map +1 -1
  161. package/dist/shared/instance-binding.d.ts +53 -0
  162. package/dist/shared/instance-binding.d.ts.map +1 -0
  163. package/dist/shared/instance-binding.js +85 -0
  164. package/dist/shared/instance-binding.js.map +1 -0
  165. package/dist/shared/io.d.ts.map +1 -1
  166. package/dist/shared/io.js +5 -2
  167. package/dist/shared/io.js.map +1 -1
  168. package/dist/shared/logger.js.map +1 -1
  169. package/dist/shared/sqlite-runtime.d.ts.map +1 -1
  170. package/dist/shared/sqlite-runtime.js +0 -1
  171. package/dist/shared/sqlite-runtime.js.map +1 -1
  172. package/dist/task-executor.js.map +1 -1
  173. package/dist/telemetry/sdk.d.ts.map +1 -1
  174. package/dist/telemetry/sdk.js +0 -1
  175. package/dist/telemetry/sdk.js.map +1 -1
  176. package/dist/test-runner.d.ts.map +1 -1
  177. package/dist/test-runner.js.map +1 -1
  178. package/dist/types/server-types.d.ts +16 -7
  179. package/dist/types/server-types.d.ts.map +1 -1
  180. package/package.json +14 -4
  181. package/templates/cloudflare/worker.ts.template +428 -14
  182. package/templates/cloudflare/wrangler.toml.template +2 -7
  183. package/templates/photon.template.ts +13 -0
@@ -0,0 +1,406 @@
1
+ /**
2
+ * Local Cloudflare runtime adapter for the new `Cloudflare` injection
3
+ * surface. Backs `private cf: Cloudflare` constructor params (and the
4
+ * forgiving auto-inject path for plain classes that reference
5
+ * `this.cf.*`) with a miniflare sandbox when a photon runs outside a
6
+ * deployed Worker.
7
+ *
8
+ * Auto-naming rule (single source of truth — `bindingNameFor`):
9
+ * cf.kv() → <photon>_kv
10
+ * cf.kv('x') → <photon>_x_kv
11
+ * cf.ai → AI (shared, single per Worker)
12
+ * cf.images → IMAGES (shared)
13
+ * cf.browser → BROWSER (shared)
14
+ *
15
+ * Photons no longer pick global binding names. The framework derives
16
+ * them from the photon name plus an optional qualifier so per-photon
17
+ * resources never collide.
18
+ *
19
+ * Boot is keyed off the `cf-usage-scanner` output: every literal
20
+ * qualifier the photon uses is configured in miniflare up front, so
21
+ * the first call to a binding doesn't pay a reconfigure cost. Dynamic
22
+ * qualifiers (`cf.kv(this.tenantId)`) only get the default binding
23
+ * unless the author lists overrides in `protected cfBindings`.
24
+ *
25
+ * Storage persists under `<baseDir>/.data/cf-sandbox/<photon>/` so
26
+ * state survives process restarts and matches the Phase A2 layout.
27
+ */
28
+ import * as path from 'path';
29
+ import { bindingNameFor, } from '@portel/photon-core';
30
+ import { expandScopedBindingNames } from '../cf-usage-scanner.js';
31
+ /**
32
+ * Merge two CfBindingsConfig blobs. Used by the deploy pipeline to
33
+ * stack a per-photon override JSON on top of in-source declarations.
34
+ * Boolean shared flags are last-write-wins; per-binding records merge
35
+ * key-by-key.
36
+ */
37
+ export function mergeBindings(base, override) {
38
+ const merged = { ...(base ?? {}) };
39
+ if (!override)
40
+ return merged;
41
+ for (const cat of ['kv', 'r2', 'queue', 'vectorize']) {
42
+ const ov = override[cat];
43
+ if (ov) {
44
+ merged[cat] = { ...(merged[cat] ?? {}), ...ov };
45
+ }
46
+ }
47
+ if (override.d1) {
48
+ merged.d1 = { ...(merged.d1 ?? {}), ...override.d1 };
49
+ }
50
+ for (const cat of ['ai', 'images', 'browser']) {
51
+ if (typeof override[cat] === 'boolean')
52
+ merged[cat] = override[cat];
53
+ }
54
+ return merged;
55
+ }
56
+ const SCOPED = ['kv', 'r2', 'd1', 'queue', 'vectorize'];
57
+ const SHARED_BINDING_NAMES = {
58
+ ai: 'AI',
59
+ images: 'IMAGES',
60
+ browser: 'BROWSER',
61
+ };
62
+ export class CFLocalRuntime {
63
+ mfPromise = null;
64
+ photonName;
65
+ baseDir;
66
+ usage;
67
+ overrides;
68
+ /**
69
+ * Legacy mode means the photon was constructed via the Phase-A2
70
+ * positional `(name, cfBindings, baseDir)` form. In that mode the
71
+ * `qualifier` arg passed to `cf.kv(...)` etc. is treated as a
72
+ * literal binding name (not run through `bindingNameFor`), and
73
+ * miniflare seeds the names declared in `overrides.<category>`.
74
+ * The new options-form constructor flips this to false and the
75
+ * auto-naming convention takes over.
76
+ */
77
+ legacyMode;
78
+ legacyBooleanFlags;
79
+ constructor(optsOrName, legacyBindings, legacyBaseDir) {
80
+ if (typeof optsOrName === 'string') {
81
+ this.photonName = optsOrName;
82
+ this.baseDir = legacyBaseDir ?? '';
83
+ this.usage = null;
84
+ this.overrides = legacyBindings ?? {};
85
+ this.legacyMode = true;
86
+ this.legacyBooleanFlags = {
87
+ ai: legacyBindings?.ai === true,
88
+ images: legacyBindings?.images === true,
89
+ browser: legacyBindings?.browser === true,
90
+ };
91
+ }
92
+ else {
93
+ this.photonName = optsOrName.photonName;
94
+ this.baseDir = optsOrName.baseDir;
95
+ this.usage = optsOrName.usage ?? null;
96
+ this.overrides = optsOrName.overrides ?? {};
97
+ this.legacyMode = false;
98
+ this.legacyBooleanFlags = { ai: false, images: false, browser: false };
99
+ }
100
+ }
101
+ /** Legacy alias retained for callers that built against the Phase-A2 API. */
102
+ getBindings() {
103
+ return this.overrides;
104
+ }
105
+ /** Inspector for tools/CLI: lists every binding miniflare seeded. */
106
+ getSeededBindings() {
107
+ const out = {};
108
+ if (this.legacyMode) {
109
+ // Legacy: seed exactly what `cfBindings` declared, no auto-naming.
110
+ for (const cat of SCOPED) {
111
+ const declared = this.overrides[cat];
112
+ if (!declared) {
113
+ out[cat] = [];
114
+ continue;
115
+ }
116
+ out[cat] = Object.keys(declared);
117
+ }
118
+ return out;
119
+ }
120
+ if (!this.usage) {
121
+ for (const cat of SCOPED)
122
+ out[cat] = [bindingNameFor(this.photonName, cat)];
123
+ return out;
124
+ }
125
+ return expandScopedBindingNames(this.photonName, this.usage);
126
+ }
127
+ /**
128
+ * Resolve the miniflare binding name for a `cf.<cat>(qualifier?)`
129
+ * call. In auto-naming mode runs through `bindingNameFor`; in
130
+ * legacy mode treats the arg as a literal binding name (matching
131
+ * the Phase-A2 `cf.kv(name)` semantics).
132
+ */
133
+ resolveBindingName(category, qualifier) {
134
+ if (this.legacyMode) {
135
+ // Legacy callers pass the binding name directly. Empty / missing
136
+ // is invalid in this mode (the old API required a name).
137
+ if (!qualifier) {
138
+ throw new Error(`cf.${category}() in legacy mode requires the binding name as an argument ` +
139
+ `(e.g. cf.${category}('cache')). Migrate to the new options-object ` +
140
+ `constructor to use auto-naming.`);
141
+ }
142
+ return qualifier;
143
+ }
144
+ return bindingNameFor(this.photonName, category, qualifier);
145
+ }
146
+ async dispose() {
147
+ if (this.mfPromise) {
148
+ const mf = await this.mfPromise;
149
+ await mf.dispose();
150
+ this.mfPromise = null;
151
+ }
152
+ }
153
+ // ────────────────────────────────────────────────────────────────
154
+ // Cloudflare interface — scoped categories with auto-naming
155
+ // ────────────────────────────────────────────────────────────────
156
+ kv(qualifier) {
157
+ return this.scopedBinding('kv', qualifier, ['get', 'put', 'delete', 'list']);
158
+ }
159
+ r2(qualifier) {
160
+ return this.scopedBinding('r2', qualifier, [
161
+ 'head',
162
+ 'get',
163
+ 'put',
164
+ 'delete',
165
+ 'list',
166
+ ]);
167
+ }
168
+ d1(qualifier) {
169
+ const name = this.resolveBindingName('d1', qualifier);
170
+ const get = this.getMiniflare.bind(this);
171
+ return {
172
+ prepare: (query) => makeD1PreparedStatement(get, name, query, []),
173
+ batch: async (statements) => {
174
+ const mf = await get();
175
+ const db = (await mf.getD1Database(name));
176
+ const real = await Promise.all(statements.map(async (s) => {
177
+ const candidate = s._materialize;
178
+ return candidate ? candidate() : s;
179
+ }));
180
+ return db.batch(real);
181
+ },
182
+ exec: async (query) => {
183
+ const mf = await get();
184
+ const db = (await mf.getD1Database(name));
185
+ return db.exec(query);
186
+ },
187
+ dump: async () => {
188
+ const mf = await get();
189
+ const db = (await mf.getD1Database(name));
190
+ return db.dump();
191
+ },
192
+ };
193
+ }
194
+ queue(qualifier) {
195
+ return this.scopedBinding('queue', qualifier, ['send', 'sendBatch']);
196
+ }
197
+ vectorize(qualifier) {
198
+ return this.envBindingProxy(this.resolveBindingName('vectorize', qualifier), [
199
+ 'insert',
200
+ 'upsert',
201
+ 'query',
202
+ 'getByIds',
203
+ 'deleteByIds',
204
+ ]);
205
+ }
206
+ // ────────────────────────────────────────────────────────────────
207
+ // Cloudflare interface — shared categories (single per Worker)
208
+ // ────────────────────────────────────────────────────────────────
209
+ get ai() {
210
+ const enabled = this.usage?.shared.ai === true || this.legacyBooleanFlags.ai;
211
+ if (!enabled) {
212
+ return throwingShared('ai', 'reference this.cf.ai (or cf.ai) somewhere in the photon to enable');
213
+ }
214
+ return this.envBindingProxy(SHARED_BINDING_NAMES.ai, ['run']);
215
+ }
216
+ get images() {
217
+ const enabled = this.usage?.shared.images === true || this.legacyBooleanFlags.images;
218
+ if (!enabled) {
219
+ return throwingShared('images', 'reference this.cf.images (or cf.images) somewhere in the photon to enable');
220
+ }
221
+ return this.envBindingProxy(SHARED_BINDING_NAMES.images, [
222
+ 'info',
223
+ 'input',
224
+ ]);
225
+ }
226
+ get browser() {
227
+ return throwingShared('browser', 'browser rendering requires a Chromium dep and is deferred until a photon dogfoods it');
228
+ }
229
+ fetch(_input, _init) {
230
+ return Promise.reject(new Error('cf.fetch() — not yet supported on the local sandbox. Service-binding ' +
231
+ 'fetch lands with the deploy adapter; until then, use plain `fetch()` ' +
232
+ 'or wire the photon up to a deployed Worker.'));
233
+ }
234
+ // ────────────────────────────────────────────────────────────────
235
+ // Internals
236
+ // ────────────────────────────────────────────────────────────────
237
+ /** Lazily boot a Miniflare instance scoped to this photon. */
238
+ getMiniflare() {
239
+ if (!this.mfPromise) {
240
+ this.mfPromise = (async () => {
241
+ const { Miniflare } = await import('miniflare');
242
+ const sandbox = path.join(this.baseDir, '.data', 'cf-sandbox', this.photonName);
243
+ const seeded = this.getSeededBindings();
244
+ const options = {
245
+ modules: true,
246
+ script: 'export default { async fetch() { return new Response("noop"); } };',
247
+ };
248
+ if (seeded.kv.length > 0) {
249
+ options.kvNamespaces = seeded.kv;
250
+ options.kvPersist = path.join(sandbox, 'kv');
251
+ }
252
+ if (seeded.r2.length > 0) {
253
+ options.r2Buckets = seeded.r2;
254
+ options.r2Persist = path.join(sandbox, 'r2');
255
+ }
256
+ if (seeded.d1.length > 0) {
257
+ options.d1Databases = seeded.d1;
258
+ options.d1Persist = path.join(sandbox, 'd1');
259
+ }
260
+ if (seeded.queue.length > 0) {
261
+ const producers = {};
262
+ for (const bindingName of seeded.queue) {
263
+ // Local sandbox: queue name == binding name. Overrides only
264
+ // come into play at deploy time.
265
+ producers[bindingName] = { queueName: bindingName };
266
+ }
267
+ options.queueProducers = producers;
268
+ }
269
+ if (seeded.vectorize.length > 0) {
270
+ const indices = {};
271
+ for (const bindingName of seeded.vectorize) {
272
+ indices[bindingName] = { indexName: bindingName };
273
+ }
274
+ options.vectorize = indices;
275
+ }
276
+ if (this.usage?.shared.ai) {
277
+ options.ai = { binding: SHARED_BINDING_NAMES.ai };
278
+ }
279
+ if (this.usage?.shared.images) {
280
+ options.images = { binding: SHARED_BINDING_NAMES.images };
281
+ }
282
+ // browser intentionally omitted — see `get browser` deferral.
283
+ return new Miniflare(options);
284
+ })();
285
+ }
286
+ return this.mfPromise;
287
+ }
288
+ /**
289
+ * Build a thin proxy whose methods defer to a binding fetched via
290
+ * `mf.getKVNamespace(name)` / `mf.getR2Bucket(name)` / etc on first
291
+ * invocation. Avoids paying the boot cost on cold paths.
292
+ */
293
+ scopedBinding(category, qualifier, methods) {
294
+ const name = this.resolveBindingName(category, qualifier);
295
+ const dynamicCategory = this.usage?.dynamicQualifiers.has(category);
296
+ const knownNames = new Set(this.getSeededBindings()[category]);
297
+ if (!knownNames.has(name) && !dynamicCategory) {
298
+ throw new Error(`cf.${category}(${qualifier ? JSON.stringify(qualifier) : ''}) on ` +
299
+ `${this.photonName} resolves to binding "${name}", which the runtime ` +
300
+ `did not seed. Either reference this binding with a literal qualifier ` +
301
+ `somewhere in your photon source (the boot scanner only sees literals), ` +
302
+ `or add a "${category}" override to \`protected cfBindings\`.`);
303
+ }
304
+ const get = this.getMiniflare.bind(this);
305
+ const out = {};
306
+ for (const method of methods) {
307
+ out[method] = async (...args) => {
308
+ const mf = await get();
309
+ const binding = await getMiniflareBinding(mf, category, name);
310
+ const fn = binding[method];
311
+ if (typeof fn !== 'function') {
312
+ throw new Error(`Miniflare binding "${name}" has no method "${method}" (category=${category}).`);
313
+ }
314
+ return fn.apply(binding, args);
315
+ };
316
+ }
317
+ return out;
318
+ }
319
+ /**
320
+ * Pull a binding off the miniflare-built env (for AI, Vectorize,
321
+ * Images — categories that surface as env props rather than via a
322
+ * dedicated `mf.getXxx(name)` accessor).
323
+ */
324
+ envBindingProxy(bindingName, methods) {
325
+ const get = this.getMiniflare.bind(this);
326
+ const out = {};
327
+ for (const method of methods) {
328
+ out[method] = async (...args) => {
329
+ const mf = await get();
330
+ const env = await mf.getBindings();
331
+ const binding = env[bindingName];
332
+ if (!binding) {
333
+ throw new Error(`Miniflare has no binding named '${bindingName}' (photon=${this.photonName}).`);
334
+ }
335
+ return binding[method].apply(binding, args);
336
+ };
337
+ }
338
+ return out;
339
+ }
340
+ }
341
+ async function getMiniflareBinding(mf, category, name) {
342
+ // Each miniflare accessor is typed for its specific binding; the
343
+ // `as never` cast keeps the dispatcher concise without giving up
344
+ // the runtime guarantee that `name` is one of the configured
345
+ // bindings (the dispatcher gate above ensures this).
346
+ switch (category) {
347
+ case 'kv':
348
+ return mf.getKVNamespace(name);
349
+ case 'r2':
350
+ return mf.getR2Bucket(name);
351
+ case 'd1':
352
+ return mf.getD1Database(name);
353
+ case 'queue':
354
+ return mf.getQueueProducer(name);
355
+ case 'vectorize': {
356
+ const env = await mf.getBindings();
357
+ return env[name];
358
+ }
359
+ }
360
+ }
361
+ function throwingShared(category, hint) {
362
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
363
+ return new Proxy(Object.create(null), {
364
+ get(_target, prop) {
365
+ throw new Error(`cf.${category}.${String(prop)} — ${hint}.`);
366
+ },
367
+ });
368
+ }
369
+ /**
370
+ * Build a chainable D1 prepared-statement proxy that mirrors
371
+ * `D1PreparedStatement.bind(...).first/all/run/raw()` semantics. We
372
+ * accumulate the bind list on the proxy and materialize the real
373
+ * statement only when a terminal method runs.
374
+ */
375
+ function makeD1PreparedStatement(get, dbName, query, bound) {
376
+ const materialize = async () => {
377
+ const mf = await get();
378
+ const db = (await mf.getD1Database(dbName));
379
+ const stmt = db.prepare(query);
380
+ if (bound.length > 0)
381
+ return stmt.bind(...bound);
382
+ return stmt;
383
+ };
384
+ const proxy = {
385
+ bind: (...values) => makeD1PreparedStatement(get, dbName, query, [...bound, ...values]),
386
+ first: async (colName) => {
387
+ const real = (await materialize());
388
+ return real.first(colName);
389
+ },
390
+ run: async () => {
391
+ const real = (await materialize());
392
+ return real.run();
393
+ },
394
+ all: async () => {
395
+ const real = (await materialize());
396
+ return real.all();
397
+ },
398
+ raw: async () => {
399
+ const real = (await materialize());
400
+ return real.raw();
401
+ },
402
+ _materialize: materialize,
403
+ };
404
+ return proxy;
405
+ }
406
+ //# sourceMappingURL=cf-local.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cf-local.js","sourceRoot":"","sources":["../../src/runtime/cf-local.ts"],"names":[],"mappings":"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"}
package/dist/server.d.ts CHANGED
@@ -62,6 +62,14 @@ export interface PhotonServerOptions {
62
62
  };
63
63
  /** Embedded @ui HTML templates: photonName → { assetId → html content } */
64
64
  embeddedUITemplates?: Record<string, Record<string, string>>;
65
+ /**
66
+ * Embedded asset tree for `<photon>/<name>/assets/**` (v1.29 Track E).
67
+ * Shape: photonName → { relativePath → utf-8 content }. Consumed by the
68
+ * directory-style serving path so SPA chunks (sibling JS/CSS next to a
69
+ * declared @ui index.html) resolve in standalone binaries without a
70
+ * filesystem lookup.
71
+ */
72
+ embeddedAssetTree?: Record<string, Record<string, string>>;
65
73
  /** Channel mode — declares channel capabilities for target clients */
66
74
  channelMode?: boolean;
67
75
  /** Channel name — becomes the MCP server name and <channel source="name"> */
@@ -91,6 +99,26 @@ export declare class PhotonServer {
91
99
  private daemonInstanceName?;
92
100
  /** Tracked instance names per SSE session for daemon drift recovery */
93
101
  private sseInstanceNames;
102
+ /**
103
+ * Track C closure: per-claim instance pool. Populated lazily on first
104
+ * request from a new authenticated caller when the photon declares
105
+ * `@stateful` + `@auth`. Without this, every authenticated caller
106
+ * shares `this.mcp.instance` — meaning two users on the standalone
107
+ * HTTP server race on the same `this.tasks` / `this.memory`.
108
+ *
109
+ * Daemon path doesn't need this — it has its own per-instance loader
110
+ * (`session-manager.ts`). Cloudflare doesn't need it either — the
111
+ * outer Worker selects a DO per claim before the request arrives.
112
+ * This pool is the standalone HTTP server's equivalent.
113
+ */
114
+ private instancePool;
115
+ /**
116
+ * True iff the loaded photon declares both `@stateful` and `@auth` —
117
+ * the only shape that actually wants per-caller state isolation. For
118
+ * everything else, instance routing is a no-op and `this.mcp` is used
119
+ * directly.
120
+ */
121
+ private requiresInstanceRouting;
94
122
  /** Whether client capabilities have been logged (one-time on first tools/list) */
95
123
  private clientCapabilitiesLogged;
96
124
  /** Client capability detection and negotiation */
@@ -98,9 +126,60 @@ export declare class PhotonServer {
98
126
  /** Write queue for serialized STDIO notifications (prevents interleaving from concurrent generators) */
99
127
  private _notifyQueue;
100
128
  /** Compatibility alias for tests that seed raw capabilities directly on PhotonServer */
101
- rawClientCapabilities: WeakMap<Server, Record<string, any>>;
129
+ rawClientCapabilities: WeakMap<Server<{
130
+ method: string;
131
+ params?: {
132
+ [x: string]: unknown;
133
+ _meta?: {
134
+ [x: string]: unknown;
135
+ progressToken?: string | number | undefined;
136
+ "io.modelcontextprotocol/related-task"?: {
137
+ taskId: string;
138
+ } | undefined;
139
+ } | undefined;
140
+ } | undefined;
141
+ }, {
142
+ method: string;
143
+ params?: {
144
+ [x: string]: unknown;
145
+ _meta?: {
146
+ [x: string]: unknown;
147
+ progressToken?: string | number | undefined;
148
+ "io.modelcontextprotocol/related-task"?: {
149
+ taskId: string;
150
+ } | undefined;
151
+ } | undefined;
152
+ } | undefined;
153
+ }, {
154
+ [x: string]: unknown;
155
+ _meta?: {
156
+ [x: string]: unknown;
157
+ progressToken?: string | number | undefined;
158
+ "io.modelcontextprotocol/related-task"?: {
159
+ taskId: string;
160
+ } | undefined;
161
+ } | undefined;
162
+ }>, Record<string, any>>;
102
163
  /** Resource listing, reading, and asset serving */
103
164
  private resourceServer;
165
+ /**
166
+ * Server-wide registry of `resources/subscribe` state. The STDIO server
167
+ * registers one persistent sink; each SSE session registers a per-session
168
+ * sink at connect and clears its subscriptions at close.
169
+ */
170
+ private subscriptions;
171
+ /** Stable sink for the STDIO server, registered once on first subscribe. */
172
+ private stdioSink?;
173
+ /**
174
+ * Per-server roots cache. Populated on `oninitialized` if the client
175
+ * declared the `roots` capability, refreshed on
176
+ * `notifications/roots/list_changed`. Read at tool-call time and threaded
177
+ * into ALS so `this.roots` resolves synchronously inside photon code.
178
+ *
179
+ * WeakMap-keyed so dead session servers stop holding cache entries
180
+ * automatically when SSE sessions disconnect.
181
+ */
182
+ private rootsByServer;
104
183
  private currentStatus;
105
184
  private logger;
106
185
  /** Get the loaded photon (available after start()) */
@@ -163,6 +242,22 @@ export declare class PhotonServer {
163
242
  */
164
243
  private resolveChoiceFromFields;
165
244
  private handleListTools;
245
+ /**
246
+ * Resolve which photon instance handles this call. For `@stateful` +
247
+ * `@auth` photons we pull claims from the request's `authInfo.extra`
248
+ * (populated by `BeamCompatTransport` from the HTTP headers), look up
249
+ * the binding rule from the `@auth` directive, and lazy-load a fresh
250
+ * photon instance keyed by that claim value. Subsequent calls from
251
+ * the same caller reuse the cached instance so `this.memory` /
252
+ * `this.tasks` persist across requests within their per-user scope.
253
+ *
254
+ * Returns `this.mcp` (the shared singleton) when the photon doesn't
255
+ * declare per-caller routing, when claims are missing, or when the
256
+ * binding rule yields no instance name. The fallback is intentional:
257
+ * unauthenticated requests still execute, they just share the default
258
+ * instance — same as a v1.28 photon would.
259
+ */
260
+ private resolveInstanceMcp;
166
261
  private handleCallTool;
167
262
  private handleListPrompts;
168
263
  private handleGetPrompt;
@@ -170,6 +265,19 @@ export declare class PhotonServer {
170
265
  * Set up MCP protocol handlers (STDIO transport)
171
266
  */
172
267
  private setupHandlers;
268
+ /**
269
+ * Wire up `roots/list` discovery + `notifications/roots/list_changed`
270
+ * refresh for one Server instance. Called once for the STDIO server and
271
+ * once per SSE session.
272
+ *
273
+ * Eager fetch on initialize keeps `this.roots` synchronous inside photon
274
+ * code — clients that don't declare the capability skip the fetch
275
+ * entirely. The cache is server-scoped (per-session for SSE) so two
276
+ * clients with different working directories don't see each other's
277
+ * roots.
278
+ */
279
+ private setupRootsForServer;
280
+ private refreshRootsCache;
173
281
  /**
174
282
  * Format tool result as text
175
283
  */
@@ -217,9 +325,16 @@ export declare class PhotonServer {
217
325
  */
218
326
  start(): Promise<void>;
219
327
  /**
220
- * Start server with stdio transport
328
+ * Start server with stdio transport.
329
+ * @param webPort - when set, start a companion HTTP server on this port
330
+ * to serve @get/@post web routes for stateful photons.
221
331
  */
222
332
  private startStdio;
333
+ /**
334
+ * Dispatch an incoming HTTP request to the photon's @get/@post web routes.
335
+ * Used by the companion HTTP server that runs alongside STDIO stateful photons.
336
+ */
337
+ private handleWebRoute;
223
338
  /**
224
339
  * Start server with SSE transport (HTTP)
225
340
  */
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}