@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.
- package/README.md +50 -9
- package/dist/backend.d.ts +17 -1
- package/dist/backend.d.ts.map +1 -1
- package/dist/backend.js +41 -6
- package/dist/backend.js.map +1 -1
- package/dist/body-pages.d.ts +20 -0
- package/dist/body-pages.d.ts.map +1 -0
- package/dist/body-pages.js +56 -0
- package/dist/body-pages.js.map +1 -0
- package/dist/body-replace-guards.d.ts +29 -3
- package/dist/body-replace-guards.d.ts.map +1 -1
- package/dist/body-replace-guards.js +112 -19
- package/dist/body-replace-guards.js.map +1 -1
- package/dist/bounded-yaml.d.ts +28 -0
- package/dist/bounded-yaml.d.ts.map +1 -0
- package/dist/bounded-yaml.js +182 -0
- package/dist/bounded-yaml.js.map +1 -0
- package/dist/builtin-recipes/site.d.ts +5 -0
- package/dist/builtin-recipes/site.d.ts.map +1 -0
- package/dist/builtin-recipes/site.js +83 -0
- package/dist/builtin-recipes/site.js.map +1 -0
- package/dist/builtin-recipes.d.ts.map +1 -1
- package/dist/builtin-recipes.js +22 -0
- package/dist/builtin-recipes.js.map +1 -1
- package/dist/bundle-health/index.d.ts +2 -2
- package/dist/bundle-health/index.d.ts.map +1 -1
- package/dist/bundle-health/index.js +1 -1
- package/dist/bundle-health/index.js.map +1 -1
- package/dist/bundle-health/legacy-page.d.ts +8 -26
- package/dist/bundle-health/legacy-page.d.ts.map +1 -1
- package/dist/bundle-health/legacy-page.js +10 -35
- package/dist/bundle-health/legacy-page.js.map +1 -1
- package/dist/bundle-health/report.d.ts +0 -16
- package/dist/bundle-health/report.d.ts.map +1 -1
- package/dist/bundle-health/report.js +24 -54
- package/dist/bundle-health/report.js.map +1 -1
- package/dist/bundle-ops.d.ts +4 -1
- package/dist/bundle-ops.d.ts.map +1 -1
- package/dist/bundle-ops.js +6 -2
- package/dist/bundle-ops.js.map +1 -1
- package/dist/bundle.d.ts +1 -1
- package/dist/bundle.d.ts.map +1 -1
- package/dist/bundle.js +1 -1
- package/dist/bundle.js.map +1 -1
- package/dist/cross-bundle.d.ts +2 -2
- package/dist/cross-bundle.js +2 -2
- package/dist/document-codec.d.ts +3 -1
- package/dist/document-codec.d.ts.map +1 -1
- package/dist/document-codec.js +3 -1
- package/dist/document-codec.js.map +1 -1
- package/dist/document-mutation.d.ts.map +1 -1
- package/dist/document-mutation.js +39 -9
- package/dist/document-mutation.js.map +1 -1
- package/dist/document-scan.d.ts +23 -0
- package/dist/document-scan.d.ts.map +1 -0
- package/dist/document-scan.js +70 -0
- package/dist/document-scan.js.map +1 -0
- package/dist/document-transfer.d.ts +110 -4
- package/dist/document-transfer.d.ts.map +1 -1
- package/dist/document-transfer.js +490 -30
- package/dist/document-transfer.js.map +1 -1
- package/dist/engine.d.ts +4 -19
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +7 -47
- package/dist/engine.js.map +1 -1
- package/dist/errors.d.ts +37 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +75 -3
- package/dist/errors.js.map +1 -1
- package/dist/file-journaled-backend.d.ts.map +1 -1
- package/dist/file-journaled-backend.js +2 -2
- package/dist/file-journaled-backend.js.map +1 -1
- package/dist/filesystem-identity.d.ts +9 -0
- package/dist/filesystem-identity.d.ts.map +1 -1
- package/dist/filesystem-identity.js +186 -64
- package/dist/filesystem-identity.js.map +1 -1
- package/dist/filesystem-lock.d.ts +2 -2
- package/dist/filesystem-lock.d.ts.map +1 -1
- package/dist/filesystem-lock.js +81 -14
- package/dist/filesystem-lock.js.map +1 -1
- package/dist/filesystem-temp-name.d.ts +9 -0
- package/dist/filesystem-temp-name.d.ts.map +1 -0
- package/dist/filesystem-temp-name.js +20 -0
- package/dist/filesystem-temp-name.js.map +1 -0
- package/dist/filesystem.d.ts +6 -0
- package/dist/filesystem.d.ts.map +1 -1
- package/dist/filesystem.js +2 -1
- package/dist/filesystem.js.map +1 -1
- package/dist/frontmatter-contract.d.ts +14 -0
- package/dist/frontmatter-contract.d.ts.map +1 -1
- package/dist/frontmatter-contract.js +22 -0
- package/dist/frontmatter-contract.js.map +1 -1
- package/dist/frontmatter-splitter.d.ts +6 -0
- package/dist/frontmatter-splitter.d.ts.map +1 -1
- package/dist/frontmatter-splitter.js +8 -0
- package/dist/frontmatter-splitter.js.map +1 -1
- package/dist/frontmatter.d.ts +8 -1
- package/dist/frontmatter.d.ts.map +1 -1
- package/dist/frontmatter.js +43 -7
- package/dist/frontmatter.js.map +1 -1
- package/dist/hosted-client/client.d.ts +22 -5
- package/dist/hosted-client/client.d.ts.map +1 -1
- package/dist/hosted-client/client.js +57 -10
- package/dist/hosted-client/client.js.map +1 -1
- package/dist/hosted-client/index.d.ts +1 -0
- package/dist/hosted-client/index.d.ts.map +1 -1
- package/dist/hosted-client/index.js +1 -0
- package/dist/hosted-client/index.js.map +1 -1
- package/dist/hosted-client/view-content.d.ts +107 -0
- package/dist/hosted-client/view-content.d.ts.map +1 -0
- package/dist/hosted-client/view-content.js +155 -0
- package/dist/hosted-client/view-content.js.map +1 -0
- package/dist/hosted-transport/carrier.d.ts +1 -1
- package/dist/hosted-transport/carrier.d.ts.map +1 -1
- package/dist/hosted-transport/carrier.js +27 -18
- package/dist/hosted-transport/carrier.js.map +1 -1
- package/dist/hosted-transport/read-adapter.d.ts +1 -2
- package/dist/hosted-transport/read-adapter.d.ts.map +1 -1
- package/dist/hosted-transport/read-adapter.js.map +1 -1
- package/dist/identity-fold.d.ts +12 -14
- package/dist/identity-fold.d.ts.map +1 -1
- package/dist/identity-fold.js +17 -15
- package/dist/identity-fold.js.map +1 -1
- package/dist/index-projection.d.ts +2 -1
- package/dist/index-projection.d.ts.map +1 -1
- package/dist/index-projection.js +14 -5
- package/dist/index-projection.js.map +1 -1
- package/dist/index.d.ts +24 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -15
- package/dist/index.js.map +1 -1
- package/dist/indexeddb-backend.d.ts.map +1 -1
- package/dist/indexeddb-backend.js +2 -2
- package/dist/indexeddb-backend.js.map +1 -1
- package/dist/json-data.d.ts +3 -0
- package/dist/json-data.d.ts.map +1 -0
- package/dist/json-data.js +19 -0
- package/dist/json-data.js.map +1 -0
- package/dist/kind-authoring.d.ts +18 -0
- package/dist/kind-authoring.d.ts.map +1 -1
- package/dist/kind-authoring.js +54 -4
- package/dist/kind-authoring.js.map +1 -1
- package/dist/kind-coverage.d.ts +1 -0
- package/dist/kind-coverage.d.ts.map +1 -1
- package/dist/kind-coverage.js +4 -5
- package/dist/kind-coverage.js.map +1 -1
- package/dist/kind-undeclared-fields.d.ts +70 -0
- package/dist/kind-undeclared-fields.d.ts.map +1 -0
- package/dist/kind-undeclared-fields.js +120 -0
- package/dist/kind-undeclared-fields.js.map +1 -0
- package/dist/kinds-load.d.ts.map +1 -1
- package/dist/kinds-load.js +4 -1
- package/dist/kinds-load.js.map +1 -1
- package/dist/kinds.d.ts +9 -0
- package/dist/kinds.d.ts.map +1 -1
- package/dist/kinds.js +20 -0
- package/dist/kinds.js.map +1 -1
- package/dist/link-findings.d.ts +130 -0
- package/dist/link-findings.d.ts.map +1 -0
- package/dist/link-findings.js +272 -0
- package/dist/link-findings.js.map +1 -0
- package/dist/link-types.d.ts +7 -0
- package/dist/link-types.d.ts.map +1 -1
- package/dist/link-types.js +17 -2
- package/dist/link-types.js.map +1 -1
- package/dist/memory-backend.d.ts.map +1 -1
- package/dist/memory-backend.js +2 -2
- package/dist/memory-backend.js.map +1 -1
- package/dist/page.d.ts +3 -7
- package/dist/page.d.ts.map +1 -1
- package/dist/page.js +3 -7
- package/dist/page.js.map +1 -1
- package/dist/path-fold.d.ts +29 -16
- package/dist/path-fold.d.ts.map +1 -1
- package/dist/path-fold.js +30 -17
- package/dist/path-fold.js.map +1 -1
- package/dist/paths.d.ts +28 -0
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +82 -1
- package/dist/paths.js.map +1 -1
- package/dist/platform.d.ts +9 -0
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js.map +1 -1
- package/dist/portable-frontmatter.d.ts +6 -0
- package/dist/portable-frontmatter.d.ts.map +1 -1
- package/dist/portable-frontmatter.js +26 -2
- package/dist/portable-frontmatter.js.map +1 -1
- package/dist/recipe-lifecycle/install.d.ts +4 -7
- package/dist/recipe-lifecycle/install.d.ts.map +1 -1
- package/dist/recipe-lifecycle/install.js +3 -20
- package/dist/recipe-lifecycle/install.js.map +1 -1
- package/dist/recipe-lifecycle/legacy-aliases.d.ts +1 -13
- package/dist/recipe-lifecycle/legacy-aliases.d.ts.map +1 -1
- package/dist/recipe-lifecycle/legacy-aliases.js +5 -34
- package/dist/recipe-lifecycle/legacy-aliases.js.map +1 -1
- package/dist/record-overlay/apply.d.ts.map +1 -1
- package/dist/record-overlay/apply.js +0 -4
- package/dist/record-overlay/apply.js.map +1 -1
- package/dist/record-overlay/findings.d.ts.map +1 -1
- package/dist/record-overlay/findings.js +4 -1
- package/dist/record-overlay/findings.js.map +1 -1
- package/dist/record-overlay/plan.js +3 -3
- package/dist/record-overlay/plan.js.map +1 -1
- package/dist/record-overlay/signal-text.d.ts +9 -2
- package/dist/record-overlay/signal-text.d.ts.map +1 -1
- package/dist/record-overlay/signal-text.js +21 -11
- package/dist/record-overlay/signal-text.js.map +1 -1
- package/dist/remote-backend.d.ts +9 -19
- package/dist/remote-backend.d.ts.map +1 -1
- package/dist/remote-backend.js +17 -5
- package/dist/remote-backend.js.map +1 -1
- package/dist/remote-operations.d.ts.map +1 -1
- package/dist/remote-operations.js +2 -0
- package/dist/remote-operations.js.map +1 -1
- package/dist/remote-parsers.d.ts +19 -0
- package/dist/remote-parsers.d.ts.map +1 -1
- package/dist/remote-parsers.js.map +1 -1
- package/dist/remote.d.ts +2 -4
- package/dist/remote.d.ts.map +1 -1
- package/dist/remote.js +2 -3
- package/dist/remote.js.map +1 -1
- package/dist/reserved-write.d.ts +9 -0
- package/dist/reserved-write.d.ts.map +1 -0
- package/dist/reserved-write.js +15 -0
- package/dist/reserved-write.js.map +1 -0
- package/dist/search/backend-source.d.ts +2 -2
- package/dist/search/backend-source.d.ts.map +1 -1
- package/dist/search/backend-source.js +30 -6
- package/dist/search/backend-source.js.map +1 -1
- package/dist/search/contract.d.ts +3 -0
- package/dist/search/contract.d.ts.map +1 -1
- package/dist/search/contract.js.map +1 -1
- package/dist/search/search.d.ts.map +1 -1
- package/dist/search/search.js +4 -1
- package/dist/search/search.js.map +1 -1
- package/dist/search/source.d.ts +3 -0
- package/dist/search/source.d.ts.map +1 -1
- package/dist/site-manifest.d.ts +49 -0
- package/dist/site-manifest.d.ts.map +1 -0
- package/dist/site-manifest.js +113 -0
- package/dist/site-manifest.js.map +1 -0
- package/dist/skip-reasons.d.ts +12 -0
- package/dist/skip-reasons.d.ts.map +1 -0
- package/dist/skip-reasons.js +15 -0
- package/dist/skip-reasons.js.map +1 -0
- package/dist/source-engine/driver.d.ts +1 -3
- package/dist/source-engine/driver.d.ts.map +1 -1
- package/dist/source-engine/driver.js +2 -18
- package/dist/source-engine/driver.js.map +1 -1
- package/dist/source-profiles/index.d.ts +1 -1
- package/dist/source-profiles/index.js +1 -1
- package/dist/string-identity-agreement.d.ts +1 -1
- package/dist/string-identity-agreement.d.ts.map +1 -1
- package/dist/string-identity-agreement.js +6 -0
- package/dist/string-identity-agreement.js.map +1 -1
- package/dist/system-documents.d.ts +13 -0
- package/dist/system-documents.d.ts.map +1 -0
- package/dist/system-documents.js +44 -0
- package/dist/system-documents.js.map +1 -0
- package/dist/types.d.ts +7 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/validation.d.ts +5 -0
- package/dist/validation.d.ts.map +1 -1
- 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,
|
|
485
|
-
unresolved links, orphans, freshness and invalid timestamps, trust tiers, the two
|
|
486
|
-
View surface, cross-bundle links
|
|
487
|
-
|
|
488
|
-
the CLI adds row caps, help text and
|
|
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
|
|
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
|
|
1093
|
-
|
|
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">;
|
package/dist/backend.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,EAAmN,KAAK,cAAc,EAA6B,MAAM,sBAAsB,CAAC;
|
|
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
|
|
83
|
-
continue;
|
|
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
|
-
|
|
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
|
|
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) {
|
package/dist/backend.js.map
CHANGED
|
@@ -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
|
-
|
|
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
|
|
39
|
-
* Exact-edge mode is available to authorities that protect
|
|
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":"
|
|
1
|
+
{"version":3,"file":"body-replace-guards.d.ts","sourceRoot":"","sources":["../src/body-replace-guards.ts"],"names":[],"mappings":"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"}
|