@opendatalabs/personal-server-ts-core 1.33.8 → 1.34.1

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 (333) hide show
  1. package/dist/additions/budget.d.ts +28 -0
  2. package/dist/additions/budget.d.ts.map +1 -0
  3. package/dist/additions/budget.js +119 -0
  4. package/dist/additions/budget.js.map +1 -0
  5. package/dist/additions/durable.d.ts +64 -0
  6. package/dist/additions/durable.d.ts.map +1 -0
  7. package/dist/additions/durable.js +591 -0
  8. package/dist/additions/durable.js.map +1 -0
  9. package/dist/additions/first-added.d.ts +32 -48
  10. package/dist/additions/first-added.d.ts.map +1 -1
  11. package/dist/additions/first-added.js +68 -123
  12. package/dist/additions/first-added.js.map +1 -1
  13. package/dist/additions/index.d.ts +3 -0
  14. package/dist/additions/index.d.ts.map +1 -1
  15. package/dist/additions/index.js +3 -0
  16. package/dist/additions/index.js.map +1 -1
  17. package/dist/additions/ledger-store.js +1 -1
  18. package/dist/additions/record-rules.d.ts.map +1 -1
  19. package/dist/additions/record-rules.js +7 -0
  20. package/dist/additions/record-rules.js.map +1 -1
  21. package/dist/additions/summary.d.ts +88 -1
  22. package/dist/additions/summary.d.ts.map +1 -1
  23. package/dist/additions/summary.js +173 -8
  24. package/dist/additions/summary.js.map +1 -1
  25. package/dist/additions/version-inventory.d.ts +80 -0
  26. package/dist/additions/version-inventory.d.ts.map +1 -0
  27. package/dist/additions/version-inventory.js +232 -0
  28. package/dist/additions/version-inventory.js.map +1 -0
  29. package/dist/api/index.d.ts +70 -2
  30. package/dist/api/index.d.ts.map +1 -1
  31. package/dist/api/index.js +506 -79
  32. package/dist/api/index.js.map +1 -1
  33. package/dist/auth/index.d.ts +1 -1
  34. package/dist/auth/index.d.ts.map +1 -1
  35. package/dist/auth/index.js +1 -1
  36. package/dist/auth/index.js.map +1 -1
  37. package/dist/auth/request.d.ts +6 -0
  38. package/dist/auth/request.d.ts.map +1 -1
  39. package/dist/auth/request.js +66 -4
  40. package/dist/auth/request.js.map +1 -1
  41. package/dist/contracts/data.d.ts +54 -8
  42. package/dist/contracts/data.d.ts.map +1 -1
  43. package/dist/contracts/data.js +178 -35
  44. package/dist/contracts/data.js.map +1 -1
  45. package/dist/contracts/index.d.ts +1 -1
  46. package/dist/contracts/index.d.ts.map +1 -1
  47. package/dist/derivatives/registration.d.ts +0 -5
  48. package/dist/derivatives/registration.d.ts.map +1 -1
  49. package/dist/derivatives/registration.js +2 -1
  50. package/dist/derivatives/registration.js.map +1 -1
  51. package/dist/errors/pdpp-catalog.d.ts +36 -0
  52. package/dist/errors/pdpp-catalog.d.ts.map +1 -0
  53. package/dist/errors/pdpp-catalog.js +86 -0
  54. package/dist/errors/pdpp-catalog.js.map +1 -0
  55. package/dist/grants/index.d.ts +2 -0
  56. package/dist/grants/index.d.ts.map +1 -1
  57. package/dist/grants/index.js +4 -0
  58. package/dist/grants/index.js.map +1 -1
  59. package/dist/grants/pdpp-binding-store.d.ts +89 -0
  60. package/dist/grants/pdpp-binding-store.d.ts.map +1 -0
  61. package/dist/grants/pdpp-binding-store.js +112 -0
  62. package/dist/grants/pdpp-binding-store.js.map +1 -0
  63. package/dist/grants/pdpp-binding.d.ts +169 -0
  64. package/dist/grants/pdpp-binding.d.ts.map +1 -0
  65. package/dist/grants/pdpp-binding.js +236 -0
  66. package/dist/grants/pdpp-binding.js.map +1 -0
  67. package/dist/legacy-projection/bindings.d.ts +28 -1
  68. package/dist/legacy-projection/bindings.d.ts.map +1 -1
  69. package/dist/legacy-projection/bindings.js +622 -189
  70. package/dist/legacy-projection/bindings.js.map +1 -1
  71. package/dist/legacy-projection/claude-source-record.d.ts +22 -0
  72. package/dist/legacy-projection/claude-source-record.d.ts.map +1 -0
  73. package/dist/legacy-projection/claude-source-record.js +360 -0
  74. package/dist/legacy-projection/claude-source-record.js.map +1 -0
  75. package/dist/legacy-projection/declared-text.d.ts +41 -0
  76. package/dist/legacy-projection/declared-text.d.ts.map +1 -0
  77. package/dist/legacy-projection/declared-text.js +199 -0
  78. package/dist/legacy-projection/declared-text.js.map +1 -0
  79. package/dist/legacy-projection/github-browser-bindings.d.ts.map +1 -1
  80. package/dist/legacy-projection/github-browser-bindings.js +89 -5
  81. package/dist/legacy-projection/github-browser-bindings.js.map +1 -1
  82. package/dist/legacy-projection/github-legacy-fields.d.ts +6 -0
  83. package/dist/legacy-projection/github-legacy-fields.d.ts.map +1 -0
  84. package/dist/legacy-projection/github-legacy-fields.js +202 -0
  85. package/dist/legacy-projection/github-legacy-fields.js.map +1 -0
  86. package/dist/legacy-projection/index.d.ts +5 -1
  87. package/dist/legacy-projection/index.d.ts.map +1 -1
  88. package/dist/legacy-projection/index.js +55 -1
  89. package/dist/legacy-projection/index.js.map +1 -1
  90. package/dist/legacy-projection/oura-browser-bindings.d.ts.map +1 -1
  91. package/dist/legacy-projection/oura-browser-bindings.js +43 -41
  92. package/dist/legacy-projection/oura-browser-bindings.js.map +1 -1
  93. package/dist/legacy-projection/types.d.ts +38 -2
  94. package/dist/legacy-projection/types.d.ts.map +1 -1
  95. package/dist/mcp/read-client.d.ts.map +1 -1
  96. package/dist/mcp/read-client.js +10 -1
  97. package/dist/mcp/read-client.js.map +1 -1
  98. package/dist/mcp/resources.d.ts.map +1 -1
  99. package/dist/mcp/resources.js +3 -0
  100. package/dist/mcp/resources.js.map +1 -1
  101. package/dist/mcp/tools.d.ts.map +1 -1
  102. package/dist/mcp/tools.js +11 -2
  103. package/dist/mcp/tools.js.map +1 -1
  104. package/dist/pdpp/approval.d.ts +271 -0
  105. package/dist/pdpp/approval.d.ts.map +1 -0
  106. package/dist/pdpp/approval.js +467 -0
  107. package/dist/pdpp/approval.js.map +1 -0
  108. package/dist/pdpp/client-identity.d.ts +88 -0
  109. package/dist/pdpp/client-identity.d.ts.map +1 -0
  110. package/dist/pdpp/client-identity.js +196 -0
  111. package/dist/pdpp/client-identity.js.map +1 -0
  112. package/dist/pdpp/client-metadata.d.ts +95 -0
  113. package/dist/pdpp/client-metadata.d.ts.map +1 -0
  114. package/dist/pdpp/client-metadata.js +96 -0
  115. package/dist/pdpp/client-metadata.js.map +1 -0
  116. package/dist/pdpp/commitments.d.ts +75 -0
  117. package/dist/pdpp/commitments.d.ts.map +1 -0
  118. package/dist/pdpp/commitments.js +113 -0
  119. package/dist/pdpp/commitments.js.map +1 -0
  120. package/dist/pdpp/declaration.d.ts +118 -0
  121. package/dist/pdpp/declaration.d.ts.map +1 -0
  122. package/dist/pdpp/declaration.js +836 -0
  123. package/dist/pdpp/declaration.js.map +1 -0
  124. package/dist/pdpp/index.d.ts +37 -0
  125. package/dist/pdpp/index.d.ts.map +1 -0
  126. package/dist/pdpp/index.js +23 -0
  127. package/dist/pdpp/index.js.map +1 -0
  128. package/dist/pdpp/issuance.d.ts +126 -0
  129. package/dist/pdpp/issuance.d.ts.map +1 -0
  130. package/dist/pdpp/issuance.js +180 -0
  131. package/dist/pdpp/issuance.js.map +1 -0
  132. package/dist/pdpp/pkce.d.ts +53 -0
  133. package/dist/pdpp/pkce.d.ts.map +1 -0
  134. package/dist/pdpp/pkce.js +109 -0
  135. package/dist/pdpp/pkce.js.map +1 -0
  136. package/dist/pdpp/redirect.d.ts +60 -0
  137. package/dist/pdpp/redirect.d.ts.map +1 -0
  138. package/dist/pdpp/redirect.js +125 -0
  139. package/dist/pdpp/redirect.js.map +1 -0
  140. package/dist/pdpp/resolve.d.ts +109 -0
  141. package/dist/pdpp/resolve.d.ts.map +1 -0
  142. package/dist/pdpp/resolve.js +393 -0
  143. package/dist/pdpp/resolve.js.map +1 -0
  144. package/dist/pdpp/review.d.ts +280 -0
  145. package/dist/pdpp/review.d.ts.map +1 -0
  146. package/dist/pdpp/review.js +205 -0
  147. package/dist/pdpp/review.js.map +1 -0
  148. package/dist/pdpp/selection.d.ts +50 -0
  149. package/dist/pdpp/selection.d.ts.map +1 -0
  150. package/dist/pdpp/selection.js +442 -0
  151. package/dist/pdpp/selection.js.map +1 -0
  152. package/dist/pdpp/store.d.ts +228 -0
  153. package/dist/pdpp/store.d.ts.map +1 -0
  154. package/dist/pdpp/store.js +542 -0
  155. package/dist/pdpp/store.js.map +1 -0
  156. package/dist/pdpp/tokens.d.ts +181 -0
  157. package/dist/pdpp/tokens.d.ts.map +1 -0
  158. package/dist/pdpp/tokens.js +419 -0
  159. package/dist/pdpp/tokens.js.map +1 -0
  160. package/dist/pdpp/types.d.ts +441 -0
  161. package/dist/pdpp/types.d.ts.map +1 -0
  162. package/dist/pdpp/types.js +61 -0
  163. package/dist/pdpp/types.js.map +1 -0
  164. package/dist/pdpp-version.d.ts +28 -0
  165. package/dist/pdpp-version.d.ts.map +1 -0
  166. package/dist/pdpp-version.js +28 -0
  167. package/dist/pdpp-version.js.map +1 -0
  168. package/dist/policy/data-read.d.ts +24 -0
  169. package/dist/policy/data-read.d.ts.map +1 -1
  170. package/dist/policy/data-read.js +60 -3
  171. package/dist/policy/data-read.js.map +1 -1
  172. package/dist/policy/data-write.d.ts.map +1 -1
  173. package/dist/policy/data-write.js +3 -0
  174. package/dist/policy/data-write.js.map +1 -1
  175. package/dist/policy/index.d.ts +1 -0
  176. package/dist/policy/index.d.ts.map +1 -1
  177. package/dist/policy/index.js +1 -0
  178. package/dist/policy/index.js.map +1 -1
  179. package/dist/policy/reserved-scopes.d.ts +3 -0
  180. package/dist/policy/reserved-scopes.d.ts.map +1 -0
  181. package/dist/policy/reserved-scopes.js +5 -0
  182. package/dist/policy/reserved-scopes.js.map +1 -0
  183. package/dist/ports/index.d.ts +63 -0
  184. package/dist/ports/index.d.ts.map +1 -1
  185. package/dist/ports/index.js.map +1 -1
  186. package/dist/ports/pdpp-auth.d.ts +129 -0
  187. package/dist/ports/pdpp-auth.d.ts.map +1 -0
  188. package/dist/ports/pdpp-auth.js +60 -0
  189. package/dist/ports/pdpp-auth.js.map +1 -0
  190. package/dist/ports/pdpp-auth.test-utils.d.ts +9 -0
  191. package/dist/ports/pdpp-auth.test-utils.d.ts.map +1 -0
  192. package/dist/ports/pdpp-auth.test-utils.js +18 -0
  193. package/dist/ports/pdpp-auth.test-utils.js.map +1 -0
  194. package/dist/schemas/server-config.d.ts +44 -0
  195. package/dist/schemas/server-config.d.ts.map +1 -1
  196. package/dist/schemas/server-config.js +91 -0
  197. package/dist/schemas/server-config.js.map +1 -1
  198. package/dist/signing/request-signer.d.ts +2 -0
  199. package/dist/signing/request-signer.d.ts.map +1 -1
  200. package/dist/signing/request-signer.js +1 -0
  201. package/dist/signing/request-signer.js.map +1 -1
  202. package/dist/storage/adapters/interface.d.ts +3 -0
  203. package/dist/storage/adapters/interface.d.ts.map +1 -1
  204. package/dist/storage/adapters/vana-audience.d.ts +12 -0
  205. package/dist/storage/adapters/vana-audience.d.ts.map +1 -0
  206. package/dist/storage/adapters/vana-audience.js +72 -0
  207. package/dist/storage/adapters/vana-audience.js.map +1 -0
  208. package/dist/storage/adapters/vana.d.ts +2 -0
  209. package/dist/storage/adapters/vana.d.ts.map +1 -1
  210. package/dist/storage/adapters/vana.js +53 -20
  211. package/dist/storage/adapters/vana.js.map +1 -1
  212. package/dist/storage/canonical-legacy-projection.d.ts +262 -0
  213. package/dist/storage/canonical-legacy-projection.d.ts.map +1 -0
  214. package/dist/storage/canonical-legacy-projection.js +761 -0
  215. package/dist/storage/canonical-legacy-projection.js.map +1 -0
  216. package/dist/storage/index/manager.d.ts +29 -2
  217. package/dist/storage/index/manager.d.ts.map +1 -1
  218. package/dist/storage/index/schema.d.ts +1 -1
  219. package/dist/storage/index/schema.js +1 -1
  220. package/dist/storage/index/types.d.ts +7 -1
  221. package/dist/storage/index/types.d.ts.map +1 -1
  222. package/dist/storage/legacy-projection.d.ts +13 -10
  223. package/dist/storage/legacy-projection.d.ts.map +1 -1
  224. package/dist/storage/legacy-projection.js +269 -74
  225. package/dist/storage/legacy-projection.js.map +1 -1
  226. package/dist/storage/legacy-scope-coverage-exceptions.d.ts +8 -0
  227. package/dist/storage/legacy-scope-coverage-exceptions.d.ts.map +1 -0
  228. package/dist/storage/legacy-scope-coverage-exceptions.js +10 -0
  229. package/dist/storage/legacy-scope-coverage-exceptions.js.map +1 -0
  230. package/dist/storage/legacy-scope-coverage.d.ts +53 -0
  231. package/dist/storage/legacy-scope-coverage.d.ts.map +1 -0
  232. package/dist/storage/legacy-scope-coverage.js +403 -0
  233. package/dist/storage/legacy-scope-coverage.js.map +1 -0
  234. package/dist/storage/legacy-scope-entity-keys.d.ts +4 -0
  235. package/dist/storage/legacy-scope-entity-keys.d.ts.map +1 -0
  236. package/dist/storage/legacy-scope-entity-keys.js +92 -0
  237. package/dist/storage/legacy-scope-entity-keys.js.map +1 -0
  238. package/dist/storage/legacy-scope-view.d.ts +154 -0
  239. package/dist/storage/legacy-scope-view.d.ts.map +1 -0
  240. package/dist/storage/legacy-scope-view.js +735 -0
  241. package/dist/storage/legacy-scope-view.js.map +1 -0
  242. package/dist/storage/pdpp-records/completion.d.ts +91 -0
  243. package/dist/storage/pdpp-records/completion.d.ts.map +1 -0
  244. package/dist/storage/pdpp-records/completion.js +170 -0
  245. package/dist/storage/pdpp-records/completion.js.map +1 -0
  246. package/dist/storage/pdpp-records/cursor.d.ts +41 -0
  247. package/dist/storage/pdpp-records/cursor.d.ts.map +1 -0
  248. package/dist/storage/pdpp-records/cursor.js +49 -0
  249. package/dist/storage/pdpp-records/cursor.js.map +1 -0
  250. package/dist/storage/pdpp-records/declaration-witness.d.ts +58 -0
  251. package/dist/storage/pdpp-records/declaration-witness.d.ts.map +1 -0
  252. package/dist/storage/pdpp-records/declaration-witness.js +230 -0
  253. package/dist/storage/pdpp-records/declaration-witness.js.map +1 -0
  254. package/dist/storage/pdpp-records/enforcement.d.ts +52 -0
  255. package/dist/storage/pdpp-records/enforcement.d.ts.map +1 -0
  256. package/dist/storage/pdpp-records/enforcement.js +116 -0
  257. package/dist/storage/pdpp-records/enforcement.js.map +1 -0
  258. package/dist/storage/pdpp-records/index.d.ts +5 -0
  259. package/dist/storage/pdpp-records/index.d.ts.map +1 -0
  260. package/dist/storage/pdpp-records/index.js +5 -0
  261. package/dist/storage/pdpp-records/index.js.map +1 -0
  262. package/dist/storage/pdpp-records/ingest-plan.d.ts +39 -0
  263. package/dist/storage/pdpp-records/ingest-plan.d.ts.map +1 -0
  264. package/dist/storage/pdpp-records/ingest-plan.js +103 -0
  265. package/dist/storage/pdpp-records/ingest-plan.js.map +1 -0
  266. package/dist/storage/pdpp-records/interface.d.ts +104 -0
  267. package/dist/storage/pdpp-records/interface.d.ts.map +1 -0
  268. package/dist/storage/pdpp-records/interface.js +2 -0
  269. package/dist/storage/pdpp-records/interface.js.map +1 -0
  270. package/dist/storage/pdpp-records/memory-store.d.ts +9 -0
  271. package/dist/storage/pdpp-records/memory-store.d.ts.map +1 -0
  272. package/dist/storage/pdpp-records/memory-store.js +466 -0
  273. package/dist/storage/pdpp-records/memory-store.js.map +1 -0
  274. package/dist/storage/pdpp-records/portable.d.ts +9 -0
  275. package/dist/storage/pdpp-records/portable.d.ts.map +1 -0
  276. package/dist/storage/pdpp-records/portable.js +8 -0
  277. package/dist/storage/pdpp-records/portable.js.map +1 -0
  278. package/dist/storage/pdpp-records/read-port.d.ts +44 -0
  279. package/dist/storage/pdpp-records/read-port.d.ts.map +1 -0
  280. package/dist/storage/pdpp-records/read-port.js +22 -0
  281. package/dist/storage/pdpp-records/read-port.js.map +1 -0
  282. package/dist/storage/pdpp-records/record-key.d.ts +52 -0
  283. package/dist/storage/pdpp-records/record-key.d.ts.map +1 -0
  284. package/dist/storage/pdpp-records/record-key.js +97 -0
  285. package/dist/storage/pdpp-records/record-key.js.map +1 -0
  286. package/dist/storage/pdpp-records/schema.d.ts +41 -0
  287. package/dist/storage/pdpp-records/schema.d.ts.map +1 -0
  288. package/dist/storage/pdpp-records/schema.js +153 -0
  289. package/dist/storage/pdpp-records/schema.js.map +1 -0
  290. package/dist/storage/pdpp-records/stream-declaration.d.ts +88 -0
  291. package/dist/storage/pdpp-records/stream-declaration.d.ts.map +1 -0
  292. package/dist/storage/pdpp-records/stream-declaration.js +57 -0
  293. package/dist/storage/pdpp-records/stream-declaration.js.map +1 -0
  294. package/dist/storage/pdpp-records/types.d.ts +138 -0
  295. package/dist/storage/pdpp-records/types.d.ts.map +1 -0
  296. package/dist/storage/pdpp-records/types.js +38 -0
  297. package/dist/storage/pdpp-records/types.js.map +1 -0
  298. package/dist/sync/data-point-feed.d.ts +3 -0
  299. package/dist/sync/data-point-feed.d.ts.map +1 -1
  300. package/dist/sync/data-point-feed.js +17 -1
  301. package/dist/sync/data-point-feed.js.map +1 -1
  302. package/dist/sync/delete-data-port.d.ts +2 -0
  303. package/dist/sync/delete-data-port.d.ts.map +1 -1
  304. package/dist/sync/delete-data-port.js +1 -1
  305. package/dist/sync/delete-data-port.js.map +1 -1
  306. package/dist/sync/engine/sync-manager.d.ts.map +1 -1
  307. package/dist/sync/engine/sync-manager.js +5 -2
  308. package/dist/sync/engine/sync-manager.js.map +1 -1
  309. package/dist/sync/index.d.ts +3 -1
  310. package/dist/sync/index.d.ts.map +1 -1
  311. package/dist/sync/index.js +4 -0
  312. package/dist/sync/index.js.map +1 -1
  313. package/dist/sync/pdpp-import.d.ts +192 -0
  314. package/dist/sync/pdpp-import.d.ts.map +1 -0
  315. package/dist/sync/pdpp-import.js +441 -0
  316. package/dist/sync/pdpp-import.js.map +1 -0
  317. package/dist/sync/scope-deletions.d.ts +10 -0
  318. package/dist/sync/scope-deletions.d.ts.map +1 -1
  319. package/dist/sync/scope-deletions.js +40 -7
  320. package/dist/sync/scope-deletions.js.map +1 -1
  321. package/dist/sync/workers/download.d.ts +14 -0
  322. package/dist/sync/workers/download.d.ts.map +1 -1
  323. package/dist/sync/workers/download.js +149 -13
  324. package/dist/sync/workers/download.js.map +1 -1
  325. package/dist/sync/workers/upload.d.ts +2 -0
  326. package/dist/sync/workers/upload.d.ts.map +1 -1
  327. package/dist/sync/workers/upload.js +7 -0
  328. package/dist/sync/workers/upload.js.map +1 -1
  329. package/dist/test-utils/memory-storage.d.ts +1 -1
  330. package/dist/test-utils/memory-storage.d.ts.map +1 -1
  331. package/dist/test-utils/memory-storage.js +11 -5
  332. package/dist/test-utils/memory-storage.js.map +1 -1
  333. package/package.json +54 -4
@@ -0,0 +1,262 @@
1
+ import type { DataFileEnvelope } from "@opendatalabs/vana-sdk/browser";
2
+ import { type LegacyScopeLookupError, type ProjectionError } from "../legacy-projection/index.js";
3
+ import type { ProjectionOmission } from "../legacy-projection/types.js";
4
+ import type { StreamDeclarationRegistry } from "./pdpp-records/stream-declaration.js";
5
+ import { type PdppRecordStore } from "./pdpp-records/portable.js";
6
+ /**
7
+ * Read-time legacy view over canonical PDPP records.
8
+ *
9
+ * Reads ONE legacy scope from exactly one selected connection and returns the
10
+ * legacy `DataFileEnvelope`. Nothing is stored: every call recomputes the body
11
+ * from the live rows, so a repaired source is visible on the next read. The
12
+ * reader only calls read methods on the store.
13
+ *
14
+ * Out of scope here: manual/unbound scope files (no binding => `unbound_scope`),
15
+ * auth/grants, and the sync `DataStoragePort` listing surface.
16
+ */
17
+ /** Bump when a change to this module (or the pure projector) can change bytes. */
18
+ export declare const CANONICAL_LEGACY_VIEW_CONTRACT = "canonical-legacy-view/7";
19
+ export interface CanonicalConnectionBinding {
20
+ instance: string;
21
+ sourceId: string | null;
22
+ method: string | null;
23
+ deletedAt: string | null;
24
+ generation: number;
25
+ resetClock: number;
26
+ }
27
+ /**
28
+ * Evidence that one full replace delivered the stream's current live set.
29
+ * The store writes it only inside a successful P7 replace that named
30
+ * `sourceCollectedAt`, and deletes it on any other write to the stream and on
31
+ * reset or delete of the connection.
32
+ */
33
+ export interface CanonicalStreamCompletion {
34
+ stream: string;
35
+ method: string;
36
+ generation: number;
37
+ /** Producer collection time (RFC 3339), never the store clock. */
38
+ sourceCollectedAt: string;
39
+ /** Store write sequence when the replace committed. */
40
+ writeSeq: number;
41
+ /** Live rows the replace left. */
42
+ liveCount: number;
43
+ }
44
+ /**
45
+ * The slice of the SQLite record store this reader needs. Read methods only.
46
+ * The calls are synchronous.
47
+ */
48
+ export interface CanonicalLegacyReadStore extends Pick<PdppRecordStore, "listRecords" | "listStreams"> {
49
+ /** Optional for non-blob stores. Byte reads are synchronous inside readSnapshot. */
50
+ getBlobMeta?: PdppRecordStore["getBlobMeta"];
51
+ getBlobBytes?: PdppRecordStore["getBlobBytes"];
52
+ getInstanceBinding(instance: string): CanonicalConnectionBinding;
53
+ listConnections(sourceId: string): CanonicalConnectionBinding[];
54
+ /** Completion receipts stored for one instance. */
55
+ listStreamCompletions(instance: string): CanonicalStreamCompletion[];
56
+ /**
57
+ * Live record keys of one stream in the order each last arrived in the
58
+ * connection's current generation. A key the store holds no arrival for
59
+ * is absent. Read only for a binding with `rowOrder: "arrival"`.
60
+ */
61
+ listArrivalOrder(instance: string, stream: string): string[];
62
+ /**
63
+ * Run `read` against one point-in-time snapshot of the store: a write that
64
+ * commits meanwhile, from any connection, is invisible to every call made
65
+ * inside it. The reader relies on this instead of guessing from counts or
66
+ * timestamps, which an update at an older `emittedAt` does not move.
67
+ */
68
+ readSnapshot<T>(read: () => T): T;
69
+ }
70
+ /**
71
+ * The one connection a read may use. It must come from a trusted resolver
72
+ * (`resolveCanonicalConnection`, or a grant/bridge that already named the
73
+ * instance); the reader re-checks it against the store binding.
74
+ */
75
+ export interface CanonicalConnectionSelection {
76
+ instance: string;
77
+ /** Store source id, e.g. `https://registry.pdpp.dev/sources/oura`. */
78
+ sourceId: string;
79
+ method: string;
80
+ }
81
+ export interface CanonicalReadDiagnostics {
82
+ /** Live source rows read per bound stream. Counts only, no row content. */
83
+ sourceRowCounts: Record<string, number>;
84
+ /**
85
+ * Source rows the projector left out of a still-deliverable payload, one
86
+ * entry per (stream, reason) the projector reported. Counts are distinct
87
+ * source rows.
88
+ */
89
+ omissions: {
90
+ stream: string;
91
+ count: number;
92
+ reasons: string[];
93
+ }[];
94
+ /** Rows delivered although their source says detail is missing. */
95
+ partialRows: {
96
+ stream: string;
97
+ count: number;
98
+ reasons: string[];
99
+ }[];
100
+ /**
101
+ * Properties of the legacy body the canonical rows cannot show. Today one:
102
+ * a stream of two or more rows served in arrival order whose rows the
103
+ * store holds no arrival for (rows stored before it kept one). Those rows
104
+ * are all delivered, in primary-key order. Present only when not empty,
105
+ * so no other scope's result changes shape.
106
+ */
107
+ unproven?: {
108
+ stream: string;
109
+ aspect: "record_order";
110
+ reason: string;
111
+ }[];
112
+ }
113
+ export interface CanonicalLegacyReadOk {
114
+ ok: true;
115
+ envelope: DataFileEnvelope;
116
+ projectionOmissions?: ProjectionOmission[];
117
+ /** Conservative collection horizon for each input stream in this snapshot. */
118
+ streamCollectionTimes?: Record<string, string | null>;
119
+ /** Current accepted P7 completion time for each input stream, if any. */
120
+ streamCompletionTimes?: Record<string, string | null>;
121
+ /**
122
+ * Opaque view revision: a hash of the contract version, connection,
123
+ * method, generation, declaration, per-stream row horizons in served
124
+ * order, order gaps, and the completion receipts the read used. It does
125
+ * not depend on the wall clock or on writes to other connections, so an
126
+ * unchanged source reads back the same value.
127
+ */
128
+ revision: string;
129
+ /**
130
+ * False when `diagnostics.omissions`, `diagnostics.partialRows` or
131
+ * `diagnostics.unproven` is not empty.
132
+ */
133
+ complete: boolean;
134
+ diagnostics: CanonicalReadDiagnostics;
135
+ }
136
+ export type CanonicalLegacyReadFailure = {
137
+ status: "unavailable";
138
+ reason: "unbound_scope";
139
+ lookup: LegacyScopeLookupError;
140
+ } | {
141
+ status: "unavailable";
142
+ reason: "scope_source_mismatch";
143
+ scope: string;
144
+ } | {
145
+ status: "unavailable";
146
+ reason: "connection_unavailable";
147
+ detail: "not_registered" | "deleted" | "source_mismatch" | "method_mismatch";
148
+ } | {
149
+ status: "unavailable";
150
+ reason: "no_synced_data";
151
+ } | {
152
+ /**
153
+ * A bound stream has no live rows and no completion receipt from the
154
+ * connection's current method and generation, so it cannot be told
155
+ * apart from a stream never collected. Another stream having data, or
156
+ * another stream's receipt, is not evidence.
157
+ */
158
+ status: "unavailable";
159
+ reason: "stream_completion_unknown";
160
+ streams: string[];
161
+ } | {
162
+ status: "unavailable";
163
+ reason: "invalid_collected_at";
164
+ } | {
165
+ status: "unavailable";
166
+ reason: "store_inconsistent_read";
167
+ detail: string;
168
+ } | {
169
+ status: "unavailable";
170
+ reason: "blob_backed_records_unsupported";
171
+ stream: string;
172
+ recordCount: number;
173
+ blocker: string;
174
+ } | {
175
+ status: "unavailable";
176
+ reason: "blob_read_budget_exceeded";
177
+ requiredBytes?: number;
178
+ maxBytes: number;
179
+ } | {
180
+ status: "unavailable";
181
+ reason: "blob_backed_record_invalid";
182
+ detail: string;
183
+ } | {
184
+ status: "unavailable";
185
+ reason: "missing_raw_blob";
186
+ recordCount: number;
187
+ } | {
188
+ status: "incomplete";
189
+ reason: "projection_rejected";
190
+ error: ProjectionError;
191
+ sourceRowCounts: Record<string, number>;
192
+ } | {
193
+ status: "incomplete";
194
+ reason: "all_rows_rejected";
195
+ stream: string;
196
+ sourceRows: number;
197
+ dropped: number;
198
+ reasons: string[];
199
+ sourceRowCounts: Record<string, number>;
200
+ };
201
+ export type CanonicalLegacyReadResult = CanonicalLegacyReadOk | ({
202
+ ok: false;
203
+ } & CanonicalLegacyReadFailure);
204
+ export interface ReadCanonicalLegacyScopeInput {
205
+ store: CanonicalLegacyReadStore;
206
+ /** Trusted declarations governing this instance, read inside the record snapshot. */
207
+ declarations?: Pick<StreamDeclarationRegistry, "forInstance">;
208
+ scope: string;
209
+ selection: CanonicalConnectionSelection;
210
+ /**
211
+ * How the selected connection's declaration profile is found.
212
+ * `"source"` (default): from the last segment of the source id.
213
+ * `"method"`: the method id is the profile key, as in Desktop's trusted
214
+ * method configuration, where one public source has several methods
215
+ * (`oura` and `oura-browser` both collect `sources/oura`). The binding
216
+ * must then belong to that method; the source id is not derived from it.
217
+ */
218
+ profileBy?: "source" | "method";
219
+ /**
220
+ * Runs first inside the read snapshot. False means the caller's selection
221
+ * no longer holds in the state the rows come from, and the read is
222
+ * refused as `store_inconsistent_read`.
223
+ */
224
+ confirmSelection?: () => boolean;
225
+ /** Require a matching completion receipt for every stream in the row snapshot. */
226
+ requireCompletionReceipts?: boolean;
227
+ /** A parity caller can compare an unproven empty stream with the actual legacy body. */
228
+ allowUnprovenEmptyStreams?: boolean;
229
+ /** Include the per-stream time evidence used by the parity takeover caller. */
230
+ includeStreamTimes?: boolean;
231
+ /** Require raw Claude envelopes when deciding whether a legacy head is covered. */
232
+ requireClaudeRawBlobs?: boolean;
233
+ /** Rows per store page. Tests lower it to force several pages. */
234
+ pageSize?: number;
235
+ /** @internal Tests may lower the blob budget; never raises the 64 MiB limit. */
236
+ blobByteBudget?: number;
237
+ }
238
+ export type ResolveCanonicalConnectionResult = {
239
+ ok: true;
240
+ selection: CanonicalConnectionSelection;
241
+ } | {
242
+ ok: false;
243
+ status: "unavailable";
244
+ reason: "no_connection" | "ambiguous_connection";
245
+ candidates: number;
246
+ };
247
+ /**
248
+ * Pick the single connection for a source. Several matches is an error, never
249
+ * a union: a legacy body is one account's data.
250
+ */
251
+ export declare function resolveCanonicalConnection(store: Pick<CanonicalLegacyReadStore, "listConnections">, query: {
252
+ sourceId: string;
253
+ method?: string;
254
+ instance?: string;
255
+ }): ResolveCanonicalConnectionResult;
256
+ export declare function readCanonicalLegacyScope(input: ReadCanonicalLegacyScopeInput): Promise<CanonicalLegacyReadResult>;
257
+ /**
258
+ * The connector key a binding was reviewed for: the last segment of its
259
+ * `pdppSource`. It is a profile name, not a store source id.
260
+ */
261
+ export declare function legacyConnectorKey(pdppSource: string): string;
262
+ //# sourceMappingURL=canonical-legacy-projection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonical-legacy-projection.d.ts","sourceRoot":"","sources":["../../src/storage/canonical-legacy-projection.ts"],"names":[],"mappings":"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"}