@opendatalabs/personal-server-ts-lite 0.0.1-canary.01ca694 → 0.0.1-canary.052d47e

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 (44) hide show
  1. package/dist/browser-runtime.d.ts +26 -1
  2. package/dist/browser-runtime.d.ts.map +1 -1
  3. package/dist/browser-runtime.js +130 -26
  4. package/dist/browser-runtime.js.map +1 -1
  5. package/dist/client.d.ts.map +1 -1
  6. package/dist/client.js +40 -8
  7. package/dist/client.js.map +1 -1
  8. package/dist/derivatives.d.ts +51 -0
  9. package/dist/derivatives.d.ts.map +1 -0
  10. package/dist/derivatives.js +85 -0
  11. package/dist/derivatives.js.map +1 -0
  12. package/dist/index.d.ts +8 -5
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +8 -3
  15. package/dist/index.js.map +1 -1
  16. package/dist/persistence.d.ts +69 -0
  17. package/dist/persistence.d.ts.map +1 -0
  18. package/dist/persistence.js +58 -0
  19. package/dist/persistence.js.map +1 -0
  20. package/dist/relay-tls.d.ts +42 -0
  21. package/dist/relay-tls.d.ts.map +1 -1
  22. package/dist/relay-tls.js +176 -86
  23. package/dist/relay-tls.js.map +1 -1
  24. package/dist/relay.d.ts +83 -4
  25. package/dist/relay.d.ts.map +1 -1
  26. package/dist/relay.js +299 -21
  27. package/dist/relay.js.map +1 -1
  28. package/dist/runtime.d.ts +97 -4
  29. package/dist/runtime.d.ts.map +1 -1
  30. package/dist/runtime.js +208 -44
  31. package/dist/runtime.js.map +1 -1
  32. package/dist/state.d.ts +11 -1
  33. package/dist/state.d.ts.map +1 -1
  34. package/dist/state.js +77 -7
  35. package/dist/state.js.map +1 -1
  36. package/dist/storage.d.ts +6 -2
  37. package/dist/storage.d.ts.map +1 -1
  38. package/dist/storage.js +182 -39
  39. package/dist/storage.js.map +1 -1
  40. package/dist/sync.d.ts +23 -0
  41. package/dist/sync.d.ts.map +1 -1
  42. package/dist/sync.js +56 -6
  43. package/dist/sync.js.map +1 -1
  44. package/package.json +4 -4
package/dist/relay.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"relay.js","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relay.js","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":"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"}
package/dist/runtime.d.ts CHANGED
@@ -1,7 +1,11 @@
1
1
  import { type SessionTokenVerifierPort } from "@opendatalabs/personal-server-ts-core/auth";
2
- import { type PersonalServerApiAuthPort, type PersonalServerReadAuthInput, type PersonalServerReadAuthResult } from "@opendatalabs/personal-server-ts-core/api";
3
- import { type DataReadPolicyPorts } from "@opendatalabs/personal-server-ts-core/policy";
2
+ import { type PersonalServerApiAuthPort, type PersonalServerReadAuthInput, type PersonalServerReadAuthResult, type PersonalServerReadFulfillmentReporter } from "@opendatalabs/personal-server-ts-core/api";
3
+ import { type QuestionStore, type RecomputeScheduler } from "@opendatalabs/personal-server-ts-core/derivatives";
4
+ import type { LineageGatewayPort } from "@opendatalabs/personal-server-ts-core/lineage";
5
+ import { type DataReadPolicyPorts, type DataWritePolicyPorts } from "@opendatalabs/personal-server-ts-core/policy";
6
+ import { type WriteProofReplayStore, type WriteSessionStore } from "@opendatalabs/personal-server-ts-core/write";
4
7
  import type { DataStoragePort, RuntimeAvailabilityPort } from "@opendatalabs/personal-server-ts-core/ports";
8
+ import type { ScopeDeletionTracker } from "@opendatalabs/personal-server-ts-core/sync";
5
9
  import type { DataPortabilityGatewayConfig, GatewayClient } from "@opendatalabs/vana-sdk/browser";
6
10
  import type { AccessLogWriter } from "@opendatalabs/personal-server-ts-core/logging/access-log";
7
11
  import type { AccessLogReader } from "@opendatalabs/personal-server-ts-core/logging/access-reader";
@@ -27,6 +31,10 @@ export interface PsLiteRuntimeOptions {
27
31
  gateway?: Partial<DataPortabilityGatewayConfig> & {
28
32
  url?: string;
29
33
  };
34
+ /** X402 read enforcement. Off by default in the browser runtime. */
35
+ payment?: {
36
+ enabled?: boolean;
37
+ };
30
38
  };
31
39
  saveConfig?: (config: unknown) => Promise<void>;
32
40
  identity?: {
@@ -35,11 +43,56 @@ export interface PsLiteRuntimeOptions {
35
43
  };
36
44
  gateway?: GatewayClient;
37
45
  serverOwner?: `0x${string}`;
38
- serverSigner?: Pick<ServerSigner, "signFileRegistration" | "signGrantRegistration"> & Partial<Pick<ServerSigner, "signGrantRevocation">>;
39
- syncManager?: (Pick<SyncManager, "trigger" | "getStatus"> & Partial<Pick<SyncManager, "start" | "stop">>) | null;
46
+ serverSigner?: Pick<ServerSigner, "signGrantRegistration"> & Partial<Pick<ServerSigner, "signGrantRevocation" | "signRecordDataAccess" | "address">>;
47
+ syncManager?: (Pick<SyncManager, "trigger" | "getStatus"> & Partial<Pick<SyncManager, "start" | "stop" | "deleteScope">>) | null;
48
+ /**
49
+ * Read-side tombstone memory; reads of a scope the gateway reports deleted
50
+ * answer 410 (stale local copy or not). Built by the browser runtime
51
+ * alongside the sync manager, which keeps it current.
52
+ */
53
+ scopeDeletions?: ScopeDeletionTracker;
40
54
  accessLogReader?: AccessLogReader;
41
55
  accessLogWriter?: AccessLogWriter;
56
+ readFulfillmentReporter?: PersonalServerReadFulfillmentReporter;
57
+ /**
58
+ * Derivative data: gateway lineage access for the data routes (source
59
+ * lookups on write, signed lineage read, cascade delete walk).
60
+ */
61
+ lineageGateway?: LineageGatewayPort;
62
+ /**
63
+ * Derivative compute layer (store + scheduler). Omit to leave
64
+ * /v1/derivatives answering 503; see createPsLiteDerivativeCompute.
65
+ */
66
+ derivatives?: {
67
+ store: QuestionStore;
68
+ scheduler: RecomputeScheduler;
69
+ } | null;
42
70
  accessToken?: string;
71
+ /**
72
+ * Write API sessions. When present, POST /v1/write/session is mounted and
73
+ * mints the bearer tokens the auth adapter redeems on POST /v1/data/:scope
74
+ * and the derivative question routes. The SAME store must be wired into the
75
+ * adapter (`writeSessions.store`); `createIndexedDbPsLiteRuntime` does both.
76
+ * Absent = owner-only ingest and no handshake endpoint.
77
+ *
78
+ * KNOWN LIMITATION, same as the Node build: sessions and the proof replay
79
+ * guard are in-memory, so a reload drops live tokens and the builder
80
+ * re-handshakes. Because both live in the same memory, a reload can never
81
+ * leave a replayable proof for a session that survived it.
82
+ */
83
+ writeSessionStore?: WriteSessionStore;
84
+ /**
85
+ * Replay guard shared by the handshake proof and the per-write proofs.
86
+ * Defaults to a fresh in-memory store.
87
+ */
88
+ writeProofReplayStore?: WriteProofReplayStore;
89
+ /**
90
+ * The audience every builder proof must name. It MUST be the origin the
91
+ * auth adapter verifies write proofs against, or a builder would have to
92
+ * sign the handshake for one audience and its writes for another. Defaults
93
+ * to the request's own origin.
94
+ */
95
+ serverOrigin?: string | (() => string);
43
96
  tokenStore?: PsLiteTokenStore;
44
97
  stateCapabilities?: Partial<PsLiteRuntimeStateCapabilities>;
45
98
  /**
@@ -77,9 +130,44 @@ export interface PsLiteRuntime extends RuntimeAvailabilityPort {
77
130
  deactivate(): void;
78
131
  fetch(request: Request): Promise<Response>;
79
132
  }
133
+ /**
134
+ * Delegated-write (Write API) wiring for a PS-Lite auth adapter.
135
+ *
136
+ * A builder holding `write:<scope>` opens a session at POST /v1/write/session
137
+ * and then writes through the ordinary ingest endpoint. The adapter and the
138
+ * handshake route MUST share one `store` (the route mints what the adapter
139
+ * redeems) and one `replayStore` (the handshake proof and the per-write proofs
140
+ * are guarded by the same memory). `createIndexedDbPsLiteRuntime` wires both
141
+ * for you; supply them yourself only when you build the adapter by hand.
142
+ */
143
+ export interface PsLiteWriteSessionAuthOptions {
144
+ /** Live write sessions, shared with the handshake route. */
145
+ store: WriteSessionStore;
146
+ /**
147
+ * Replay guard for the per-write `X-Vana-Write-Signature` proofs. Defaults
148
+ * to a fresh in-memory store, so replay protection is always on; pass the
149
+ * runtime's store to share one guard with the handshake route.
150
+ */
151
+ replayStore?: WriteProofReplayStore;
152
+ /**
153
+ * Live builder/grant verification, re-run on EVERY delegated write, so a
154
+ * revoked or narrowed grant stops writes at the next one.
155
+ */
156
+ policyPorts: DataWritePolicyPorts;
157
+ }
80
158
  export interface BearerTokenPsLiteAuthOptions {
81
159
  ownerToken: string;
82
160
  builderToken: string;
161
+ /**
162
+ * Optional delegated-write support. The static builder token never gains
163
+ * write access through it: a delegated write still needs a real session
164
+ * token plus the builder's signed payload proof, verified exactly as the
165
+ * Node server verifies it.
166
+ */
167
+ writeSessions?: PsLiteWriteSessionAuthOptions & {
168
+ serverOrigin: string | (() => string);
169
+ serverOwner: `0x${string}`;
170
+ };
83
171
  }
84
172
  export interface Web3SignedPsLiteAuthOptions {
85
173
  origin: string | (() => string);
@@ -88,6 +176,11 @@ export interface Web3SignedPsLiteAuthOptions {
88
176
  accessToken?: string;
89
177
  tokenStore?: SessionTokenVerifierPort;
90
178
  now?: () => number;
179
+ /**
180
+ * Optional delegated-write support. Absent = owner-only ingest, exactly as
181
+ * before write sessions existed.
182
+ */
183
+ writeSessions?: PsLiteWriteSessionAuthOptions;
91
184
  }
92
185
  export declare function createBearerTokenPsLiteAuth(options: BearerTokenPsLiteAuthOptions): PsLiteAuthAdapter;
93
186
  export declare function createWeb3SignedPsLiteAuth(options: Web3SignedPsLiteAuthOptions): PsLiteAuthAdapter;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
package/dist/runtime.js CHANGED
@@ -2,9 +2,11 @@ import { GrantRequiredError, InvalidSignatureError, MissingAuthError, NotOwnerEr
2
2
  import { authenticateRequest, } from "@opendatalabs/personal-server-ts-core/auth";
3
3
  import { approveDeviceSessionContract, createMemoryDeviceSessionStore, initiateDeviceSessionContract, pollDeviceSessionContract, provisionDeviceTokenContract, revokeDeviceTokenContract, } from "@opendatalabs/personal-server-ts-core/contracts";
4
4
  import { handlePersonalServerAccessLogsRequest, handlePersonalServerConfigRequest, handlePersonalServerDataRequest, handlePersonalServerGrantsRequest, handlePersonalServerOauthTokenRequest, handlePersonalServerSyncRequest, } from "@opendatalabs/personal-server-ts-core/api";
5
+ import { handlePersonalServerDerivativesRequest, } from "@opendatalabs/personal-server-ts-core/derivatives";
5
6
  import { verifyDataReadPolicy, } from "@opendatalabs/personal-server-ts-core/policy";
7
+ import { createInMemoryWriteProofReplayStore, createWriteSessionAuthorization, handleWriteSessionRequest, } from "@opendatalabs/personal-server-ts-core/write";
6
8
  import { approveMcpOAuthAuthorization, approveMcpOAuthAuthorizationWithScopes, approveMcpConnection, buildMcpProtectedResourceMetadataUrl, buildStableMcpUrl, createInMemoryMcpOAuthAuthorizationStore, createMcpConnection, createMcpOAuthAuthorization, createMcpDataReadClient, handleMcpStreamableHttpRequest, hashConnectionToken, listMcpConnectionViews, loadMcpGranteeAccount, McpConnectionNotFoundError, McpConnectionStateError, McpOAuthAuthorizationError, redeemMcpOAuthAuthorizationCode, toMcpOAuthAuthorizationView, revokeMcpConnection, toMcpConnectionView, McpActivityRecorder, } from "@opendatalabs/personal-server-ts-core/mcp";
7
- import { createIndexedDbPsLiteAccessLogStore, createIndexedDbPsLiteStateStore, createIndexedDbPsLiteTokenStore, savePsLiteConfig, } from "./state.js";
9
+ import { createDefaultPsLiteAccessLogStore, createDefaultPsLiteSaveConfig, createDefaultPsLiteTokenStore, } from "./state.js";
8
10
  import { collectDiagnosticsWithTimeout, DiagnosticsRecorder, } from "./diagnostics.js";
9
11
  function jsonResponse(body, init) {
10
12
  const headers = new Headers(init?.headers);
@@ -120,11 +122,42 @@ function createMissingAuthAdapter() {
120
122
  },
121
123
  };
122
124
  }
123
- export function createBearerTokenPsLiteAuth(options) {
125
+ /**
126
+ * The two write-session methods of the auth port, built on the SHARED core
127
+ * authorizer (`createWriteSessionAuthorization`) — the same code the Node
128
+ * server's adapter runs. `authorizeWrite` falls back to the adapter's owner
129
+ * gate for any request that carries no live session, so owner ingest behaves
130
+ * exactly as it did before write sessions existed.
131
+ */
132
+ function writeSessionAuthMethods(writeSessions, authorizeOwner) {
133
+ const authorization = createWriteSessionAuthorization({
134
+ serverOrigin: writeSessions.serverOrigin,
135
+ serverOwner: writeSessions.serverOwner,
136
+ sessionStore: writeSessions.store,
137
+ replayStore: writeSessions.replayStore ?? createInMemoryWriteProofReplayStore(),
138
+ policyPorts: writeSessions.policyPorts,
139
+ });
124
140
  return {
125
- async authorizeOwner(request) {
126
- assertBearerToken(request, options.ownerToken, true);
141
+ async authorizeWrite(input) {
142
+ const delegated = await authorization.authorizeSessionWrite(input);
143
+ if (delegated)
144
+ return delegated;
145
+ await authorizeOwner(input.request);
127
146
  },
147
+ async authorizeWriteSession(request) {
148
+ return authorization.recognizeWriteSession(request);
149
+ },
150
+ };
151
+ }
152
+ export function createBearerTokenPsLiteAuth(options) {
153
+ const authorizeOwner = async (request) => {
154
+ assertBearerToken(request, options.ownerToken, true);
155
+ };
156
+ return {
157
+ authorizeOwner,
158
+ ...(options.writeSessions
159
+ ? writeSessionAuthMethods(options.writeSessions, authorizeOwner)
160
+ : {}),
128
161
  async authorizeBuilderList(request) {
129
162
  if (parseBearerToken(request) === options.ownerToken)
130
163
  return;
@@ -140,6 +173,15 @@ export function createBearerTokenPsLiteAuth(options) {
140
173
  reason: "No grantId in request",
141
174
  });
142
175
  }
176
+ // This adapter echoes the caller-supplied grantId into the auth
177
+ // result, so it must never mint the server-internal sentinels that
178
+ // confer the unredacted owner view and the x402 payment exemption.
179
+ if (input.grantId === "owner" || input.grantId === "policy-bypass") {
180
+ throw new GrantRequiredError({
181
+ reason: "Reserved grantId",
182
+ grantId: input.grantId,
183
+ });
184
+ }
143
185
  return { grantId: input.grantId };
144
186
  },
145
187
  };
@@ -163,16 +205,24 @@ function dataReadPolicyPortsRequired() {
163
205
  });
164
206
  }
165
207
  export function createWeb3SignedPsLiteAuth(options) {
208
+ const authorizeOwner = async (request) => {
209
+ const auth = await authenticatePsLiteRequest(request, options);
210
+ if (!isOwnerSigner(auth, options.ownerAddress)) {
211
+ throw new NotOwnerError({
212
+ expected: options.ownerAddress,
213
+ actual: auth.auth.signer,
214
+ });
215
+ }
216
+ };
166
217
  return {
167
- async authorizeOwner(request) {
168
- const auth = await authenticatePsLiteRequest(request, options);
169
- if (!isOwnerSigner(auth, options.ownerAddress)) {
170
- throw new NotOwnerError({
171
- expected: options.ownerAddress,
172
- actual: auth.auth.signer,
173
- });
174
- }
175
- },
218
+ authorizeOwner,
219
+ ...(options.writeSessions
220
+ ? writeSessionAuthMethods({
221
+ ...options.writeSessions,
222
+ serverOrigin: options.origin,
223
+ serverOwner: options.ownerAddress,
224
+ }, authorizeOwner)
225
+ : {}),
176
226
  async authorizeBuilderList(request) {
177
227
  const auth = await authenticatePsLiteRequest(request, options);
178
228
  if (auth.isPolicyBypass || isOwnerSigner(auth, options.ownerAddress)) {
@@ -202,6 +252,9 @@ export function createWeb3SignedPsLiteAuth(options) {
202
252
  grantId: auth.auth.payload.grantId ?? input.grantId,
203
253
  requestedScope: input.scope,
204
254
  fileId: input.fileId,
255
+ // Bind the read to this PS's owner — the grant must have been issued
256
+ // by us. Required now that the policy fails closed on a missing owner.
257
+ serverOwner: options.ownerAddress,
205
258
  }, options.dataReadPolicyPorts);
206
259
  return { builder: auth.auth.signer, grantId: grant.id };
207
260
  },
@@ -213,15 +266,6 @@ function toDataStoragePort(storage) {
213
266
  }
214
267
  throw new Error("PS Lite runtime requires a persistent DataStoragePort. Use createIndexedDbPsLiteRuntime() or createPersistentPsLiteStorage().");
215
268
  }
216
- function indexedDbAvailable() {
217
- return typeof indexedDB !== "undefined";
218
- }
219
- function createDefaultAccessLogStore() {
220
- if (!indexedDbAvailable()) {
221
- throw new Error("IndexedDB is required for default PS Lite access log persistence.");
222
- }
223
- return createIndexedDbPsLiteAccessLogStore();
224
- }
225
269
  function createLogId() {
226
270
  return globalThis.crypto?.randomUUID?.() ?? `log-${Date.now()}`;
227
271
  }
@@ -230,27 +274,48 @@ function randomHex(byteLength) {
230
274
  globalThis.crypto.getRandomValues(bytes);
231
275
  return Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join("");
232
276
  }
233
- function createDefaultTokenStore() {
234
- if (!indexedDbAvailable()) {
235
- throw new Error("IndexedDB is required for default PS Lite token storage.");
236
- }
237
- return createIndexedDbPsLiteTokenStore();
238
- }
239
- function createDefaultSaveConfig() {
240
- if (!indexedDbAvailable()) {
241
- throw new Error("IndexedDB is required for default PS Lite config persistence.");
242
- }
243
- const stateStore = createIndexedDbPsLiteStateStore();
244
- return async (nextConfig) => {
245
- await savePsLiteConfig(stateStore, nextConfig);
246
- };
247
- }
248
277
  function bearerToken(request) {
249
278
  const authorization = request.headers.get("authorization");
250
279
  if (!authorization?.startsWith("Bearer "))
251
280
  return null;
252
281
  return authorization.slice(7);
253
282
  }
283
+ /**
284
+ * Detached copy of the gateway block the caller built the gateway client and
285
+ * the server signer from, so a later live config write cannot mutate it.
286
+ */
287
+ function snapshotGatewayConfig(config) {
288
+ const gateway = config?.gateway;
289
+ if (!gateway)
290
+ return undefined;
291
+ return {
292
+ ...gateway,
293
+ ...(gateway.contracts ? { contracts: { ...gateway.contracts } } : {}),
294
+ };
295
+ }
296
+ function resolveX402Settings(config, gateway = config?.gateway) {
297
+ // Paid reads need the complete EIP-712 gateway domain. A partial gateway is
298
+ // valid while payment is disabled, but must never enter the x402 path.
299
+ const paymentEnabled = config?.payment?.enabled ?? false;
300
+ const gatewayConfigComplete = Boolean(gateway &&
301
+ typeof gateway.url === "string" &&
302
+ typeof gateway.chainId === "number" &&
303
+ gateway.contracts &&
304
+ typeof gateway.contracts.dataPortabilityEscrow === "string" &&
305
+ typeof gateway.contracts.dataRegistry === "string");
306
+ if (paymentEnabled && !gatewayConfigComplete) {
307
+ throw new Error("PS-Lite x402 payment is enabled (config.payment.enabled) but the gateway " +
308
+ "config is incomplete. A complete gateway config — url, chainId, and " +
309
+ "contracts (dataPortabilityEscrow, dataRegistry) — is required to charge " +
310
+ "for reads. Provide the full config or disable payment.");
311
+ }
312
+ return {
313
+ paymentEnabled,
314
+ gatewayConfig: gatewayConfigComplete
315
+ ? gateway
316
+ : undefined,
317
+ };
318
+ }
254
319
  export function createPsLiteRuntime(options) {
255
320
  let active = options.active ?? false;
256
321
  const now = options.now ?? (() => new Date());
@@ -263,12 +328,36 @@ export function createPsLiteRuntime(options) {
263
328
  let accessLogReader = options.accessLogReader;
264
329
  let accessLogWriter = options.accessLogWriter;
265
330
  if (!accessLogReader || !accessLogWriter) {
266
- const accessLogStore = createDefaultAccessLogStore();
331
+ const accessLogStore = createDefaultPsLiteAccessLogStore();
267
332
  accessLogReader ??= accessLogStore;
268
333
  accessLogWriter ??= accessLogStore;
269
334
  }
270
- const tokenStore = options.tokenStore ?? createDefaultTokenStore();
271
- const saveConfig = options.saveConfig ?? createDefaultSaveConfig();
335
+ const tokenStore = options.tokenStore ?? createDefaultPsLiteTokenStore();
336
+ const saveConfig = options.saveConfig ?? createDefaultPsLiteSaveConfig();
337
+ // The gateway client (options.gateway) and the server signer are built ONCE
338
+ // by the caller, from the startup gateway block: the gateway URL and the
339
+ // EIP-712 domain (chainId + contracts) are baked into them. A live config
340
+ // write persists a new gateway block but cannot rebuild those dependencies,
341
+ // so every gateway-derived request setting stays pinned to this snapshot —
342
+ // otherwise a config save (the UI PUTs a schema-defaulted config, so an
343
+ // omitted gateway block silently becomes the schema default) would issue
344
+ // x402 challenges, and query a gateway, for a domain the accessRecord
345
+ // signature was never made against. Gateway changes take effect on restart.
346
+ const boundGatewayConfig = snapshotGatewayConfig(options.config);
347
+ // Validate initial x402 readiness. The same derivation runs for every read
348
+ // and before every config write so payment policy cannot drift from the live
349
+ // config after a same-runtime update.
350
+ resolveX402Settings(options.config, boundGatewayConfig);
351
+ // The data handler's x402 path only needs signRecordDataAccess; narrow the
352
+ // (optional) signer so a grant-only signer doesn't masquerade as one that can
353
+ // sign access records.
354
+ const x402ServerSigner = options.serverSigner?.signRecordDataAccess
355
+ ? { signRecordDataAccess: options.serverSigner.signRecordDataAccess }
356
+ : undefined;
357
+ // One replay guard for the handshake proof and (when the caller shares it
358
+ // with the auth adapter) the per-write proofs, matching createApp's single
359
+ // writeProofReplayStore in the Node build.
360
+ const writeProofReplayStore = options.writeProofReplayStore ?? createInMemoryWriteProofReplayStore();
272
361
  const deviceSessions = createMemoryDeviceSessionStore();
273
362
  const mcpOAuthAuthorizationStore = options.mcpOAuthAuthorizationStore ??
274
363
  createInMemoryMcpOAuthAuthorizationStore();
@@ -399,10 +488,12 @@ export function createPsLiteRuntime(options) {
399
488
  activate() {
400
489
  active = true;
401
490
  options.syncManager?.start?.();
491
+ options.derivatives?.scheduler.start();
402
492
  },
403
493
  deactivate() {
404
494
  active = false;
405
495
  void options.syncManager?.stop?.();
496
+ options.derivatives?.scheduler.stop();
406
497
  },
407
498
  isAvailable() {
408
499
  return active;
@@ -493,16 +584,74 @@ export function createPsLiteRuntime(options) {
493
584
  const dataPrefix = "/v1/data";
494
585
  if (url.pathname === dataPrefix ||
495
586
  url.pathname.startsWith(`${dataPrefix}/`)) {
587
+ const x402 = resolveX402Settings(options.config, boundGatewayConfig);
496
588
  return handlePersonalServerDataRequest(request, {
497
589
  storage: dataStorage,
498
590
  auth,
499
- schemaResolver: options.gateway,
500
591
  accessLogWriter,
592
+ readFulfillmentReporter: options.readFulfillmentReporter,
501
593
  syncManager: options.syncManager ?? null,
594
+ scopeDeletions: options.scopeDeletions,
502
595
  now,
503
596
  createLogId,
597
+ // x402 payment enforcement for builder reads. Only engages with a
598
+ // complete gateway config (validated at construction); a partial
599
+ // config leaves these undefined so reads are served free instead
600
+ // of yielding a malformed challenge.
601
+ paymentEnabled: x402.paymentEnabled,
602
+ gateway: options.gateway,
603
+ gatewayConfig: x402.gatewayConfig,
604
+ gatewayUrl: x402.gatewayConfig?.url,
605
+ serverAddress: options.identity?.address,
606
+ // The data owner signed into the RecordDataAccess attestation.
607
+ // Distinct from serverAddress (the server keypair): the core only
608
+ // embeds the x402 accessRecord when BOTH serverSigner and
609
+ // serverOwner are present (see x402.ts buildChallenge). We pass
610
+ // the real owner — not identity.address — so the on-chain
611
+ // recordDataAccess attributes the read to the correct owner; if
612
+ // serverOwner is absent the accessRecord is safely omitted.
613
+ serverOwner: options.serverOwner,
614
+ serverSigner: x402ServerSigner,
615
+ lineageGateway: options.lineageGateway,
616
+ // Recompute on refresh: a new local version marks every
617
+ // question that reads the scope stale.
618
+ onDataWritten: options.derivatives
619
+ ? (event) => options.derivatives?.scheduler.markSourceChanged(event.scope, { lineageSources: event.lineageSources })
620
+ : undefined,
504
621
  }, { basePath: dataPrefix });
505
622
  }
623
+ // Write API handshake. Mounted only when a session store is wired,
624
+ // so a runtime without delegated writes has no endpoint to probe.
625
+ if (url.pathname === "/v1/write/session") {
626
+ if (!options.writeSessionStore) {
627
+ return errorResponse(404, "NOT_FOUND", "Not found");
628
+ }
629
+ if (request.method !== "POST") {
630
+ return errorResponse(405, "METHOD_NOT_ALLOWED", "Method not allowed");
631
+ }
632
+ if (!options.gateway) {
633
+ return errorResponse(500, "SERVER_NOT_CONFIGURED", "Gateway client is not configured");
634
+ }
635
+ return handleWriteSessionRequest(request, {
636
+ serverOrigin: options.serverOrigin ?? url.origin,
637
+ // The real data owner only — never the identity.address fallback
638
+ // the other routes accept. The grant's grantor must equal what
639
+ // the auth adapter binds delegated writes to, and a session
640
+ // minted against the SERVER key would authorize nothing. Absent
641
+ // = the handshake answers 500 rather than guessing.
642
+ serverOwner: options.serverOwner,
643
+ sessionStore: options.writeSessionStore,
644
+ replayStore: writeProofReplayStore,
645
+ authSessionVerifier: options.gateway,
646
+ grantVerifier: options.gateway,
647
+ accessToken: options.accessToken,
648
+ tokenStore,
649
+ });
650
+ }
651
+ const derivativesPrefix = "/v1/derivatives";
652
+ if (url.pathname.startsWith(`${derivativesPrefix}/`)) {
653
+ return handlePersonalServerDerivativesRequest(request, { auth, compute: options.derivatives ?? null, now }, { basePath: derivativesPrefix });
654
+ }
506
655
  if (url.pathname.startsWith("/auth/device")) {
507
656
  const response = await handleAuthDevice(request, url);
508
657
  if (response)
@@ -563,7 +712,20 @@ export function createPsLiteRuntime(options) {
563
712
  return options.config ?? {};
564
713
  },
565
714
  async writeConfig(config) {
715
+ // Validate the policy that will actually run: the incoming
716
+ // payment toggle against the pinned gateway, so a persisted
717
+ // config can never leave live reads without a usable domain.
718
+ resolveX402Settings(config, boundGatewayConfig);
566
719
  await saveConfig(config);
720
+ // Reflect the persisted config in memory so reads (and
721
+ // GET /ui/api/config) stop serving the pre-write snapshot. The
722
+ // gateway block is reported as persisted but stays pinned for
723
+ // behavior until the next restart rebuilds gateway + signer.
724
+ if (options.config &&
725
+ typeof config === "object" &&
726
+ config !== null) {
727
+ Object.assign(options.config, config);
728
+ }
567
729
  },
568
730
  });
569
731
  }
@@ -576,13 +738,15 @@ export function createPsLiteRuntime(options) {
576
738
  approvalUrl: options.mcpOAuthApprovalUrl,
577
739
  auth,
578
740
  dataStorage,
579
- schemaResolver: options.gateway,
580
741
  accessLogWriter,
742
+ readFulfillmentReporter: options.readFulfillmentReporter,
581
743
  now,
582
744
  runtimeAvailability: { isAvailable: () => active },
583
745
  serverOrigin: url.origin,
584
746
  gateway: options.gateway,
585
- gatewayConfig: options.config?.gateway,
747
+ // Pinned like the x402 path: grant registration is signed with the
748
+ // startup EIP-712 domain, so the MCP route must see the same one.
749
+ gatewayConfig: boundGatewayConfig,
586
750
  serverOwner: options.serverOwner ?? options.identity?.address,
587
751
  serverSigner: options.serverSigner,
588
752
  activityRecorder,
@@ -931,8 +1095,8 @@ async function handleMcpRoute(input) {
931
1095
  dataApiDeps: {
932
1096
  storage: input.dataStorage,
933
1097
  auth: input.auth,
934
- schemaResolver: input.schemaResolver,
935
1098
  accessLogWriter: input.accessLogWriter,
1099
+ readFulfillmentReporter: input.readFulfillmentReporter,
936
1100
  runtimeAvailability: input.runtimeAvailability,
937
1101
  now: input.now,
938
1102
  createLogId,