@superbee/core 0.2.0-pre.41 → 0.2.0-pre.42

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 (264) hide show
  1. package/README.md +50 -9
  2. package/dist/backend.d.ts +17 -1
  3. package/dist/backend.d.ts.map +1 -1
  4. package/dist/backend.js +41 -6
  5. package/dist/backend.js.map +1 -1
  6. package/dist/body-pages.d.ts +20 -0
  7. package/dist/body-pages.d.ts.map +1 -0
  8. package/dist/body-pages.js +56 -0
  9. package/dist/body-pages.js.map +1 -0
  10. package/dist/body-replace-guards.d.ts +29 -3
  11. package/dist/body-replace-guards.d.ts.map +1 -1
  12. package/dist/body-replace-guards.js +112 -19
  13. package/dist/body-replace-guards.js.map +1 -1
  14. package/dist/bounded-yaml.d.ts +28 -0
  15. package/dist/bounded-yaml.d.ts.map +1 -0
  16. package/dist/bounded-yaml.js +182 -0
  17. package/dist/bounded-yaml.js.map +1 -0
  18. package/dist/builtin-recipes/site.d.ts +5 -0
  19. package/dist/builtin-recipes/site.d.ts.map +1 -0
  20. package/dist/builtin-recipes/site.js +83 -0
  21. package/dist/builtin-recipes/site.js.map +1 -0
  22. package/dist/builtin-recipes.d.ts.map +1 -1
  23. package/dist/builtin-recipes.js +22 -0
  24. package/dist/builtin-recipes.js.map +1 -1
  25. package/dist/bundle-health/index.d.ts +2 -2
  26. package/dist/bundle-health/index.d.ts.map +1 -1
  27. package/dist/bundle-health/index.js +1 -1
  28. package/dist/bundle-health/index.js.map +1 -1
  29. package/dist/bundle-health/legacy-page.d.ts +8 -26
  30. package/dist/bundle-health/legacy-page.d.ts.map +1 -1
  31. package/dist/bundle-health/legacy-page.js +10 -35
  32. package/dist/bundle-health/legacy-page.js.map +1 -1
  33. package/dist/bundle-health/report.d.ts +0 -16
  34. package/dist/bundle-health/report.d.ts.map +1 -1
  35. package/dist/bundle-health/report.js +24 -54
  36. package/dist/bundle-health/report.js.map +1 -1
  37. package/dist/bundle-ops.d.ts +4 -1
  38. package/dist/bundle-ops.d.ts.map +1 -1
  39. package/dist/bundle-ops.js +6 -2
  40. package/dist/bundle-ops.js.map +1 -1
  41. package/dist/bundle.d.ts +1 -1
  42. package/dist/bundle.d.ts.map +1 -1
  43. package/dist/bundle.js +1 -1
  44. package/dist/bundle.js.map +1 -1
  45. package/dist/cross-bundle.d.ts +2 -2
  46. package/dist/cross-bundle.js +2 -2
  47. package/dist/document-codec.d.ts +3 -1
  48. package/dist/document-codec.d.ts.map +1 -1
  49. package/dist/document-codec.js +3 -1
  50. package/dist/document-codec.js.map +1 -1
  51. package/dist/document-mutation.d.ts.map +1 -1
  52. package/dist/document-mutation.js +39 -9
  53. package/dist/document-mutation.js.map +1 -1
  54. package/dist/document-scan.d.ts +23 -0
  55. package/dist/document-scan.d.ts.map +1 -0
  56. package/dist/document-scan.js +70 -0
  57. package/dist/document-scan.js.map +1 -0
  58. package/dist/document-transfer.d.ts +110 -4
  59. package/dist/document-transfer.d.ts.map +1 -1
  60. package/dist/document-transfer.js +490 -30
  61. package/dist/document-transfer.js.map +1 -1
  62. package/dist/engine.d.ts +4 -19
  63. package/dist/engine.d.ts.map +1 -1
  64. package/dist/engine.js +7 -47
  65. package/dist/engine.js.map +1 -1
  66. package/dist/errors.d.ts +37 -1
  67. package/dist/errors.d.ts.map +1 -1
  68. package/dist/errors.js +75 -3
  69. package/dist/errors.js.map +1 -1
  70. package/dist/file-journaled-backend.d.ts.map +1 -1
  71. package/dist/file-journaled-backend.js +2 -2
  72. package/dist/file-journaled-backend.js.map +1 -1
  73. package/dist/filesystem-identity.d.ts +9 -0
  74. package/dist/filesystem-identity.d.ts.map +1 -1
  75. package/dist/filesystem-identity.js +186 -64
  76. package/dist/filesystem-identity.js.map +1 -1
  77. package/dist/filesystem-lock.d.ts +2 -2
  78. package/dist/filesystem-lock.d.ts.map +1 -1
  79. package/dist/filesystem-lock.js +81 -14
  80. package/dist/filesystem-lock.js.map +1 -1
  81. package/dist/filesystem-temp-name.d.ts +9 -0
  82. package/dist/filesystem-temp-name.d.ts.map +1 -0
  83. package/dist/filesystem-temp-name.js +20 -0
  84. package/dist/filesystem-temp-name.js.map +1 -0
  85. package/dist/filesystem.d.ts +6 -0
  86. package/dist/filesystem.d.ts.map +1 -1
  87. package/dist/filesystem.js +2 -1
  88. package/dist/filesystem.js.map +1 -1
  89. package/dist/frontmatter-contract.d.ts +14 -0
  90. package/dist/frontmatter-contract.d.ts.map +1 -1
  91. package/dist/frontmatter-contract.js +22 -0
  92. package/dist/frontmatter-contract.js.map +1 -1
  93. package/dist/frontmatter-splitter.d.ts +6 -0
  94. package/dist/frontmatter-splitter.d.ts.map +1 -1
  95. package/dist/frontmatter-splitter.js +8 -0
  96. package/dist/frontmatter-splitter.js.map +1 -1
  97. package/dist/frontmatter.d.ts +8 -1
  98. package/dist/frontmatter.d.ts.map +1 -1
  99. package/dist/frontmatter.js +43 -7
  100. package/dist/frontmatter.js.map +1 -1
  101. package/dist/hosted-client/client.d.ts +22 -5
  102. package/dist/hosted-client/client.d.ts.map +1 -1
  103. package/dist/hosted-client/client.js +57 -10
  104. package/dist/hosted-client/client.js.map +1 -1
  105. package/dist/hosted-client/index.d.ts +1 -0
  106. package/dist/hosted-client/index.d.ts.map +1 -1
  107. package/dist/hosted-client/index.js +1 -0
  108. package/dist/hosted-client/index.js.map +1 -1
  109. package/dist/hosted-client/view-content.d.ts +107 -0
  110. package/dist/hosted-client/view-content.d.ts.map +1 -0
  111. package/dist/hosted-client/view-content.js +155 -0
  112. package/dist/hosted-client/view-content.js.map +1 -0
  113. package/dist/hosted-transport/carrier.d.ts +1 -1
  114. package/dist/hosted-transport/carrier.d.ts.map +1 -1
  115. package/dist/hosted-transport/carrier.js +27 -18
  116. package/dist/hosted-transport/carrier.js.map +1 -1
  117. package/dist/hosted-transport/read-adapter.d.ts +1 -2
  118. package/dist/hosted-transport/read-adapter.d.ts.map +1 -1
  119. package/dist/hosted-transport/read-adapter.js.map +1 -1
  120. package/dist/identity-fold.d.ts +12 -14
  121. package/dist/identity-fold.d.ts.map +1 -1
  122. package/dist/identity-fold.js +17 -15
  123. package/dist/identity-fold.js.map +1 -1
  124. package/dist/index-projection.d.ts +2 -1
  125. package/dist/index-projection.d.ts.map +1 -1
  126. package/dist/index-projection.js +14 -5
  127. package/dist/index-projection.js.map +1 -1
  128. package/dist/index.d.ts +24 -15
  129. package/dist/index.d.ts.map +1 -1
  130. package/dist/index.js +19 -15
  131. package/dist/index.js.map +1 -1
  132. package/dist/indexeddb-backend.d.ts.map +1 -1
  133. package/dist/indexeddb-backend.js +2 -2
  134. package/dist/indexeddb-backend.js.map +1 -1
  135. package/dist/json-data.d.ts +3 -0
  136. package/dist/json-data.d.ts.map +1 -0
  137. package/dist/json-data.js +19 -0
  138. package/dist/json-data.js.map +1 -0
  139. package/dist/kind-authoring.d.ts +18 -0
  140. package/dist/kind-authoring.d.ts.map +1 -1
  141. package/dist/kind-authoring.js +54 -4
  142. package/dist/kind-authoring.js.map +1 -1
  143. package/dist/kind-coverage.d.ts +1 -0
  144. package/dist/kind-coverage.d.ts.map +1 -1
  145. package/dist/kind-coverage.js +4 -5
  146. package/dist/kind-coverage.js.map +1 -1
  147. package/dist/kind-undeclared-fields.d.ts +70 -0
  148. package/dist/kind-undeclared-fields.d.ts.map +1 -0
  149. package/dist/kind-undeclared-fields.js +120 -0
  150. package/dist/kind-undeclared-fields.js.map +1 -0
  151. package/dist/kinds-load.d.ts.map +1 -1
  152. package/dist/kinds-load.js +4 -1
  153. package/dist/kinds-load.js.map +1 -1
  154. package/dist/kinds.d.ts +9 -0
  155. package/dist/kinds.d.ts.map +1 -1
  156. package/dist/kinds.js +20 -0
  157. package/dist/kinds.js.map +1 -1
  158. package/dist/link-findings.d.ts +130 -0
  159. package/dist/link-findings.d.ts.map +1 -0
  160. package/dist/link-findings.js +272 -0
  161. package/dist/link-findings.js.map +1 -0
  162. package/dist/link-types.d.ts +7 -0
  163. package/dist/link-types.d.ts.map +1 -1
  164. package/dist/link-types.js +17 -2
  165. package/dist/link-types.js.map +1 -1
  166. package/dist/memory-backend.d.ts.map +1 -1
  167. package/dist/memory-backend.js +2 -2
  168. package/dist/memory-backend.js.map +1 -1
  169. package/dist/page.d.ts +3 -7
  170. package/dist/page.d.ts.map +1 -1
  171. package/dist/page.js +3 -7
  172. package/dist/page.js.map +1 -1
  173. package/dist/path-fold.d.ts +29 -16
  174. package/dist/path-fold.d.ts.map +1 -1
  175. package/dist/path-fold.js +30 -17
  176. package/dist/path-fold.js.map +1 -1
  177. package/dist/paths.d.ts +28 -0
  178. package/dist/paths.d.ts.map +1 -1
  179. package/dist/paths.js +82 -1
  180. package/dist/paths.js.map +1 -1
  181. package/dist/platform.d.ts +9 -0
  182. package/dist/platform.d.ts.map +1 -1
  183. package/dist/platform.js.map +1 -1
  184. package/dist/portable-frontmatter.d.ts +6 -0
  185. package/dist/portable-frontmatter.d.ts.map +1 -1
  186. package/dist/portable-frontmatter.js +26 -2
  187. package/dist/portable-frontmatter.js.map +1 -1
  188. package/dist/recipe-lifecycle/install.d.ts +4 -7
  189. package/dist/recipe-lifecycle/install.d.ts.map +1 -1
  190. package/dist/recipe-lifecycle/install.js +3 -20
  191. package/dist/recipe-lifecycle/install.js.map +1 -1
  192. package/dist/recipe-lifecycle/legacy-aliases.d.ts +1 -13
  193. package/dist/recipe-lifecycle/legacy-aliases.d.ts.map +1 -1
  194. package/dist/recipe-lifecycle/legacy-aliases.js +5 -34
  195. package/dist/recipe-lifecycle/legacy-aliases.js.map +1 -1
  196. package/dist/record-overlay/apply.d.ts.map +1 -1
  197. package/dist/record-overlay/apply.js +0 -4
  198. package/dist/record-overlay/apply.js.map +1 -1
  199. package/dist/record-overlay/findings.d.ts.map +1 -1
  200. package/dist/record-overlay/findings.js +4 -1
  201. package/dist/record-overlay/findings.js.map +1 -1
  202. package/dist/record-overlay/plan.js +3 -3
  203. package/dist/record-overlay/plan.js.map +1 -1
  204. package/dist/record-overlay/signal-text.d.ts +9 -2
  205. package/dist/record-overlay/signal-text.d.ts.map +1 -1
  206. package/dist/record-overlay/signal-text.js +21 -11
  207. package/dist/record-overlay/signal-text.js.map +1 -1
  208. package/dist/remote-backend.d.ts +9 -19
  209. package/dist/remote-backend.d.ts.map +1 -1
  210. package/dist/remote-backend.js +17 -5
  211. package/dist/remote-backend.js.map +1 -1
  212. package/dist/remote-operations.d.ts.map +1 -1
  213. package/dist/remote-operations.js +2 -0
  214. package/dist/remote-operations.js.map +1 -1
  215. package/dist/remote-parsers.d.ts +19 -0
  216. package/dist/remote-parsers.d.ts.map +1 -1
  217. package/dist/remote-parsers.js.map +1 -1
  218. package/dist/remote.d.ts +2 -4
  219. package/dist/remote.d.ts.map +1 -1
  220. package/dist/remote.js +2 -3
  221. package/dist/remote.js.map +1 -1
  222. package/dist/reserved-write.d.ts +9 -0
  223. package/dist/reserved-write.d.ts.map +1 -0
  224. package/dist/reserved-write.js +15 -0
  225. package/dist/reserved-write.js.map +1 -0
  226. package/dist/search/backend-source.d.ts +2 -2
  227. package/dist/search/backend-source.d.ts.map +1 -1
  228. package/dist/search/backend-source.js +30 -6
  229. package/dist/search/backend-source.js.map +1 -1
  230. package/dist/search/contract.d.ts +3 -0
  231. package/dist/search/contract.d.ts.map +1 -1
  232. package/dist/search/contract.js.map +1 -1
  233. package/dist/search/search.d.ts.map +1 -1
  234. package/dist/search/search.js +4 -1
  235. package/dist/search/search.js.map +1 -1
  236. package/dist/search/source.d.ts +3 -0
  237. package/dist/search/source.d.ts.map +1 -1
  238. package/dist/site-manifest.d.ts +49 -0
  239. package/dist/site-manifest.d.ts.map +1 -0
  240. package/dist/site-manifest.js +113 -0
  241. package/dist/site-manifest.js.map +1 -0
  242. package/dist/skip-reasons.d.ts +12 -0
  243. package/dist/skip-reasons.d.ts.map +1 -0
  244. package/dist/skip-reasons.js +15 -0
  245. package/dist/skip-reasons.js.map +1 -0
  246. package/dist/source-engine/driver.d.ts +1 -3
  247. package/dist/source-engine/driver.d.ts.map +1 -1
  248. package/dist/source-engine/driver.js +2 -18
  249. package/dist/source-engine/driver.js.map +1 -1
  250. package/dist/source-profiles/index.d.ts +1 -1
  251. package/dist/source-profiles/index.js +1 -1
  252. package/dist/string-identity-agreement.d.ts +1 -1
  253. package/dist/string-identity-agreement.d.ts.map +1 -1
  254. package/dist/string-identity-agreement.js +6 -0
  255. package/dist/string-identity-agreement.js.map +1 -1
  256. package/dist/system-documents.d.ts +13 -0
  257. package/dist/system-documents.d.ts.map +1 -0
  258. package/dist/system-documents.js +44 -0
  259. package/dist/system-documents.js.map +1 -0
  260. package/dist/types.d.ts +7 -0
  261. package/dist/types.d.ts.map +1 -1
  262. package/dist/validation.d.ts +5 -0
  263. package/dist/validation.d.ts.map +1 -1
  264. package/package.json +19 -7
package/README.md CHANGED
@@ -44,6 +44,31 @@ option changes body splitting or attributed `MalformedDocumentError` identity.
44
44
  This preserves parsed values, not YAML formatting or original document bytes after serialization.
45
45
  Backends remain responsible for retaining raw bytes and deriving their revision tokens.
46
46
 
47
+ ## Frontmatter limits
48
+
49
+ Every YAML load in Core goes through one bounded loader, `loadBoundedYaml`, and every frontmatter
50
+ write is checked against the same limits. `FRONTMATTER_LIMITS` is the source of the values:
51
+ `sourceChars` (262,144 characters), `depth` (32), `aliases` (1,000), `expandedNodes` (100,000) and
52
+ `expandedChars` (1,048,576 characters).
53
+
54
+ - Reading stored frontmatter that cannot be accepted throws `MalformedDocumentError`. Its `code` is
55
+ `FRONTMATTER_MALFORMED` for invalid YAML, or `FRONTMATTER_TOO_LARGE`, `FRONTMATTER_TOO_DEEP`,
56
+ `FRONTMATTER_ALIAS_LIMIT` or `FRONTMATTER_CYCLE` for a limit.
57
+ - Serializing or writing frontmatter the reader would refuse throws `FrontmatterRefusedError` with
58
+ the same `code`, and nothing is stored. `assertStorableFrontmatter` from
59
+ `@superbee/core/document-codec` runs that check on raw document text.
60
+ - Lenient scans skip the document and report it; see Bundle health. Direct calls throw.
61
+
62
+ ## Document transfer
63
+
64
+ `planDocumentTransfer`, `applyDocumentTransfer` and `resumeDocumentTransfer` copy selected documents
65
+ from a bound bundle into a local bundle or Git board, with new ids, rewritten links, a `sources`
66
+ entry on each and one Promotion record. `planDocumentRefresh` and `applyDocumentRefresh` update those
67
+ copies from their sources. A plan only reads. Applying takes the plan's token, recomputes the plan
68
+ from fresh reads, and throws `TransferPlanChanged` if it differs. `TransferConflictError`,
69
+ `TransferInterrupted` and `TransferResumeConflict` are the other typed refusals. A transfer's writes
70
+ are create-only; a refresh replaces a copy only at the version its plan saw.
71
+
47
72
  ## Document presentation values
48
73
 
49
74
  The additive `@superbee/core/artifact-contract` subpath provides pure v1 document target,
@@ -73,6 +98,9 @@ it runs unchanged in a Worker or a browser.
73
98
 
74
99
  ## Mutation attribution and local history
75
100
 
101
+ `mutateDocument` takes `expectedVersion` only in `patch` and `replace-document` modes. Create-only
102
+ and overwrite modes reject a supplied value instead of ignoring it.
103
+
76
104
  `mutateDocument` and `prepareDocumentMutationCandidate` persist a supplied `actor` by default:
77
105
  `actor` in OKF v0.1, `superbee_updated_by` in v0.2 (plus `actor` when the Kind requires it).
78
106
  Use `persistActor: false` to keep candidate attribution unchanged, or `persistActor: true` to apply
@@ -481,11 +509,14 @@ transport that passes it.
481
509
  ## Bundle health
482
510
 
483
511
  `@superbee/core/bundle-health` computes the health report behind `superbee status` from a core
484
- `Bundle` on any backend: malformed documents, Kind lint and conformance debt, registry warnings,
485
- unresolved links, orphans, freshness and invalid timestamps, trust tiers, the two graph lints, the
486
- View surface, cross-bundle links, the OKF v0.1 upgrade finding and legacy naming. It uses no Node
487
- globals or builtins, so it runs in Node, a browser or a Worker. The caller presents the report;
488
- the CLI adds row caps, help text and its home and sync blocks.
512
+ `Bundle` on any backend: malformed or unreadable documents, Kind lint and conformance debt,
513
+ registry warnings, unresolved links, orphans, freshness and invalid timestamps, trust tiers, the two
514
+ graph lints, the View surface, cross-bundle links and the OKF v0.1 upgrade finding. A link to a
515
+ skipped document is not reported as unresolved. It uses no Node globals or builtins, so it runs in
516
+ Node, a browser or a Worker. The caller presents the report; the CLI adds row caps, help text and
517
+ its home and sync blocks. `@superbee/core/skip-reasons` exports `isPermissionDeniedSkip`, which
518
+ tells a document the host refused to read (`permission denied (EACCES)` or `(EPERM)`) from a
519
+ malformed one.
489
520
 
490
521
  ```ts
491
522
  import { MemoryBackend } from "@superbee/core/memory-backend";
@@ -519,6 +550,14 @@ which Kind problems a strict host write would refuse, preparing each document as
519
550
  so a timestamp or actor the write supplies is no finding. The CLI's publish preview runs it; the
520
551
  report's `kindLint` stays advisory. Both use core's one validator, `validateAgainstKind`.
521
552
 
553
+ A write that adds or changes a frontmatter key its Kind does not declare gets one
554
+ `KIND_FIELD_UNDECLARED` warning per key from `undeclaredFieldWarnings`. OKF standard keys,
555
+ Superbee-managed metadata and `superbee_*` keys never count, and keys the write leaves as stored
556
+ are never checked. A convention may set `undeclared_fields: error` so a strict write refuses those
557
+ keys with `KindConformanceError`; the default, `warn`, only warns. These findings are not
558
+ conformance debt and never feed the overwrite ratchet. `kindCoverage` reports the same keys after
559
+ the fact, through the same `kindDeclaredStorageFields` and `isKindEnvelopeField`.
560
+
522
561
  ## Search
523
562
 
524
563
  `@superbee/core/search` is the one `documents.search.v1` engine: the request and result contract,
@@ -614,8 +653,7 @@ const client = createHostedClient({
614
653
  const identity = await client.whoami();
615
654
  ```
616
655
 
617
- The target is the origin and the sync prefix: `/sync/v1`, or `/agents/<id>/sync/v1` for an agent
618
- connection. `syncRoutePrefix({ origin, audience })` derives the prefix from a protected-resource
656
+ The target is the origin and the sync prefix, `/sync/v1`. `syncRoutePrefix({ origin, audience })` derives the prefix from a protected-resource
619
657
  audience and returns null when the audience has none. `credentials` is the transport carrier's
620
658
  own credential provider: an async function returning the headers for one request. It is called
621
659
  before every request, so it may renew a short-lived token. `bearerCredentials` builds one from a
@@ -1089,8 +1127,11 @@ or infers from instances. Its token binds candidate
1089
1127
  bytes (including supplied `inferredBody`/`inferredDescription`), edition, presence statistics and
1090
1128
  warning forecast. Pass the same prose options to `applyKindDraft`, which recomputes the plan and
1091
1129
  checks edition and declaration-free redraft eligibility against every fresh CAS head. New
1092
- conventions are expect-absent creates; accepted redrafts replace dismissal prose in place and
1093
- report dropped links. `dismissKind` accepts presentation-owned description/body, records no schema
1130
+ conventions are expect-absent creates. A redraft keeps the existing record's id, authored
1131
+ title and every frontmatter key the draft does not own; `plan.replacesProse` names each existing
1132
+ description or body it overwrites and `plan.replacesFields` each other existing value it changes
1133
+ (current and proposed). The token binds the merged candidate and those current values, and apply
1134
+ reports dropped links. `dismissKind` accepts presentation-owned description/body, records no schema
1094
1135
  obligations, refuses a real schema, and is idempotent. Definition writes retain recipe
1095
1136
  installation's generation-clock opt-out. `KindAuthoringError.reason` identifies domain refusals;
1096
1137
  normal mutation/storage errors retain their types.
package/dist/backend.d.ts CHANGED
@@ -24,13 +24,21 @@
24
24
  * at all — parsing is an implementation detail of THIS adapter, not of the seam.
25
25
  */
26
26
  import { type InventoryGuard } from "./inventory-guard.js";
27
+ import type { WalkPathClass } from "./paths.js";
27
28
  import type { BlobKey, ConceptId, DeleteOptions, OkfDocument, ReadBlobResult, ReadResult, ReservedFilename, ReservedReadResult, StorageBackend, Version, VersionInfo, WriteOptions } from "./types.js";
28
- import type { FilesystemBackendOptions } from "./filesystem-host.js";
29
+ import type { FilesystemBackendOptions, FilesystemHostPolicy } from "./filesystem-host.js";
29
30
  /**
30
31
  * The default {@link StorageBackend}: a filesystem-backed OKF bundle rooted at an
31
32
  * absolute directory. Concept documents are markdown files at `<id>.md`; reserved
32
33
  * files live at `<dir>/index.md` and `<dir>/log.md`.
33
34
  */
35
+ /**
36
+ * Run `body` holding the root lock every backend write to the bundle at `root` holds, for an outside
37
+ * step that moves files under the root (a Git rebase, say), so writes land before or after it,
38
+ * never inside it. `body` receives no capability and must not write through a backend for the same
39
+ * root: that write would wait on this lock.
40
+ */
41
+ export declare function withFilesystemRootMutationLock<T>(root: string, body: () => Promise<T>, hostPolicy?: FilesystemHostPolicy): Promise<T>;
34
42
  export declare class FilesystemBackend implements StorageBackend {
35
43
  #private;
36
44
  get inventoryGuard(): InventoryGuard;
@@ -54,6 +62,7 @@ export declare class FilesystemBackend implements StorageBackend {
54
62
  deleteBlob(key: BlobKey, options?: DeleteOptions): Promise<boolean>;
55
63
  existsBlob(key: BlobKey): Promise<boolean>;
56
64
  listBlobs(prefix?: string): Promise<BlobKey[]>;
65
+ classifyChangedPath(relPath: string): WalkPathClass;
57
66
  capabilities(): {
58
67
  readonly history: false;
59
68
  readonly enforced_cas: true;
@@ -62,6 +71,13 @@ export declare class FilesystemBackend implements StorageBackend {
62
71
  readonly backlinks: false;
63
72
  };
64
73
  }
74
+ /**
75
+ * Replace one bundle-relative file whole, under the same identity lock, exact spelling and
76
+ * raw-bytes compare-and-swap as `writeBlob`, for a caller that owns which files it may write (a
77
+ * board conflict keep of a file that is not a document). `expectedVersion` is the version of the
78
+ * bytes the caller judged, or null when it judged the file absent.
79
+ */
80
+ export declare function replaceFilesystemFile(backend: FilesystemBackend, rel: string, bytes: Uint8Array, expectedVersion: Version | null): Promise<Version>;
65
81
  /** Read-only exact-spelling metadata observation for a safe blob pathname. Reads no body and
66
82
  * creates no directories; alias/unsafe observations retain the identity owner's typed refusal. */
67
83
  export declare function probeFilesystemPath(backend: FilesystemBackend, key: string): Promise<"exact" | "absent">;
@@ -1 +1 @@
1
- {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"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"}
package/dist/backend.js CHANGED
@@ -29,12 +29,15 @@ import { assertInventoryGuardBound, bindInventoryGuard, captureInventoryGuardReq
29
29
  import { MalformedDocumentError, parseMarkdown, stringifyDoc } from "./frontmatter.js";
30
30
  import { readBundleOkfVersion } from "./engine.js";
31
31
  import { resolveContentType } from "./content-type.js";
32
- import { assertSafeBlobKey, assertSafeConceptId, assertSafeReservedDir, assertSafeReservedFilename, compareStorageKeys, conceptIdFromPath, isReservedFile, pathFromConceptId, toPosix, } from "./paths.js";
32
+ import { assertSafeBlobKey, assertSafeConceptId, assertSafeFilePath, assertSafeReservedDir, assertSafeReservedFilename, classifyWalkPath, compareStorageKeys, conceptIdFromPath, hasMarkdownExtension, isHiddenWalkEntry, isReservedFile, pathFromConceptId, toPosix, } from "./paths.js";
33
+ import { assertStorableReservedWrite } from "./reserved-write.js";
33
34
  import { InvalidInputError } from "./errors.js";
34
35
  import { mutateExact, createFilesystemMutationCoordinator, filesystemRootMutationKey, filesystemRootWitness, createNodeFilesystemIdentityPort, observeExact, openObservationPass, probeExact, } from "./filesystem-identity.js";
35
36
  import { mutationActorFromFrontmatter } from "./mutation-attribution.js";
36
37
  import { blobVersion, VersionConflict, versionOfBytes } from "./versioning.js";
37
38
  const publicationContexts = new WeakMap();
39
+ /** Each backend's own locked exact mutation, for {@link replaceFilesystemFile}; never handed out. */
40
+ const fileMutations = new WeakMap();
38
41
  /** First trimmed non-empty string among `vals`, else `undefined`. */
39
42
  function firstString(...vals) {
40
43
  for (const v of vals) {
@@ -79,8 +82,8 @@ async function walkFiles(port, root, keep, sub = "") {
79
82
  const entries = (await port.entries(path.join(root, sub))) ?? [];
80
83
  const out = [];
81
84
  for (const entry of entries) {
82
- if (entry.name.startsWith("."))
83
- continue; // .git, temp files, dot-dirs: invisible to the walk
85
+ if (isHiddenWalkEntry(entry.name))
86
+ continue;
84
87
  const rel = sub === "" ? entry.name : `${sub}/${entry.name}`;
85
88
  if (entry.kind === "directory") {
86
89
  out.push(...(await walkFiles(port, root, keep, rel)));
@@ -103,6 +106,15 @@ function reservedPath(dir, name) {
103
106
  * absolute directory. Concept documents are markdown files at `<id>.md`; reserved
104
107
  * files live at `<dir>/index.md` and `<dir>/log.md`.
105
108
  */
109
+ /**
110
+ * Run `body` holding the root lock every backend write to the bundle at `root` holds, for an outside
111
+ * step that moves files under the root (a Git rebase, say), so writes land before or after it,
112
+ * never inside it. `body` receives no capability and must not write through a backend for the same
113
+ * root: that write would wait on this lock.
114
+ */
115
+ export function withFilesystemRootMutationLock(root, body, hostPolicy) {
116
+ return createFilesystemMutationCoordinator(createNodeFilesystemIdentityPort(hostPolicy), path.resolve(root), hostPolicy).run(body);
117
+ }
106
118
  export class FilesystemBackend {
107
119
  #root;
108
120
  #port;
@@ -180,6 +192,7 @@ export class FilesystemBackend {
180
192
  this.#root = path.resolve(root);
181
193
  this.#coordinator = createFilesystemMutationCoordinator(this.#port, this.#root, options.hostPolicy);
182
194
  publicationContexts.set(this, { root: this.#root, port: this.#port });
195
+ fileMutations.set(this, (rel, body) => this.#mutateExact(rel, body));
183
196
  }
184
197
  async read(id) {
185
198
  return this.#readWithEdition(id, () => this.#readEdition());
@@ -339,8 +352,7 @@ export class FilesystemBackend {
339
352
  return { content, version: versionOfBytes(content) };
340
353
  }
341
354
  async writeReserved(dir, name, content, options = {}) {
342
- assertSafeReservedDir(dir);
343
- assertSafeReservedFilename(name);
355
+ assertStorableReservedWrite(dir, name, content);
344
356
  const rel = reservedPath(dir, name);
345
357
  // Same identity-keyed critical section as `write()`. A reserved-file read-modify-write
346
358
  // depends on a genuine `VersionConflict` under contention.
@@ -419,12 +431,15 @@ export class FilesystemBackend {
419
431
  // Skipping dot-entries is what excludes the adapter's own dot-prefixed temp files and `.git`
420
432
  // from a blob listing (I3), not just the write-time `assertSafeBlobKey` guard. The
421
433
  // `.md`-extension check is case-insensitive, mirroring `assertSafeBlobKey`.
422
- const files = await walkFiles(this.#port, this.#root, (name) => !name.toLowerCase().endsWith(".md"));
434
+ const files = await walkFiles(this.#port, this.#root, (name) => !hasMarkdownExtension(name));
423
435
  const keys = files.map(toPosix);
424
436
  const filtered = prefix ? keys.filter((k) => k.startsWith(prefix)) : keys;
425
437
  filtered.sort(compareStorageKeys);
426
438
  return filtered;
427
439
  }
440
+ classifyChangedPath(relPath) {
441
+ return classifyWalkPath(relPath);
442
+ }
428
443
  capabilities() {
429
444
  return {
430
445
  history: false,
@@ -442,6 +457,26 @@ function publicationContext(backend) {
442
457
  throw new InvalidInputError("Unknown filesystem backend publication source.");
443
458
  return context;
444
459
  }
460
+ /**
461
+ * Replace one bundle-relative file whole, under the same identity lock, exact spelling and
462
+ * raw-bytes compare-and-swap as `writeBlob`, for a caller that owns which files it may write (a
463
+ * board conflict keep of a file that is not a document). `expectedVersion` is the version of the
464
+ * bytes the caller judged, or null when it judged the file absent.
465
+ */
466
+ export async function replaceFilesystemFile(backend, rel, bytes, expectedVersion) {
467
+ assertSafeFilePath(rel);
468
+ const mutate = fileMutations.get(backend);
469
+ if (!mutate)
470
+ throw new InvalidInputError("Unknown filesystem backend.");
471
+ return mutate(rel, async (target) => {
472
+ const existing = await target.current();
473
+ const current = existing === null ? null : blobVersion(existing);
474
+ if (current !== expectedVersion)
475
+ throw new VersionConflict(rel, expectedVersion, current);
476
+ await target.replace(bytes);
477
+ return blobVersion(bytes);
478
+ });
479
+ }
445
480
  /** Read-only exact-spelling metadata observation for a safe blob pathname. Reads no body and
446
481
  * creates no directories; alias/unsafe observations retain the identity owner's typed refusal. */
447
482
  export async function probeFilesystemPath(backend, key) {
@@ -1 +1 @@
1
- {"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /** A page's body bound when the caller names none, in UTF-8 bytes. */
2
+ export declare const PAGE_DEFAULT_BYTES = 32768;
3
+ /** The smallest and largest page `doc read` serves, in UTF-8 bytes. */
4
+ export declare const PAGE_MIN_BYTES = 1024;
5
+ export declare const PAGE_MAX_BYTES = 983040;
6
+ export interface BodyPage {
7
+ readonly body: string;
8
+ readonly range: {
9
+ readonly offset: number;
10
+ readonly end: number;
11
+ readonly total_chars: number;
12
+ readonly total_bytes: number;
13
+ readonly complete: boolean;
14
+ readonly next_offset?: number;
15
+ };
16
+ }
17
+ /** The page of `body` at `offset`, or null when `offset` is not a page start (past the end, or
18
+ * inside a surrogate pair). */
19
+ export declare function bodyPage(body: string, offset: number, maxBytes: number): BodyPage | null;
20
+ //# sourceMappingURL=body-pages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"body-pages.d.ts","sourceRoot":"","sources":["../src/body-pages.ts"],"names":[],"mappings":"AAKA,sEAAsE;AACtE,eAAO,MAAM,kBAAkB,QAAS,CAAC;AACzC,uEAAuE;AACvE,eAAO,MAAM,cAAc,OAAQ,CAAC;AACpC,eAAO,MAAM,cAAc,SAAU,CAAC;AAItC,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;QAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;KAC/B,CAAC;CACH;AAoBD;+BAC+B;AAC/B,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAoBxF"}
@@ -0,0 +1,56 @@
1
+ // Pages of a document body for agents (`doc read --offset/--max-bytes`), the same contract the
2
+ // hosted MCP gateway's `read_document` answers (design `document-size-cap` on the superbee-dev
3
+ // board, section 4): offsets in UTF-16 code units, a page bound in UTF-8 bytes, never a split
4
+ // character, and a page that ends just after a line where one is near its cut.
5
+ /** A page's body bound when the caller names none, in UTF-8 bytes. */
6
+ export const PAGE_DEFAULT_BYTES = 32_768;
7
+ /** The smallest and largest page `doc read` serves, in UTF-8 bytes. */
8
+ export const PAGE_MIN_BYTES = 1_024;
9
+ export const PAGE_MAX_BYTES = 983_040;
10
+ /** How far back from a page's byte cut a newline still ends the page, in UTF-16 code units. */
11
+ const LINE_WINDOW = 4_096;
12
+ function pageEnd(body, offset, maxBytes) {
13
+ let bytes = 0;
14
+ let end = offset;
15
+ while (end < body.length) {
16
+ const code = body.codePointAt(end);
17
+ const width = code < 0x80 ? 1 : code < 0x800 ? 2 : code < 0x10000 ? 3 : 4;
18
+ if (bytes + width > maxBytes)
19
+ break;
20
+ bytes += width;
21
+ end += code >= 0x10000 ? 2 : 1;
22
+ }
23
+ if (end === offset && end < body.length)
24
+ end += body.codePointAt(end) >= 0x10000 ? 2 : 1;
25
+ if (end < body.length) {
26
+ const newline = body.lastIndexOf("\n", end - 1);
27
+ if (newline + 1 > offset && end - (newline + 1) <= LINE_WINDOW)
28
+ end = newline + 1;
29
+ }
30
+ return end;
31
+ }
32
+ /** The page of `body` at `offset`, or null when `offset` is not a page start (past the end, or
33
+ * inside a surrogate pair). */
34
+ export function bodyPage(body, offset, maxBytes) {
35
+ const within = (index, from, to) => {
36
+ const code = body.charCodeAt(index);
37
+ return code >= from && code <= to;
38
+ };
39
+ // Inside a pair: a low surrogate right after its high one.
40
+ const insidePair = offset > 0 && within(offset, 0xdc00, 0xdfff) && within(offset - 1, 0xd800, 0xdbff);
41
+ if (offset > body.length || (offset === body.length && body.length > 0) || insidePair)
42
+ return null;
43
+ const end = pageEnd(body, offset, maxBytes);
44
+ return {
45
+ body: body.slice(offset, end),
46
+ range: {
47
+ offset,
48
+ end,
49
+ total_chars: body.length,
50
+ total_bytes: new TextEncoder().encode(body).length,
51
+ complete: offset === 0 && end === body.length,
52
+ ...(end < body.length ? { next_offset: end } : {}),
53
+ },
54
+ };
55
+ }
56
+ //# sourceMappingURL=body-pages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"body-pages.js","sourceRoot":"","sources":["../src/body-pages.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,31 @@
1
1
  import { InvalidInputError } from "./errors.js";
2
2
  import type { KindConvention } from "./kinds.js";
3
3
  import type { Bundle, Link, OkfDocument } from "./types.js";
4
+ /** The preview bound, in characters, for records that may list many bodies (`doc history`,
5
+ * `sync show-incoming`). */
4
6
  export declare const BODY_PREVIEW_LIMIT = 1000;
7
+ /** The `doc read` record's body bound, in UTF-8 bytes: a body this size or smaller arrives whole.
8
+ * Agents mostly read through a shell tool, and Claude Code reads back at most 30,000 characters of
9
+ * a command's output by default (`BASH_MAX_OUTPUT_LENGTH`); 20 KiB of body leaves room for the
10
+ * frontmatter, string escaping and help inside that. */
11
+ export declare const DOC_READ_PREVIEW_BYTES = 20480;
5
12
  export declare const BODY_PREVIEW_TRUNCATION_MARKER = "[superbee:body-preview-truncated]";
6
13
  export declare const BODY_PREVIEW_TRUNCATION_SIGNATURE: RegExp;
7
14
  export declare const BODY_PREVIEW_KEY = "body_preview";
8
15
  export declare const BODY_PREVIEW_RESERVED_KEYS: readonly string[];
9
- export declare function attachBodyPreview(rec: Record<string, unknown>, body: string, fullBodyHelp: readonly string[]): void;
16
+ /** Where a preview stops, for its help to continue from. */
17
+ export interface BodyPreviewCut {
18
+ readonly shownChars: number;
19
+ readonly nextOffset: number;
20
+ }
21
+ /**
22
+ * Put `body` on `rec` whole, or, when it is over the bound, as a marked `body_preview`. A truncated
23
+ * record leads with a `warning` sentence and `body_truncated`, so a reader who stops at the first
24
+ * line still learns the value is partial.
25
+ */
26
+ export declare function attachBodyPreview(rec: Record<string, unknown>, body: string, fullBodyHelp: readonly string[] | ((cut: BodyPreviewCut) => readonly string[]), options?: {
27
+ pageBytes?: number;
28
+ }): void;
10
29
  export type BodyPreviewFinding = {
11
30
  reason: "preview_marker";
12
31
  marker: string;
@@ -35,9 +54,16 @@ export interface BodyReplacePosture {
35
54
  }
36
55
  /** Capture explicit per-write intent; truthy values and unknown flags never grant an override. */
37
56
  export declare function captureBodyReplacePosture(value: unknown): BodyReplacePosture | undefined;
38
- /** Exact pairs consume first; target mode then admits retext while preserving occurrence counts.
39
- * Exact-edge mode is available to authorities that protect relationship text as well. */
57
+ /** Exact pairs consume first; target mode then admits retext (a standalone edge only by another
58
+ * standalone link) while preserving occurrence counts. Exact-edge mode is available to authorities that protect
59
+ * relationship text as well. */
40
60
  export declare function computeDroppedLinks(existingLinks: readonly Link[], nextLinks: readonly Link[], mode?: "target" | "exact-edge"): Link[];
61
+ /**
62
+ * Every outbound cross-link a body carries, as the guard compares them: local document links (as
63
+ * `parseLinksFromDoc` reads them) and well-formed `okf:` links into another bundle outside code (as
64
+ * `parseQualifiedLinks` reads them). Web links are not cross-links.
65
+ */
66
+ export declare function outboundLinks(doc: OkfDocument): Link[];
41
67
  export declare function droppedLinks(_bundle: Bundle, existing: OkfDocument, nextBody: string): Link[];
42
68
  export declare function guardTruncatedBodyPreview(existing: OkfDocument, nextBody: string, acceptTruncatedBody: boolean): void;
43
69
  export declare function guardDroppedLinks(bundle: Bundle, existing: OkfDocument, nextBody: string, replaceLinks: boolean): void;
@@ -1 +1 @@
1
- {"version":3,"file":"body-replace-guards.d.ts","sourceRoot":"","sources":["../src/body-replace-guards.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"body-replace-guards.d.ts","sourceRoot":"","sources":["../src/body-replace-guards.ts"],"names":[],"mappings":"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"}