@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
package/README.md CHANGED
@@ -91,6 +91,8 @@ npx @portel/photon mcp install my-tool
91
91
  ```
92
92
 
93
93
  > Requires [Node.js 20+](https://nodejs.org). TypeScript is compiled internally; no `tsconfig.json` needed.
94
+ >
95
+ > **Where do photon files live?** `./` (a project directory you cd into) or `~/.photon/` (global, auto-discovered). User settings persist under `~/.photon/state/<photon>/`. See [Where things live](docs/getting-started.md#where-things-live).
94
96
 
95
97
  <div align="center">
96
98
 
@@ -117,11 +119,15 @@ The more you express, the more Photon derives:
117
119
  | Method signatures | Tool definitions: names, inputs, outputs |
118
120
  | Type annotations | Input validation rules, UI field types |
119
121
  | JSDoc comments | Documentation for AI clients and human users |
120
- | Constructor parameters | Config UI, environment variable mapping |
122
+ | Constructor parameters | Config UI, environment variable mapping, runtime injection (`Photon`, `Cloudflare`, `CloudflareEnv`) |
121
123
  | `@tags` | Validation, formatting, scheduling, webhooks |
122
124
 
123
125
  When you add a `@param city {@pattern ^[a-zA-Z\s]+$}` annotation, Beam validates it in the form, the CLI validates it before running, and the MCP schema enforces it for the AI. One annotation. Three consumers.
124
126
 
127
+ ### Three ways to author
128
+
129
+ `extends Photon` is one shape. You can also inject `Photon` as a constructor parameter when you already extend something else, or compose without inheritance — same API either way. CF resources reach the photon through a separate `Cloudflare` injection so portable photons stay portable. See [docs/guides/PHOTON-INJECTION.md](docs/guides/PHOTON-INJECTION.md).
130
+
125
131
  ---
126
132
 
127
133
  ## Beam: Human Exploration
@@ -134,10 +140,12 @@ Beam is the web dashboard. Every photon becomes an interactive form automaticall
134
140
 
135
141
  The UI is **fully auto-generated** from your method signatures: field types, validation, defaults, layouts. You never write frontend code. When you add a `{@choice a,b,c}` tag to a parameter, Beam renders a dropdown. When you mark a string as `{@format email}`, the field validates email format. The UI evolves as your code does.
136
142
 
137
- When forms aren't the right interface for what you're building, you can replace Beam's auto-generated view with your own HTML. A global named after your photon is auto-injected (e.g., `analytics.onResult(data => ...)`) — no framework required.
143
+ When forms aren't the right interface for what you're building, you can replace Beam's auto-generated view with your own HTML. A global named after your photon is auto-injected (e.g., `analytics.onResult(data => ...)`) — no framework required. `window.photon.url` is also injected and resolves to the Beam base URL so your HTML can construct fetch paths correctly whether running locally or behind a reverse proxy.
138
144
 
139
145
  > Custom UIs follow the [MCP Apps Extension (SEP-1865)](https://github.com/nicolo-ribaudo/modelcontextprotocol/blob/nicolo/sep-1865/docs/specification/draft/extensions/apps.mdx) standard and work across compatible hosts. See the [Custom UI Guide](./docs/guides/CUSTOM-UI.md).
140
146
 
147
+ Photons that declare `@get` or `@post` HTTP routes are shown in Beam as web apps. Beam proxies requests to those routes and injects an `x-photon-base-path` header so the app can construct correct absolute paths regardless of where Beam is hosted.
148
+
141
149
  ---
142
150
 
143
151
  ## AI Agents: Machine Invocation
@@ -196,23 +204,36 @@ The class description becomes how AI clients introduce the tool to users. The `@
196
204
  <img src="https://raw.githubusercontent.com/portel-dev/photon/main/assets/readme-step-2.png" alt="Step 2" width="100%">
197
205
  </div>
198
206
 
199
- ### Add a constructor: configuration appears
207
+ ### Declare configuration: a settings tool appears
200
208
 
201
209
  ```typescript
202
210
  export default class Weather {
203
- constructor(
204
- private apiKey: string,
205
- private units: string = 'metric'
206
- ) {}
211
+ /** User-tunable knobs. Photon auto-generates a `settings` tool from this. */
212
+ protected settings = {
213
+ /** Units for forecast values */
214
+ units: 'metric',
215
+ /** Polling interval in seconds */
216
+ pollIntervalSec: 300,
217
+ };
207
218
 
208
219
  async forecast(params: { city: string }) {
209
- const res = await fetch(`...?appid=${this.apiKey}&units=${this.units}`);
220
+ const res = await fetch(`...?units=${this.settings.units}`);
210
221
  return await res.json();
211
222
  }
212
223
  }
213
224
  ```
214
225
 
215
- `apiKey` becomes a password field in the Beam settings panel and maps to the `WEATHER_API_KEY` environment variable. `units` gets a text input with `'metric'` pre-filled. You declared what you need. Photon built the configuration surface.
226
+ `protected settings` is the canonical way to expose runtime knobs. Photon reads the JSDoc on each property, generates an MCP `settings` tool with typed inputs, and persists user changes to `~/.photon/state/<photon>/<instance>-settings.json`. Inside methods, `this.settings` is a read-only Proxy. To change a value, the user (or AI) calls the auto-generated `settings` tool.
227
+
228
+ For **secrets** that should never be persisted in a settings file (API keys, tokens), use a constructor parameter instead. Photon maps the parameter name to an env var:
229
+
230
+ ```typescript
231
+ export default class Weather {
232
+ constructor(private apiKey: string) {} // → WEATHER_API_KEY
233
+ }
234
+ ```
235
+
236
+ The constructor pattern is for primitives that come from `.env`. The `protected settings` pattern is for everything else, including any knob the user should be able to change at runtime without restarting. **When in doubt, reach for `settings`.**
216
237
 
217
238
  <div align="center">
218
239
  <img src="https://raw.githubusercontent.com/portel-dev/photon/main/assets/readme-step-3.png" alt="Step 3" width="100%">
@@ -278,6 +299,7 @@ Things you don't build because Photon handles them:
278
299
  | **Daemon ops** | `photon ps` lists and controls scheduled jobs, webhooks, and live sessions |
279
300
  | **Distributed locks** | `@locked` serializes access: one caller at a time, across processes |
280
301
  | **Cross-photon calls** | `this.call()` invokes another photon's methods |
302
+ | **Cloudflare runtime** | `this.cf.r2('blobs')`, `this.cf.d1('app')`, `this.cf.kv('cache')` — same shape locally (miniflare) and deployed (real bindings). See [CF-BINDINGS.md](docs/guides/CF-BINDINGS.md) |
281
303
  | **Real-time events** | `this.emit()` fires named events to the browser UI with zero wiring |
282
304
  | **Live rendering** | `this.render()` pushes formatted output to CLI and Beam in real time |
283
305
  | **Delegated LLM** | `this.sample()` asks the driving agent's model to generate text — no API key, agent pays |
@@ -364,7 +386,9 @@ export default class Editor {
364
386
  | `await this.sample({ prompt })` | Delegates LLM generation to the caller's model via MCP sampling |
365
387
  | `await this.confirm(question)` | Yes/no prompt — returns `boolean` |
366
388
  | `await this.elicit(params)` | Arbitrary input (text, select, form, file, etc.) |
367
- | `this.status(msg)` / `this.progress(v)` | Live feedback during long work |
389
+ | `this.status(msg)` / `this.progress(v)` | Live feedback during long work; routes to SSE stream in Beam |
390
+ | `this.roots` | MCP workspace roots declared by the connected client (`roots/list`) |
391
+ | `this.notifyResourceUpdated(uri)` | Push `notifications/resources/updated` to subscribed clients |
368
392
 
369
393
  Full reference: [`docs/reference/MCP-PRIMITIVES.md`](docs/reference/MCP-PRIMITIVES.md).
370
394
 
@@ -522,6 +546,11 @@ Uses Bun's compiler under the hood. The binary bundles the photon, its `@depende
522
546
  | `@param ... {@format email}` | Param | Input validation and field type |
523
547
  | `@param ... {@min N} {@max N}` | Param | Numeric range constraints |
524
548
  | `@ui` | Class/Method | Link a custom HTML template |
549
+ | `@expose` | Method | Auto-bind to `POST /api/<kebab>` for SPA fetch (`public` skips the SameSite gate) |
550
+ | `@get /path` | Method | HTTP-only GET route; shown as a web app in Beam, not an MCP tool |
551
+ | `@post /path` | Method | HTTP-only POST route; shown as a web app in Beam, not an MCP tool |
552
+ | `@resource <uri>` | Method | Dynamic MCP resource resolver (canonical form; replaces `@Static`) |
553
+ | `@prompt` | Method | MCP prompt template (canonical form; replaces `@Template`) |
525
554
  | `@webhook` | Method | Expose as HTTP endpoint |
526
555
  | `@scheduled` | Method | Run on a cron schedule |
527
556
  | `@locked` | Method | Distributed lock across processes |
@@ -540,8 +569,9 @@ Uses Bun's compiler under the hood. The binary bundles the photon, its `@depende
540
569
  | Guide | |
541
570
  |---|---|
542
571
  | [Getting Started](./docs/getting-started.md) | Install, build, and run your first photon in 5 minutes |
543
- | [Core Concepts](./docs/concepts.md) | The 5 ideas behind Photon |
572
+ | [Core Concepts](./docs/concepts.md) | The 6 ideas behind Photon |
544
573
  | [Output Formats](./docs/formats.md) | Visual gallery of every `@format` type |
574
+ | [Settings](./docs/GUIDE.md#settings-user-configurable-knobs) | Declare runtime knobs with `protected settings` (the canonical config pattern) |
545
575
  | [Troubleshooting](./docs/TROUBLESHOOTING.md) | Common issues and solutions |
546
576
 
547
577
  **Go deeper:**
@@ -557,6 +587,7 @@ Uses Bun's compiler under the hood. The binary bundles the photon, its `@depende
557
587
  | [Webhooks](./docs/reference/WEBHOOKS.md) | HTTP endpoints for external services |
558
588
  | [Locks](./docs/reference/LOCKS.md) | Distributed locks for exclusive access |
559
589
  | [Advanced Patterns](./docs/guides/ADVANCED.md) | Lifecycle hooks, dependency injection, interactive workflows |
590
+ | [Marketplace Configuration](./docs/guides/MARKETPLACE-CONFIG.md) | Sharing settings across related photons in one marketplace |
560
591
  | [Deployment](./docs/guides/DEPLOYMENT.md) | Docker, Cloudflare Workers, AWS Lambda, Systemd |
561
592
 
562
593
  **Operate:**
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Asset discovery + binding for Photon instances.
3
+ *
4
+ * Wraps `discoverAssets` from photon-core with the runtime-specific bits:
5
+ * method-level `@ui` linking, `ui://` URI generation for the MCP Apps
6
+ * extension, and exposing the metadata on `this.assets` without breaking
7
+ * the inherited `assets(subpath)` callable on Photon subclasses.
8
+ *
9
+ * Extracted from PhotonLoader so the loader doesn't need to know how
10
+ * UI assets get woven onto an instance.
11
+ */
12
+ import { type PhotonAssets } from '@portel/photon-core';
13
+ type LogFn = (message: string, meta?: Record<string, any>) => void;
14
+ export declare class AssetResolver {
15
+ private readonly log;
16
+ constructor(log: LogFn);
17
+ /**
18
+ * Discover assets from a photon source. Delegates to photon-core for the
19
+ * filesystem walk, then layers in method-level `@ui` links and `ui://` URIs.
20
+ */
21
+ discover(photonPath: string, source: string): Promise<PhotonAssets | undefined>;
22
+ /**
23
+ * Expose discovered asset metadata on the instance without breaking
24
+ * `Photon.assets(subpath)`.
25
+ *
26
+ * Photon subclasses inherit a callable `assets(subpath)` method. We bind
27
+ * it to the instance and decorate the function object with metadata so
28
+ * both `this.assets('templates')` and `this.assets.ui` work. Plain
29
+ * classes with no inherited method receive the metadata object directly.
30
+ */
31
+ attachToInstance(instance: Record<string, unknown>, assets: PhotonAssets | undefined): void;
32
+ /**
33
+ * Generate ui:// URIs for all UI assets (MCP Apps Extension, SEP-1865).
34
+ * URI format: ui://<photon-name>/<asset-id>
35
+ */
36
+ private generateAssetURIs;
37
+ /**
38
+ * Apply method-level `@ui` annotations to link UI assets to tools.
39
+ * Called after auto-discovery so all UI assets are available to look up.
40
+ */
41
+ private applyMethodUILinks;
42
+ }
43
+ export {};
44
+ //# sourceMappingURL=asset-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-resolver.d.ts","sourceRoot":"","sources":["../src/asset-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAA0C,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEhG,KAAK,KAAK,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;AAEnE,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,KAAK;IAEvC;;;OAGG;IACG,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAcrF;;;;;;;;OAQG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI;IA2B3F;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;CAwB3B"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Asset discovery + binding for Photon instances.
3
+ *
4
+ * Wraps `discoverAssets` from photon-core with the runtime-specific bits:
5
+ * method-level `@ui` linking, `ui://` URI generation for the MCP Apps
6
+ * extension, and exposing the metadata on `this.assets` without breaking
7
+ * the inherited `assets(subpath)` callable on Photon subclasses.
8
+ *
9
+ * Extracted from PhotonLoader so the loader doesn't need to know how
10
+ * UI assets get woven onto an instance.
11
+ */
12
+ import * as path from 'path';
13
+ import { discoverAssets as sharedDiscoverAssets } from '@portel/photon-core';
14
+ export class AssetResolver {
15
+ log;
16
+ constructor(log) {
17
+ this.log = log;
18
+ }
19
+ /**
20
+ * Discover assets from a photon source. Delegates to photon-core for the
21
+ * filesystem walk, then layers in method-level `@ui` links and `ui://` URIs.
22
+ */
23
+ async discover(photonPath, source) {
24
+ const basename = path.basename(photonPath, '.photon.ts');
25
+ const assets = await sharedDiscoverAssets(photonPath, source);
26
+ if (!assets) {
27
+ return undefined;
28
+ }
29
+ this.applyMethodUILinks(source, assets);
30
+ this.generateAssetURIs(basename, assets);
31
+ return assets;
32
+ }
33
+ /**
34
+ * Expose discovered asset metadata on the instance without breaking
35
+ * `Photon.assets(subpath)`.
36
+ *
37
+ * Photon subclasses inherit a callable `assets(subpath)` method. We bind
38
+ * it to the instance and decorate the function object with metadata so
39
+ * both `this.assets('templates')` and `this.assets.ui` work. Plain
40
+ * classes with no inherited method receive the metadata object directly.
41
+ */
42
+ attachToInstance(instance, assets) {
43
+ if (!assets) {
44
+ return;
45
+ }
46
+ const existingAssets = instance.assets;
47
+ if (typeof existingAssets === 'function') {
48
+ const boundAssets = existingAssets.bind(instance);
49
+ Object.assign(boundAssets, assets);
50
+ Object.defineProperty(instance, 'assets', {
51
+ value: boundAssets,
52
+ configurable: true,
53
+ enumerable: false,
54
+ writable: false,
55
+ });
56
+ return;
57
+ }
58
+ Object.defineProperty(instance, 'assets', {
59
+ value: assets,
60
+ configurable: true,
61
+ enumerable: false,
62
+ writable: false,
63
+ });
64
+ }
65
+ /**
66
+ * Generate ui:// URIs for all UI assets (MCP Apps Extension, SEP-1865).
67
+ * URI format: ui://<photon-name>/<asset-id>
68
+ */
69
+ generateAssetURIs(photonName, assets) {
70
+ for (const ui of assets.ui) {
71
+ ui.uri = `ui://${photonName}/${ui.id}`;
72
+ this.log(` 🔗 URI: ${ui.uri}`);
73
+ }
74
+ }
75
+ /**
76
+ * Apply method-level `@ui` annotations to link UI assets to tools.
77
+ * Called after auto-discovery so all UI assets are available to look up.
78
+ */
79
+ applyMethodUILinks(source, assets) {
80
+ const methodUiRegex = /\/\*\*[\s\S]*?@ui\s+(\w[\w-]*)[\s\S]*?\*\/\s*(?:async\s+)?\*?\s*(\w+)/g;
81
+ let match;
82
+ while ((match = methodUiRegex.exec(source)) !== null) {
83
+ const [, uiId, methodName] = match;
84
+ const asset = assets.ui.find((u) => u.id === uiId);
85
+ if (asset) {
86
+ if (!asset.linkedTool) {
87
+ asset.linkedTool = methodName;
88
+ this.log(` 🔗 UI ${uiId} → ${methodName}`);
89
+ }
90
+ if (!asset.linkedTools)
91
+ asset.linkedTools = [];
92
+ if (!asset.linkedTools.includes(methodName)) {
93
+ asset.linkedTools.push(methodName);
94
+ if (asset.linkedTools.length > 1) {
95
+ this.log(` 🔗 UI ${uiId} → ${methodName} (shared)`);
96
+ }
97
+ }
98
+ }
99
+ else {
100
+ this.log(` ⚠️ @ui ${uiId} on ${methodName}: asset not found (check file exists)`);
101
+ }
102
+ }
103
+ }
104
+ }
105
+ //# sourceMappingURL=asset-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-resolver.js","sourceRoot":"","sources":["../src/asset-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * External MCP lifecycle manager.
3
+ *
4
+ * Owns the three coupled containers (`externalMCPs`, `externalMCPClients`,
5
+ * `externalMCPSDKClients`) that beam.ts previously held as separate fields
6
+ * on BeamContext, plus the cohesive add/remove/close operations that
7
+ * touch all three together.
8
+ *
9
+ * Implements `ExternalMCPState` so existing helpers in `external-mcp.ts`
10
+ * (which read the maps directly) continue to work unchanged.
11
+ */
12
+ import type { Client } from '@modelcontextprotocol/sdk/client/index.js';
13
+ import type { ExternalMCPInfo } from '../types.js';
14
+ import type { ExternalMCPState } from './external-mcp.js';
15
+ export declare class ExternalMCPManager implements ExternalMCPState {
16
+ /** External MCP server metadata (name, methods, connected, etc.). */
17
+ readonly externalMCPs: ExternalMCPInfo[];
18
+ /** Transport-level clients (raw, used by the streamable-HTTP path). */
19
+ readonly externalMCPClients: Map<string, any>;
20
+ /** SDK Client instances (used for tool calls that need structuredContent). */
21
+ readonly externalMCPSDKClients: Map<string, Client<{
22
+ method: string;
23
+ params?: {
24
+ [x: string]: unknown;
25
+ _meta?: {
26
+ [x: string]: unknown;
27
+ progressToken?: string | number | undefined;
28
+ "io.modelcontextprotocol/related-task"?: {
29
+ taskId: string;
30
+ } | undefined;
31
+ } | undefined;
32
+ } | undefined;
33
+ }, {
34
+ method: string;
35
+ params?: {
36
+ [x: string]: unknown;
37
+ _meta?: {
38
+ [x: string]: unknown;
39
+ progressToken?: string | number | undefined;
40
+ "io.modelcontextprotocol/related-task"?: {
41
+ taskId: string;
42
+ } | undefined;
43
+ } | undefined;
44
+ } | undefined;
45
+ }, {
46
+ [x: string]: unknown;
47
+ _meta?: {
48
+ [x: string]: unknown;
49
+ progressToken?: string | number | undefined;
50
+ "io.modelcontextprotocol/related-task"?: {
51
+ taskId: string;
52
+ } | undefined;
53
+ } | undefined;
54
+ }>>;
55
+ /** Append-many. Used after `loadExternalMCPs(...)` returns a list. */
56
+ addAll(mcps: ExternalMCPInfo[]): void;
57
+ /**
58
+ * Remove an MCP by name from all three containers in one atomic-from-JS step.
59
+ * Returns the SDK client (if any) so the caller can close it asynchronously
60
+ * after all map mutations are done — matches the existing two-phase pattern
61
+ * in beam.ts where Maps are made consistent first, then close is awaited.
62
+ */
63
+ removeByName(name: string): {
64
+ sdkClient?: Client;
65
+ };
66
+ /**
67
+ * Gracefully close every SDK client and clear the two client maps.
68
+ * Used on Beam shutdown. Logs at debug — close errors during shutdown
69
+ * are expected, not actionable.
70
+ */
71
+ closeAllSDKClients(): Promise<void>;
72
+ }
73
+ //# sourceMappingURL=external-mcp-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-mcp-manager.d.ts","sourceRoot":"","sources":["../../../src/auto-ui/beam/external-mcp-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAIxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAK1D,qBAAa,kBAAmB,YAAW,gBAAgB;IACzD,qEAAqE;IACrE,QAAQ,CAAC,YAAY,EAAE,eAAe,EAAE,CAAM;IAC9C,uEAAuE;IACvE,QAAQ,CAAC,kBAAkB,mBAA0B;IACrD,8EAA8E;IAC9E,QAAQ,CAAC,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAA6B;IAE3D,sEAAsE;IACtE,MAAM,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,IAAI;IAIrC;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;IAWlD;;;;OAIG;IACG,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;CAwB1C"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * External MCP lifecycle manager.
3
+ *
4
+ * Owns the three coupled containers (`externalMCPs`, `externalMCPClients`,
5
+ * `externalMCPSDKClients`) that beam.ts previously held as separate fields
6
+ * on BeamContext, plus the cohesive add/remove/close operations that
7
+ * touch all three together.
8
+ *
9
+ * Implements `ExternalMCPState` so existing helpers in `external-mcp.ts`
10
+ * (which read the maps directly) continue to work unchanged.
11
+ */
12
+ import { logger } from '../../shared/logger.js';
13
+ import { withTimeout } from '../../async/index.js';
14
+ import { getErrorMessage } from '../../shared/error-handler.js';
15
+ /** Default ms to wait for graceful client close on shutdown. */
16
+ const SHUTDOWN_TIMEOUT_MS = 1000;
17
+ export class ExternalMCPManager {
18
+ /** External MCP server metadata (name, methods, connected, etc.). */
19
+ externalMCPs = [];
20
+ /** Transport-level clients (raw, used by the streamable-HTTP path). */
21
+ externalMCPClients = new Map();
22
+ /** SDK Client instances (used for tool calls that need structuredContent). */
23
+ externalMCPSDKClients = new Map();
24
+ /** Append-many. Used after `loadExternalMCPs(...)` returns a list. */
25
+ addAll(mcps) {
26
+ this.externalMCPs.push(...mcps);
27
+ }
28
+ /**
29
+ * Remove an MCP by name from all three containers in one atomic-from-JS step.
30
+ * Returns the SDK client (if any) so the caller can close it asynchronously
31
+ * after all map mutations are done — matches the existing two-phase pattern
32
+ * in beam.ts where Maps are made consistent first, then close is awaited.
33
+ */
34
+ removeByName(name) {
35
+ const idx = this.externalMCPs.findIndex((m) => m.name === name);
36
+ if (idx !== -1) {
37
+ this.externalMCPs.splice(idx, 1);
38
+ }
39
+ const sdkClient = this.externalMCPSDKClients.get(name);
40
+ this.externalMCPSDKClients.delete(name);
41
+ this.externalMCPClients.delete(name);
42
+ return sdkClient ? { sdkClient } : {};
43
+ }
44
+ /**
45
+ * Gracefully close every SDK client and clear the two client maps.
46
+ * Used on Beam shutdown. Logs at debug — close errors during shutdown
47
+ * are expected, not actionable.
48
+ */
49
+ async closeAllSDKClients() {
50
+ const closePromises = [];
51
+ for (const [name, client] of this.externalMCPSDKClients) {
52
+ closePromises.push(client.close().catch((err) => {
53
+ logger.debug(`External MCP close failed for ${name}: ${getErrorMessage(err)}`);
54
+ }));
55
+ }
56
+ if (closePromises.length > 0) {
57
+ await withTimeout(Promise.all(closePromises), SHUTDOWN_TIMEOUT_MS, 'MCP client close timeout').catch((err) => {
58
+ logger.debug(`External MCP shutdown timeout: ${getErrorMessage(err)}`);
59
+ });
60
+ }
61
+ this.externalMCPSDKClients.clear();
62
+ this.externalMCPClients.clear();
63
+ }
64
+ }
65
+ //# sourceMappingURL=external-mcp-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-mcp-manager.js","sourceRoot":"","sources":["../../../src/auto-ui/beam/external-mcp-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAIhE,gEAAgE;AAChE,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAEjC,MAAM,OAAO,kBAAkB;IAC7B,qEAAqE;IAC5D,YAAY,GAAsB,EAAE,CAAC;IAC9C,uEAAuE;IAC9D,kBAAkB,GAAG,IAAI,GAAG,EAAe,CAAC;IACrD,8EAA8E;IACrE,qBAAqB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE3D,sEAAsE;IACtE,MAAM,CAAC,IAAuB;QAC5B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAClC,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,IAAY;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAChE,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,kBAAkB;QACtB,MAAM,aAAa,GAAoB,EAAE,CAAC;QAE1C,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACxD,aAAa,CAAC,IAAI,CAChB,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC3B,MAAM,CAAC,KAAK,CAAC,iCAAiC,IAAI,KAAK,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjF,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;QAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,WAAW,CACf,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAC1B,mBAAmB,EACnB,0BAA0B,CAC3B,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACd,MAAM,CAAC,KAAK,CAAC,kCAAkC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzE,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"external-mcp.d.ts","sourceRoot":"","sources":["../../../src/auto-ui/beam/external-mcp.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAUnE,OAAO,KAAK,EAAE,eAAe,EAAc,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,gEAAgE;AAChE,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrC,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1D;AAsHD;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,eAAe,EAAE,CAAC,CA8H5B;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAwF/C"}
1
+ {"version":3,"file":"external-mcp.d.ts","sourceRoot":"","sources":["../../../src/auto-ui/beam/external-mcp.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAUnE,OAAO,KAAK,EAAE,eAAe,EAAc,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,gEAAgE;AAChE,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrC,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1D;AAwID;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,eAAe,EAAE,CAAC,CAmI5B;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA0F/C"}
@@ -35,6 +35,9 @@ async function connectHTTPClient(url, mcpName) {
35
35
  },
36
36
  });
37
37
  sdkClient.setRequestHandler(ElicitRequestSchema, async (request) => {
38
+ // ElicitRequest has typed message + requestedSchema; mode/url/elicitationId
39
+ // are Photon-specific extension fields the schema doesn't enumerate.
40
+ // Read as a wider any-indexed shape so we don't have to narrow at every site.
38
41
  const params = request.params;
39
42
  const result = await requestExternalElicitation(mcpName, {
40
43
  mode: params.mode,
@@ -64,6 +67,9 @@ async function connectHTTPClient(url, mcpName) {
64
67
  },
65
68
  });
66
69
  sseClient.setRequestHandler(ElicitRequestSchema, async (request) => {
70
+ // ElicitRequest has typed message + requestedSchema; mode/url/elicitationId
71
+ // are Photon-specific extension fields the schema doesn't enumerate.
72
+ // Read as a wider any-indexed shape so we don't have to narrow at every site.
67
73
  const params = request.params;
68
74
  const result = await requestExternalElicitation(mcpName, {
69
75
  mode: params.mode,
@@ -91,6 +97,17 @@ function toolsToMethods(tools) {
91
97
  visibility: tool._meta?.ui?.visibility,
92
98
  }));
93
99
  }
100
+ /** Detect web capability from an SDK client (capabilities.web extension) */
101
+ function detectWebCapability(sdkClient, mcpInfo) {
102
+ const caps = sdkClient.getServerCapabilities?.();
103
+ const web = caps?.web;
104
+ if (web?.url) {
105
+ mcpInfo.hasWebApp = true;
106
+ mcpInfo.webUrl = web.url;
107
+ mcpInfo.webDescription = web.description;
108
+ logger.info(`🌐 Web UI detected: ${mcpInfo.name} (${web.url})`);
109
+ }
110
+ }
94
111
  /** Detect MCP App resources from an SDK client */
95
112
  async function detectMCPApps(sdkClient, methods, mcpInfo, name) {
96
113
  try {
@@ -143,6 +160,7 @@ export async function loadExternalMCPs(config, state) {
143
160
  const toolsResult = await sdkClient.listTools();
144
161
  methods = toolsToMethods(toolsResult.tools || []);
145
162
  await detectMCPApps(sdkClient, methods, mcpInfo, name);
163
+ detectWebCapability(sdkClient, mcpInfo);
146
164
  mcpInfo.connected = true;
147
165
  mcpInfo.methods = methods;
148
166
  }
@@ -167,6 +185,9 @@ export async function loadExternalMCPs(config, state) {
167
185
  },
168
186
  });
169
187
  sdkClient.setRequestHandler(ElicitRequestSchema, async (request) => {
188
+ // ElicitRequest has typed message + requestedSchema; mode/url/elicitationId
189
+ // are Photon-specific extension fields the schema doesn't enumerate.
190
+ // Read as a wider any-indexed shape so we don't have to narrow at every site.
170
191
  const params = request.params;
171
192
  const result = await requestExternalElicitation(name, {
172
193
  mode: params.mode,
@@ -182,6 +203,7 @@ export async function loadExternalMCPs(config, state) {
182
203
  const toolsResult = await sdkClient.listTools();
183
204
  methods = toolsToMethods(toolsResult.tools || []);
184
205
  await detectMCPApps(sdkClient, methods, mcpInfo, name);
206
+ detectWebCapability(sdkClient, mcpInfo);
185
207
  mcpInfo.connected = true;
186
208
  mcpInfo.methods = methods;
187
209
  }
@@ -270,12 +292,14 @@ export async function reconnectExternalMCP(name, state) {
270
292
  const stdioConfig = { mcpServers: { [name]: mcpConfig } };
271
293
  const factory = new SDKMCPClientFactory(stdioConfig, false);
272
294
  const client = factory.create(name);
273
- const tools = (await withTimeout(client.list(), 10000, 'Connection timeout (10s)'));
295
+ const tools = await withTimeout(client.list(), 10000, 'Connection timeout (10s)');
274
296
  methods = (tools || []).map((tool) => ({
275
297
  name: tool.name,
276
298
  description: tool.description || '',
277
299
  params: tool.inputSchema || { type: 'object', properties: {} },
278
300
  returns: { type: 'object' },
301
+ // x-icon is a Photon extension on MCPToolInfo (not part of @portel/mcp's
302
+ // public type) — cast structurally at the read site.
279
303
  icon: tool['x-icon'],
280
304
  }));
281
305
  state.externalMCPClients.set(name, client);
@@ -1 +1 @@
1
- {"version":3,"file":"external-mcp.js","sourceRoot":"","sources":["../../../src/auto-ui/beam/external-mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"external-mcp.js","sourceRoot":"","sources":["../../../src/auto-ui/beam/external-mcp.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"photon-management.d.ts","sourceRoot":"","sources":["../../../src/auto-ui/beam/photon-management.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"photon-management.d.ts","sourceRoot":"","sources":["../../../src/auto-ui/beam/photon-management.ts"],"names":[],"mappings":"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"}