@opendatalabs/personal-server-ts-server 0.2.0 → 1.1.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/dist/api-auth.d.ts +16 -0
- package/dist/api-auth.d.ts.map +1 -0
- package/dist/api-auth.js +97 -0
- package/dist/api-auth.js.map +1 -0
- package/dist/api.d.ts +4 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +3 -0
- package/dist/api.js.map +1 -1
- package/dist/app.d.ts +46 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +102 -30
- package/dist/app.js.map +1 -1
- package/dist/bootstrap.d.ts +11 -3
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +266 -33
- package/dist/bootstrap.js.map +1 -1
- package/dist/client.d.ts +17 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +368 -0
- package/dist/client.js.map +1 -0
- package/dist/config/defaults.d.ts +12 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +14 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/index.d.ts +4 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +4 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loader.d.ts +8 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +74 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/paths.d.ts +9 -0
- package/dist/config/paths.d.ts.map +1 -0
- package/dist/config/paths.js +22 -0
- package/dist/config/paths.js.map +1 -0
- package/dist/hono-context.d.ts +14 -0
- package/dist/hono-context.d.ts.map +1 -0
- package/dist/hono-context.js +2 -0
- package/dist/hono-context.js.map +1 -0
- package/dist/index.js +64 -12
- package/dist/index.js.map +1 -1
- package/dist/keys/server-account.d.ts +28 -0
- package/dist/keys/server-account.d.ts.map +1 -0
- package/dist/keys/server-account.js +48 -0
- package/dist/keys/server-account.js.map +1 -0
- package/dist/logger/index.d.ts +5 -0
- package/dist/logger/index.d.ts.map +1 -0
- package/dist/logger/index.js +9 -0
- package/dist/logger/index.js.map +1 -0
- package/dist/logging/access-log.d.ts +15 -0
- package/dist/logging/access-log.d.ts.map +1 -0
- package/dist/logging/access-log.js +25 -0
- package/dist/logging/access-log.js.map +1 -0
- package/dist/logging/access-reader.d.ts +19 -0
- package/dist/logging/access-reader.d.ts.map +1 -0
- package/dist/logging/access-reader.js +50 -0
- package/dist/logging/access-reader.js.map +1 -0
- package/dist/middleware/access-log.d.ts.map +1 -1
- package/dist/middleware/access-log.js +8 -2
- package/dist/middleware/access-log.js.map +1 -1
- package/dist/middleware/builder-check.d.ts +2 -2
- package/dist/middleware/builder-check.d.ts.map +1 -1
- package/dist/middleware/builder-check.js +7 -2
- package/dist/middleware/builder-check.js.map +1 -1
- package/dist/middleware/owner-check.js +1 -1
- package/dist/middleware/owner-check.js.map +1 -1
- package/dist/middleware/web3-auth.d.ts +12 -0
- package/dist/middleware/web3-auth.d.ts.map +1 -1
- package/dist/middleware/web3-auth.js +27 -31
- package/dist/middleware/web3-auth.js.map +1 -1
- package/dist/migrations/local-state.d.ts +21 -0
- package/dist/migrations/local-state.d.ts.map +1 -0
- package/dist/migrations/local-state.js +106 -0
- package/dist/migrations/local-state.js.map +1 -0
- package/dist/routes/access-logs.d.ts +7 -0
- package/dist/routes/access-logs.d.ts.map +1 -1
- package/dist/routes/access-logs.js +11 -17
- package/dist/routes/access-logs.js.map +1 -1
- package/dist/routes/auth-device.d.ts +49 -0
- package/dist/routes/auth-device.d.ts.map +1 -0
- package/dist/routes/auth-device.js +581 -0
- package/dist/routes/auth-device.js.map +1 -0
- package/dist/routes/data.d.ts +42 -1
- package/dist/routes/data.d.ts.map +1 -1
- package/dist/routes/data.js +36 -201
- package/dist/routes/data.js.map +1 -1
- package/dist/routes/grants.d.ts +9 -2
- package/dist/routes/grants.d.ts.map +1 -1
- package/dist/routes/grants.js +18 -196
- package/dist/routes/grants.js.map +1 -1
- package/dist/routes/health.d.ts +7 -1
- package/dist/routes/health.d.ts.map +1 -1
- package/dist/routes/health.js +39 -2
- package/dist/routes/health.js.map +1 -1
- package/dist/routes/mcp.d.ts +93 -6
- package/dist/routes/mcp.d.ts.map +1 -1
- package/dist/routes/mcp.js +526 -53
- package/dist/routes/mcp.js.map +1 -1
- package/dist/routes/oauth-token.d.ts +56 -0
- package/dist/routes/oauth-token.d.ts.map +1 -0
- package/dist/routes/oauth-token.js +49 -0
- package/dist/routes/oauth-token.js.map +1 -0
- package/dist/routes/sync.d.ts +7 -0
- package/dist/routes/sync.d.ts.map +1 -1
- package/dist/routes/sync.js +12 -39
- package/dist/routes/sync.js.map +1 -1
- package/dist/routes/ui-config.d.ts.map +1 -1
- package/dist/routes/ui-config.js +17 -82
- package/dist/routes/ui-config.js.map +1 -1
- package/dist/routes/ui-registration.d.ts +9 -0
- package/dist/routes/ui-registration.d.ts.map +1 -0
- package/dist/routes/ui-registration.js +217 -0
- package/dist/routes/ui-registration.js.map +1 -0
- package/dist/routes/ui.d.ts +1 -0
- package/dist/routes/ui.d.ts.map +1 -1
- package/dist/routes/ui.js +46 -4
- package/dist/routes/ui.js.map +1 -1
- package/dist/storage/hierarchy.d.ts +29 -0
- package/dist/storage/hierarchy.d.ts.map +1 -0
- package/dist/storage/hierarchy.js +241 -0
- package/dist/storage/hierarchy.js.map +1 -0
- package/dist/storage/index-manager.d.ts +53 -0
- package/dist/storage/index-manager.d.ts.map +1 -0
- package/dist/storage/index-manager.js +167 -0
- package/dist/storage/index-manager.js.map +1 -0
- package/dist/storage/index-schema.d.ts +5 -0
- package/dist/storage/index-schema.d.ts.map +1 -0
- package/dist/storage/index-schema.js +62 -0
- package/dist/storage/index-schema.js.map +1 -0
- package/dist/storage/node-data-storage.d.ts +9 -0
- package/dist/storage/node-data-storage.d.ts.map +1 -0
- package/dist/storage/node-data-storage.js +84 -0
- package/dist/storage/node-data-storage.js.map +1 -0
- package/dist/sync-cursor.d.ts +15 -0
- package/dist/sync-cursor.d.ts.map +1 -0
- package/dist/sync-cursor.js +110 -0
- package/dist/sync-cursor.js.map +1 -0
- package/dist/token-store.d.ts +22 -0
- package/dist/token-store.d.ts.map +1 -0
- package/dist/token-store.js +120 -0
- package/dist/token-store.js.map +1 -0
- package/dist/tunnel/auth.d.ts +4 -0
- package/dist/tunnel/auth.d.ts.map +1 -1
- package/dist/tunnel/auth.js +2 -1
- package/dist/tunnel/auth.js.map +1 -1
- package/dist/tunnel/config.d.ts +1 -0
- package/dist/tunnel/config.d.ts.map +1 -1
- package/dist/tunnel/config.js +1 -1
- package/dist/tunnel/config.js.map +1 -1
- package/dist/tunnel/manager.d.ts +21 -1
- package/dist/tunnel/manager.d.ts.map +1 -1
- package/dist/tunnel/manager.js +78 -23
- package/dist/tunnel/manager.js.map +1 -1
- package/dist/tunnel/verify.d.ts +1 -1
- package/dist/tunnel/verify.d.ts.map +1 -1
- package/dist/tunnel/verify.js +8 -2
- package/dist/tunnel/verify.js.map +1 -1
- package/dist/ui/browser_tls_rustls_bg.wasm +0 -0
- package/dist/ui/index.html +2192 -0
- package/dist/ui/ps-lite-debug.d.ts +93 -0
- package/dist/ui/ps-lite-debug.d.ts.map +1 -0
- package/dist/ui/ps-lite-debug.js +129416 -0
- package/dist/ui/ps-lite-debug.js.map +1 -0
- package/package.json +20 -8
- package/dist/middleware/grant-check.d.ts +0 -12
- package/dist/middleware/grant-check.d.ts.map +0 -1
- package/dist/middleware/grant-check.js +0 -90
- package/dist/middleware/grant-check.js.map +0 -1
- package/dist/oauth/provider.d.ts +0 -55
- package/dist/oauth/provider.d.ts.map +0 -1
- package/dist/oauth/provider.js +0 -160
- package/dist/oauth/provider.js.map +0 -1
- package/dist/oauth/routes.d.ts +0 -10
- package/dist/oauth/routes.d.ts.map +0 -1
- package/dist/oauth/routes.js +0 -206
- package/dist/oauth/routes.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/routes/health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/routes/health.ts"],"names":[],"mappings":"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"}
|
package/dist/routes/mcp.d.ts
CHANGED
|
@@ -1,10 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP routes — both the Claude-facing `/mcp/:token` Streamable HTTP endpoint
|
|
3
|
+
* and the owner-only `/v1/mcp/connections` management surface.
|
|
4
|
+
*
|
|
5
|
+
* §1–§3 of `260604-PLAN-vana-mcp-personal-server.md`.
|
|
6
|
+
*
|
|
7
|
+
* Owner endpoints reuse `createServerApiAuth().authorizeOwner` so the same
|
|
8
|
+
* auth surface that gates `/v1/grants` gates connection management. The
|
|
9
|
+
* Claude-facing endpoint uses the connection token as a capability — there
|
|
10
|
+
* is no Web3Signed payload from Claude; the token resolves to a connection
|
|
11
|
+
* and we then sign reads ourselves with the per-connection grantee.
|
|
12
|
+
*
|
|
13
|
+
* NOTE on Phase-1 storage: this route accepts an `McpConnectionStore` from
|
|
14
|
+
* the caller. The in-memory implementation in `core/src/mcp/store.ts` is
|
|
15
|
+
* fine for tests and the first server-side smoke; for Web PS Lite an
|
|
16
|
+
* IndexedDB-backed adapter is the natural production path (Phase-2 §4
|
|
17
|
+
* "encrypt grantee private keys at rest" applies there).
|
|
18
|
+
*/
|
|
1
19
|
import { Hono } from "hono";
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
20
|
+
import type { Logger } from "pino";
|
|
21
|
+
import type { DataPortabilityGatewayConfig, GatewayClient } from "@opendatalabs/vana-sdk/node";
|
|
22
|
+
import { buildMcpUrl, buildStableMcpUrl, type McpConnectionStore, type McpOAuthAuthorizationStore, type McpActivityRecorder } from "@opendatalabs/personal-server-ts-core/mcp";
|
|
23
|
+
import type { PersonalServerReadFulfillmentReporter } from "@opendatalabs/personal-server-ts-core/api";
|
|
24
|
+
import type { AccessLogWriter } from "@opendatalabs/personal-server-ts-core/logging/access-log";
|
|
25
|
+
import type { ServerSigner } from "@opendatalabs/personal-server-ts-core/signing";
|
|
26
|
+
import type { HierarchyManagerOptions } from "@opendatalabs/personal-server-ts-core/storage/hierarchy";
|
|
27
|
+
import type { IndexManager } from "@opendatalabs/personal-server-ts-core/storage/index";
|
|
28
|
+
import type { DataStoragePort, RuntimeAvailabilityPort } from "@opendatalabs/personal-server-ts-core/ports";
|
|
29
|
+
import type { TokenStore } from "../token-store.js";
|
|
4
30
|
export interface McpRouteDeps {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
31
|
+
logger: Logger;
|
|
32
|
+
/**
|
|
33
|
+
* `serverOrigin` used both as the Web3Signed `aud` for the per-connection
|
|
34
|
+
* grantee's self-issued read requests AND as the base URL printed back to
|
|
35
|
+
* the user when they create a connection ("paste this into Claude").
|
|
36
|
+
* Caller may pass a thunk if the public origin depends on relay state.
|
|
37
|
+
*/
|
|
38
|
+
serverOrigin: string | (() => string);
|
|
39
|
+
serverOwner?: `0x${string}`;
|
|
40
|
+
serverSigner?: Pick<ServerSigner, "signGrantRegistration">;
|
|
41
|
+
gateway: GatewayClient;
|
|
42
|
+
gatewayConfig?: (DataPortabilityGatewayConfig & {
|
|
43
|
+
url?: string;
|
|
44
|
+
}) | null;
|
|
45
|
+
devToken?: string;
|
|
46
|
+
accessToken?: string;
|
|
47
|
+
tokenStore?: TokenStore;
|
|
48
|
+
accessLogWriter: AccessLogWriter;
|
|
49
|
+
readFulfillmentReporter?: PersonalServerReadFulfillmentReporter;
|
|
50
|
+
indexManager?: IndexManager;
|
|
51
|
+
hierarchyOptions?: HierarchyManagerOptions;
|
|
52
|
+
dataStorage?: DataStoragePort;
|
|
53
|
+
runtimeAvailability?: RuntimeAvailabilityPort;
|
|
54
|
+
/** Per-process connection store. Defaults to in-memory. */
|
|
55
|
+
connectionStore?: McpConnectionStore;
|
|
56
|
+
/**
|
|
57
|
+
* OAuth authorization store shared by `/mcp/oauth/authorize`,
|
|
58
|
+
* `/mcp/oauth/token`, and the owner approval endpoint.
|
|
59
|
+
*/
|
|
60
|
+
oauthAuthorizationStore?: McpOAuthAuthorizationStore;
|
|
61
|
+
/** Activity recorder for live MCP call visibility. */
|
|
62
|
+
activityRecorder?: McpActivityRecorder;
|
|
63
|
+
/**
|
|
64
|
+
* Vana Web approval surface. `/mcp/oauth/authorize` redirects owners here
|
|
65
|
+
* with `mcp_authorization` and `ps_origin` query params.
|
|
66
|
+
*/
|
|
67
|
+
oauthApprovalUrl?: string | (() => string);
|
|
8
68
|
}
|
|
9
|
-
|
|
69
|
+
/**
|
|
70
|
+
* Hono sub-app for the owner-only `/v1/mcp/connections` endpoints.
|
|
71
|
+
* Mount under `/v1/mcp/connections` in `app.ts`.
|
|
72
|
+
*/
|
|
73
|
+
export declare function mcpConnectionsRoutes(deps: McpRouteDeps): Hono;
|
|
74
|
+
/**
|
|
75
|
+
* Top-level MCP OAuth/discovery routes.
|
|
76
|
+
*
|
|
77
|
+
* Mount at `/` so the well-known documents are served from the PS origin and
|
|
78
|
+
* Claude can discover auth for the stable `/mcp` resource.
|
|
79
|
+
*/
|
|
80
|
+
export declare function mcpOAuthRoutes(deps: McpRouteDeps): Hono;
|
|
81
|
+
/**
|
|
82
|
+
* Hono sub-app for the Claude-facing Streamable HTTP endpoint.
|
|
83
|
+
* Mount under `/mcp` in `app.ts`; stable `/mcp` accepts OAuth bearer tokens
|
|
84
|
+
* and legacy `/mcp/:connectionToken` still accepts token-in-path calls.
|
|
85
|
+
*
|
|
86
|
+
* NOTE: this MUST receive the SAME `connectionStore` instance you pass to
|
|
87
|
+
* `mcpConnectionsRoutes` — otherwise the management API creates connections
|
|
88
|
+
* that the Claude endpoint can never see.
|
|
89
|
+
*/
|
|
90
|
+
export declare function mcpStreamableHttpRoutes(deps: McpRouteDeps): Hono;
|
|
91
|
+
/**
|
|
92
|
+
* Owner-only activity feed route. Mount at `/v1/mcp/activity` in `app.ts`.
|
|
93
|
+
* Returns the current snapshot from the shared `McpActivityRecorder`.
|
|
94
|
+
*/
|
|
95
|
+
export declare function mcpActivityRoutes(deps: McpRouteDeps): Hono;
|
|
96
|
+
export { buildMcpUrl, buildStableMcpUrl };
|
|
10
97
|
//# sourceMappingURL=mcp.d.ts.map
|
package/dist/routes/mcp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/routes/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/routes/mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EACV,4BAA4B,EAC5B,aAAa,EACd,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAKL,WAAW,EACX,iBAAiB,EAkBjB,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,EACzB,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAGV,qCAAqC,EACtC,MAAM,2CAA2C,CAAC;AAGnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0DAA0D,CAAC;AAChG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC;AACvG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qDAAqD,CAAC;AACxF,OAAO,KAAK,EACV,eAAe,EACf,uBAAuB,EACxB,MAAM,6CAA6C,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,YAAY,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IACtC,WAAW,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC5B,YAAY,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAC;IAC3D,OAAO,EAAE,aAAa,CAAC;IACvB,aAAa,CAAC,EAAE,CAAC,4BAA4B,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,eAAe,EAAE,eAAe,CAAC;IACjC,uBAAuB,CAAC,EAAE,qCAAqC,CAAC;IAChE,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;IAC3C,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,mBAAmB,CAAC,EAAE,uBAAuB,CAAC;IAC9C,2DAA2D;IAC3D,eAAe,CAAC,EAAE,kBAAkB,CAAC;IACrC;;;OAGG;IACH,uBAAuB,CAAC,EAAE,0BAA0B,CAAC;IACrD,sDAAsD;IACtD,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;IACvC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;CAC5C;AAqID;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAqG7D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAgTvD;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAoFhE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAkC1D;AAED,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC"}
|