@opendatalabs/personal-server-ts-server 0.0.1-canary.c357ffa → 0.0.1-canary.ce76db7

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 (189) hide show
  1. package/dist/api-auth.d.ts +17 -0
  2. package/dist/api-auth.d.ts.map +1 -0
  3. package/dist/api-auth.js +98 -0
  4. package/dist/api-auth.js.map +1 -0
  5. package/dist/api.d.ts +4 -0
  6. package/dist/api.d.ts.map +1 -1
  7. package/dist/api.js +3 -0
  8. package/dist/api.js.map +1 -1
  9. package/dist/app.d.ts +35 -2
  10. package/dist/app.d.ts.map +1 -1
  11. package/dist/app.js +101 -2
  12. package/dist/app.js.map +1 -1
  13. package/dist/bootstrap.d.ts +25 -4
  14. package/dist/bootstrap.d.ts.map +1 -1
  15. package/dist/bootstrap.js +303 -39
  16. package/dist/bootstrap.js.map +1 -1
  17. package/dist/client.d.ts +17 -0
  18. package/dist/client.d.ts.map +1 -0
  19. package/dist/client.js +367 -0
  20. package/dist/client.js.map +1 -0
  21. package/dist/config/defaults.d.ts +12 -0
  22. package/dist/config/defaults.d.ts.map +1 -0
  23. package/dist/config/defaults.js +14 -0
  24. package/dist/config/defaults.js.map +1 -0
  25. package/dist/config/index.d.ts +4 -0
  26. package/dist/config/index.d.ts.map +1 -0
  27. package/dist/config/index.js +4 -0
  28. package/dist/config/index.js.map +1 -0
  29. package/dist/config/loader.d.ts +8 -0
  30. package/dist/config/loader.d.ts.map +1 -0
  31. package/dist/config/loader.js +86 -0
  32. package/dist/config/loader.js.map +1 -0
  33. package/dist/config/paths.d.ts +9 -0
  34. package/dist/config/paths.d.ts.map +1 -0
  35. package/dist/config/paths.js +22 -0
  36. package/dist/config/paths.js.map +1 -0
  37. package/dist/grant-fee-verifier.d.ts +27 -0
  38. package/dist/grant-fee-verifier.d.ts.map +1 -0
  39. package/dist/grant-fee-verifier.js +40 -0
  40. package/dist/grant-fee-verifier.js.map +1 -0
  41. package/dist/hono-context.d.ts +14 -0
  42. package/dist/hono-context.d.ts.map +1 -0
  43. package/dist/hono-context.js +2 -0
  44. package/dist/hono-context.js.map +1 -0
  45. package/dist/index.js +91 -13
  46. package/dist/index.js.map +1 -1
  47. package/dist/keys/server-account.d.ts +28 -0
  48. package/dist/keys/server-account.d.ts.map +1 -0
  49. package/dist/keys/server-account.js +48 -0
  50. package/dist/keys/server-account.js.map +1 -0
  51. package/dist/logger/index.d.ts +5 -0
  52. package/dist/logger/index.d.ts.map +1 -0
  53. package/dist/logger/index.js +9 -0
  54. package/dist/logger/index.js.map +1 -0
  55. package/dist/logging/access-log.d.ts +15 -0
  56. package/dist/logging/access-log.d.ts.map +1 -0
  57. package/dist/logging/access-log.js +25 -0
  58. package/dist/logging/access-log.js.map +1 -0
  59. package/dist/logging/access-reader.d.ts +19 -0
  60. package/dist/logging/access-reader.d.ts.map +1 -0
  61. package/dist/logging/access-reader.js +50 -0
  62. package/dist/logging/access-reader.js.map +1 -0
  63. package/dist/middleware/access-log.d.ts.map +1 -1
  64. package/dist/middleware/access-log.js +8 -2
  65. package/dist/middleware/access-log.js.map +1 -1
  66. package/dist/middleware/builder-check.d.ts +2 -2
  67. package/dist/middleware/builder-check.d.ts.map +1 -1
  68. package/dist/middleware/builder-check.js +7 -2
  69. package/dist/middleware/builder-check.js.map +1 -1
  70. package/dist/middleware/data-read-policy.d.ts +11 -0
  71. package/dist/middleware/data-read-policy.d.ts.map +1 -0
  72. package/dist/middleware/data-read-policy.js +39 -0
  73. package/dist/middleware/data-read-policy.js.map +1 -0
  74. package/dist/middleware/owner-check.js +1 -1
  75. package/dist/middleware/owner-check.js.map +1 -1
  76. package/dist/middleware/web3-auth.d.ts +12 -1
  77. package/dist/middleware/web3-auth.d.ts.map +1 -1
  78. package/dist/middleware/web3-auth.js +21 -29
  79. package/dist/middleware/web3-auth.js.map +1 -1
  80. package/dist/migrations/local-state.d.ts +21 -0
  81. package/dist/migrations/local-state.d.ts.map +1 -0
  82. package/dist/migrations/local-state.js +106 -0
  83. package/dist/migrations/local-state.js.map +1 -0
  84. package/dist/routes/access-logs.d.ts +8 -1
  85. package/dist/routes/access-logs.d.ts.map +1 -1
  86. package/dist/routes/access-logs.js +11 -17
  87. package/dist/routes/access-logs.js.map +1 -1
  88. package/dist/routes/auth-device.d.ts +49 -0
  89. package/dist/routes/auth-device.d.ts.map +1 -0
  90. package/dist/routes/auth-device.js +581 -0
  91. package/dist/routes/auth-device.js.map +1 -0
  92. package/dist/routes/data.d.ts +18 -2
  93. package/dist/routes/data.d.ts.map +1 -1
  94. package/dist/routes/data.js +34 -195
  95. package/dist/routes/data.js.map +1 -1
  96. package/dist/routes/grants.d.ts +12 -4
  97. package/dist/routes/grants.d.ts.map +1 -1
  98. package/dist/routes/grants.js +18 -110
  99. package/dist/routes/grants.js.map +1 -1
  100. package/dist/routes/health.d.ts +9 -1
  101. package/dist/routes/health.d.ts.map +1 -1
  102. package/dist/routes/health.js +40 -1
  103. package/dist/routes/health.js.map +1 -1
  104. package/dist/routes/mcp.d.ts +96 -0
  105. package/dist/routes/mcp.d.ts.map +1 -0
  106. package/dist/routes/mcp.js +535 -0
  107. package/dist/routes/mcp.js.map +1 -0
  108. package/dist/routes/oauth-token.d.ts +56 -0
  109. package/dist/routes/oauth-token.d.ts.map +1 -0
  110. package/dist/routes/oauth-token.js +49 -0
  111. package/dist/routes/oauth-token.js.map +1 -0
  112. package/dist/routes/sync.d.ts +12 -3
  113. package/dist/routes/sync.d.ts.map +1 -1
  114. package/dist/routes/sync.js +14 -27
  115. package/dist/routes/sync.js.map +1 -1
  116. package/dist/routes/ui-config.d.ts.map +1 -1
  117. package/dist/routes/ui-config.js +17 -82
  118. package/dist/routes/ui-config.js.map +1 -1
  119. package/dist/routes/ui-registration.d.ts +7 -0
  120. package/dist/routes/ui-registration.d.ts.map +1 -0
  121. package/dist/routes/ui-registration.js +215 -0
  122. package/dist/routes/ui-registration.js.map +1 -0
  123. package/dist/routes/ui.d.ts +1 -0
  124. package/dist/routes/ui.d.ts.map +1 -1
  125. package/dist/routes/ui.js +46 -4
  126. package/dist/routes/ui.js.map +1 -1
  127. package/dist/schema-registrar.d.ts +26 -0
  128. package/dist/schema-registrar.d.ts.map +1 -0
  129. package/dist/schema-registrar.js +61 -0
  130. package/dist/schema-registrar.js.map +1 -0
  131. package/dist/storage/hierarchy.d.ts +29 -0
  132. package/dist/storage/hierarchy.d.ts.map +1 -0
  133. package/dist/storage/hierarchy.js +241 -0
  134. package/dist/storage/hierarchy.js.map +1 -0
  135. package/dist/storage/index-manager.d.ts +37 -0
  136. package/dist/storage/index-manager.d.ts.map +1 -0
  137. package/dist/storage/index-manager.js +136 -0
  138. package/dist/storage/index-manager.js.map +1 -0
  139. package/dist/storage/index-schema.d.ts +5 -0
  140. package/dist/storage/index-schema.d.ts.map +1 -0
  141. package/dist/storage/index-schema.js +48 -0
  142. package/dist/storage/index-schema.js.map +1 -0
  143. package/dist/storage/node-data-storage.d.ts +9 -0
  144. package/dist/storage/node-data-storage.d.ts.map +1 -0
  145. package/dist/storage/node-data-storage.js +72 -0
  146. package/dist/storage/node-data-storage.js.map +1 -0
  147. package/dist/sync-cursor.d.ts +15 -0
  148. package/dist/sync-cursor.d.ts.map +1 -0
  149. package/dist/sync-cursor.js +110 -0
  150. package/dist/sync-cursor.js.map +1 -0
  151. package/dist/token-store.d.ts +22 -0
  152. package/dist/token-store.d.ts.map +1 -0
  153. package/dist/token-store.js +120 -0
  154. package/dist/token-store.js.map +1 -0
  155. package/dist/tunnel/auth.d.ts +50 -0
  156. package/dist/tunnel/auth.d.ts.map +1 -0
  157. package/dist/tunnel/auth.js +47 -0
  158. package/dist/tunnel/auth.js.map +1 -0
  159. package/dist/tunnel/binary.d.ts +57 -0
  160. package/dist/tunnel/binary.d.ts.map +1 -0
  161. package/dist/tunnel/binary.js +180 -0
  162. package/dist/tunnel/binary.js.map +1 -0
  163. package/dist/tunnel/config.d.ts +28 -0
  164. package/dist/tunnel/config.d.ts.map +1 -0
  165. package/dist/tunnel/config.js +38 -0
  166. package/dist/tunnel/config.js.map +1 -0
  167. package/dist/tunnel/index.d.ts +13 -0
  168. package/dist/tunnel/index.d.ts.map +1 -0
  169. package/dist/tunnel/index.js +9 -0
  170. package/dist/tunnel/index.js.map +1 -0
  171. package/dist/tunnel/manager.d.ts +94 -0
  172. package/dist/tunnel/manager.d.ts.map +1 -0
  173. package/dist/tunnel/manager.js +307 -0
  174. package/dist/tunnel/manager.js.map +1 -0
  175. package/dist/tunnel/verify.d.ts +28 -0
  176. package/dist/tunnel/verify.d.ts.map +1 -0
  177. package/dist/tunnel/verify.js +46 -0
  178. package/dist/tunnel/verify.js.map +1 -0
  179. package/dist/ui/browser_tls_rustls_bg.wasm +0 -0
  180. package/dist/ui/index.html +2193 -0
  181. package/dist/ui/ps-lite-debug.d.ts +93 -0
  182. package/dist/ui/ps-lite-debug.d.ts.map +1 -0
  183. package/dist/ui/ps-lite-debug.js +84167 -0
  184. package/dist/ui/ps-lite-debug.js.map +1 -0
  185. package/package.json +20 -6
  186. package/dist/middleware/grant-check.d.ts +0 -12
  187. package/dist/middleware/grant-check.d.ts.map +0 -1
  188. package/dist/middleware/grant-check.js +0 -90
  189. package/dist/middleware/grant-check.js.map +0 -1
@@ -0,0 +1,17 @@
1
+ import { type SessionTokenVerifierPort } from "@opendatalabs/personal-server-ts-core/auth";
2
+ import type { PersonalServerApiAuthPort } from "@opendatalabs/personal-server-ts-core/api";
3
+ import type { DataStoragePort, FeeVerifierPort, RuntimeAvailabilityPort } from "@opendatalabs/personal-server-ts-core/ports";
4
+ import type { GatewayClient } from "@opendatalabs/vana-sdk/node";
5
+ export interface ServerApiAuthDeps {
6
+ serverOrigin: string | (() => string);
7
+ serverOwner?: `0x${string}`;
8
+ gateway: GatewayClient;
9
+ devToken?: string;
10
+ accessToken?: string;
11
+ tokenStore?: SessionTokenVerifierPort;
12
+ dataStorage?: Pick<DataStoragePort, "findEntry">;
13
+ feeVerifier?: FeeVerifierPort;
14
+ runtimeAvailability?: RuntimeAvailabilityPort;
15
+ }
16
+ export declare function createServerApiAuth(deps: ServerApiAuthDeps): PersonalServerApiAuthPort;
17
+ //# sourceMappingURL=api-auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-auth.d.ts","sourceRoot":"","sources":["../src/api-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EACV,yBAAyB,EAE1B,MAAM,2CAA2C,CAAC;AAOnD,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,uBAAuB,EACxB,MAAM,6CAA6C,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IACtC,WAAW,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC5B,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,WAAW,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IACjD,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,mBAAmB,CAAC,EAAE,uBAAuB,CAAC;CAC/C;AA6CD,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,iBAAiB,GACtB,yBAAyB,CA2E3B"}
@@ -0,0 +1,98 @@
1
+ import { authenticateRequest, } from "@opendatalabs/personal-server-ts-core/auth";
2
+ import { verifyDataReadPolicy } from "@opendatalabs/personal-server-ts-core/policy";
3
+ import { NotOwnerError, ProtocolError, UnregisteredBuilderError, } from "@opendatalabs/personal-server-ts-core/errors";
4
+ function serverNotConfigured() {
5
+ return new ProtocolError(500, "SERVER_NOT_CONFIGURED", "Server owner address not configured. Set VANA_MASTER_KEY_SIGNATURE environment variable.");
6
+ }
7
+ function isOwner(signer, serverOwner) {
8
+ return Boolean(serverOwner && signer.toLowerCase() === serverOwner.toLowerCase());
9
+ }
10
+ async function authenticate(request, deps) {
11
+ return authenticateRequest({
12
+ request,
13
+ serverOrigin: deps.serverOrigin,
14
+ devToken: deps.devToken,
15
+ accessToken: deps.accessToken,
16
+ sessionTokenVerifier: deps.tokenStore,
17
+ serverOwner: deps.serverOwner,
18
+ });
19
+ }
20
+ async function assertRegisteredBuilder(gateway, signer) {
21
+ if ("isRegisteredBuilder" in gateway) {
22
+ if (await gateway.isRegisteredBuilder(signer))
23
+ return;
24
+ throw new UnregisteredBuilderError();
25
+ }
26
+ const builder = await gateway.getBuilder(signer);
27
+ if (!builder)
28
+ throw new UnregisteredBuilderError();
29
+ }
30
+ export function createServerApiAuth(deps) {
31
+ return {
32
+ async authorizeOwner(request) {
33
+ const result = await authenticate(request, deps);
34
+ if (result.isPolicyBypass)
35
+ return;
36
+ if (!deps.serverOwner)
37
+ throw serverNotConfigured();
38
+ if (!isOwner(result.auth.signer, deps.serverOwner)) {
39
+ throw new NotOwnerError({
40
+ signer: result.auth.signer,
41
+ expected: deps.serverOwner,
42
+ });
43
+ }
44
+ },
45
+ async authorizeBuilderList(request) {
46
+ const result = await authenticate(request, deps);
47
+ if (result.isPolicyBypass ||
48
+ isOwner(result.auth.signer, deps.serverOwner)) {
49
+ return;
50
+ }
51
+ await assertRegisteredBuilder(deps.gateway, result.auth.signer);
52
+ },
53
+ async authorizeBuilderRead(input) {
54
+ const result = await authenticate(input.request, deps);
55
+ if (result.isPolicyBypass) {
56
+ return { builder: result.auth.signer, grantId: "policy-bypass" };
57
+ }
58
+ // Owner-exempt read paths. We allow two mechanisms here:
59
+ // - web3-signed: per-request signature by the owner wallet. Already
60
+ // gated on a fresh cryptographic proof per request.
61
+ // - control-plane-token: a static bearer set by the parent host
62
+ // process at boot. Never crosses an interactive surface, so it
63
+ // has the same threat model as the host process itself.
64
+ // Intentionally NOT exempted:
65
+ // - cli-session-token: an interactive bearer issued via /auth/device.
66
+ // These flow through terminals / copy-paste / shell history, so we
67
+ // keep them on the grant path so that any leaked CLI session can
68
+ // still only read what an explicit grant authorizes.
69
+ // Defense-in-depth justification: any owner-identified credential can
70
+ // already mint a grant via authorizeOwner, so blocking owner reads in
71
+ // general does not meaningfully shrink the blast radius of a stolen
72
+ // token. The cli-session-token exception preserves the audit-log
73
+ // signal for the one credential class that's most prone to leakage.
74
+ if (isOwner(result.auth.signer, deps.serverOwner) &&
75
+ (result.mechanism === "web3-signed" ||
76
+ result.mechanism === "control-plane-token")) {
77
+ return { builder: result.auth.signer, grantId: "owner" };
78
+ }
79
+ const selectedEntry = deps.dataStorage?.findEntry({
80
+ scope: input.scope,
81
+ fileId: input.fileId,
82
+ });
83
+ const grant = await verifyDataReadPolicy({
84
+ signer: result.auth.signer,
85
+ grantId: result.auth.payload.grantId ?? input.grantId,
86
+ requestedScope: input.scope,
87
+ fileId: input.fileId ?? selectedEntry?.fileId ?? undefined,
88
+ }, {
89
+ authSessionVerifier: deps.gateway,
90
+ grantVerifier: deps.gateway,
91
+ feeVerifier: deps.feeVerifier,
92
+ runtimeAvailability: deps.runtimeAvailability,
93
+ });
94
+ return { builder: result.auth.signer, grantId: grant.id };
95
+ },
96
+ };
97
+ }
98
+ //# sourceMappingURL=api-auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-auth.js","sourceRoot":"","sources":["../src/api-auth.ts"],"names":[],"mappings":"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"}
package/dist/api.d.ts CHANGED
@@ -1,2 +1,6 @@
1
1
  export { createServer, type CreateServerOptions, type ServerContext, } from "./bootstrap.js";
2
+ export { startPersonalServer, type StartPersonalServerNodeOptions, } from "./client.js";
3
+ export type { PersonalServerHandle, PersonalServerClientErrorBody, PersonalServerDataVersion, PersonalServerHealthRegistration, PersonalServerIdentity, PersonalServerInfo, PersonalServerAuthRequestOptions, PersonalServerListDataOptions, PersonalServerListDataResult, PersonalServerListVersionsOptions, PersonalServerListVersionsResult, PersonalServerReadDataOptions, PersonalServerRegistrationRequest, PersonalServerStatus, PersonalServerSyncTriggerResult, PersonalServerUrls, } from "@opendatalabs/personal-server-ts-core/client";
4
+ export { PersonalServerClientError, dataListPath, dataReadPath, dataVersionsPath, parsePersonalServerJsonResponse, } from "@opendatalabs/personal-server-ts-core/client";
5
+ export { DEFAULT_ROOT_PATH, DEFAULT_CONFIG_PATH, DEFAULT_DATA_DIR, DEFAULT_SERVER_DIR, DEFAULT_VANA_DIR, expandHomePath, loadConfig, resolveRootPath, type LoadConfigOptions, } from "./config/index.js";
2
6
  //# sourceMappingURL=api.d.ts.map
package/dist/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,KAAK,mBAAmB,EACxB,KAAK,aAAa,GACnB,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,KAAK,mBAAmB,EACxB,KAAK,aAAa,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,mBAAmB,EACnB,KAAK,8BAA8B,GACpC,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,oBAAoB,EACpB,6BAA6B,EAC7B,yBAAyB,EACzB,gCAAgC,EAChC,sBAAsB,EACtB,kBAAkB,EAClB,gCAAgC,EAChC,6BAA6B,EAC7B,4BAA4B,EAC5B,iCAAiC,EACjC,gCAAgC,EAChC,6BAA6B,EAC7B,iCAAiC,EACjC,oBAAoB,EACpB,+BAA+B,EAC/B,kBAAkB,GACnB,MAAM,8CAA8C,CAAC;AACtD,OAAO,EACL,yBAAyB,EACzB,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,+BAA+B,GAChC,MAAM,8CAA8C,CAAC;AACtD,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,eAAe,EACf,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC"}
package/dist/api.js CHANGED
@@ -1,2 +1,5 @@
1
1
  export { createServer, } from "./bootstrap.js";
2
+ export { startPersonalServer, } from "./client.js";
3
+ export { PersonalServerClientError, dataListPath, dataReadPath, dataVersionsPath, parsePersonalServerJsonResponse, } from "@opendatalabs/personal-server-ts-core/client";
4
+ export { DEFAULT_ROOT_PATH, DEFAULT_CONFIG_PATH, DEFAULT_DATA_DIR, DEFAULT_SERVER_DIR, DEFAULT_VANA_DIR, expandHomePath, loadConfig, resolveRootPath, } from "./config/index.js";
2
5
  //# sourceMappingURL=api.js.map
package/dist/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,GAGb,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,GAGb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,mBAAmB,GAEpB,MAAM,aAAa,CAAC;AAmBrB,OAAO,EACL,yBAAyB,EACzB,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,+BAA+B,GAChC,MAAM,8CAA8C,CAAC;AACtD,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,eAAe,GAEhB,MAAM,mBAAmB,CAAC"}
package/dist/app.d.ts CHANGED
@@ -1,9 +1,16 @@
1
1
  import { Hono } from "hono";
2
2
  import type { IndexManager } from "@opendatalabs/personal-server-ts-core/storage/index";
3
3
  import type { HierarchyManagerOptions } from "@opendatalabs/personal-server-ts-core/storage/hierarchy";
4
- import type { GatewayClient } from "@opendatalabs/personal-server-ts-core/gateway";
4
+ import type { DataPortabilityGatewayConfig, GatewayClient } from "@opendatalabs/vana-sdk/node";
5
+ import type { ServerConfig } from "@opendatalabs/personal-server-ts-core/schemas";
5
6
  import type { AccessLogWriter } from "@opendatalabs/personal-server-ts-core/logging/access-log";
6
7
  import type { AccessLogReader } from "@opendatalabs/personal-server-ts-core/logging/access-reader";
8
+ import { type HealthDeps } from "./routes/health.js";
9
+ import { McpActivityRecorder, type McpConnectionStore, type McpOAuthAuthorizationStore } from "@opendatalabs/personal-server-ts-core/mcp";
10
+ import type { SyncManager } from "@opendatalabs/personal-server-ts-core/sync";
11
+ import type { ServerSigner } from "@opendatalabs/personal-server-ts-core/signing";
12
+ import type { DataStoragePort, FeeVerifierPort, RuntimeAvailabilityPort } from "@opendatalabs/personal-server-ts-core/ports";
13
+ import type { TokenStore } from "./token-store.js";
7
14
  import type { Logger } from "pino";
8
15
  export interface IdentityInfo {
9
16
  address: `0x${string}`;
@@ -16,14 +23,40 @@ export interface AppDeps {
16
23
  startedAt: Date;
17
24
  indexManager: IndexManager;
18
25
  hierarchyOptions: HierarchyManagerOptions;
19
- serverOrigin: string;
26
+ serverOrigin: string | (() => string);
27
+ localApprovalOrigin?: string | (() => string | undefined);
20
28
  serverOwner?: `0x${string}`;
21
29
  identity?: IdentityInfo;
22
30
  gateway: GatewayClient;
31
+ gatewayConfig?: DataPortabilityGatewayConfig & {
32
+ url?: string;
33
+ };
34
+ config?: ServerConfig;
23
35
  accessLogWriter: AccessLogWriter;
24
36
  accessLogReader: AccessLogReader;
37
+ cloudMode?: boolean;
25
38
  devToken?: string;
39
+ ownerSignature?: `0x${string}`;
40
+ ownerPrivateKey?: `0x${string}`;
41
+ accessToken?: string;
26
42
  configPath?: string;
43
+ syncManager?: SyncManager | null;
44
+ serverSigner?: ServerSigner;
45
+ tokenStore?: TokenStore;
46
+ feeVerifier?: FeeVerifierPort;
47
+ runtimeAvailability?: RuntimeAvailabilityPort;
48
+ dataStorage?: DataStoragePort;
49
+ getTunnelStatus?: HealthDeps["getTunnelStatus"];
50
+ /**
51
+ * MCP connection store shared between the `/mcp/:token` Streamable HTTP
52
+ * endpoint and the owner `/v1/mcp/connections` management surface. Defaults
53
+ * to an in-memory store so the routes are wired up out of the box; pass an
54
+ * IndexedDB-backed (or persistent) store for production.
55
+ */
56
+ mcpConnectionStore?: McpConnectionStore;
57
+ mcpOAuthAuthorizationStore?: McpOAuthAuthorizationStore;
58
+ mcpOAuthApprovalUrl?: string | (() => string);
59
+ mcpActivityRecorder?: McpActivityRecorder;
27
60
  }
28
61
  export declare function createApp(deps: AppDeps): Hono;
29
62
  //# sourceMappingURL=app.d.ts.map
package/dist/app.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qDAAqD,CAAC;AACxF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC;AACvG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0DAA0D,CAAC;AAChG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6DAA6D,CAAC;AAQnG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,KAAK,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,YAAY,EAAE,YAAY,CAAC;IAC3B,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,OAAO,EAAE,aAAa,CAAC;IACvB,eAAe,EAAE,eAAe,CAAC;IACjC,eAAe,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CA+H7C"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
package/dist/app.js CHANGED
@@ -6,8 +6,13 @@ import { dataRoutes } from "./routes/data.js";
6
6
  import { grantsRoutes } from "./routes/grants.js";
7
7
  import { accessLogsRoutes } from "./routes/access-logs.js";
8
8
  import { syncRoutes } from "./routes/sync.js";
9
+ import { mcpActivityRoutes, mcpConnectionsRoutes, mcpOAuthRoutes, mcpStreamableHttpRoutes, } from "./routes/mcp.js";
10
+ import { McpActivityRecorder, createInMemoryMcpConnectionStore, createInMemoryMcpOAuthAuthorizationStore, } from "@opendatalabs/personal-server-ts-core/mcp";
9
11
  import { uiConfigRoutes } from "./routes/ui-config.js";
12
+ import { uiRegistrationRoutes } from "./routes/ui-registration.js";
10
13
  import { uiRoute } from "./routes/ui.js";
14
+ import { authDeviceRoutes, createDeviceSessionLookup, } from "./routes/auth-device.js";
15
+ import { oauthTokenRoutes } from "./routes/oauth-token.js";
11
16
  export function createApp(deps) {
12
17
  const app = new Hono();
13
18
  // CORS — allow all origins for browser-based clients
@@ -21,10 +26,14 @@ export function createApp(deps) {
21
26
  app.route("/", healthRoute({
22
27
  version: deps.version,
23
28
  startedAt: deps.startedAt,
29
+ serverOrigin: deps.serverOrigin,
24
30
  serverOwner: deps.serverOwner,
25
31
  identity: deps.identity,
26
32
  gateway: deps.gateway,
33
+ gatewayConfig: deps.gatewayConfig,
27
34
  logger: deps.logger,
35
+ getTunnelStatus: deps.getTunnelStatus,
36
+ runtimeAvailability: deps.runtimeAvailability,
28
37
  }));
29
38
  // Mount data routes (ingest + read + delete)
30
39
  app.route("/v1/data", dataRoutes({
@@ -36,14 +45,28 @@ export function createApp(deps) {
36
45
  gateway: deps.gateway,
37
46
  accessLogWriter: deps.accessLogWriter,
38
47
  devToken: deps.devToken,
48
+ accessToken: deps.accessToken,
49
+ tokenStore: deps.tokenStore,
50
+ syncManager: deps.syncManager ?? null,
51
+ feeVerifier: deps.feeVerifier,
52
+ runtimeAvailability: deps.runtimeAvailability,
53
+ dataStorage: deps.dataStorage,
54
+ serverSigner: deps.serverSigner,
55
+ gatewayUrl: deps.config?.gateway.url ?? deps.gatewayConfig?.url,
56
+ mountPath: "/v1/data",
39
57
  }));
40
- // Mount grants routes (POST /verify is public, GET / needs owner auth)
58
+ // Mount grants routes (POST /verify is public, GET / and POST / need owner auth)
41
59
  app.route("/v1/grants", grantsRoutes({
42
60
  logger: deps.logger,
43
61
  gateway: deps.gateway,
62
+ gatewayConfig: deps.gatewayConfig,
44
63
  serverOwner: deps.serverOwner,
45
64
  serverOrigin: deps.serverOrigin,
46
65
  devToken: deps.devToken,
66
+ accessToken: deps.accessToken,
67
+ tokenStore: deps.tokenStore,
68
+ serverSigner: deps.serverSigner,
69
+ mountPath: "/v1/grants",
47
70
  }));
48
71
  // Mount access-logs routes (all owner auth)
49
72
  app.route("/v1/access-logs", accessLogsRoutes({
@@ -51,24 +74,100 @@ export function createApp(deps) {
51
74
  accessLogReader: deps.accessLogReader,
52
75
  serverOrigin: deps.serverOrigin,
53
76
  serverOwner: deps.serverOwner,
77
+ gateway: deps.gateway,
54
78
  devToken: deps.devToken,
79
+ accessToken: deps.accessToken,
80
+ tokenStore: deps.tokenStore,
81
+ mountPath: "/v1/access-logs",
55
82
  }));
56
83
  // Mount sync routes (all owner auth)
57
84
  app.route("/v1/sync", syncRoutes({
58
85
  logger: deps.logger,
59
86
  serverOrigin: deps.serverOrigin,
60
87
  serverOwner: deps.serverOwner,
88
+ gateway: deps.gateway,
61
89
  devToken: deps.devToken,
90
+ accessToken: deps.accessToken,
91
+ tokenStore: deps.tokenStore,
92
+ syncManager: deps.syncManager ?? null,
93
+ mountPath: "/v1/sync",
62
94
  }));
95
+ // MCP — Phase 1 / 260604-PLAN-vana-mcp-personal-server.md.
96
+ // Owner endpoints + Claude-facing Streamable HTTP endpoint share a single
97
+ // connection store so the management API and the data path agree on which
98
+ // connections exist.
99
+ const mcpConnectionStore = deps.mcpConnectionStore ?? createInMemoryMcpConnectionStore();
100
+ const mcpOAuthAuthorizationStore = deps.mcpOAuthAuthorizationStore ??
101
+ createInMemoryMcpOAuthAuthorizationStore();
102
+ const mcpActivityRecorder = deps.mcpActivityRecorder ?? new McpActivityRecorder();
103
+ const mcpRouteDeps = {
104
+ logger: deps.logger,
105
+ serverOrigin: deps.serverOrigin,
106
+ serverOwner: deps.serverOwner,
107
+ serverSigner: deps.serverSigner,
108
+ gateway: deps.gateway,
109
+ gatewayConfig: deps.gatewayConfig,
110
+ devToken: deps.devToken,
111
+ accessToken: deps.accessToken,
112
+ tokenStore: deps.tokenStore,
113
+ accessLogWriter: deps.accessLogWriter,
114
+ indexManager: deps.indexManager,
115
+ hierarchyOptions: deps.hierarchyOptions,
116
+ dataStorage: deps.dataStorage,
117
+ feeVerifier: deps.feeVerifier,
118
+ runtimeAvailability: deps.runtimeAvailability,
119
+ connectionStore: mcpConnectionStore,
120
+ oauthAuthorizationStore: mcpOAuthAuthorizationStore,
121
+ oauthApprovalUrl: deps.mcpOAuthApprovalUrl,
122
+ activityRecorder: mcpActivityRecorder,
123
+ };
124
+ app.route("/", mcpOAuthRoutes(mcpRouteDeps));
125
+ app.route("/v1/mcp/connections", mcpConnectionsRoutes(mcpRouteDeps));
126
+ app.route("/v1/mcp/activity", mcpActivityRoutes(mcpRouteDeps));
127
+ app.route("/mcp", mcpStreamableHttpRoutes(mcpRouteDeps));
128
+ // Mount login flow v2 routes (self-hosted CLI auth, no auth required)
129
+ if (deps.tokenStore) {
130
+ app.route("/auth/device", authDeviceRoutes({
131
+ logger: deps.logger,
132
+ serverOrigin: deps.serverOrigin,
133
+ localApprovalOrigin: deps.localApprovalOrigin,
134
+ serverOwner: deps.serverOwner,
135
+ tokenStore: deps.tokenStore,
136
+ devToken: deps.devToken,
137
+ accessToken: deps.accessToken,
138
+ allowInteractiveLogin: !deps.cloudMode,
139
+ }));
140
+ // RFC 6749 token endpoint. Replaces ad-hoc `/auth/device/token` semantics
141
+ // with a standard OAuth2 surface that supports both the cloud
142
+ // control-plane `client_credentials` grant and the CLI device-code grant.
143
+ app.route("/oauth/token", oauthTokenRoutes({
144
+ logger: deps.logger,
145
+ tokenStore: deps.tokenStore,
146
+ controlPlaneSecret: deps.accessToken,
147
+ deviceSessions: createDeviceSessionLookup(),
148
+ }));
149
+ }
63
150
  // Mount dev UI routes when dev token is available
64
151
  if (deps.devToken) {
65
- app.route("/ui", uiRoute({ devToken: deps.devToken }));
152
+ app.route("/ui", uiRoute({
153
+ devToken: deps.devToken,
154
+ psLiteBootstrap: deps.ownerSignature
155
+ ? {
156
+ ownerSignature: deps.ownerSignature,
157
+ config: deps.config,
158
+ }
159
+ : null,
160
+ }));
66
161
  if (deps.configPath) {
67
162
  app.route("/ui/api", uiConfigRoutes({
68
163
  devToken: deps.devToken,
69
164
  configPath: deps.configPath,
70
165
  }));
71
166
  }
167
+ app.route("/ui/api", uiRegistrationRoutes({
168
+ devToken: deps.devToken,
169
+ ownerPrivateKey: deps.ownerPrivateKey,
170
+ }));
72
171
  }
73
172
  // Global error handler
74
173
  app.onError((err, c) => {
package/dist/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,14 @@
1
1
  import type { ServerConfig } from "@opendatalabs/personal-server-ts-core/schemas";
2
- import { type Logger } from "@opendatalabs/personal-server-ts-core/logger";
3
- import { type IndexManager } from "@opendatalabs/personal-server-ts-core/storage/index";
4
- import type { GatewayClient } from "@opendatalabs/personal-server-ts-core/gateway";
2
+ import { type Logger } from "./logger/index.js";
3
+ import { type IndexManager } from "./storage/index-manager.js";
4
+ import type { GatewayClient } from "@opendatalabs/vana-sdk/node";
5
5
  import type { AccessLogReader } from "@opendatalabs/personal-server-ts-core/logging/access-reader";
6
6
  import type { ServerAccount } from "@opendatalabs/personal-server-ts-core/keys";
7
7
  import type { ServerSigner } from "@opendatalabs/personal-server-ts-core/signing";
8
+ import { type SyncManager } from "@opendatalabs/personal-server-ts-core/sync";
8
9
  import type { Hono } from "hono";
10
+ import type { FeeVerifierPort } from "@opendatalabs/personal-server-ts-core/ports";
11
+ import { TunnelManager } from "./tunnel/index.js";
9
12
  export interface ServerContext {
10
13
  app: Hono;
11
14
  logger: Logger;
@@ -16,12 +19,30 @@ export interface ServerContext {
16
19
  accessLogReader: AccessLogReader;
17
20
  serverAccount?: ServerAccount;
18
21
  serverSigner?: ServerSigner;
22
+ syncManager: SyncManager | null;
23
+ tunnelManager?: TunnelManager;
24
+ tunnelUrl?: string;
25
+ isServerRegistered: () => boolean;
26
+ localApprovalPort?: number;
27
+ getLocalApprovalOrigin: () => string | undefined;
28
+ setLocalApprovalOrigin: (origin?: string) => void;
19
29
  devToken?: string;
20
- cleanup: () => void;
30
+ startBackgroundServices: () => Promise<void>;
31
+ cleanup: () => Promise<void>;
21
32
  }
22
33
  export interface CreateServerOptions {
34
+ rootPath?: string;
35
+ /** @deprecated Use rootPath instead. */
23
36
  serverDir?: string;
24
37
  dataDir?: string;
38
+ ownerSignature?: `0x${string}`;
39
+ gatewayClient?: GatewayClient;
40
+ /**
41
+ * Fee verifier for payment-gated data reads. When omitted, one is built
42
+ * from `config.payment` — pass this to keep grant + payment checks on the
43
+ * same gateway as an injected `gatewayClient`.
44
+ */
45
+ feeVerifier?: FeeVerifierPort;
25
46
  }
26
47
  export declare function createServer(config: ServerConfig, options?: CreateServerOptions): Promise<ServerContext>;
27
48
  //# sourceMappingURL=bootstrap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+CAA+C,CAAC;AAKlF,OAAO,EAEL,KAAK,MAAM,EACZ,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,qDAAqD,CAAC;AAG7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAC;AAGnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6DAA6D,CAAC;AAMnG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAEhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAIjC,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,IAAI,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,IAAI,CAAC;IAChB,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;IAC7B,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,aAAa,CAAC,CAqHxB"}
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+CAA+C,CAAC;AAElF,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAGjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6DAA6D,CAAC;AAMnG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAEhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+CAA+C,CAAC;AAElF,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAInF,OAAO,EAAE,aAAa,EAAoB,MAAM,mBAAmB,CAAC;AAGpE,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,IAAI,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,IAAI,CAAC;IAChB,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;IAC7B,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,OAAO,CAAC;IAClC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACjD,sBAAsB,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uBAAuB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC/B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;OAIG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AA0BD,wBAAsB,YAAY,CAChC,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,aAAa,CAAC,CAiZxB"}