@cleocode/core 2026.10.12 → 2026.10.13-rc.ci.682

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 (255) hide show
  1. package/dist/build-provenance.json +2 -2
  2. package/dist/cloud/nexus-auth.d.ts.map +1 -1
  3. package/dist/cloud/nexus-auth.js +11 -2
  4. package/dist/cloud/nexus-auth.js.map +1 -1
  5. package/dist/cloud/nexus-cloud-status.d.ts.map +1 -1
  6. package/dist/cloud/nexus-cloud-status.js +18 -5
  7. package/dist/cloud/nexus-cloud-status.js.map +1 -1
  8. package/dist/cloud/nexus-credentials.d.ts +3 -2
  9. package/dist/cloud/nexus-credentials.d.ts.map +1 -1
  10. package/dist/cloud/nexus-credentials.js +58 -14
  11. package/dist/cloud/nexus-credentials.js.map +1 -1
  12. package/dist/cloud/nexus-logout.d.ts.map +1 -1
  13. package/dist/cloud/nexus-logout.js +12 -2
  14. package/dist/cloud/nexus-logout.js.map +1 -1
  15. package/dist/cloud/nexus-vault-state.d.ts.map +1 -1
  16. package/dist/cloud/nexus-vault-state.js +6 -26
  17. package/dist/cloud/nexus-vault-state.js.map +1 -1
  18. package/dist/config/registry.d.ts +21 -0
  19. package/dist/config/registry.d.ts.map +1 -1
  20. package/dist/config/registry.js +41 -0
  21. package/dist/config/registry.js.map +1 -1
  22. package/dist/dispatch/mvi-projection.d.ts.map +1 -1
  23. package/dist/dispatch/mvi-projection.js +2 -0
  24. package/dist/dispatch/mvi-projection.js.map +1 -1
  25. package/dist/docs/docs-ops.d.ts +15 -14
  26. package/dist/docs/docs-ops.d.ts.map +1 -1
  27. package/dist/docs/docs-ops.js +32 -96
  28. package/dist/docs/docs-ops.js.map +1 -1
  29. package/dist/docs/docs-read-model.d.ts +19 -10
  30. package/dist/docs/docs-read-model.d.ts.map +1 -1
  31. package/dist/docs/docs-read-model.js +31 -47
  32. package/dist/docs/docs-read-model.js.map +1 -1
  33. package/dist/docs/docs-update.d.ts +51 -1
  34. package/dist/docs/docs-update.d.ts.map +1 -1
  35. package/dist/docs/docs-update.js +235 -13
  36. package/dist/docs/docs-update.js.map +1 -1
  37. package/dist/docs/doctor.d.ts +26 -4
  38. package/dist/docs/doctor.d.ts.map +1 -1
  39. package/dist/docs/doctor.js +260 -102
  40. package/dist/docs/doctor.js.map +1 -1
  41. package/dist/docs/fetch-result.d.ts +30 -10
  42. package/dist/docs/fetch-result.d.ts.map +1 -1
  43. package/dist/docs/fetch-result.js +100 -15
  44. package/dist/docs/fetch-result.js.map +1 -1
  45. package/dist/docs/index.d.ts +1 -0
  46. package/dist/docs/index.d.ts.map +1 -1
  47. package/dist/docs/index.js +1 -0
  48. package/dist/docs/index.js.map +1 -1
  49. package/dist/docs/legacy-doc-migration.d.ts +182 -0
  50. package/dist/docs/legacy-doc-migration.d.ts.map +1 -0
  51. package/dist/docs/legacy-doc-migration.js +480 -0
  52. package/dist/docs/legacy-doc-migration.js.map +1 -0
  53. package/dist/docs/publications-store.d.ts +67 -0
  54. package/dist/docs/publications-store.d.ts.map +1 -0
  55. package/dist/docs/publications-store.js +193 -0
  56. package/dist/docs/publications-store.js.map +1 -0
  57. package/dist/docs/publish-pr.d.ts.map +1 -1
  58. package/dist/docs/publish-pr.js +31 -18
  59. package/dist/docs/publish-pr.js.map +1 -1
  60. package/dist/docs/section-leases.d.ts +233 -0
  61. package/dist/docs/section-leases.d.ts.map +1 -0
  62. package/dist/docs/section-leases.js +344 -0
  63. package/dist/docs/section-leases.js.map +1 -0
  64. package/dist/docs/section-merge.d.ts +159 -0
  65. package/dist/docs/section-merge.d.ts.map +1 -0
  66. package/dist/docs/section-merge.js +215 -0
  67. package/dist/docs/section-merge.js.map +1 -0
  68. package/dist/docs/section-write-path.d.ts +191 -0
  69. package/dist/docs/section-write-path.d.ts.map +1 -0
  70. package/dist/docs/section-write-path.js +423 -0
  71. package/dist/docs/section-write-path.js.map +1 -0
  72. package/dist/docs/stats.d.ts +56 -0
  73. package/dist/docs/stats.d.ts.map +1 -0
  74. package/dist/docs/stats.js +119 -0
  75. package/dist/docs/stats.js.map +1 -0
  76. package/dist/gc/cleanup.d.ts +1 -1
  77. package/dist/gc/cleanup.d.ts.map +1 -1
  78. package/dist/gc/cleanup.js +10 -1
  79. package/dist/gc/cleanup.js.map +1 -1
  80. package/dist/gc/janitor.js +1 -1
  81. package/dist/gc/janitor.js.map +1 -1
  82. package/dist/internal.d.ts +1 -1
  83. package/dist/internal.d.ts.map +1 -1
  84. package/dist/internal.js +1 -1
  85. package/dist/internal.js.map +1 -1
  86. package/dist/memory/pipeline-manifest-sqlite.d.ts +34 -0
  87. package/dist/memory/pipeline-manifest-sqlite.d.ts.map +1 -1
  88. package/dist/memory/pipeline-manifest-sqlite.js +114 -0
  89. package/dist/memory/pipeline-manifest-sqlite.js.map +1 -1
  90. package/dist/nexus/analyze-orchestrator.d.ts +5 -1
  91. package/dist/nexus/analyze-orchestrator.d.ts.map +1 -1
  92. package/dist/nexus/analyze-orchestrator.js +25 -13
  93. package/dist/nexus/analyze-orchestrator.js.map +1 -1
  94. package/dist/nexus/assessment-store.d.ts +8 -4
  95. package/dist/nexus/assessment-store.d.ts.map +1 -1
  96. package/dist/nexus/assessment-store.js +18 -27
  97. package/dist/nexus/assessment-store.js.map +1 -1
  98. package/dist/orchestration/index.d.ts.map +1 -1
  99. package/dist/orchestration/index.js +6 -0
  100. package/dist/orchestration/index.js.map +1 -1
  101. package/dist/orchestration/lean-change.d.ts +104 -5
  102. package/dist/orchestration/lean-change.d.ts.map +1 -1
  103. package/dist/orchestration/lean-change.js +162 -6
  104. package/dist/orchestration/lean-change.js.map +1 -1
  105. package/dist/orchestration/spawn-prompt.d.ts +6 -1
  106. package/dist/orchestration/spawn-prompt.d.ts.map +1 -1
  107. package/dist/orchestration/spawn-prompt.js +3 -1
  108. package/dist/orchestration/spawn-prompt.js.map +1 -1
  109. package/dist/orchestration/spawn.d.ts.map +1 -1
  110. package/dist/orchestration/spawn.js +6 -0
  111. package/dist/orchestration/spawn.js.map +1 -1
  112. package/dist/release/open.d.ts.map +1 -1
  113. package/dist/release/open.js +6 -2
  114. package/dist/release/open.js.map +1 -1
  115. package/dist/release/plan.d.ts.map +1 -1
  116. package/dist/release/plan.js +33 -2
  117. package/dist/release/plan.js.map +1 -1
  118. package/dist/resources/admission-ledger.d.ts +5 -0
  119. package/dist/resources/admission-ledger.d.ts.map +1 -1
  120. package/dist/resources/admission-ledger.js +1 -1
  121. package/dist/resources/admission-ledger.js.map +1 -1
  122. package/dist/resources/run-admission.d.ts.map +1 -1
  123. package/dist/resources/run-admission.js +4 -1
  124. package/dist/resources/run-admission.js.map +1 -1
  125. package/dist/resources/run-governed.d.ts +29 -4
  126. package/dist/resources/run-governed.d.ts.map +1 -1
  127. package/dist/resources/run-governed.js +113 -73
  128. package/dist/resources/run-governed.js.map +1 -1
  129. package/dist/sentient/worktree-dispatch.d.ts +12 -1
  130. package/dist/sentient/worktree-dispatch.d.ts.map +1 -1
  131. package/dist/sentient/worktree-dispatch.js +19 -0
  132. package/dist/sentient/worktree-dispatch.js.map +1 -1
  133. package/dist/spawn/branch-lock.d.ts +11 -1
  134. package/dist/spawn/branch-lock.d.ts.map +1 -1
  135. package/dist/spawn/branch-lock.js +54 -4
  136. package/dist/spawn/branch-lock.js.map +1 -1
  137. package/dist/sticky/archive.d.ts +1 -0
  138. package/dist/sticky/archive.d.ts.map +1 -1
  139. package/dist/sticky/archive.js +13 -0
  140. package/dist/sticky/archive.js.map +1 -1
  141. package/dist/sticky/engine-ops.d.ts.map +1 -1
  142. package/dist/sticky/engine-ops.js +7 -0
  143. package/dist/sticky/engine-ops.js.map +1 -1
  144. package/dist/store/attachment-repair.d.ts +10 -4
  145. package/dist/store/attachment-repair.d.ts.map +1 -1
  146. package/dist/store/attachment-repair.js +52 -25
  147. package/dist/store/attachment-repair.js.map +1 -1
  148. package/dist/store/attachment-store.d.ts.map +1 -1
  149. package/dist/store/attachment-store.js +27 -18
  150. package/dist/store/attachment-store.js.map +1 -1
  151. package/dist/store/blob-keep.d.ts +83 -0
  152. package/dist/store/blob-keep.d.ts.map +1 -1
  153. package/dist/store/blob-keep.js +139 -0
  154. package/dist/store/blob-keep.js.map +1 -1
  155. package/dist/store/blob-ops.d.ts +24 -0
  156. package/dist/store/blob-ops.d.ts.map +1 -1
  157. package/dist/store/blob-ops.js +47 -0
  158. package/dist/store/blob-ops.js.map +1 -1
  159. package/dist/store/conduit-doc-history.d.ts +209 -0
  160. package/dist/store/conduit-doc-history.d.ts.map +1 -1
  161. package/dist/store/conduit-doc-history.js +315 -3
  162. package/dist/store/conduit-doc-history.js.map +1 -1
  163. package/dist/store/decision-adr-links.d.ts +11 -0
  164. package/dist/store/decision-adr-links.d.ts.map +1 -1
  165. package/dist/store/decision-adr-links.js +20 -1
  166. package/dist/store/decision-adr-links.js.map +1 -1
  167. package/dist/store/display-id-alias.d.ts +8 -2
  168. package/dist/store/display-id-alias.d.ts.map +1 -1
  169. package/dist/store/display-id-alias.js +8 -3
  170. package/dist/store/display-id-alias.js.map +1 -1
  171. package/dist/store/lock.d.ts +18 -0
  172. package/dist/store/lock.d.ts.map +1 -1
  173. package/dist/store/lock.js +41 -0
  174. package/dist/store/lock.js.map +1 -1
  175. package/dist/store/row-identity-registry.d.ts.map +1 -1
  176. package/dist/store/row-identity-registry.js +17 -0
  177. package/dist/store/row-identity-registry.js.map +1 -1
  178. package/dist/store/schema/cleo-project/conduit.d.ts +16 -0
  179. package/dist/store/schema/cleo-project/conduit.d.ts.map +1 -1
  180. package/dist/store/schema/cleo-project/conduit.js +8 -0
  181. package/dist/store/schema/cleo-project/conduit.js.map +1 -1
  182. package/dist/store/schema/cleo-project/docs.d.ts +294 -0
  183. package/dist/store/schema/cleo-project/docs.d.ts.map +1 -1
  184. package/dist/store/schema/cleo-project/docs.js +82 -0
  185. package/dist/store/schema/cleo-project/docs.js.map +1 -1
  186. package/dist/store/sync/hlc.d.ts +9 -0
  187. package/dist/store/sync/hlc.d.ts.map +1 -1
  188. package/dist/store/sync/hlc.js +9 -0
  189. package/dist/store/sync/hlc.js.map +1 -1
  190. package/dist/store/sync/merge/engine.d.ts.map +1 -1
  191. package/dist/store/sync/merge/engine.js +4 -2
  192. package/dist/store/sync/merge/engine.js.map +1 -1
  193. package/dist/store/sync/merge/rules.d.ts +12 -1
  194. package/dist/store/sync/merge/rules.d.ts.map +1 -1
  195. package/dist/store/sync/merge/rules.js +76 -1
  196. package/dist/store/sync/merge/rules.js.map +1 -1
  197. package/dist/store/sync/replica-registry.d.ts +6 -2
  198. package/dist/store/sync/replica-registry.d.ts.map +1 -1
  199. package/dist/store/sync/replica-registry.js +21 -9
  200. package/dist/store/sync/replica-registry.js.map +1 -1
  201. package/dist/store/sync/timestamp-canon.d.ts.map +1 -1
  202. package/dist/store/sync/timestamp-canon.js +6 -0
  203. package/dist/store/sync/timestamp-canon.js.map +1 -1
  204. package/dist/store/table-classification.d.ts +58 -0
  205. package/dist/store/table-classification.d.ts.map +1 -1
  206. package/dist/store/table-classification.js +72 -0
  207. package/dist/store/table-classification.js.map +1 -1
  208. package/dist/store/twin-collapse.d.ts.map +1 -1
  209. package/dist/store/twin-collapse.js +4 -1
  210. package/dist/store/twin-collapse.js.map +1 -1
  211. package/dist/store/vault-manifest.d.ts +10 -1
  212. package/dist/store/vault-manifest.d.ts.map +1 -1
  213. package/dist/store/vault-manifest.js +59 -1
  214. package/dist/store/vault-manifest.js.map +1 -1
  215. package/dist/tasks/affected-scope.d.ts +11 -0
  216. package/dist/tasks/affected-scope.d.ts.map +1 -1
  217. package/dist/tasks/affected-scope.js +30 -11
  218. package/dist/tasks/affected-scope.js.map +1 -1
  219. package/dist/tasks/cancel-ops.d.ts.map +1 -1
  220. package/dist/tasks/cancel-ops.js +7 -2
  221. package/dist/tasks/cancel-ops.js.map +1 -1
  222. package/dist/tasks/change-set.d.ts +22 -0
  223. package/dist/tasks/change-set.d.ts.map +1 -1
  224. package/dist/tasks/change-set.js +119 -2
  225. package/dist/tasks/change-set.js.map +1 -1
  226. package/dist/tasks/complete.d.ts.map +1 -1
  227. package/dist/tasks/complete.js +7 -0
  228. package/dist/tasks/complete.js.map +1 -1
  229. package/dist/tasks/done-plan.d.ts +5 -0
  230. package/dist/tasks/done-plan.d.ts.map +1 -1
  231. package/dist/tasks/done-plan.js +54 -19
  232. package/dist/tasks/done-plan.js.map +1 -1
  233. package/dist/tasks/engine-wrap.d.ts +4 -0
  234. package/dist/tasks/engine-wrap.d.ts.map +1 -1
  235. package/dist/tasks/engine-wrap.js +20 -4
  236. package/dist/tasks/engine-wrap.js.map +1 -1
  237. package/dist/tasks/evidence-paths.d.ts +11 -0
  238. package/dist/tasks/evidence-paths.d.ts.map +1 -1
  239. package/dist/tasks/evidence-paths.js +12 -0
  240. package/dist/tasks/evidence-paths.js.map +1 -1
  241. package/dist/tools/fs.d.ts +7 -3
  242. package/dist/tools/fs.d.ts.map +1 -1
  243. package/dist/tools/fs.js +23 -8
  244. package/dist/tools/fs.js.map +1 -1
  245. package/dist/worktree/list.d.ts.map +1 -1
  246. package/dist/worktree/list.js +9 -0
  247. package/dist/worktree/list.js.map +1 -1
  248. package/dist/worktree/prune.d.ts.map +1 -1
  249. package/dist/worktree/prune.js +52 -1
  250. package/dist/worktree/prune.js.map +1 -1
  251. package/migrations/drizzle-cleo-project/20261013000000_t13360-migrated-doc-import/migration.sql +61 -0
  252. package/migrations/drizzle-cleo-project/20261014000000_t13362-docs-publications-ledger/migration.sql +45 -0
  253. package/package.json +13 -13
  254. package/templates/CLEO-INJECTION.md +1 -1
  255. package/templates/CLEO-REFERENCE.md +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"attachment-store.js","sourceRoot":"","sources":["../../src/store/attachment-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attachment-store.js","sourceRoot":"","sources":["../../src/store/attachment-store.ts"],"names":[],"mappings":"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"}
@@ -147,4 +147,87 @@ export declare function isTombstoned(cleoDir: string, sha256: string): boolean;
147
147
  * @param sha256 - The content hash.
148
148
  */
149
149
  export declare function unpinBlob(cleoDir: string, sha256: string): void;
150
+ /**
151
+ * True when `target` exists AND its bytes re-hash to `sha256` (T13657).
152
+ *
153
+ * Existence alone is never proof that a content-addressed file holds the
154
+ * bytes its name claims: a truncated leftover from an interrupted
155
+ * pre-atomic write must be replaced from verified bytes, not trusted. Any
156
+ * read failure (absent, unreadable) returns false.
157
+ *
158
+ * @param target - Absolute path of the content-addressed file.
159
+ * @param sha256 - Lowercase hex SHA-256 the bytes must match.
160
+ */
161
+ export declare function fileBytesMatchSha256(target: string, sha256: string): boolean;
162
+ /**
163
+ * Locate the on-disk source of a sha's legacy bytes for the blob-store
164
+ * backfill (T13653). Tries, in order:
165
+ *
166
+ * 1. the primary legacy path (`.cleo/attachments/sha256/<2>/<62><ext>`,
167
+ * extension from the row's mime);
168
+ * 2. ANY file in the sha's prefix directory whose stem equals the sha's
169
+ * remaining 62 chars (the recorded mime may disagree with the extension
170
+ * a historical writer used);
171
+ * 3. a live keep-link (`.cleo/attachments/keep/<2>/<62>` — not tombstoned).
172
+ *
173
+ * Returns the first existing candidate, or null when the bytes are gone.
174
+ * Read-only — verification happens in {@link backfillBlobStoreBytes}.
175
+ *
176
+ * @param cleoDir - Absolute `.cleo` directory.
177
+ * @param sha256 - Recorded content hash.
178
+ * @param mime - Recorded mime (picks the primary path's extension).
179
+ * @returns The first existing candidate path, or null.
180
+ * @internal
181
+ */
182
+ export declare function resolveLegacyByteSource(cleoDir: string, sha256: string, mime: string): string | null;
183
+ /**
184
+ * Backfill outcome for one sha (T13653).
185
+ *
186
+ * - `written` — bytes verified and mirrored into the blob store (also
187
+ * returned when a corrupt/truncated existing target was
188
+ * replaced from the verified source, T13654).
189
+ * - `present` — blob-store file already existed AND re-hashes to the
190
+ * recorded sha (idempotent re-run; left untouched).
191
+ * - `unverified`— the source bytes' SHA-256 does not match the recorded hash;
192
+ * nothing was written (writing unverified bytes would poison
193
+ * the content-addressed store).
194
+ * - `unreadable`— the source could not be read; nothing was written.
195
+ */
196
+ export type BlobBackfillOutcome = 'written' | 'present' | 'unverified' | 'unreadable';
197
+ /**
198
+ * Mirror one sha's legacy bytes into the blob store (`.cleo/blobs/blobs/<sha>`).
199
+ *
200
+ * Hash-verified: the source bytes are SHA-256-hashed before any write and
201
+ * must equal the recorded sha256. Crash-safe (T13654): bytes are written to
202
+ * a tmp file and renamed into place — an interrupted write never leaves a
203
+ * truncated file at the final content address (which later runs would count
204
+ * as present and `blobReadBySha` would then reject as corrupt with no heal
205
+ * path). An existing target is RE-HASHED rather than assumed good: when its
206
+ * bytes mismatch the recorded hash (truncation/corruption), it is replaced
207
+ * from the verified source; a matching target is left untouched.
208
+ *
209
+ * @internal
210
+ */
211
+ export declare function backfillBlobStoreBytes(cleoDir: string, sha256: string, sourcePath: string): Promise<BlobBackfillOutcome>;
212
+ /**
213
+ * Self-heal one blob-store miss from hash-verified legacy bytes (T13705).
214
+ *
215
+ * Docs written before the blob store held every body keep their bytes only in
216
+ * the legacy attachment tree, which the read paths no longer consult (#2210).
217
+ * When those bytes exist and hash to the recorded sha, they are mirrored into
218
+ * the blob store exactly as `cleo docs doctor --repair` would ({@link
219
+ * backfillBlobStoreBytes}: atomic write, only ever adds an absent content-addressed
220
+ * file), so the first read heals the doc. Missing or mismatched bytes write
221
+ * nothing.
222
+ *
223
+ * The read never fails on the write (T13706): on a read-only `.cleo`, a
224
+ * sandbox or a full disk the verified bytes are still returned, a warning is
225
+ * emitted, and the blob-store file is left for `cleo docs doctor --repair`.
226
+ *
227
+ * @param cleoDir - Absolute `.cleo` directory the blob store lives under.
228
+ * @param sha256 - The content hash the doc row records.
229
+ * @returns The hash-verified bytes, or null when no legacy bytes verify.
230
+ * @task T13705
231
+ */
232
+ export declare function healBlobFromLegacy(cleoDir: string, sha256: string): Promise<Uint8Array | null>;
150
233
  //# sourceMappingURL=blob-keep.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"blob-keep.d.ts","sourceRoot":"","sources":["../../src/store/blob-keep.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAuCH;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAQlF;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,GACrB,MAAM,GAAG,IAAI,CAUf;AAOD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAIxF;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAa9E;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAgBrF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CASjG;AAED,2CAA2C;AAC3C,MAAM,WAAW,iBAAiB;IAChC,sEAAsE;IACtE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,EACzC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,OAAO,GACd,iBAAiB,CAuDnB;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAErE;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAG/D"}
1
+ {"version":3,"file":"blob-keep.d.ts","sourceRoot":"","sources":["../../src/store/blob-keep.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAyCH;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAQlF;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,GACrB,MAAM,GAAG,IAAI,CAUf;AAOD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAIxF;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAa9E;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAgBrF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CASjG;AAED,2CAA2C;AAC3C,MAAM,WAAW,iBAAiB;IAChC,sEAAsE;IACtE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,EACzC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,OAAO,GACd,iBAAiB,CAuDnB;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAErE;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAG/D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAM5E;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,IAAI,CAiBf;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY,GAAG,YAAY,CAAC;AAEtF;;;;;;;;;;;;;GAaG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,mBAAmB,CAAC,CAsB9B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAmB5B"}
@@ -27,7 +27,9 @@
27
27
  * @module
28
28
  * @task T12535
29
29
  */
30
+ import { createHash } from 'node:crypto';
30
31
  import { copyFileSync, existsSync, linkSync, mkdirSync, readdirSync, readFileSync, rmSync, statSync, writeFileSync, } from 'node:fs';
32
+ import { readFile } from 'node:fs/promises';
31
33
  import { dirname, join } from 'node:path';
32
34
  /**
33
35
  * Minimal MIME-to-extension map for common attachment types.
@@ -300,4 +302,141 @@ export function unpinBlob(cleoDir, sha256) {
300
302
  rmSync(keepPath(cleoDir, sha256), { force: true });
301
303
  rmSync(`${keepPath(cleoDir, sha256)}.tomb`, { force: true });
302
304
  }
305
+ /**
306
+ * True when `target` exists AND its bytes re-hash to `sha256` (T13657).
307
+ *
308
+ * Existence alone is never proof that a content-addressed file holds the
309
+ * bytes its name claims: a truncated leftover from an interrupted
310
+ * pre-atomic write must be replaced from verified bytes, not trusted. Any
311
+ * read failure (absent, unreadable) returns false.
312
+ *
313
+ * @param target - Absolute path of the content-addressed file.
314
+ * @param sha256 - Lowercase hex SHA-256 the bytes must match.
315
+ */
316
+ export function fileBytesMatchSha256(target, sha256) {
317
+ try {
318
+ return createHash('sha256').update(readFileSync(target)).digest('hex') === sha256;
319
+ }
320
+ catch {
321
+ return false;
322
+ }
323
+ }
324
+ /**
325
+ * Locate the on-disk source of a sha's legacy bytes for the blob-store
326
+ * backfill (T13653). Tries, in order:
327
+ *
328
+ * 1. the primary legacy path (`.cleo/attachments/sha256/<2>/<62><ext>`,
329
+ * extension from the row's mime);
330
+ * 2. ANY file in the sha's prefix directory whose stem equals the sha's
331
+ * remaining 62 chars (the recorded mime may disagree with the extension
332
+ * a historical writer used);
333
+ * 3. a live keep-link (`.cleo/attachments/keep/<2>/<62>` — not tombstoned).
334
+ *
335
+ * Returns the first existing candidate, or null when the bytes are gone.
336
+ * Read-only — verification happens in {@link backfillBlobStoreBytes}.
337
+ *
338
+ * @param cleoDir - Absolute `.cleo` directory.
339
+ * @param sha256 - Recorded content hash.
340
+ * @param mime - Recorded mime (picks the primary path's extension).
341
+ * @returns The first existing candidate path, or null.
342
+ * @internal
343
+ */
344
+ export function resolveLegacyByteSource(cleoDir, sha256, mime) {
345
+ const primary = blobFilePath(cleoDir, sha256, mime);
346
+ if (existsSync(primary))
347
+ return primary;
348
+ try {
349
+ for (const name of readdirSync(join(cleoDir, 'attachments', 'sha256', sha256.slice(0, 2)))) {
350
+ const stem = name.includes('.') ? name.slice(0, name.lastIndexOf('.')) : name;
351
+ if (stem === sha256.slice(2))
352
+ return join(cleoDir, 'attachments', 'sha256', sha256.slice(0, 2), name);
353
+ }
354
+ }
355
+ catch {
356
+ /* prefix dir unreadable — fall through to the keep-link */
357
+ }
358
+ const keep = join(cleoDir, 'attachments', 'keep', sha256.slice(0, 2), sha256.slice(2));
359
+ if (existsSync(keep) && !existsSync(`${keep}.tomb`))
360
+ return keep;
361
+ return null;
362
+ }
363
+ /**
364
+ * Mirror one sha's legacy bytes into the blob store (`.cleo/blobs/blobs/<sha>`).
365
+ *
366
+ * Hash-verified: the source bytes are SHA-256-hashed before any write and
367
+ * must equal the recorded sha256. Crash-safe (T13654): bytes are written to
368
+ * a tmp file and renamed into place — an interrupted write never leaves a
369
+ * truncated file at the final content address (which later runs would count
370
+ * as present and `blobReadBySha` would then reject as corrupt with no heal
371
+ * path). An existing target is RE-HASHED rather than assumed good: when its
372
+ * bytes mismatch the recorded hash (truncation/corruption), it is replaced
373
+ * from the verified source; a matching target is left untouched.
374
+ *
375
+ * @internal
376
+ */
377
+ export async function backfillBlobStoreBytes(cleoDir, sha256, sourcePath) {
378
+ const target = join(cleoDir, 'blobs', 'blobs', sha256);
379
+ let bytes;
380
+ try {
381
+ bytes = await readFile(sourcePath);
382
+ }
383
+ catch {
384
+ return 'unreadable';
385
+ }
386
+ const actual = createHash('sha256').update(bytes).digest('hex');
387
+ if (actual !== sha256)
388
+ return 'unverified';
389
+ if (fileBytesMatchSha256(target, sha256))
390
+ return 'present';
391
+ // Crash-safe via the shared atomic writer (T13657): a unique tmp file
392
+ // renamed into place — an interrupted write never leaves a truncated blob
393
+ // at the final content address (which later runs would count as present
394
+ // and `blobReadBySha` would then reject as corrupt with no heal path).
395
+ // Lazy: blob-keep loads on CLI paths that never write a blob (gate 39).
396
+ const { writeFileAtomic } = await import('../tools/fs.js');
397
+ await writeFileAtomic({ path: target, content: bytes });
398
+ return 'written';
399
+ }
400
+ /**
401
+ * Self-heal one blob-store miss from hash-verified legacy bytes (T13705).
402
+ *
403
+ * Docs written before the blob store held every body keep their bytes only in
404
+ * the legacy attachment tree, which the read paths no longer consult (#2210).
405
+ * When those bytes exist and hash to the recorded sha, they are mirrored into
406
+ * the blob store exactly as `cleo docs doctor --repair` would ({@link
407
+ * backfillBlobStoreBytes}: atomic write, only ever adds an absent content-addressed
408
+ * file), so the first read heals the doc. Missing or mismatched bytes write
409
+ * nothing.
410
+ *
411
+ * The read never fails on the write (T13706): on a read-only `.cleo`, a
412
+ * sandbox or a full disk the verified bytes are still returned, a warning is
413
+ * emitted, and the blob-store file is left for `cleo docs doctor --repair`.
414
+ *
415
+ * @param cleoDir - Absolute `.cleo` directory the blob store lives under.
416
+ * @param sha256 - The content hash the doc row records.
417
+ * @returns The hash-verified bytes, or null when no legacy bytes verify.
418
+ * @task T13705
419
+ */
420
+ export async function healBlobFromLegacy(cleoDir, sha256) {
421
+ const source = resolveLegacyByteSource(cleoDir, sha256, 'application/octet-stream');
422
+ if (source === null)
423
+ return null;
424
+ let bytes;
425
+ try {
426
+ bytes = await readFile(source);
427
+ }
428
+ catch {
429
+ return null;
430
+ }
431
+ if (createHash('sha256').update(bytes).digest('hex') !== sha256)
432
+ return null;
433
+ try {
434
+ await backfillBlobStoreBytes(cleoDir, sha256, source);
435
+ }
436
+ catch (err) {
437
+ process.emitWarning(`blob store not healed for sha256 ${sha256.slice(0, 12)}… (${err instanceof Error ? err.message : String(err)}); ` +
438
+ 'served the verified legacy bytes — run `cleo docs doctor --repair` once the store is writable');
439
+ }
440
+ return new Uint8Array(bytes);
441
+ }
303
442
  //# sourceMappingURL=blob-keep.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"blob-keep.js","sourceRoot":"","sources":["../../src/store/blob-keep.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blob-keep.js","sourceRoot":"","sources":["../../src/store/blob-keep.ts"],"names":[],"mappings":"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"}
@@ -71,6 +71,30 @@ export interface BlobListEntry {
71
71
  * @epic T947
72
72
  */
73
73
  export declare function blobRead(taskId: string, name: string, projectRoot?: string): Promise<Uint8Array | null>;
74
+ /**
75
+ * Read raw bytes for a blob directly from its content-addressed store path,
76
+ * without resolving an (owner, name) manifest pair first.
77
+ *
78
+ * The llmtxt BlobFsAdapter stores bytes at
79
+ * `<projectRoot>/.cleo/blobs/blobs/<sha256-hex>`, so a sha256 alone is a
80
+ * complete address. Used by the docs read/publish paths after the legacy
81
+ * attachment byte tree was retired (T13362): the doc registry still resolves
82
+ * metadata (slug, owner refs), but content always comes from the blob store.
83
+ *
84
+ * Hash-verifies the bytes against the address (a mismatch means corruption
85
+ * or a wrong guess) and returns `null` when the file is absent — mirrors
86
+ * {@link blobRead}'s null-not-throws contract. An absent file is first healed
87
+ * from hash-verified legacy bytes when they exist (T13705), so docs written
88
+ * before the blob store held every body read without a manual repair.
89
+ *
90
+ * @param sha256 - Lowercase hex SHA-256 of the content.
91
+ * @param projectRoot - Absolute project root. Defaults to `getProjectRoot()`.
92
+ * @returns Raw bytes, or `null` when the blob is not in the store.
93
+ * @throws {Error} when on-disk bytes fail SHA-256 verification.
94
+ *
95
+ * @task T13362
96
+ */
97
+ export declare function blobReadBySha(sha256: string, projectRoot?: string): Promise<Uint8Array | null>;
74
98
  /**
75
99
  * List active (non-detached) attachment manifests for a task.
76
100
  *
@@ -1 +1 @@
1
- {"version":3,"file":"blob-ops.d.ts","sourceRoot":"","sources":["../../src/store/blob-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAOH;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,0DAA0D;IAC1D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,mFAAmF;IACnF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAW5B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAkB7F"}
1
+ {"version":3,"file":"blob-ops.d.ts","sourceRoot":"","sources":["../../src/store/blob-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAOH;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,0DAA0D;IAC1D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,mFAAmF;IACnF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAW5B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAuB5B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAkB7F"}
@@ -69,6 +69,53 @@ export async function blobRead(taskId, name, projectRoot) {
69
69
  await store.close();
70
70
  }
71
71
  }
72
+ /**
73
+ * Read raw bytes for a blob directly from its content-addressed store path,
74
+ * without resolving an (owner, name) manifest pair first.
75
+ *
76
+ * The llmtxt BlobFsAdapter stores bytes at
77
+ * `<projectRoot>/.cleo/blobs/blobs/<sha256-hex>`, so a sha256 alone is a
78
+ * complete address. Used by the docs read/publish paths after the legacy
79
+ * attachment byte tree was retired (T13362): the doc registry still resolves
80
+ * metadata (slug, owner refs), but content always comes from the blob store.
81
+ *
82
+ * Hash-verifies the bytes against the address (a mismatch means corruption
83
+ * or a wrong guess) and returns `null` when the file is absent — mirrors
84
+ * {@link blobRead}'s null-not-throws contract. An absent file is first healed
85
+ * from hash-verified legacy bytes when they exist (T13705), so docs written
86
+ * before the blob store held every body read without a manual repair.
87
+ *
88
+ * @param sha256 - Lowercase hex SHA-256 of the content.
89
+ * @param projectRoot - Absolute project root. Defaults to `getProjectRoot()`.
90
+ * @returns Raw bytes, or `null` when the blob is not in the store.
91
+ * @throws {Error} when on-disk bytes fail SHA-256 verification.
92
+ *
93
+ * @task T13362
94
+ */
95
+ export async function blobReadBySha(sha256, projectRoot) {
96
+ const root = projectRoot ?? getProjectRoot();
97
+ const { createHash } = await import('node:crypto');
98
+ const { readFile } = await import('node:fs/promises');
99
+ const { join } = await import('node:path');
100
+ const file = join(root, '.cleo', 'blobs', 'blobs', sha256.toLowerCase());
101
+ let bytes;
102
+ try {
103
+ bytes = new Uint8Array(await readFile(file));
104
+ }
105
+ catch {
106
+ // T13705: a doc whose bytes predate the blob store heals on first read
107
+ // from hash-verified legacy bytes; otherwise the miss stands.
108
+ // The heal never throws on its write (T13706): verified bytes are served.
109
+ const { healBlobFromLegacy } = await import('./blob-keep.js');
110
+ return healBlobFromLegacy(join(root, '.cleo'), sha256.toLowerCase());
111
+ }
112
+ const actual = createHash('sha256').update(bytes).digest('hex');
113
+ if (actual !== sha256.toLowerCase()) {
114
+ // @sync-invariant none:local-only a corrupt local blob file is a read-side integrity refusal; no synced row is written or mutated
115
+ throw new Error(`blobReadBySha: corrupt blob at ${file}: expected sha256=${sha256}`);
116
+ }
117
+ return bytes;
118
+ }
72
119
  /**
73
120
  * List active (non-detached) attachment manifests for a task.
74
121
  *
@@ -1 +1 @@
1
- {"version":3,"file":"blob-ops.js","sourceRoot":"","sources":["../../src/store/blob-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAuBzD,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,MAAc,EACd,IAAY,EACZ,WAAoB;IAEpB,MAAM,IAAI,GAAG,WAAW,IAAI,cAAc,EAAE,CAAC;IAC7C,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC3C,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAC1D,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;YAAS,CAAC;QACT,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,MAAc,EAAE,WAAoB;IACjE,MAAM,IAAI,GAAG,WAAW,IAAI,cAAc,EAAE,CAAC;IAC7C,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,GAAG,CACb,CAAC,GAAG,EAAiB,EAAE,CAAC,CAAC;YACvB,IAAI,EAAE,GAAG,CAAC,QAAQ;YAClB,MAAM,EAAE,GAAG,CAAC,IAAI;YAChB,SAAS,EAAE,GAAG,CAAC,IAAI;YACnB,QAAQ,EAAE,GAAG,CAAC,WAAW,KAAK,0BAA0B,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW;YACtF,UAAU,EAAE,GAAG,CAAC,UAAU;SAC3B,CAAC,CACH,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"blob-ops.js","sourceRoot":"","sources":["../../src/store/blob-ops.ts"],"names":[],"mappings":"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"}