@portel/photon 1.28.2 → 1.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/auto-ui/beam.d.ts.map +1 -1
- package/dist/auto-ui/beam.js +77 -43
- package/dist/auto-ui/beam.js.map +1 -1
- package/dist/auto-ui/streamable-http-transport.d.ts +7 -0
- package/dist/auto-ui/streamable-http-transport.d.ts.map +1 -1
- package/dist/auto-ui/streamable-http-transport.js +228 -29
- package/dist/auto-ui/streamable-http-transport.js.map +1 -1
- package/dist/auto-ui/types.d.ts +9 -1
- package/dist/auto-ui/types.d.ts.map +1 -1
- package/dist/auto-ui/types.js.map +1 -1
- package/dist/beam.bundle.js +32 -2
- package/dist/beam.bundle.js.map +2 -2
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/build.js +123 -15
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/daemon/manager.d.ts.map +1 -1
- package/dist/daemon/manager.js +45 -11
- package/dist/daemon/manager.js.map +1 -1
- package/dist/daemon/server.js +41 -0
- package/dist/daemon/server.js.map +1 -1
- package/dist/deploy/cloudflare.d.ts.map +1 -1
- package/dist/deploy/cloudflare.js +82 -2
- package/dist/deploy/cloudflare.js.map +1 -1
- package/dist/editor-support/docblock-tag-catalog.d.ts.map +1 -1
- package/dist/editor-support/docblock-tag-catalog.js +32 -2
- package/dist/editor-support/docblock-tag-catalog.js.map +1 -1
- package/dist/format/registry.d.ts +83 -0
- package/dist/format/registry.d.ts.map +1 -0
- package/dist/format/registry.js +139 -0
- package/dist/format/registry.js.map +1 -0
- package/dist/format/seed.d.ts +18 -0
- package/dist/format/seed.d.ts.map +1 -0
- package/dist/format/seed.js +246 -0
- package/dist/format/seed.js.map +1 -0
- package/dist/loader.d.ts +18 -0
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +130 -22
- package/dist/loader.js.map +1 -1
- package/dist/photons/maker.photon.d.ts +2 -2
- package/dist/photons/maker.photon.d.ts.map +1 -1
- package/dist/photons/maker.photon.js +5 -6
- package/dist/photons/maker.photon.js.map +1 -1
- package/dist/photons/maker.photon.ts +5 -6
- package/dist/resource-server.d.ts +52 -12
- package/dist/resource-server.d.ts.map +1 -1
- package/dist/resource-server.js +205 -50
- package/dist/resource-server.js.map +1 -1
- package/dist/server.d.ts +75 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +515 -53
- package/dist/server.js.map +1 -1
- package/dist/shared/asset-encoding.d.ts +30 -0
- package/dist/shared/asset-encoding.d.ts.map +1 -0
- package/dist/shared/asset-encoding.js +0 -0
- package/dist/shared/asset-encoding.js.map +1 -0
- package/dist/shared/cross-origin-headers.d.ts +47 -0
- package/dist/shared/cross-origin-headers.d.ts.map +1 -0
- package/dist/shared/cross-origin-headers.js +61 -0
- package/dist/shared/cross-origin-headers.js.map +1 -0
- package/dist/shared/expose-route-extractor.d.ts +36 -0
- package/dist/shared/expose-route-extractor.d.ts.map +1 -0
- package/dist/shared/expose-route-extractor.js +64 -0
- package/dist/shared/expose-route-extractor.js.map +1 -0
- package/dist/shared/extract-claims.d.ts +33 -0
- package/dist/shared/extract-claims.d.ts.map +1 -0
- package/dist/shared/extract-claims.js +60 -0
- package/dist/shared/extract-claims.js.map +1 -0
- package/dist/shared/http-route-extractor.d.ts +6 -0
- package/dist/shared/http-route-extractor.d.ts.map +1 -1
- package/dist/shared/http-route-extractor.js +29 -5
- package/dist/shared/http-route-extractor.js.map +1 -1
- package/dist/shared/instance-binding.d.ts +53 -0
- package/dist/shared/instance-binding.d.ts.map +1 -0
- package/dist/shared/instance-binding.js +85 -0
- package/dist/shared/instance-binding.js.map +1 -0
- package/dist/types/server-types.d.ts +1 -0
- package/dist/types/server-types.d.ts.map +1 -1
- package/package.json +6 -3
- package/templates/cloudflare/worker.ts.template +90 -3
- package/templates/cloudflare/wrangler.toml.template +1 -1
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 */
|
|
@@ -101,6 +129,24 @@ export declare class PhotonServer {
|
|
|
101
129
|
rawClientCapabilities: WeakMap<Server, Record<string, any>>;
|
|
102
130
|
/** Resource listing, reading, and asset serving */
|
|
103
131
|
private resourceServer;
|
|
132
|
+
/**
|
|
133
|
+
* Server-wide registry of `resources/subscribe` state. The STDIO server
|
|
134
|
+
* registers one persistent sink; each SSE session registers a per-session
|
|
135
|
+
* sink at connect and clears its subscriptions at close.
|
|
136
|
+
*/
|
|
137
|
+
private subscriptions;
|
|
138
|
+
/** Stable sink for the STDIO server, registered once on first subscribe. */
|
|
139
|
+
private stdioSink?;
|
|
140
|
+
/**
|
|
141
|
+
* Per-server roots cache. Populated on `oninitialized` if the client
|
|
142
|
+
* declared the `roots` capability, refreshed on
|
|
143
|
+
* `notifications/roots/list_changed`. Read at tool-call time and threaded
|
|
144
|
+
* into ALS so `this.roots` resolves synchronously inside photon code.
|
|
145
|
+
*
|
|
146
|
+
* WeakMap-keyed so dead session servers stop holding cache entries
|
|
147
|
+
* automatically when SSE sessions disconnect.
|
|
148
|
+
*/
|
|
149
|
+
private rootsByServer;
|
|
104
150
|
private currentStatus;
|
|
105
151
|
private logger;
|
|
106
152
|
/** Get the loaded photon (available after start()) */
|
|
@@ -163,6 +209,22 @@ export declare class PhotonServer {
|
|
|
163
209
|
*/
|
|
164
210
|
private resolveChoiceFromFields;
|
|
165
211
|
private handleListTools;
|
|
212
|
+
/**
|
|
213
|
+
* Resolve which photon instance handles this call. For `@stateful` +
|
|
214
|
+
* `@auth` photons we pull claims from the request's `authInfo.extra`
|
|
215
|
+
* (populated by `BeamCompatTransport` from the HTTP headers), look up
|
|
216
|
+
* the binding rule from the `@auth` directive, and lazy-load a fresh
|
|
217
|
+
* photon instance keyed by that claim value. Subsequent calls from
|
|
218
|
+
* the same caller reuse the cached instance so `this.memory` /
|
|
219
|
+
* `this.tasks` persist across requests within their per-user scope.
|
|
220
|
+
*
|
|
221
|
+
* Returns `this.mcp` (the shared singleton) when the photon doesn't
|
|
222
|
+
* declare per-caller routing, when claims are missing, or when the
|
|
223
|
+
* binding rule yields no instance name. The fallback is intentional:
|
|
224
|
+
* unauthenticated requests still execute, they just share the default
|
|
225
|
+
* instance — same as a v1.28 photon would.
|
|
226
|
+
*/
|
|
227
|
+
private resolveInstanceMcp;
|
|
166
228
|
private handleCallTool;
|
|
167
229
|
private handleListPrompts;
|
|
168
230
|
private handleGetPrompt;
|
|
@@ -170,6 +232,19 @@ export declare class PhotonServer {
|
|
|
170
232
|
* Set up MCP protocol handlers (STDIO transport)
|
|
171
233
|
*/
|
|
172
234
|
private setupHandlers;
|
|
235
|
+
/**
|
|
236
|
+
* Wire up `roots/list` discovery + `notifications/roots/list_changed`
|
|
237
|
+
* refresh for one Server instance. Called once for the STDIO server and
|
|
238
|
+
* once per SSE session.
|
|
239
|
+
*
|
|
240
|
+
* Eager fetch on initialize keeps `this.roots` synchronous inside photon
|
|
241
|
+
* code — clients that don't declare the capability skip the fetch
|
|
242
|
+
* entirely. The cache is server-scoped (per-session for SSE) so two
|
|
243
|
+
* clients with different working directories don't see each other's
|
|
244
|
+
* roots.
|
|
245
|
+
*/
|
|
246
|
+
private setupRootsForServer;
|
|
247
|
+
private refreshRootsCache;
|
|
173
248
|
/**
|
|
174
249
|
* Format tool result as text
|
|
175
250
|
*/
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|