@opendatalabs/personal-server-ts-lite 0.0.1-canary.00328bf
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/dist/bridge.d.ts +23 -0
- package/dist/bridge.d.ts.map +1 -0
- package/dist/bridge.js +53 -0
- package/dist/bridge.js.map +1 -0
- package/dist/browser-runtime.d.ts +58 -0
- package/dist/browser-runtime.d.ts.map +1 -0
- package/dist/browser-runtime.js +214 -0
- package/dist/browser-runtime.js.map +1 -0
- package/dist/browser-tls-rustls/browser_tls_rustls.d.ts +49 -0
- package/dist/browser-tls-rustls/browser_tls_rustls.js +401 -0
- package/dist/browser-tls-rustls/browser_tls_rustls_bg.wasm +0 -0
- package/dist/client.d.ts +22 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +408 -0
- package/dist/client.js.map +1 -0
- package/dist/derivatives.d.ts +51 -0
- package/dist/derivatives.d.ts.map +1 -0
- package/dist/derivatives.js +87 -0
- package/dist/derivatives.js.map +1 -0
- package/dist/diagnostics.d.ts +166 -0
- package/dist/diagnostics.d.ts.map +1 -0
- package/dist/diagnostics.js +265 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-store.d.ts +35 -0
- package/dist/mcp-store.d.ts.map +1 -0
- package/dist/mcp-store.js +208 -0
- package/dist/mcp-store.js.map +1 -0
- package/dist/owner-binding.d.ts +7 -0
- package/dist/owner-binding.d.ts.map +1 -0
- package/dist/owner-binding.js +18 -0
- package/dist/owner-binding.js.map +1 -0
- package/dist/persistence.d.ts +69 -0
- package/dist/persistence.d.ts.map +1 -0
- package/dist/persistence.js +58 -0
- package/dist/persistence.js.map +1 -0
- package/dist/relay-tls.d.ts +61 -0
- package/dist/relay-tls.d.ts.map +1 -0
- package/dist/relay-tls.js +316 -0
- package/dist/relay-tls.js.map +1 -0
- package/dist/relay.d.ts +149 -0
- package/dist/relay.d.ts.map +1 -0
- package/dist/relay.js +646 -0
- package/dist/relay.js.map +1 -0
- package/dist/runtime.d.ts +188 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +1178 -0
- package/dist/runtime.js.map +1 -0
- package/dist/state.d.ts +72 -0
- package/dist/state.d.ts.map +1 -0
- package/dist/state.js +366 -0
- package/dist/state.js.map +1 -0
- package/dist/storage-utils.d.ts +8 -0
- package/dist/storage-utils.d.ts.map +1 -0
- package/dist/storage-utils.js +67 -0
- package/dist/storage-utils.js.map +1 -0
- package/dist/storage.d.ts +61 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +718 -0
- package/dist/storage.js.map +1 -0
- package/dist/sync.d.ts +58 -0
- package/dist/sync.d.ts.map +1 -0
- package/dist/sync.js +216 -0
- package/dist/sync.js.map +1 -0
- package/package.json +40 -0
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { type SessionTokenVerifierPort } from "@opendatalabs/personal-server-ts-core/auth";
|
|
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";
|
|
7
|
+
import type { DataStoragePort, RuntimeAvailabilityPort } from "@opendatalabs/personal-server-ts-core/ports";
|
|
8
|
+
import type { ScopeDeletionTracker } from "@opendatalabs/personal-server-ts-core/sync";
|
|
9
|
+
import type { DataPortabilityGatewayConfig, GatewayClient } from "@opendatalabs/vana-sdk/browser";
|
|
10
|
+
import type { AccessLogWriter } from "@opendatalabs/personal-server-ts-core/logging/access-log";
|
|
11
|
+
import type { AccessLogReader } from "@opendatalabs/personal-server-ts-core/logging/access-reader";
|
|
12
|
+
import type { ServerSigner } from "@opendatalabs/personal-server-ts-core/signing";
|
|
13
|
+
import type { SyncManager } from "@opendatalabs/personal-server-ts-core/sync";
|
|
14
|
+
import { type McpConnectionStore, type McpOAuthAuthorizationStore } from "@opendatalabs/personal-server-ts-core/mcp";
|
|
15
|
+
import { DiagnosticsRecorder } from "./diagnostics.js";
|
|
16
|
+
export interface PsLiteStorageAdapter {
|
|
17
|
+
kind: "indexeddb" | "opfs" | "custom";
|
|
18
|
+
}
|
|
19
|
+
export type PsLiteReadAuthInput = PersonalServerReadAuthInput;
|
|
20
|
+
export type PsLiteReadAuthResult = PersonalServerReadAuthResult;
|
|
21
|
+
export type PsLiteAuthAdapter = PersonalServerApiAuthPort;
|
|
22
|
+
export interface PsLiteRuntimeOptions {
|
|
23
|
+
storage: PsLiteStorageAdapter | DataStoragePort;
|
|
24
|
+
auth?: PsLiteAuthAdapter;
|
|
25
|
+
active?: boolean;
|
|
26
|
+
now?: () => Date;
|
|
27
|
+
config?: {
|
|
28
|
+
server?: {
|
|
29
|
+
origin?: string;
|
|
30
|
+
};
|
|
31
|
+
gateway?: Partial<DataPortabilityGatewayConfig> & {
|
|
32
|
+
url?: string;
|
|
33
|
+
};
|
|
34
|
+
/** X402 read enforcement. Off by default in the browser runtime. */
|
|
35
|
+
payment?: {
|
|
36
|
+
enabled?: boolean;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
saveConfig?: (config: unknown) => Promise<void>;
|
|
40
|
+
identity?: {
|
|
41
|
+
address: `0x${string}`;
|
|
42
|
+
publicKey: `0x${string}`;
|
|
43
|
+
};
|
|
44
|
+
gateway?: GatewayClient;
|
|
45
|
+
serverOwner?: `0x${string}`;
|
|
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;
|
|
54
|
+
accessLogReader?: AccessLogReader;
|
|
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;
|
|
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);
|
|
96
|
+
tokenStore?: PsLiteTokenStore;
|
|
97
|
+
stateCapabilities?: Partial<PsLiteRuntimeStateCapabilities>;
|
|
98
|
+
/**
|
|
99
|
+
* Per-runtime MCP connection store. Omit to disable the MCP endpoints
|
|
100
|
+
* (`/mcp/:token` + `/v1/mcp/connections`). Pass `createInMemoryMcpConnectionStore()`
|
|
101
|
+
* to enable with non-persistent storage, or `createIndexedDbMcpConnectionStore()`
|
|
102
|
+
* for the production browser default.
|
|
103
|
+
*/
|
|
104
|
+
mcpConnectionStore?: McpConnectionStore;
|
|
105
|
+
mcpOAuthAuthorizationStore?: McpOAuthAuthorizationStore;
|
|
106
|
+
mcpOAuthApprovalUrl?: string | (() => string);
|
|
107
|
+
/**
|
|
108
|
+
* Optional diagnostics recorder. When provided, GET /v1/diagnostics (owner-only)
|
|
109
|
+
* returns a structured snapshot useful for debugging stuck approval pages.
|
|
110
|
+
*/
|
|
111
|
+
diagnostics?: DiagnosticsRecorder;
|
|
112
|
+
}
|
|
113
|
+
export interface PsLiteRuntimeStateCapabilities {
|
|
114
|
+
tokens: "indexeddb" | "memory" | "custom";
|
|
115
|
+
accessLogs: "indexeddb" | "memory" | "custom";
|
|
116
|
+
config: "indexeddb" | "memory" | "custom";
|
|
117
|
+
}
|
|
118
|
+
export interface PsLiteTokenStore {
|
|
119
|
+
getTokens(): Promise<string[]>;
|
|
120
|
+
isValid(token: string): Promise<boolean>;
|
|
121
|
+
addToken(token: string, options?: {
|
|
122
|
+
expiresAt?: string | Date | null;
|
|
123
|
+
}): Promise<void>;
|
|
124
|
+
removeToken(token: string): Promise<void>;
|
|
125
|
+
}
|
|
126
|
+
export interface PsLiteRuntime extends RuntimeAvailabilityPort {
|
|
127
|
+
readonly kind: "ps-lite";
|
|
128
|
+
readonly storage: PsLiteStorageAdapter | DataStoragePort;
|
|
129
|
+
activate(): void;
|
|
130
|
+
deactivate(): void;
|
|
131
|
+
fetch(request: Request): Promise<Response>;
|
|
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
|
+
}
|
|
158
|
+
export interface BearerTokenPsLiteAuthOptions {
|
|
159
|
+
ownerToken: string;
|
|
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
|
+
};
|
|
171
|
+
}
|
|
172
|
+
export interface Web3SignedPsLiteAuthOptions {
|
|
173
|
+
origin: string | (() => string);
|
|
174
|
+
ownerAddress: `0x${string}`;
|
|
175
|
+
dataReadPolicyPorts?: DataReadPolicyPorts;
|
|
176
|
+
accessToken?: string;
|
|
177
|
+
tokenStore?: SessionTokenVerifierPort;
|
|
178
|
+
now?: () => number;
|
|
179
|
+
/**
|
|
180
|
+
* Optional delegated-write support. Absent = owner-only ingest, exactly as
|
|
181
|
+
* before write sessions existed.
|
|
182
|
+
*/
|
|
183
|
+
writeSessions?: PsLiteWriteSessionAuthOptions;
|
|
184
|
+
}
|
|
185
|
+
export declare function createBearerTokenPsLiteAuth(options: BearerTokenPsLiteAuthOptions): PsLiteAuthAdapter;
|
|
186
|
+
export declare function createWeb3SignedPsLiteAuth(options: Web3SignedPsLiteAuthOptions): PsLiteAuthAdapter;
|
|
187
|
+
export declare function createPsLiteRuntime(options: PsLiteRuntimeOptions): PsLiteRuntime;
|
|
188
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|