@opendatalabs/personal-server-ts-core 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 (322) hide show
  1. package/dist/api/index.d.ts +282 -9
  2. package/dist/api/index.d.ts.map +1 -1
  3. package/dist/api/index.js +867 -163
  4. package/dist/api/index.js.map +1 -1
  5. package/dist/auth/request.d.ts.map +1 -1
  6. package/dist/auth/request.js.map +1 -1
  7. package/dist/client.d.ts +8 -1
  8. package/dist/client.d.ts.map +1 -1
  9. package/dist/client.js +21 -3
  10. package/dist/client.js.map +1 -1
  11. package/dist/contracts/binary.d.ts +12 -0
  12. package/dist/contracts/binary.d.ts.map +1 -1
  13. package/dist/contracts/binary.js +31 -0
  14. package/dist/contracts/binary.js.map +1 -1
  15. package/dist/contracts/data.d.ts +51 -5
  16. package/dist/contracts/data.d.ts.map +1 -1
  17. package/dist/contracts/data.js +166 -30
  18. package/dist/contracts/data.js.map +1 -1
  19. package/dist/contracts/grants.d.ts +7 -5
  20. package/dist/contracts/grants.d.ts.map +1 -1
  21. package/dist/contracts/grants.js +60 -37
  22. package/dist/contracts/grants.js.map +1 -1
  23. package/dist/contracts/index.d.ts +1 -1
  24. package/dist/contracts/index.d.ts.map +1 -1
  25. package/dist/contracts/index.js +1 -1
  26. package/dist/contracts/index.js.map +1 -1
  27. package/dist/derivatives/api.d.ts +48 -0
  28. package/dist/derivatives/api.d.ts.map +1 -0
  29. package/dist/derivatives/api.js +366 -0
  30. package/dist/derivatives/api.js.map +1 -0
  31. package/dist/derivatives/compute.d.ts +106 -0
  32. package/dist/derivatives/compute.d.ts.map +1 -0
  33. package/dist/derivatives/compute.js +414 -0
  34. package/dist/derivatives/compute.js.map +1 -0
  35. package/dist/derivatives/e2ee/aad.d.ts +22 -0
  36. package/dist/derivatives/e2ee/aad.d.ts.map +1 -0
  37. package/dist/derivatives/e2ee/aad.js +32 -0
  38. package/dist/derivatives/e2ee/aad.js.map +1 -0
  39. package/dist/derivatives/e2ee/attestation.d.ts +134 -0
  40. package/dist/derivatives/e2ee/attestation.d.ts.map +1 -0
  41. package/dist/derivatives/e2ee/attestation.js +248 -0
  42. package/dist/derivatives/e2ee/attestation.js.map +1 -0
  43. package/dist/derivatives/e2ee/index.d.ts +6 -0
  44. package/dist/derivatives/e2ee/index.d.ts.map +1 -0
  45. package/dist/derivatives/e2ee/index.js +6 -0
  46. package/dist/derivatives/e2ee/index.js.map +1 -0
  47. package/dist/derivatives/e2ee/jcs.d.ts +17 -0
  48. package/dist/derivatives/e2ee/jcs.d.ts.map +1 -0
  49. package/dist/derivatives/e2ee/jcs.js +55 -0
  50. package/dist/derivatives/e2ee/jcs.js.map +1 -0
  51. package/dist/derivatives/e2ee/phala.d.ts +62 -0
  52. package/dist/derivatives/e2ee/phala.d.ts.map +1 -0
  53. package/dist/derivatives/e2ee/phala.js +168 -0
  54. package/dist/derivatives/e2ee/phala.js.map +1 -0
  55. package/dist/derivatives/e2ee/suite.d.ts +56 -0
  56. package/dist/derivatives/e2ee/suite.d.ts.map +1 -0
  57. package/dist/derivatives/e2ee/suite.js +164 -0
  58. package/dist/derivatives/e2ee/suite.js.map +1 -0
  59. package/dist/derivatives/index.d.ts +10 -0
  60. package/dist/derivatives/index.d.ts.map +1 -0
  61. package/dist/derivatives/index.js +10 -0
  62. package/dist/derivatives/index.js.map +1 -0
  63. package/dist/derivatives/inference.d.ts +151 -0
  64. package/dist/derivatives/inference.d.ts.map +1 -0
  65. package/dist/derivatives/inference.js +262 -0
  66. package/dist/derivatives/inference.js.map +1 -0
  67. package/dist/derivatives/prompt.d.ts +64 -0
  68. package/dist/derivatives/prompt.d.ts.map +1 -0
  69. package/dist/derivatives/prompt.js +193 -0
  70. package/dist/derivatives/prompt.js.map +1 -0
  71. package/dist/derivatives/registration.d.ts +54 -0
  72. package/dist/derivatives/registration.d.ts.map +1 -0
  73. package/dist/derivatives/registration.js +180 -0
  74. package/dist/derivatives/registration.js.map +1 -0
  75. package/dist/derivatives/scheduler.d.ts +84 -0
  76. package/dist/derivatives/scheduler.d.ts.map +1 -0
  77. package/dist/derivatives/scheduler.js +257 -0
  78. package/dist/derivatives/scheduler.js.map +1 -0
  79. package/dist/derivatives/store.d.ts +14 -0
  80. package/dist/derivatives/store.d.ts.map +1 -0
  81. package/dist/derivatives/store.js +77 -0
  82. package/dist/derivatives/store.js.map +1 -0
  83. package/dist/derivatives/types.d.ts +92 -0
  84. package/dist/derivatives/types.d.ts.map +1 -0
  85. package/dist/derivatives/types.js +27 -0
  86. package/dist/derivatives/types.js.map +1 -0
  87. package/dist/errors/catalog.d.ts +75 -0
  88. package/dist/errors/catalog.d.ts.map +1 -1
  89. package/dist/errors/catalog.js +104 -0
  90. package/dist/errors/catalog.js.map +1 -1
  91. package/dist/grants/index.d.ts +2 -1
  92. package/dist/grants/index.d.ts.map +1 -1
  93. package/dist/grants/index.js +1 -1
  94. package/dist/grants/index.js.map +1 -1
  95. package/dist/keys/index.d.ts +1 -0
  96. package/dist/keys/index.d.ts.map +1 -1
  97. package/dist/keys/index.js +1 -1
  98. package/dist/keys/index.js.map +1 -1
  99. package/dist/keys/public-only-account.d.ts +8 -0
  100. package/dist/keys/public-only-account.d.ts.map +1 -0
  101. package/dist/keys/public-only-account.js +21 -0
  102. package/dist/keys/public-only-account.js.map +1 -0
  103. package/dist/keys/server-account.d.ts +2 -2
  104. package/dist/keys/server-account.d.ts.map +1 -1
  105. package/dist/lineage/attestation.d.ts +42 -0
  106. package/dist/lineage/attestation.d.ts.map +1 -0
  107. package/dist/lineage/attestation.js +25 -0
  108. package/dist/lineage/attestation.js.map +1 -0
  109. package/dist/lineage/gateway.d.ts +105 -0
  110. package/dist/lineage/gateway.d.ts.map +1 -0
  111. package/dist/lineage/gateway.js +242 -0
  112. package/dist/lineage/gateway.js.map +1 -0
  113. package/dist/lineage/index.d.ts +5 -0
  114. package/dist/lineage/index.d.ts.map +1 -0
  115. package/dist/lineage/index.js +5 -0
  116. package/dist/lineage/index.js.map +1 -0
  117. package/dist/lineage/lineage.d.ts +141 -0
  118. package/dist/lineage/lineage.d.ts.map +1 -0
  119. package/dist/lineage/lineage.js +255 -0
  120. package/dist/lineage/lineage.js.map +1 -0
  121. package/dist/logging/access-log.d.ts +10 -1
  122. package/dist/logging/access-log.d.ts.map +1 -1
  123. package/dist/mcp/activity.d.ts.map +1 -1
  124. package/dist/mcp/activity.js.map +1 -1
  125. package/dist/mcp/connection-api.d.ts.map +1 -1
  126. package/dist/mcp/connection-api.js +0 -1
  127. package/dist/mcp/connection-api.js.map +1 -1
  128. package/dist/mcp/index.d.ts +1 -0
  129. package/dist/mcp/index.d.ts.map +1 -1
  130. package/dist/mcp/index.js +1 -0
  131. package/dist/mcp/index.js.map +1 -1
  132. package/dist/mcp/read-client.d.ts +61 -1
  133. package/dist/mcp/read-client.d.ts.map +1 -1
  134. package/dist/mcp/read-client.js +397 -42
  135. package/dist/mcp/read-client.js.map +1 -1
  136. package/dist/mcp/resources.d.ts +37 -0
  137. package/dist/mcp/resources.d.ts.map +1 -0
  138. package/dist/mcp/resources.js +114 -0
  139. package/dist/mcp/resources.js.map +1 -0
  140. package/dist/mcp/search/index.d.ts.map +1 -1
  141. package/dist/mcp/search/index.js +108 -21
  142. package/dist/mcp/search/index.js.map +1 -1
  143. package/dist/mcp/server.d.ts.map +1 -1
  144. package/dist/mcp/server.js +27 -9
  145. package/dist/mcp/server.js.map +1 -1
  146. package/dist/mcp/session.d.ts +160 -0
  147. package/dist/mcp/session.d.ts.map +1 -0
  148. package/dist/mcp/session.js +243 -0
  149. package/dist/mcp/session.js.map +1 -0
  150. package/dist/mcp/tools.d.ts +29 -3
  151. package/dist/mcp/tools.d.ts.map +1 -1
  152. package/dist/mcp/tools.js +515 -48
  153. package/dist/mcp/tools.js.map +1 -1
  154. package/dist/mcp/types.d.ts.map +1 -1
  155. package/dist/payment/index.d.ts +2 -0
  156. package/dist/payment/index.d.ts.map +1 -0
  157. package/dist/payment/index.js +2 -0
  158. package/dist/payment/index.js.map +1 -0
  159. package/dist/payment/x402.d.ts +155 -0
  160. package/dist/payment/x402.d.ts.map +1 -0
  161. package/dist/payment/x402.js +402 -0
  162. package/dist/payment/x402.js.map +1 -0
  163. package/dist/policy/data-read.d.ts +18 -2
  164. package/dist/policy/data-read.d.ts.map +1 -1
  165. package/dist/policy/data-read.js +80 -49
  166. package/dist/policy/data-read.js.map +1 -1
  167. package/dist/policy/data-write.d.ts +69 -0
  168. package/dist/policy/data-write.d.ts.map +1 -0
  169. package/dist/policy/data-write.js +131 -0
  170. package/dist/policy/data-write.js.map +1 -0
  171. package/dist/policy/index.d.ts +3 -1
  172. package/dist/policy/index.d.ts.map +1 -1
  173. package/dist/policy/index.js +3 -1
  174. package/dist/policy/index.js.map +1 -1
  175. package/dist/policy/signed-artifacts.d.ts +17 -0
  176. package/dist/policy/signed-artifacts.d.ts.map +1 -0
  177. package/dist/policy/signed-artifacts.js +110 -0
  178. package/dist/policy/signed-artifacts.js.map +1 -0
  179. package/dist/ports/index.d.ts +159 -32
  180. package/dist/ports/index.d.ts.map +1 -1
  181. package/dist/ports/index.js +6 -5
  182. package/dist/ports/index.js.map +1 -1
  183. package/dist/schemas/server-config.d.ts +49 -4
  184. package/dist/schemas/server-config.d.ts.map +1 -1
  185. package/dist/schemas/server-config.js +95 -13
  186. package/dist/schemas/server-config.js.map +1 -1
  187. package/dist/signing/index.d.ts +2 -2
  188. package/dist/signing/index.d.ts.map +1 -1
  189. package/dist/signing/index.js +1 -1
  190. package/dist/signing/index.js.map +1 -1
  191. package/dist/signing/request-signer.d.ts +2 -0
  192. package/dist/signing/request-signer.d.ts.map +1 -1
  193. package/dist/signing/request-signer.js +1 -0
  194. package/dist/signing/request-signer.js.map +1 -1
  195. package/dist/signing/signer.d.ts +27 -25
  196. package/dist/signing/signer.d.ts.map +1 -1
  197. package/dist/signing/signer.js +27 -51
  198. package/dist/signing/signer.js.map +1 -1
  199. package/dist/storage/adapters/index.d.ts +1 -1
  200. package/dist/storage/adapters/index.d.ts.map +1 -1
  201. package/dist/storage/adapters/index.js +1 -1
  202. package/dist/storage/adapters/index.js.map +1 -1
  203. package/dist/storage/adapters/interface.d.ts +10 -0
  204. package/dist/storage/adapters/interface.d.ts.map +1 -1
  205. package/dist/storage/adapters/sdk.d.ts +11 -1
  206. package/dist/storage/adapters/sdk.d.ts.map +1 -1
  207. package/dist/storage/adapters/sdk.js +38 -3
  208. package/dist/storage/adapters/sdk.js.map +1 -1
  209. package/dist/storage/adapters/vana.d.ts +3 -0
  210. package/dist/storage/adapters/vana.d.ts.map +1 -1
  211. package/dist/storage/adapters/vana.js +95 -2
  212. package/dist/storage/adapters/vana.js.map +1 -1
  213. package/dist/storage/blocks/errors.d.ts.map +1 -1
  214. package/dist/storage/blocks/errors.js.map +1 -1
  215. package/dist/storage/blocks/index.d.ts +2 -0
  216. package/dist/storage/blocks/index.d.ts.map +1 -1
  217. package/dist/storage/blocks/index.js +2 -0
  218. package/dist/storage/blocks/index.js.map +1 -1
  219. package/dist/storage/blocks/select.d.ts +29 -0
  220. package/dist/storage/blocks/select.d.ts.map +1 -0
  221. package/dist/storage/blocks/select.js +120 -0
  222. package/dist/storage/blocks/select.js.map +1 -0
  223. package/dist/storage/blocks/types.d.ts +7 -0
  224. package/dist/storage/blocks/types.d.ts.map +1 -1
  225. package/dist/storage/index/manager.d.ts +30 -2
  226. package/dist/storage/index/manager.d.ts.map +1 -1
  227. package/dist/storage/index/schema.d.ts +1 -1
  228. package/dist/storage/index/schema.js +1 -1
  229. package/dist/storage/index/types.d.ts +6 -1
  230. package/dist/storage/index/types.d.ts.map +1 -1
  231. package/dist/sync/data-point-feed.d.ts +35 -0
  232. package/dist/sync/data-point-feed.d.ts.map +1 -0
  233. package/dist/sync/data-point-feed.js +122 -0
  234. package/dist/sync/data-point-feed.js.map +1 -0
  235. package/dist/sync/data-point-id.d.ts +7 -0
  236. package/dist/sync/data-point-id.d.ts.map +1 -0
  237. package/dist/sync/data-point-id.js +16 -0
  238. package/dist/sync/data-point-id.js.map +1 -0
  239. package/dist/sync/delete-data-port.d.ts +50 -0
  240. package/dist/sync/delete-data-port.d.ts.map +1 -0
  241. package/dist/sync/delete-data-port.js +244 -0
  242. package/dist/sync/delete-data-port.js.map +1 -0
  243. package/dist/sync/engine/sync-manager.d.ts +16 -4
  244. package/dist/sync/engine/sync-manager.d.ts.map +1 -1
  245. package/dist/sync/engine/sync-manager.js +93 -32
  246. package/dist/sync/engine/sync-manager.js.map +1 -1
  247. package/dist/sync/index.d.ts +7 -0
  248. package/dist/sync/index.d.ts.map +1 -1
  249. package/dist/sync/index.js +7 -0
  250. package/dist/sync/index.js.map +1 -1
  251. package/dist/sync/issues.d.ts.map +1 -1
  252. package/dist/sync/issues.js +21 -3
  253. package/dist/sync/issues.js.map +1 -1
  254. package/dist/sync/pending-blob-deletions.d.ts +29 -0
  255. package/dist/sync/pending-blob-deletions.d.ts.map +1 -0
  256. package/dist/sync/pending-blob-deletions.js +116 -0
  257. package/dist/sync/pending-blob-deletions.js.map +1 -0
  258. package/dist/sync/retry-memory.d.ts +33 -0
  259. package/dist/sync/retry-memory.d.ts.map +1 -0
  260. package/dist/sync/retry-memory.js +68 -0
  261. package/dist/sync/retry-memory.js.map +1 -0
  262. package/dist/sync/scope-deletions.d.ts +155 -0
  263. package/dist/sync/scope-deletions.d.ts.map +1 -0
  264. package/dist/sync/scope-deletions.js +225 -0
  265. package/dist/sync/scope-deletions.js.map +1 -0
  266. package/dist/sync/tombstone.d.ts +27 -0
  267. package/dist/sync/tombstone.d.ts.map +1 -0
  268. package/dist/sync/tombstone.js +28 -0
  269. package/dist/sync/tombstone.js.map +1 -0
  270. package/dist/sync/workers/delete.d.ts +152 -31
  271. package/dist/sync/workers/delete.d.ts.map +1 -1
  272. package/dist/sync/workers/delete.js +457 -55
  273. package/dist/sync/workers/delete.js.map +1 -1
  274. package/dist/sync/workers/download.d.ts +108 -27
  275. package/dist/sync/workers/download.d.ts.map +1 -1
  276. package/dist/sync/workers/download.js +321 -126
  277. package/dist/sync/workers/download.js.map +1 -1
  278. package/dist/sync/workers/upload.d.ts +65 -10
  279. package/dist/sync/workers/upload.d.ts.map +1 -1
  280. package/dist/sync/workers/upload.js +371 -42
  281. package/dist/sync/workers/upload.js.map +1 -1
  282. package/dist/test-utils/e2ee-fixtures.d.ts +94 -0
  283. package/dist/test-utils/e2ee-fixtures.d.ts.map +1 -0
  284. package/dist/test-utils/e2ee-fixtures.js +116 -0
  285. package/dist/test-utils/e2ee-fixtures.js.map +1 -0
  286. package/dist/test-utils/e2ee-gateway.d.ts +61 -0
  287. package/dist/test-utils/e2ee-gateway.d.ts.map +1 -0
  288. package/dist/test-utils/e2ee-gateway.js +248 -0
  289. package/dist/test-utils/e2ee-gateway.js.map +1 -0
  290. package/dist/test-utils/index.d.ts +3 -0
  291. package/dist/test-utils/index.d.ts.map +1 -1
  292. package/dist/test-utils/index.js +3 -0
  293. package/dist/test-utils/index.js.map +1 -1
  294. package/dist/test-utils/memory-storage.d.ts +12 -0
  295. package/dist/test-utils/memory-storage.d.ts.map +1 -0
  296. package/dist/test-utils/memory-storage.js +146 -0
  297. package/dist/test-utils/memory-storage.js.map +1 -0
  298. package/dist/test-utils/wallet.d.ts +6 -0
  299. package/dist/test-utils/wallet.d.ts.map +1 -1
  300. package/dist/test-utils/wallet.js +46 -0
  301. package/dist/test-utils/wallet.js.map +1 -1
  302. package/dist/write/attribution.d.ts +185 -0
  303. package/dist/write/attribution.d.ts.map +1 -0
  304. package/dist/write/attribution.js +450 -0
  305. package/dist/write/attribution.js.map +1 -0
  306. package/dist/write/authorize.d.ts +77 -0
  307. package/dist/write/authorize.d.ts.map +1 -0
  308. package/dist/write/authorize.js +109 -0
  309. package/dist/write/authorize.js.map +1 -0
  310. package/dist/write/index.d.ts +5 -0
  311. package/dist/write/index.d.ts.map +1 -0
  312. package/dist/write/index.js +5 -0
  313. package/dist/write/index.js.map +1 -0
  314. package/dist/write/route.d.ts +61 -0
  315. package/dist/write/route.d.ts.map +1 -0
  316. package/dist/write/route.js +132 -0
  317. package/dist/write/route.js.map +1 -0
  318. package/dist/write/session.d.ts +96 -0
  319. package/dist/write/session.d.ts.map +1 -0
  320. package/dist/write/session.js +136 -0
  321. package/dist/write/session.js.map +1 -0
  322. package/package.json +19 -3
@@ -0,0 +1,114 @@
1
+ import { z } from "zod";
2
+ import { McpDataReadError } from "./read-client.js";
3
+ export const RAW_SCOPE_RESOURCE_TEMPLATES = [
4
+ "vana://scope/{scope}/raw",
5
+ "vana://scope/{scope}/raw/at/{at}",
6
+ "vana://scope/{scope}/raw/file/{fileId}",
7
+ ];
8
+ export function rawScopeResourceUri(params) {
9
+ const scope = encodeURIComponent(params.scope);
10
+ if (params.fileId) {
11
+ return `vana://scope/${scope}/raw/file/${encodeURIComponent(params.fileId)}`;
12
+ }
13
+ if (params.at) {
14
+ return `vana://scope/${scope}/raw/at/${encodeURIComponent(params.at)}`;
15
+ }
16
+ return `vana://scope/${scope}/raw`;
17
+ }
18
+ export function parseRawScopeResourceUri(uri) {
19
+ if (uri.protocol !== "vana:" || uri.hostname !== "scope") {
20
+ throw new Error("Invalid raw scope resource URI");
21
+ }
22
+ const parts = uri.pathname.split("/").filter(Boolean);
23
+ if (parts.length < 2 || parts[1] !== "raw") {
24
+ throw new Error("Invalid raw scope resource URI");
25
+ }
26
+ if (parts.length === 4 && parts[2] === "at") {
27
+ return {
28
+ scope: decodeURIComponent(parts[0] ?? ""),
29
+ at: decodeURIComponent(parts[3] ?? ""),
30
+ };
31
+ }
32
+ if (parts.length === 4 && parts[2] === "file") {
33
+ return {
34
+ scope: decodeURIComponent(parts[0] ?? ""),
35
+ fileId: decodeURIComponent(parts[3] ?? ""),
36
+ };
37
+ }
38
+ if (parts.length !== 2) {
39
+ throw new Error("Invalid raw scope resource URI");
40
+ }
41
+ return {
42
+ scope: decodeURIComponent(parts[0] ?? ""),
43
+ };
44
+ }
45
+ export function resolveGrantForRawScopeResource(connection, scope) {
46
+ for (const grant of connection.grants) {
47
+ for (const granted of grant.scopes) {
48
+ if (granted === scope || granted === "*") {
49
+ return { grantId: grant.grantId };
50
+ }
51
+ if (granted.endsWith(".*")) {
52
+ const prefix = granted.slice(0, -2);
53
+ if (scope.startsWith(`${prefix}.`)) {
54
+ return { grantId: grant.grantId };
55
+ }
56
+ }
57
+ }
58
+ }
59
+ return null;
60
+ }
61
+ export async function readRawScopeResource(uri, ctx) {
62
+ const params = parseRawScopeResourceUri(uri);
63
+ const grant = resolveGrantForRawScopeResource(ctx.connection, params.scope);
64
+ if (!grant) {
65
+ throw new McpDataReadError(403, {
66
+ error: "scope_not_granted",
67
+ message: `Scope '${params.scope}' is not covered by this MCP connection.`,
68
+ });
69
+ }
70
+ const raw = await ctx.readClient.readRawScopeFile({
71
+ scope: params.scope,
72
+ grantId: grant.grantId,
73
+ at: params.at,
74
+ fileId: params.fileId,
75
+ });
76
+ return {
77
+ contents: [
78
+ {
79
+ uri: uri.toString(),
80
+ mimeType: raw.mimeType,
81
+ blob: raw.contentBase64,
82
+ _meta: rawScopeMetadata(raw),
83
+ },
84
+ ],
85
+ };
86
+ }
87
+ export function rawScopeMetadata(raw) {
88
+ return {
89
+ scope: raw.scope,
90
+ ...(raw.collectedAt ? { collectedAt: raw.collectedAt } : {}),
91
+ ...(raw.fileId ? { fileId: raw.fileId } : {}),
92
+ ...(raw.filename ? { filename: raw.filename } : {}),
93
+ mimeType: raw.mimeType,
94
+ sizeBytes: raw.sizeBytes,
95
+ ...(raw.metadata !== undefined ? { metadata: raw.metadata } : {}),
96
+ };
97
+ }
98
+ export const rawScopeFileInputSchema = {
99
+ scope: z.string().min(1).describe("Exact approved file scope."),
100
+ at: z.string().min(1).optional(),
101
+ fileId: z.string().min(1).optional(),
102
+ includeContent: z
103
+ .boolean()
104
+ .optional()
105
+ .describe("Embed bytes as an MCP resource blob. Defaults to false; resource links are safer for broad client compatibility."),
106
+ maxBytes: z
107
+ .number()
108
+ .int()
109
+ .min(1)
110
+ .max(25 * 1024 * 1024)
111
+ .optional()
112
+ .describe("Max embedded bytes."),
113
+ };
114
+ //# sourceMappingURL=resources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/mcp/resources.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp/search/index.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAU,SAAQ,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,SAAS,EAAE,SAAS,cAAc,EAAE,GAAG,IAAI,CAAC;IAChD,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,EAAE,CAAC;IACxC,SAAS,IAAI,MAAM,CAAC;CACrB;AA8BD,qBAAa,eAAgB,YAAW,WAAW;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IAEnD,OAAO;IAIP,MAAM,CAAC,KAAK,IAAI,eAAe;IAI/B,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,cAAc,EAAE,GAAG,eAAe;IAMnE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe;IAchD,GAAG,CAAC,SAAS,EAAE,SAAS,cAAc,EAAE,GAAG,IAAI;IAI/C,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAU,EAAE,EAAE,WAAW,GAAG,SAAS,EAAE;IAY/D,SAAS,IAAI,MAAM;CAGpB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp/search/index.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAU,SAAQ,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,SAAS,EAAE,SAAS,cAAc,EAAE,GAAG,IAAI,CAAC;IAChD,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,EAAE,CAAC;IACxC,SAAS,IAAI,MAAM,CAAC;CACrB;AAgID,qBAAa,eAAgB,YAAW,WAAW;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IAEnD,OAAO;IAIP,MAAM,CAAC,KAAK,IAAI,eAAe;IAI/B,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,cAAc,EAAE,GAAG,eAAe;IAMnE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe;IAMhD,GAAG,CAAC,SAAS,EAAE,SAAS,cAAc,EAAE,GAAG,IAAI;IAI/C,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAU,EAAE,EAAE,WAAW,GAAG,SAAS,EAAE;IAc/D,SAAS,IAAI,MAAM;CAGpB"}
@@ -1,16 +1,109 @@
1
1
  import MiniSearch from "minisearch";
2
2
  const SEARCH_FIELDS = ["title", "text", "preview"];
3
3
  const STORE_FIELDS = ["id", "scope", "source", "title", "preview", "blockRef"];
4
+ /**
5
+ * Terms shorter than this are indexed but never prefix-expanded: with
6
+ * `prefix: true` on every term a two-letter query expands to "starts with those
7
+ * two letters", which matches essentially every document and turns search into
8
+ * "return whatever came first".
9
+ */
10
+ const PREFIX_MIN_TERM_CHARS = 4;
11
+ /** Single characters carry no signal and match nearly everything. */
12
+ const MIN_TERM_CHARS = 2;
13
+ /**
14
+ * MiniSearch ships no stopword list, so an ordinary question ("what did I say
15
+ * about the kiln") matches every document containing "the". Dropping function
16
+ * words at index AND query time is what makes the remaining scores meaningful.
17
+ */
18
+ const STOPWORDS = new Set([
19
+ "a",
20
+ "an",
21
+ "and",
22
+ "are",
23
+ "as",
24
+ "at",
25
+ "be",
26
+ "but",
27
+ "by",
28
+ "did",
29
+ "do",
30
+ "does",
31
+ "for",
32
+ "from",
33
+ "had",
34
+ "has",
35
+ "have",
36
+ "he",
37
+ "how",
38
+ "i",
39
+ "if",
40
+ "in",
41
+ "is",
42
+ "it",
43
+ "its",
44
+ "me",
45
+ "my",
46
+ "no",
47
+ "not",
48
+ "of",
49
+ "on",
50
+ "or",
51
+ "our",
52
+ "she",
53
+ "so",
54
+ "that",
55
+ "the",
56
+ "their",
57
+ "them",
58
+ "then",
59
+ "there",
60
+ "they",
61
+ "this",
62
+ "to",
63
+ "was",
64
+ "we",
65
+ "were",
66
+ "what",
67
+ "when",
68
+ "where",
69
+ "which",
70
+ "who",
71
+ "why",
72
+ "will",
73
+ "with",
74
+ "you",
75
+ "your",
76
+ ]);
77
+ /**
78
+ * Relevance floor, expressed as a fraction of the best hit for the same query.
79
+ * BM25 scores are corpus-relative, so an absolute floor would be meaningless
80
+ * across scopes of wildly different size; a relative floor reliably drops the
81
+ * tail of documents that merely share one weak term with the query.
82
+ */
83
+ const SCORE_FLOOR_RATIO = 0.25;
84
+ function processTerm(term) {
85
+ const normalized = term.toLowerCase();
86
+ if (normalized.length < MIN_TERM_CHARS)
87
+ return null;
88
+ return STOPWORDS.has(normalized) ? null : normalized;
89
+ }
90
+ /**
91
+ * Single source of truth for index + query behaviour. `load()` MUST be given
92
+ * the same options the index was built with, otherwise a deserialized index
93
+ * tokenizes queries differently from the documents it holds.
94
+ */
95
+ const MINISEARCH_OPTIONS = {
96
+ idField: "id",
97
+ fields: SEARCH_FIELDS,
98
+ storeFields: STORE_FIELDS,
99
+ processTerm,
100
+ searchOptions: {
101
+ boost: { title: 2, preview: 1.2, text: 1 },
102
+ prefix: (term) => term.length >= PREFIX_MIN_TERM_CHARS,
103
+ },
104
+ };
4
105
  function createMiniSearch() {
5
- return new MiniSearch({
6
- idField: "id",
7
- fields: SEARCH_FIELDS,
8
- storeFields: STORE_FIELDS,
9
- searchOptions: {
10
- boost: { title: 2, preview: 1.2, text: 1 },
11
- prefix: true,
12
- },
13
- });
106
+ return new MiniSearch(MINISEARCH_OPTIONS);
14
107
  }
15
108
  function toHit(result) {
16
109
  return {
@@ -38,27 +131,21 @@ export class MiniSearchIndex {
38
131
  return index;
39
132
  }
40
133
  static load(serialized) {
41
- return new MiniSearchIndex(MiniSearch.loadJSON(serialized, {
42
- idField: "id",
43
- fields: SEARCH_FIELDS,
44
- storeFields: STORE_FIELDS,
45
- searchOptions: {
46
- boost: { title: 2, preview: 1.2, text: 1 },
47
- prefix: true,
48
- },
49
- }));
134
+ return new MiniSearchIndex(MiniSearch.loadJSON(serialized, MINISEARCH_OPTIONS));
50
135
  }
51
136
  add(documents) {
52
137
  this.index.addAll(documents);
53
138
  }
54
139
  search({ query, scopes, limit = 20 }) {
55
140
  const allowedScopes = scopes ? new Set(scopes) : null;
56
- return this.index
57
- .search(query, {
141
+ const results = this.index.search(query, {
58
142
  filter: allowedScopes
59
143
  ? (result) => allowedScopes.has(String(result.scope))
60
144
  : undefined,
61
- })
145
+ });
146
+ const scoreFloor = (results[0]?.score ?? 0) * SCORE_FLOOR_RATIO;
147
+ return results
148
+ .filter((result) => result.score >= scoreFloor)
62
149
  .slice(0, limit)
63
150
  .map(toHit);
64
151
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/search/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/search/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE5E,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,mBAAmB,CAAC;IAChC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA6ID,UAAU,sBAAsB;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,UAAU,qBAAsB,SAAQ,sBAAsB;IAC5D,MAAM,EAAE,OAAO,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;IAC9C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA2DD;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,uBAAuB,GAC/B;IACD,MAAM,EAAE,SAAS,CAAC;IAClB,uBAAuB,CACrB,QAAQ,CAAC,EAAE,IAAI,CACb,qBAAqB,EACrB,QAAQ,GAAG,WAAW,GAAG,cAAc,CACxC,GACA,IAAI,CAAC;CACT,CA8GA;AAED;;;;;GAKG;AACH,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,QAAQ,CAAC,CAuBnB"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,SAAS,EAEV,MAAM,yCAAyC,CAAC;AAEjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAO1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAM5E,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,mBAAmB,CAAC;IAChC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAgJD,UAAU,sBAAsB;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,UAAU,qBAAsB,SAAQ,sBAAsB;IAC5D,MAAM,EAAE,OAAO,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;IAC9C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA+DD;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,uBAAuB,GAC/B;IACD,MAAM,EAAE,SAAS,CAAC;IAClB,uBAAuB,CACrB,QAAQ,CAAC,EAAE,IAAI,CACb,qBAAqB,EACrB,QAAQ,GAAG,WAAW,GAAG,cAAc,CACxC,GACA,IAAI,CAAC;CACT,CA4HA;AAED;;;;;GAKG;AACH,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,QAAQ,CAAC,CAuBnB"}
@@ -10,13 +10,13 @@
10
10
  * The transport supports Streamable HTTP (GET=SSE, POST=JSON-RPC,
11
11
  * DELETE=close). Claude Web's remote connector speaks this.
12
12
  */
13
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
13
+ import { McpServer, ResourceTemplate, } from "@modelcontextprotocol/sdk/server/mcp.js";
14
14
  import { WebStandardStreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js";
15
- import { MCP_TOOLS } from "./tools.js";
15
+ import { MAX_MCP_TOOL_TIMEOUT_MS, MCP_TOOLS, } from "./tools.js";
16
+ import { RAW_SCOPE_RESOURCE_TEMPLATES, readRawScopeResource, } from "./resources.js";
16
17
  const DEFAULT_SERVER_NAME = "vana-personal-server-mcp";
17
18
  const DEFAULT_SERVER_VERSION = "0.0.1";
18
19
  const DEFAULT_MCP_TOOL_TIMEOUT_MS = 30_000;
19
- const MAX_MCP_TOOL_TIMEOUT_MS = 90_000;
20
20
  const MCP_TOOL_TIMEOUT_GRACE_MS = 1_000;
21
21
  const QUERY_PREVIEW_CHARS = 120;
22
22
  const textEncoder = new TextEncoder();
@@ -37,7 +37,9 @@ function clampToolTimeout(value) {
37
37
  return Math.min(MAX_MCP_TOOL_TIMEOUT_MS, Math.max(1000, Math.trunc(value)));
38
38
  }
39
39
  function toolTimeoutMs(tool, args) {
40
- if (tool === "read_scope" || tool === "search_personal_context") {
40
+ if (tool === "read_scope" ||
41
+ tool === "search_personal_context" ||
42
+ tool === "get_scope_file") {
41
43
  return clampToolTimeout(args.timeoutMs) + MCP_TOOL_TIMEOUT_GRACE_MS;
42
44
  }
43
45
  return DEFAULT_MCP_TOOL_TIMEOUT_MS;
@@ -61,7 +63,8 @@ function buildActivityStartParams(tool, args) {
61
63
  const params = {
62
64
  tool,
63
65
  };
64
- if (tool === "read_scope" && typeof args.scope === "string") {
66
+ if ((tool === "read_scope" || tool === "get_scope_file") &&
67
+ typeof args.scope === "string") {
65
68
  params.scopes = [args.scope];
66
69
  }
67
70
  if (tool === "search_personal_context") {
@@ -79,7 +82,8 @@ function buildActivityStartParams(tool, args) {
79
82
  function extractActivityFinishParams(tool, result) {
80
83
  if (result.isError || result.content.length === 0) {
81
84
  try {
82
- const body = JSON.parse(result.content[0]?.text ?? "{}");
85
+ const firstText = result.content[0]?.type === "text" ? result.content[0].text : "{}";
86
+ const body = JSON.parse(firstText);
83
87
  return {
84
88
  errorCode: typeof body.error === "string" ? body.error : undefined,
85
89
  errorMessage: typeof body.message === "string" ? body.message : undefined,
@@ -91,7 +95,8 @@ function extractActivityFinishParams(tool, result) {
91
95
  }
92
96
  if (tool === "search_personal_context") {
93
97
  try {
94
- const body = JSON.parse(result.content[0].text);
98
+ const firstText = result.content[0]?.type === "text" ? result.content[0].text : "{}";
99
+ const body = JSON.parse(firstText);
95
100
  return {
96
101
  resultCount: Array.isArray(body.results)
97
102
  ? body.results.length
@@ -109,7 +114,8 @@ function extractActivityFinishParams(tool, result) {
109
114
  }
110
115
  if (tool === "read_scope") {
111
116
  try {
112
- const body = JSON.parse(result.content[0].text);
117
+ const firstText = result.content[0]?.type === "text" ? result.content[0].text : "{}";
118
+ const body = JSON.parse(firstText);
113
119
  return {
114
120
  resultCount: Array.isArray(body.blocks)
115
121
  ? body.blocks.length
@@ -127,7 +133,12 @@ function bytes(value) {
127
133
  }
128
134
  function estimatePayloadMetrics(result) {
129
135
  const textBytes = result.content?.reduce((total, item) => {
130
- return total + (typeof item.text === "string" ? bytes(item.text) : 0);
136
+ if (item.type === "text")
137
+ return total + bytes(item.text);
138
+ if (item.type === "resource") {
139
+ return total + bytes(item.resource.blob);
140
+ }
141
+ return total + bytes(JSON.stringify(item));
131
142
  }, 0) ?? 0;
132
143
  // The SDK serializes both text content and structuredContent. Avoid a second
133
144
  // JSON stringify over very large payloads here; the pretty text body is a
@@ -245,6 +256,13 @@ export function createMcpServerForConnection(options) {
245
256
  }
246
257
  });
247
258
  }
259
+ RAW_SCOPE_RESOURCE_TEMPLATES.forEach((template, index) => {
260
+ server.registerResource(`raw-scope-file-${index}`, new ResourceTemplate(template, { list: undefined }), {
261
+ title: "Raw scope file",
262
+ description: "Original binary/unstructured file bytes for an approved Vana scope.",
263
+ mimeType: "application/octet-stream",
264
+ }, async (uri) => readRawScopeResource(uri, ctx));
265
+ });
248
266
  function finishPendingActivities(override) {
249
267
  for (const [activityId, finish] of pendingActivityFinishes) {
250
268
  options.activityRecorder?.finish(activityId, {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,wCAAwC,EAAE,MAAM,+DAA+D,CAAC;AAGzH,OAAO,EAAE,SAAS,EAAuB,MAAM,YAAY,CAAC;AAW5D,MAAM,mBAAmB,GAAG,0BAA0B,CAAC;AACvD,MAAM,sBAAsB,GAAG,OAAO,CAAC;AACvC,MAAM,2BAA2B,GAAG,MAAM,CAAC;AAC3C,MAAM,uBAAuB,GAAG,MAAM,CAAC;AACvC,MAAM,yBAAyB,GAAG,KAAK,CAAC;AAExC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAChC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAEtC,MAAM,mBAAoB,SAAQ,KAAK;IAEnB;IACA;IAFlB,YACkB,IAAY,EACZ,SAAiB;QAEjC,KAAK,CAAC,GAAG,IAAI,oBAAoB,SAAS,IAAI,CAAC,CAAC;QAHhC,SAAI,GAAJ,IAAI,CAAQ;QACZ,cAAS,GAAT,SAAS,CAAQ;QAGjC,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,OAAO,2BAA2B,CAAC;IACrC,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,aAAa,CAAC,IAAY,EAAE,IAA6B;IAChE,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,yBAAyB,EAAE,CAAC;QAChE,OAAO,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,yBAAyB,CAAC;IACtE,CAAC;IACD,OAAO,2BAA2B,CAAC;AACrC,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,OAAmB,EACnB,IAAY,EACZ,SAAiB;IAEjB,IAAI,OAAkD,CAAC;IACvD,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC;YACxB,OAAO;YACP,IAAI,OAAO,CAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;gBAClC,OAAO,GAAG,UAAU,CAClB,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EACtD,SAAS,CACV,CAAC;YACJ,CAAC,CAAC;SACH,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,IAAI,OAAO;YAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAC/B,IAAY,EACZ,IAA6B;IAE7B,MAAM,MAAM,GAA+D;QACzE,IAAI;KACL,CAAC;IACF,IAAI,IAAI,KAAK,YAAY,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5D,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,IAAI,KAAK,yBAAyB,EAAE,CAAC;QACvC,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACnC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzD,MAAM,CAAC,MAAM,GAAI,IAAI,CAAC,MAAoB;iBACvC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;iBACjD,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,2BAA2B,CAClC,IAAY,EACZ,MAA6E;IAO7E,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAGtD,CAAC;YACF,OAAO;gBACL,SAAS,EAAE,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;gBAClE,YAAY,EACV,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;aAC9D,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IACD,IAAI,IAAI,KAAK,yBAAyB,EAAE,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAG7C,CAAC;YACF,OAAO;gBACL,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;oBACtC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM;oBACrB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;wBAC3B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM;wBACrB,CAAC,CAAC,SAAS;gBACf,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;oBAC7C,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM;oBAC3B,CAAC,CAAC,SAAS;aACd,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IACD,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAG7C,CAAC;YACF,OAAO;gBACL,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;oBACrC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;oBACpB,CAAC,CAAC,SAAS;aACd,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAiBD,SAAS,KAAK,CAAC,KAAa;IAC1B,OAAO,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC;AAC9C,CAAC;AAED,SAAS,sBAAsB,CAAC,MAG/B;IACC,MAAM,SAAS,GACb,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrC,OAAO,KAAK,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACb,6EAA6E;IAC7E,0EAA0E;IAC1E,4EAA4E;IAC5E,MAAM,sBAAsB,GAC1B,MAAM,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACjE,OAAO;QACL,SAAS;QACT,GAAG,CAAC,sBAAsB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,YAAY,EAAE,SAAS,GAAG,CAAC,sBAAsB,IAAI,CAAC,CAAC;KACxD,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,IAA6B;IAIrD,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;aACpC;SACF;KACF,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,QAA6B,EAC7B,UAAkB,EAClB,MAA6B;IAE7B,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE;QAC1B,KAAK,EAAE,oBAAoB;QAC3B,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;QAC3C,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;QACrD,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,YAAY,EAAE,MAAM,CAAC,YAAY;KAClC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAC1C,OAAgC;IAUhC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,OAAO,CAAC,UAAU,IAAI,mBAAmB;QAC/C,OAAO,EAAE,OAAO,CAAC,aAAa,IAAI,sBAAsB;KACzD,CAAC,CAAC;IACH,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAiC,CAAC;IAEzE,MAAM,GAAG,GAAmB;QAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;KAC3C,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,CAAC,YAAY,CACjB,IAAI,CAAC,IAAI,EACT;YACE,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,EACD,KAAK,EAAE,IAA6B,EAAE,EAAE;YACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAC1C,MAAM,UAAU,GAAG,QAAQ;gBACzB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC3D,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAC3C,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACjD,MAAM,MAAM,GAAG,MAAM,eAAe,CAClC,IAAI,CAAC,OAAO,CAAC,IAA+B,EAAE,GAAG,CAAC,EAClD,IAAI,CAAC,IAAI,EACT,SAAS,CACV,CAAC;gBACF,IAAI,UAAU,IAAI,QAAQ,EAAE,CAAC;oBAC3B,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAClC,WAAW,CAAC,GAAG,EAAE,GAAG,gBAAgB,CACrC,CAAC;oBACF,MAAM,OAAO,GAAG,2BAA2B,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBAC/D,MAAM,MAAM,GAA0B;wBACpC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW;wBAC/C,iBAAiB;wBACjB,GAAG,sBAAsB,CAAC,MAAM,CAAC;wBACjC,GAAG,OAAO;qBACX,CAAC;oBACF,qBAAqB,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;oBACpD,uBAAuB,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBAClD,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,mBAAmB,EAAE,CAAC;oBACvC,MAAM,MAAM,GAAG,gBAAgB,CAAC;wBAC9B,KAAK,EAAE,cAAc;wBACrB,OAAO,EAAE,GAAG,CAAC,OAAO;wBACpB,SAAS,EAAE,GAAG,CAAC,SAAS;qBACzB,CAAC,CAAC;oBACH,IAAI,UAAU,IAAI,QAAQ,EAAE,CAAC;wBAC3B,MAAM,MAAM,GAA0B;4BACpC,MAAM,EAAE,WAAW;4BACnB,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAC3B,WAAW,CAAC,GAAG,EAAE,GAAG,gBAAgB,CACrC;4BACD,GAAG,sBAAsB,CAAC,MAAM,CAAC;4BACjC,SAAS,EAAE,cAAc;4BACzB,YAAY,EAAE,GAAG,CAAC,OAAO;yBAC1B,CAAC;wBACF,qBAAqB,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;wBACpD,uBAAuB,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;oBAClD,CAAC;oBACD,OAAO,MAAM,CAAC;gBAChB,CAAC;gBACD,MAAM,MAAM,GAAG,gBAAgB,CAAC;oBAC9B,KAAK,EAAE,oBAAoB;oBAC3B,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBAC1D,CAAC,CAAC;gBACH,IAAI,UAAU,IAAI,QAAQ,EAAE,CAAC;oBAC3B,MAAM,MAAM,GAA0B;wBACpC,MAAM,EAAE,QAAQ;wBAChB,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAC3B,WAAW,CAAC,GAAG,EAAE,GAAG,gBAAgB,CACrC;wBACD,GAAG,sBAAsB,CAAC,MAAM,CAAC;wBACjC,SAAS,EAAE,oBAAoB;wBAC/B,YAAY,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;qBAC/D,CAAC;oBACF,qBAAqB,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;oBACpD,uBAAuB,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBAClD,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED,SAAS,uBAAuB,CAC9B,QAGC;QAED,KAAK,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,uBAAuB,EAAE,CAAC;YAC3D,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,UAAU,EAAE;gBAC3C,GAAG,MAAM;gBACT,GAAG,QAAQ;aACZ,CAAC,CAAC;YACH,uBAAuB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC;AAC7C,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,OAAgB,EAChB,OAAgC;IAEhC,MAAM,EAAE,MAAM,EAAE,uBAAuB,EAAE,GACvC,4BAA4B,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,IAAI,wCAAwC,CAAC;QAC7D,kBAAkB,EAAE,SAAS;QAC7B,kBAAkB,EAAE,IAAI;KACzB,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACxD,uBAAuB,EAAE,CAAC;QAC1B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,uBAAuB,CAAC;YACtB,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,iBAAiB;YAC5B,YAAY,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SAC/D,CAAC,CAAC;QACH,MAAM,GAAG,CAAC;IACZ,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,160 @@
1
+ /**
2
+ * Self-signing MCP session (Option A / chatbot-first).
3
+ *
4
+ * A third-party app that holds its OWN key and a DCR grant proves control of
5
+ * that key ONCE — a Web3Signed handshake to `POST /mcp/session` — and the PS
6
+ * mints a short-lived bearer session token bound to `{ builderAddress, grantId }`.
7
+ * MCP tool calls then present that token as `Authorization: Bearer …`; each read
8
+ * authorizes as the builder via `verifyDataReadPolicy` (signer == grantee) with
9
+ * NO per-read signature and NO PS-held key.
10
+ *
11
+ * Contrast with the owner's-Claude flow, where the PS generates and holds a
12
+ * per-connection grantee key and signs reads itself. Here the app is
13
+ * self-custody; the PS only ever recovered its address (at handshake).
14
+ */
15
+ import type { McpConnectionRecord } from "./types.js";
16
+ import type { ServerAccount } from "../keys/server-account.js";
17
+ import type { AuthSessionVerifierPort, GrantVerifierPort, RuntimeAvailabilityPort } from "../ports/index.js";
18
+ import type { PersonalServerApiAuthPort, PersonalServerDataApiDeps } from "../api/index.js";
19
+ import type { DataPortabilityGatewayConfig, GatewayClient } from "@opendatalabs/vana-sdk/browser";
20
+ export interface McpSessionRecord {
21
+ /** SHA-256 hex of the raw session token. Only the hash is stored. */
22
+ tokenHash: string;
23
+ /** The self-custody app's address (recovered from the handshake proof). */
24
+ builderAddress: `0x${string}`;
25
+ /** DCR grant id the app was issued (grantee == builderAddress). */
26
+ grantId: string;
27
+ scopes: string[];
28
+ createdAt: string;
29
+ expiresAtMs: number;
30
+ }
31
+ export interface McpSessionStore {
32
+ create(record: McpSessionRecord): Promise<void>;
33
+ /** Returns a live (non-expired) session, or null. */
34
+ getByTokenHash(tokenHash: string): Promise<McpSessionRecord | null>;
35
+ }
36
+ /**
37
+ * KNOWN LIMITATION: in-memory only. A process restart (or a second instance)
38
+ * starts with an empty store, so live session tokens die with the process and
39
+ * the client must re-handshake. Acceptable for today's single-instance
40
+ * Personal Server; persist via the host's state store before multi-instance.
41
+ */
42
+ export declare function createInMemoryMcpSessionStore(): McpSessionStore;
43
+ /**
44
+ * Records consumed handshake-proof identifiers until they expire, so a still-
45
+ * valid Web3Signed proof cannot be replayed to mint a second session token.
46
+ */
47
+ export interface McpProofReplayStore {
48
+ /**
49
+ * Atomically record `proofId` (remembered until `expiresAtMs`) and report
50
+ * whether it was ALREADY present and live — i.e. a replay. Returns `true`
51
+ * on replay, `false` when the proof is fresh (and now recorded).
52
+ */
53
+ consume(proofId: string, expiresAtMs: number): Promise<boolean>;
54
+ /**
55
+ * Roll back a prior `consume` for `proofId` (e.g. when session persistence
56
+ * failed after the reservation). Optional — stores that can't release safely
57
+ * omit it and callers must tolerate its absence.
58
+ */
59
+ release?(proofId: string): Promise<void>;
60
+ }
61
+ /**
62
+ * KNOWN LIMITATION: in-memory only. A process restart (or a second instance)
63
+ * forgets consumed proof ids, so a still-valid handshake proof could be
64
+ * replayed once against the fresh process. The blast radius is bounded by the
65
+ * proof's own expiry, and today's Personal Server runs single-instance, so we
66
+ * document rather than persist. Persist via the host's state store (do not
67
+ * invent a new storage layer) before running multiple instances.
68
+ */
69
+ export declare function createInMemoryMcpProofReplayStore(): McpProofReplayStore;
70
+ export interface CreateMcpSessionInput {
71
+ builderAddress: `0x${string}`;
72
+ grantId: string;
73
+ /**
74
+ * Handshake-proof replay guard. When supplied together with a `replayStore`,
75
+ * a proof id already seen (and still live) is rejected instead of minting a
76
+ * fresh token. `expiresAtMs` bounds how long the id is remembered (the
77
+ * proof's own expiry).
78
+ */
79
+ proof?: {
80
+ id: string;
81
+ expiresAtMs: number;
82
+ };
83
+ }
84
+ export interface CreateMcpSessionOptions {
85
+ store: McpSessionStore;
86
+ authSessionVerifier: AuthSessionVerifierPort;
87
+ grantVerifier: GrantVerifierPort;
88
+ /**
89
+ * This server's owner address. The grant's grantor MUST equal it — mirrors
90
+ * `verifyDataReadPolicy`'s ownership binding (see policy/data-read.ts).
91
+ * Required (not optional) so TypeScript flags any caller that would mint a
92
+ * session for a grant issued by a different owner.
93
+ */
94
+ serverOwner: `0x${string}`;
95
+ randomToken: () => string;
96
+ ttlMs?: number;
97
+ now?: () => number;
98
+ /** Optional replay guard for the handshake proof (see `input.proof`). */
99
+ replayStore?: McpProofReplayStore;
100
+ }
101
+ export interface CreateMcpSessionResult {
102
+ accessToken: string;
103
+ expiresInSeconds: number;
104
+ grantId: string;
105
+ scopes: string[];
106
+ }
107
+ /**
108
+ * Validate the handshake identity and mint a session token. Per-scope / expiry
109
+ * enforcement is authoritative at read time (`verifyDataReadPolicy`), so this
110
+ * does the minimal checks that give a clear handshake error: builder registered,
111
+ * grant exists + not revoked, and grantee == builder.
112
+ */
113
+ export declare function createMcpSession(input: CreateMcpSessionInput, options: CreateMcpSessionOptions): Promise<CreateMcpSessionResult>;
114
+ /**
115
+ * An auth port bound to one session's `{ builderAddress, grantId }`. Reads
116
+ * authorize by running `verifyDataReadPolicy` with the builder address proven at
117
+ * handshake — no signature needed. Owner ops are refused.
118
+ */
119
+ /**
120
+ * x402 payment binding for a paid (self-signing) session. When present, every
121
+ * read runs the same challenge-or-settle cycle as an external builder's
122
+ * `GET /v1/data/:scope`. Omit it (owner's-Claude path) to keep reads free.
123
+ */
124
+ export interface McpSessionPaymentConfig {
125
+ /** Payment-enabled data-API deps (storage, serverSigner, serverAddress, …). */
126
+ dataApiDeps: PersonalServerDataApiDeps;
127
+ gateway: Pick<GatewayClient, "getGrant">;
128
+ gatewayConfig: DataPortabilityGatewayConfig;
129
+ gatewayUrl: string;
130
+ }
131
+ export declare function createMcpSessionAuthPort(params: {
132
+ builderAddress: `0x${string}`;
133
+ grantId: string;
134
+ authSessionVerifier: AuthSessionVerifierPort;
135
+ grantVerifier: GrantVerifierPort;
136
+ /**
137
+ * This server's owner address, required by `verifyDataReadPolicy` to bind
138
+ * every session read to a grant issued by THIS server's owner.
139
+ */
140
+ serverOwner: `0x${string}`;
141
+ runtimeAvailability?: RuntimeAvailabilityPort;
142
+ /** Present only for paid self-signing sessions; absent = free. */
143
+ payment?: McpSessionPaymentConfig;
144
+ }): PersonalServerApiAuthPort;
145
+ export interface McpSessionConnection {
146
+ connection: McpConnectionRecord;
147
+ account: ServerAccount;
148
+ }
149
+ /**
150
+ * Build a synthetic connection record + a throwaway signing account for the
151
+ * streamable `/mcp` handler. The MCP read client still signs its in-process
152
+ * request (the read path requires an account), but the session auth port
153
+ * ignores that signature and authorizes as the real builder — so this key is
154
+ * disposable and never leaves the process.
155
+ */
156
+ export declare function buildMcpSessionConnection(session: Pick<McpSessionRecord, "builderAddress" | "grantId" | "scopes">, options?: {
157
+ id?: string;
158
+ now?: () => number;
159
+ }): McpSessionConnection;
160
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/mcp/session.ts"],"names":[],"mappings":"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"}