@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,188 @@
1
+ /**
2
+ * Settings persistence for Photon instances.
3
+ *
4
+ * Owns the load → merge → expose-as-Proxy → persist-on-change lifecycle for
5
+ * `protected settings` declared by photons. Extracted from PhotonLoader so
6
+ * the loader doesn't have to know about settings paths, the read-only Proxy,
7
+ * or the auto-generated MCP tool surface.
8
+ */
9
+ import * as path from 'path';
10
+ import * as fs from 'fs/promises';
11
+ import { readJSON, writeJSON } from './shared/io.js';
12
+ import { getInstanceStatePath } from './context-store.js';
13
+ export class SettingsPersistence {
14
+ baseDir;
15
+ log;
16
+ constructor(baseDir, log) {
17
+ this.baseDir = baseDir;
18
+ this.log = log;
19
+ }
20
+ /**
21
+ * Get the settings persistence path for a photon instance.
22
+ * Co-located with state: settings.json sits next to state.json inside
23
+ * the per-instance directory.
24
+ */
25
+ getPath(photonName, instanceName) {
26
+ const statePath = getInstanceStatePath(photonName, instanceName, this.baseDir);
27
+ return path.join(path.dirname(statePath), 'settings.json');
28
+ }
29
+ /** Load persisted settings from disk. Returns {} if the file is missing. */
30
+ async load(photonName, instanceName) {
31
+ try {
32
+ return await readJSON(this.getPath(photonName, instanceName));
33
+ }
34
+ catch {
35
+ return {};
36
+ }
37
+ }
38
+ /** Persist settings to disk, creating parent directories as needed. */
39
+ async persist(photonName, instanceName, values) {
40
+ const settingsPath = this.getPath(photonName, instanceName);
41
+ await fs.mkdir(path.dirname(settingsPath), { recursive: true });
42
+ await writeJSON(settingsPath, values);
43
+ }
44
+ /**
45
+ * Inject settings into a photon instance:
46
+ * - Load persisted values (persisted wins over in-source defaults)
47
+ * - Replace `instance.settings` with a read-only Proxy
48
+ * - Stamp the writable backing object plus identity on the instance so the
49
+ * auto-generated `settings` tool can update it later.
50
+ */
51
+ async inject(instance, photonName, instanceName, schema) {
52
+ const defaults = instance.settings;
53
+ const persisted = await this.load(photonName, instanceName);
54
+ const backing = { ...defaults };
55
+ for (const key of Object.keys(persisted)) {
56
+ if (persisted[key] !== undefined) {
57
+ backing[key] = persisted[key];
58
+ }
59
+ }
60
+ instance._settingsBacking = backing;
61
+ instance._settingsPhotonName = photonName;
62
+ instance._settingsInstanceName = instanceName;
63
+ instance._settingsSchema = schema;
64
+ instance.settings = new Proxy(backing, {
65
+ get(target, prop) {
66
+ if (typeof prop === 'string') {
67
+ return target[prop];
68
+ }
69
+ return undefined;
70
+ },
71
+ set(_target, prop, _value) {
72
+ throw new Error(`Cannot directly set settings.${String(prop)}. ` +
73
+ `Use the 'settings' tool to change settings (e.g., settings({ ${String(prop)}: newValue })).`);
74
+ },
75
+ deleteProperty(_target, prop) {
76
+ throw new Error(`Cannot delete settings.${String(prop)}. Use the 'settings' tool instead.`);
77
+ },
78
+ });
79
+ }
80
+ /** Generate an MCP tool definition from a SettingsSchema. */
81
+ generateTool(schema) {
82
+ const properties = {};
83
+ for (const prop of schema.properties) {
84
+ const propSchema = { type: prop.type };
85
+ if (prop.description) {
86
+ propSchema.description = prop.description;
87
+ }
88
+ if (prop.default !== undefined) {
89
+ propSchema.default = prop.default;
90
+ }
91
+ properties[prop.name] = propSchema;
92
+ }
93
+ return {
94
+ name: 'settings',
95
+ description: 'View or update photon settings. Call with no arguments to view current settings. Pass parameters to update specific settings.',
96
+ inputSchema: {
97
+ type: 'object',
98
+ properties,
99
+ },
100
+ };
101
+ }
102
+ /**
103
+ * Execute the auto-generated settings tool:
104
+ * - No params → return current settings (eliciting any required-but-unset values)
105
+ * - Params with values → update those settings, persist, emit change
106
+ * - Params with explicit undefined on a required prop → trigger elicitation
107
+ */
108
+ async execute(instance, parameters, options) {
109
+ const backing = instance._settingsBacking;
110
+ const photonName = instance._settingsPhotonName;
111
+ const instanceName = instance._settingsInstanceName;
112
+ const schema = instance._settingsSchema;
113
+ if (!backing || !photonName || !schema) {
114
+ throw new Error('Settings not initialized for this photon');
115
+ }
116
+ if (!parameters || Object.keys(parameters).length === 0) {
117
+ const needsElicitation = schema.properties.filter((p) => p.required && backing[p.name] === undefined);
118
+ if (needsElicitation.length > 0 && options?.inputProvider) {
119
+ for (const prop of needsElicitation) {
120
+ const result = await options.inputProvider({
121
+ ask: prop.type === 'number' ? 'number' : 'text',
122
+ message: prop.description || `Enter value for ${prop.name}:`,
123
+ });
124
+ if (result !== undefined && result !== null) {
125
+ const oldValue = backing[prop.name];
126
+ backing[prop.name] = result;
127
+ this.log(`⚙️ Settings: ${prop.name} = ${JSON.stringify(result)} (elicited)`);
128
+ this.emitChange(instance, prop.name, oldValue, result);
129
+ }
130
+ }
131
+ await this.persist(photonName, instanceName, backing);
132
+ }
133
+ return { ...backing };
134
+ }
135
+ const changes = [];
136
+ for (const [key, value] of Object.entries(parameters)) {
137
+ const prop = schema.properties.find((p) => p.name === key);
138
+ if (!prop)
139
+ continue;
140
+ if (value === undefined && prop.required) {
141
+ if (options?.inputProvider) {
142
+ const result = await options.inputProvider({
143
+ ask: prop.type === 'number' ? 'number' : 'text',
144
+ message: prop.description || `Enter value for ${key}:`,
145
+ });
146
+ if (result !== undefined && result !== null) {
147
+ const oldValue = backing[key];
148
+ backing[key] = result;
149
+ changes.push({ property: key, oldValue, newValue: result });
150
+ }
151
+ }
152
+ }
153
+ else {
154
+ const oldValue = backing[key];
155
+ backing[key] = value;
156
+ changes.push({ property: key, oldValue, newValue: value });
157
+ }
158
+ }
159
+ if (changes.length > 0) {
160
+ await this.persist(photonName, instanceName, backing);
161
+ for (const change of changes) {
162
+ this.log(`⚙️ Settings: ${change.property}: ${JSON.stringify(change.oldValue)} → ${JSON.stringify(change.newValue)}`);
163
+ this.emitChange(instance, change.property, change.oldValue, change.newValue);
164
+ }
165
+ }
166
+ return { ...backing };
167
+ }
168
+ /** Emit a `settings:changed` event through the photon's emit system. */
169
+ emitChange(instance, property, oldValue, newValue) {
170
+ if (typeof instance.emit === 'function') {
171
+ try {
172
+ instance.emit({
173
+ event: 'settings:changed',
174
+ data: {
175
+ property,
176
+ oldValue,
177
+ newValue,
178
+ timestamp: Date.now(),
179
+ },
180
+ });
181
+ }
182
+ catch {
183
+ // Best-effort emit
184
+ }
185
+ }
186
+ }
187
+ }
188
+ //# sourceMappingURL=settings-persistence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings-persistence.js","sourceRoot":"","sources":["../src/settings-persistence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Encoding helpers for the embedded asset tree (compiled binaries).
3
+ *
4
+ * The tree ships inside the bundled JS as `Record<string, Record<string, string>>`,
5
+ * so binary siblings (.png, .woff2, .wasm, etc.) cannot be stored as raw bytes.
6
+ * We base64-encode them with a NUL-prefixed sentinel so the runtime serve path
7
+ * recognizes which entries are binary and decodes back to a Buffer before
8
+ * writing the HTTP response. UTF-8 decoding the same bytes (the v1.29 first
9
+ * pass) corrupts every binary asset.
10
+ */
11
+ import { Buffer } from 'node:buffer';
12
+ export declare function isBinaryAssetExtension(ext: string): boolean;
13
+ /**
14
+ * Encode a file's bytes for inclusion in the embedded asset tree. Text
15
+ * extensions stay as UTF-8 strings (cheap to template-literalize and
16
+ * round-trip cleanly through `res.end(string)`). Binary extensions get
17
+ * the sentinel + base64 treatment.
18
+ */
19
+ export declare function encodeAssetForEmbed(content: Buffer, ext: string): string;
20
+ /**
21
+ * Decode an embedded asset value back into the bytes the runtime should
22
+ * write to the response. Returns `{ buffer }` for binary entries and
23
+ * `{ text }` for plain UTF-8. Callers pick `res.end(buffer)` or
24
+ * `res.end(text)` accordingly so binary bytes round-trip unchanged.
25
+ */
26
+ export declare function decodeEmbeddedAsset(value: string): {
27
+ text?: string;
28
+ buffer?: Buffer;
29
+ };
30
+ //# sourceMappingURL=asset-encoding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-encoding.d.ts","sourceRoot":"","sources":["../../src/shared/asset-encoding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAsCrC,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAKxE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAKrF"}
Binary file
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-encoding.js","sourceRoot":"","sources":["../../src/shared/asset-encoding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC;;;;;;GAMG;AACH,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAS;IACxC,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;CACP,CAAC,CAAC;AAEH,0EAA0E;AAC1E,MAAM,eAAe,GAAG,OAAO,CAAC;AAEhC,MAAM,UAAU,sBAAsB,CAAC,GAAW;IAChD,OAAO,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;AAClD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe,EAAE,GAAW;IAC9D,IAAI,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,IAAI,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACtC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC;IAChF,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACzB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"audit-sqlite.d.ts","sourceRoot":"","sources":["../../src/shared/audit-sqlite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAc,KAAK,cAAc,EAAwB,MAAM,qBAAqB,CAAC;AAM5F,MAAM,WAAW,UAAU;IACzB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,6CAA6C;IAC7C,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CACxB;AA4BD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAE7E;AAMD,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/B,KAAK,CAAC,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;IACnC,KAAK,IAAI,MAAM,CAAC;IAChB,KAAK,IAAI,IAAI,CAAC;CACf;AAED,qBAAa,kBAAmB,YAAW,YAAY;IAmBnD,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,OAAO;IACf,mEAAmE;IACnE,OAAO,CAAC,YAAY;IArBtB,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,MAAM,CAAK;IACnB,mFAAmF;IACnF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAU/B;gBAGO,EAAE,EAAE,cAAc,EAClB,OAAO,SAAU;IACzB,mEAAmE;IAC3D,YAAY,SAAM;IAY5B,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IA+B9B,KAAK,CAAC,CAAC,GAAE,UAAe,GAAG,UAAU,EAAE;IAiCvC,KAAK,IAAI,MAAM;IAKf,KAAK,IAAI,IAAI;IAQb,OAAO,CAAC,YAAY;CAUrB"}
1
+ {"version":3,"file":"audit-sqlite.d.ts","sourceRoot":"","sources":["../../src/shared/audit-sqlite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAc,KAAK,cAAc,EAAwB,MAAM,qBAAqB,CAAC;AAM5F,MAAM,WAAW,UAAU;IACzB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,6CAA6C;IAC7C,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CACxB;AA4BD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAE7E;AAMD,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/B,KAAK,CAAC,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;IACnC,KAAK,IAAI,MAAM,CAAC;IAChB,KAAK,IAAI,IAAI,CAAC;CACf;AAED,qBAAa,kBAAmB,YAAW,YAAY;IAmBnD,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,OAAO;IACf,mEAAmE;IACnE,OAAO,CAAC,YAAY;IArBtB,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,MAAM,CAAK;IACnB,mFAAmF;IACnF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAU/B;gBAGO,EAAE,EAAE,cAAc,EAClB,OAAO,SAAU;IACzB,mEAAmE;IAC3D,YAAY,SAAM;IAY5B,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IA+B9B,KAAK,CAAC,CAAC,GAAE,UAAe,GAAG,UAAU,EAAE;IAgCvC,KAAK,IAAI,MAAM;IAKf,KAAK,IAAI,IAAI;IAQb,OAAO,CAAC,YAAY;CAUrB"}
@@ -122,7 +122,6 @@ export class SqliteAuditBackend {
122
122
  const limit = q.limit ?? 1000;
123
123
  const sql = `SELECT * FROM audit ${where} ORDER BY ts ${order} LIMIT ?`;
124
124
  params.push(limit);
125
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
126
125
  const rows = this.db.prepare(sql).all(...params);
127
126
  return rows.map((r) => rowToEntry(r));
128
127
  }
@@ -1 +1 @@
1
- {"version":3,"file":"audit-sqlite.js","sourceRoot":"","sources":["../../src/shared/audit-sqlite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit-sqlite.js","sourceRoot":"","sources":["../../src/shared/audit-sqlite.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Cross-origin isolation headers (Track D2).
3
+ *
4
+ * Two header sets ride out of one handler depending on how the photon HTML
5
+ * is being loaded:
6
+ *
7
+ * - **standalone** — top-level navigation. The page benefits from
8
+ * cross-origin isolation: SharedArrayBuffer, WebGPU compute,
9
+ * persistent OPFS, Service Workers, threaded WASM modules. We send
10
+ * Cross-Origin-Opener-Policy: same-origin
11
+ * Cross-Origin-Embedder-Policy: require-corp
12
+ * so `crossOriginIsolated === true` resolves on the page.
13
+ *
14
+ * - **embedded** — request is destined for an iframe (host UIs like
15
+ * Beam, Claude Apps). COOP/COEP would block embedding from another
16
+ * origin, so we omit them and let the existing security headers
17
+ * stand.
18
+ *
19
+ * Asset responses (`assets/**` files) get
20
+ * Cross-Origin-Resource-Policy: same-origin
21
+ * regardless of mode so a standalone parent page with COEP `require-corp`
22
+ * can still load its own SPA chunks. Without this header the browser
23
+ * refuses cross-origin-isolated subresources.
24
+ */
25
+ import type { ServerResponse, IncomingMessage } from 'http';
26
+ export type IsolationMode = 'standalone' | 'embedded';
27
+ /**
28
+ * Decide the isolation mode for an HTTP request. The request opts into
29
+ * `embedded` by sending `Sec-Fetch-Dest: iframe` (modern browsers always
30
+ * set this) or by carrying a `?embed=1` query param (manual override for
31
+ * test rigs and hosts that strip Sec-Fetch headers).
32
+ */
33
+ export declare function detectIsolationMode(req: IncomingMessage): IsolationMode;
34
+ /**
35
+ * Apply COOP/COEP headers when serving an `@ui` HTML document. No-op for
36
+ * `embedded` mode so iframe embedding from a different origin keeps
37
+ * working.
38
+ */
39
+ export declare function applyCrossOriginIsolationHeaders(res: ServerResponse, mode: IsolationMode): void;
40
+ /**
41
+ * Apply CORP `same-origin` to an asset response. Required so a standalone
42
+ * parent page with COEP `require-corp` can still load the asset. Safe to
43
+ * call unconditionally — the header has no negative effect on
44
+ * non-isolated pages.
45
+ */
46
+ export declare function applyCorpSameOrigin(res: ServerResponse): void;
47
+ //# sourceMappingURL=cross-origin-headers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cross-origin-headers.d.ts","sourceRoot":"","sources":["../../src/shared/cross-origin-headers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAE5D,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,UAAU,CAAC;AAEtD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,eAAe,GAAG,aAAa,CAOvE;AAED;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,CAI/F;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,CAE7D"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Cross-origin isolation headers (Track D2).
3
+ *
4
+ * Two header sets ride out of one handler depending on how the photon HTML
5
+ * is being loaded:
6
+ *
7
+ * - **standalone** — top-level navigation. The page benefits from
8
+ * cross-origin isolation: SharedArrayBuffer, WebGPU compute,
9
+ * persistent OPFS, Service Workers, threaded WASM modules. We send
10
+ * Cross-Origin-Opener-Policy: same-origin
11
+ * Cross-Origin-Embedder-Policy: require-corp
12
+ * so `crossOriginIsolated === true` resolves on the page.
13
+ *
14
+ * - **embedded** — request is destined for an iframe (host UIs like
15
+ * Beam, Claude Apps). COOP/COEP would block embedding from another
16
+ * origin, so we omit them and let the existing security headers
17
+ * stand.
18
+ *
19
+ * Asset responses (`assets/**` files) get
20
+ * Cross-Origin-Resource-Policy: same-origin
21
+ * regardless of mode so a standalone parent page with COEP `require-corp`
22
+ * can still load its own SPA chunks. Without this header the browser
23
+ * refuses cross-origin-isolated subresources.
24
+ */
25
+ /**
26
+ * Decide the isolation mode for an HTTP request. The request opts into
27
+ * `embedded` by sending `Sec-Fetch-Dest: iframe` (modern browsers always
28
+ * set this) or by carrying a `?embed=1` query param (manual override for
29
+ * test rigs and hosts that strip Sec-Fetch headers).
30
+ */
31
+ export function detectIsolationMode(req) {
32
+ const dest = req.headers['sec-fetch-dest'];
33
+ if (typeof dest === 'string' && dest.toLowerCase() === 'iframe')
34
+ return 'embedded';
35
+ // Manual override — convenient for tests and hosts that strip Sec-Fetch.
36
+ const url = req.url || '';
37
+ if (/[?&]embed=1\b/.test(url))
38
+ return 'embedded';
39
+ return 'standalone';
40
+ }
41
+ /**
42
+ * Apply COOP/COEP headers when serving an `@ui` HTML document. No-op for
43
+ * `embedded` mode so iframe embedding from a different origin keeps
44
+ * working.
45
+ */
46
+ export function applyCrossOriginIsolationHeaders(res, mode) {
47
+ if (mode !== 'standalone')
48
+ return;
49
+ res.setHeader('Cross-Origin-Opener-Policy', 'same-origin');
50
+ res.setHeader('Cross-Origin-Embedder-Policy', 'require-corp');
51
+ }
52
+ /**
53
+ * Apply CORP `same-origin` to an asset response. Required so a standalone
54
+ * parent page with COEP `require-corp` can still load the asset. Safe to
55
+ * call unconditionally — the header has no negative effect on
56
+ * non-isolated pages.
57
+ */
58
+ export function applyCorpSameOrigin(res) {
59
+ res.setHeader('Cross-Origin-Resource-Policy', 'same-origin');
60
+ }
61
+ //# sourceMappingURL=cross-origin-headers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cross-origin-headers.js","sourceRoot":"","sources":["../../src/shared/cross-origin-headers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAMH;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAoB;IACtD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC3C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,QAAQ;QAAE,OAAO,UAAU,CAAC;IACnF,yEAAyE;IACzE,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;IAC1B,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,UAAU,CAAC;IACjD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gCAAgC,CAAC,GAAmB,EAAE,IAAmB;IACvF,IAAI,IAAI,KAAK,YAAY;QAAE,OAAO;IAClC,GAAG,CAAC,SAAS,CAAC,4BAA4B,EAAE,aAAa,CAAC,CAAC;IAC3D,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,cAAc,CAAC,CAAC;AAChE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAmB;IACrD,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,aAAa,CAAC,CAAC;AAC/D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/shared/error-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGnE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;AAMxC;;;GAGG;AACH,eAAO,MAAM,QAAQ;IACnB,qCAAqC;;IAErC,gCAAgC;;IAEhC,6CAA6C;;IAE7C,sDAAsD;;IAEtD,iCAAiC;;IAEjC,kCAAkC;;IAElC,iDAAiD;;IAEjD,wBAAwB;;IAExB,sCAAsC;;CAE9B,CAAC;AAEX,KAAK,YAAY,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAM7D;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAWtD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,IAAI,MAAM,CAAC,cAAc,CAOzF;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW,CA0C5F;AAMD;;GAEG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,OAAO,EACd,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;CAChB,GACL,KAAK,GAAG,IAAI,CAsCd;AAQD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,KAAK,CAqCP;AAMD;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,GACb;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CA0FzD"}
1
+ {"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/shared/error-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGnE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;AAMxC;;;GAGG;AACH,eAAO,MAAM,QAAQ;IACnB,qCAAqC;;IAErC,gCAAgC;;IAEhC,6CAA6C;;IAE7C,sDAAsD;;IAEtD,iCAAiC;;IAEjC,kCAAkC;;IAElC,iDAAiD;;IAEjD,wBAAwB;;IAExB,sCAAsC;;CAE9B,CAAC;AAEX,KAAK,YAAY,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAM7D;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAWtD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,IAAI,MAAM,CAAC,cAAc,CAOzF;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW,CA0C5F;AAMD;;GAEG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,OAAO,EACd,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;CAChB,GACL,KAAK,GAAG,IAAI,CAsCd;AAQD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,KAAK,CAqCP;AAMD;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,GACb;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CA4FzD"}
@@ -180,7 +180,9 @@ export function formatToolError(toolName, error) {
180
180
  let suggestion = '';
181
181
  let retryable = false;
182
182
  const errorName = error instanceof Error ? error.name : '';
183
- const nodeCode = error && typeof error === 'object' && 'code' in error ? String(error.code) : '';
183
+ const nodeCode = error && typeof error === 'object' && 'code' in error
184
+ ? String(error.code)
185
+ : '';
184
186
  // Photon authors can attach userMessage and hint for friendly display
185
187
  const userMessage = error && typeof error === 'object' && 'userMessage' in error ? String(error.userMessage) : '';
186
188
  const userHint = error && typeof error === 'object' && 'hint' in error ? String(error.hint) : '';
@@ -1 +1 @@
1
- {"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../src/shared/error-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../src/shared/error-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Source-level extractor for `@expose` declarations.
3
+ *
4
+ * v1.29 Track C. Methods tagged `@expose` are auto-bound to a kebab-cased
5
+ * `/api/<method>` POST endpoint so a same-origin SPA can call them via
6
+ * fetch without writing per-method `@post` directives. `@expose public`
7
+ * widens this from "SameSite-cookie required" to "any caller" — useful
8
+ * for anonymous public surfaces (iCal feeds, billing portals, etc.).
9
+ *
10
+ * Like `http-route-extractor.ts`, this runs against raw source so the
11
+ * extractor doesn't depend on whatever shape the published photon-core
12
+ * SchemaExtractor returns. Both the runtime dispatcher and the Cloudflare
13
+ * deploy code-gen consume the same output.
14
+ *
15
+ * /‍** @expose *‍/ async getCurrentUser() { ... } → private
16
+ * /‍** @expose public *‍/ async billing() { ... } → public
17
+ * (no @expose tag) async listUsers() { ... } → MCP-only
18
+ */
19
+ export type ExposeVisibility = 'private' | 'public';
20
+ export interface ExposeDef {
21
+ /** Method on the photon class. */
22
+ handler: string;
23
+ /** SameSite cookie required (`private`) or anonymous OK (`public`). */
24
+ visibility: ExposeVisibility;
25
+ }
26
+ export declare function extractExposesFromSource(source: string): ExposeDef[];
27
+ /**
28
+ * Convert a method name to its kebab-cased route segment. Matches the
29
+ * convention the bridge fetch fallback uses (`fetch('/api/<kebab>', ...)`).
30
+ *
31
+ * getCurrentUser → get-current-user
32
+ * listUsers → list-users
33
+ * billing → billing
34
+ */
35
+ export declare function methodToKebab(name: string): string;
36
+ //# sourceMappingURL=expose-route-extractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expose-route-extractor.d.ts","sourceRoot":"","sources":["../../src/shared/expose-route-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEpD,MAAM,WAAW,SAAS;IACxB,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,UAAU,EAAE,gBAAgB,CAAC;CAC9B;AAWD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,CAqBpE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKlD"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Source-level extractor for `@expose` declarations.
3
+ *
4
+ * v1.29 Track C. Methods tagged `@expose` are auto-bound to a kebab-cased
5
+ * `/api/<method>` POST endpoint so a same-origin SPA can call them via
6
+ * fetch without writing per-method `@post` directives. `@expose public`
7
+ * widens this from "SameSite-cookie required" to "any caller" — useful
8
+ * for anonymous public surfaces (iCal feeds, billing portals, etc.).
9
+ *
10
+ * Like `http-route-extractor.ts`, this runs against raw source so the
11
+ * extractor doesn't depend on whatever shape the published photon-core
12
+ * SchemaExtractor returns. Both the runtime dispatcher and the Cloudflare
13
+ * deploy code-gen consume the same output.
14
+ *
15
+ * /‍** @expose *‍/ async getCurrentUser() { ... } → private
16
+ * /‍** @expose public *‍/ async billing() { ... } → public
17
+ * (no @expose tag) async listUsers() { ... } → MCP-only
18
+ */
19
+ const JSDOC_BLOCK_RE = /\/\*\*([\s\S]*?)\*\//g;
20
+ const METHOD_RE = /^\s*(?:public\s+|private\s+|protected\s+)?(?:async\s+)?(\w+)\s*\(/;
21
+ // Anchor `@expose` to a JSDoc tag position — either the very start of the
22
+ // block body (single-line `/** @expose */`) or a JSDoc line that begins
23
+ // with `*`. Prevents prose mentions like `No @expose — MCP-only` from
24
+ // tripping the matcher. The visibility capture excludes `*` so it stops
25
+ // at the JSDoc terminator on single-line blocks.
26
+ const EXPOSE_TAG_RE = /(?:^\s*|\n\s*\*\s*)@expose\b(?:[ \t]+([^\s*]+))?/im;
27
+ export function extractExposesFromSource(source) {
28
+ const exposes = [];
29
+ JSDOC_BLOCK_RE.lastIndex = 0;
30
+ let block;
31
+ while ((block = JSDOC_BLOCK_RE.exec(source)) !== null) {
32
+ const jsdocBody = block[1];
33
+ const exposeMatch = jsdocBody.match(EXPOSE_TAG_RE);
34
+ if (!exposeMatch)
35
+ continue;
36
+ const after = source.slice(block.index + block[0].length);
37
+ const methodMatch = after.match(METHOD_RE);
38
+ if (!methodMatch)
39
+ continue;
40
+ // The argument after @expose, if present, is one of: 'public' (widens
41
+ // exposure to anonymous callers) or anything else (treated as no
42
+ // visibility hint — defaults to private). This is intentionally loose:
43
+ // adding new visibility levels later doesn't break existing callers
44
+ // that already wrote `@expose public`.
45
+ const visibility = exposeMatch[1]?.trim().toLowerCase() === 'public' ? 'public' : 'private';
46
+ exposes.push({ handler: methodMatch[1], visibility });
47
+ }
48
+ return exposes;
49
+ }
50
+ /**
51
+ * Convert a method name to its kebab-cased route segment. Matches the
52
+ * convention the bridge fetch fallback uses (`fetch('/api/<kebab>', ...)`).
53
+ *
54
+ * getCurrentUser → get-current-user
55
+ * listUsers → list-users
56
+ * billing → billing
57
+ */
58
+ export function methodToKebab(name) {
59
+ return name
60
+ .replace(/([a-z0-9])([A-Z])/g, '$1-$2')
61
+ .replace(/([A-Z]+)([A-Z][a-z])/g, '$1-$2')
62
+ .toLowerCase();
63
+ }
64
+ //# sourceMappingURL=expose-route-extractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expose-route-extractor.js","sourceRoot":"","sources":["../../src/shared/expose-route-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAWH,MAAM,cAAc,GAAG,uBAAuB,CAAC;AAC/C,MAAM,SAAS,GAAG,mEAAmE,CAAC;AACtF,0EAA0E;AAC1E,wEAAwE;AACxE,sEAAsE;AACtE,wEAAwE;AACxE,iDAAiD;AACjD,MAAM,aAAa,GAAG,oDAAoD,CAAC;AAE3E,MAAM,UAAU,wBAAwB,CAAC,MAAc;IACrD,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,cAAc,CAAC,SAAS,GAAG,CAAC,CAAC;IAC7B,IAAI,KAA6B,CAAC;IAClC,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACnD,IAAI,CAAC,WAAW;YAAE,SAAS;QAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,WAAW;YAAE,SAAS;QAC3B,sEAAsE;QACtE,iEAAiE;QACjE,uEAAuE;QACvE,oEAAoE;QACpE,uCAAuC;QACvC,MAAM,UAAU,GACd,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3E,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,IAAI;SACR,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;SACtC,OAAO,CAAC,uBAAuB,EAAE,OAAO,CAAC;SACzC,WAAW,EAAE,CAAC;AACnB,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Extract auth claims from incoming HTTP request headers.
3
+ *
4
+ * Used by the standalone HTTP server (Track C closure) to discover which
5
+ * claim bag the per-claim instance pool should key on. Two sources are
6
+ * recognized today, matching what `extractInstance` in the Cloudflare
7
+ * Worker template recognizes — same headers, same precedence:
8
+ *
9
+ * 1. `Cf-Access-Authenticated-User-Email` — set by Cloudflare Access at
10
+ * the edge after JWT verification. Trusted (origin is behind CF).
11
+ * 2. `Cf-Access-Jwt-Assertion` — the raw JWT. Decoded payload fields
12
+ * (email, sub, ...) are merged into the claim bag. The signature is
13
+ * NOT re-verified; CF already validated it before forwarding to the
14
+ * origin. If you run the standalone server outside Cloudflare and
15
+ * want a different trust boundary, add a verification step here.
16
+ *
17
+ * The standalone server is the only consumer right now. The MCP daemon
18
+ * pulls claims from its CLI / streamable-HTTP authentication path; the
19
+ * Cloudflare Worker template does its own header read. Keep the three
20
+ * surfaces in sync when adding a new claim source.
21
+ */
22
+ import type { IncomingHttpHeaders } from 'node:http';
23
+ /**
24
+ * Read claims from CF Access headers. Returns undefined when no
25
+ * recognized auth headers are present so the caller can fall back to the
26
+ * default instance without a bound claim.
27
+ *
28
+ * The returned bag uses lowercased standard claim names (`email`, `sub`,
29
+ * etc.) so `resolveInstanceFromClaims` finds them by their canonical key
30
+ * regardless of the JWT's casing.
31
+ */
32
+ export declare function extractClaimsFromHeaders(headers: IncomingHttpHeaders): Record<string, unknown> | undefined;
33
+ //# sourceMappingURL=extract-claims.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-claims.d.ts","sourceRoot":"","sources":["../../src/shared/extract-claims.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAGrD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,mBAAmB,GAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CA8BrC"}