@agent-teams/document-authoring 0.0.0
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/CHANGELOG.md +5 -0
- package/LICENSE +201 -0
- package/README.md +11 -0
- package/dist/adapters/canonical-markdown.d.ts +14 -0
- package/dist/adapters/canonical-markdown.d.ts.map +1 -0
- package/dist/adapters/canonical-markdown.js +354 -0
- package/dist/adapters/canonical-markdown.js.map +1 -0
- package/dist/adapters/inbound/cli/document-command-renderer.d.ts +6 -0
- package/dist/adapters/inbound/cli/document-command-renderer.d.ts.map +1 -0
- package/dist/adapters/inbound/cli/document-command-renderer.js +123 -0
- package/dist/adapters/inbound/cli/document-command-renderer.js.map +1 -0
- package/dist/adapters/node/load-validated-document-authoring-profile-v2.d.ts +52 -0
- package/dist/adapters/node/load-validated-document-authoring-profile-v2.d.ts.map +1 -0
- package/dist/adapters/node/load-validated-document-authoring-profile-v2.js +103 -0
- package/dist/adapters/node/load-validated-document-authoring-profile-v2.js.map +1 -0
- package/dist/adapters/node/load-validated-document-authoring-profile.d.ts +33 -0
- package/dist/adapters/node/load-validated-document-authoring-profile.d.ts.map +1 -0
- package/dist/adapters/node/load-validated-document-authoring-profile.js +47 -0
- package/dist/adapters/node/load-validated-document-authoring-profile.js.map +1 -0
- package/dist/adapters/node/node-authoring-profile-reader-v2.d.ts +9 -0
- package/dist/adapters/node/node-authoring-profile-reader-v2.d.ts.map +1 -0
- package/dist/adapters/node/node-authoring-profile-reader-v2.js +42 -0
- package/dist/adapters/node/node-authoring-profile-reader-v2.js.map +1 -0
- package/dist/adapters/node/node-authoring-profile-reader.d.ts +9 -0
- package/dist/adapters/node/node-authoring-profile-reader.d.ts.map +1 -0
- package/dist/adapters/node/node-authoring-profile-reader.js +31 -0
- package/dist/adapters/node/node-authoring-profile-reader.js.map +1 -0
- package/dist/adapters/node/node-document-contract-validator.d.ts +7 -0
- package/dist/adapters/node/node-document-contract-validator.d.ts.map +1 -0
- package/dist/adapters/node/node-document-contract-validator.js +306 -0
- package/dist/adapters/node/node-document-contract-validator.js.map +1 -0
- package/dist/adapters/node/node-document-environment-inspector.d.ts +17 -0
- package/dist/adapters/node/node-document-environment-inspector.d.ts.map +1 -0
- package/dist/adapters/node/node-document-environment-inspector.js +49 -0
- package/dist/adapters/node/node-document-environment-inspector.js.map +1 -0
- package/dist/adapters/node/node-document-file-state.d.ts +21 -0
- package/dist/adapters/node/node-document-file-state.d.ts.map +1 -0
- package/dist/adapters/node/node-document-file-state.js +199 -0
- package/dist/adapters/node/node-document-file-state.js.map +1 -0
- package/dist/adapters/node/node-document-journal-store-faults.d.ts +36 -0
- package/dist/adapters/node/node-document-journal-store-faults.d.ts.map +1 -0
- package/dist/adapters/node/node-document-journal-store-faults.js +2 -0
- package/dist/adapters/node/node-document-journal-store-faults.js.map +1 -0
- package/dist/adapters/node/node-document-journal-store-private.d.ts +2 -0
- package/dist/adapters/node/node-document-journal-store-private.d.ts.map +1 -0
- package/dist/adapters/node/node-document-journal-store-private.js +2 -0
- package/dist/adapters/node/node-document-journal-store-private.js.map +1 -0
- package/dist/adapters/node/node-document-journal-store.d.ts +22 -0
- package/dist/adapters/node/node-document-journal-store.d.ts.map +1 -0
- package/dist/adapters/node/node-document-journal-store.js +235 -0
- package/dist/adapters/node/node-document-journal-store.js.map +1 -0
- package/dist/adapters/node/node-document-metadata-sidecar-reader.d.ts +9 -0
- package/dist/adapters/node/node-document-metadata-sidecar-reader.d.ts.map +1 -0
- package/dist/adapters/node/node-document-metadata-sidecar-reader.js +87 -0
- package/dist/adapters/node/node-document-metadata-sidecar-reader.js.map +1 -0
- package/dist/adapters/node/node-document-parent-materializer.d.ts +39 -0
- package/dist/adapters/node/node-document-parent-materializer.d.ts.map +1 -0
- package/dist/adapters/node/node-document-parent-materializer.js +269 -0
- package/dist/adapters/node/node-document-parent-materializer.js.map +1 -0
- package/dist/adapters/node/node-document-planning-profile-reader.d.ts +10 -0
- package/dist/adapters/node/node-document-planning-profile-reader.d.ts.map +1 -0
- package/dist/adapters/node/node-document-planning-profile-reader.js +85 -0
- package/dist/adapters/node/node-document-planning-profile-reader.js.map +1 -0
- package/dist/adapters/node/node-document-planning-state-reader.d.ts +11 -0
- package/dist/adapters/node/node-document-planning-state-reader.d.ts.map +1 -0
- package/dist/adapters/node/node-document-planning-state-reader.js +181 -0
- package/dist/adapters/node/node-document-planning-state-reader.js.map +1 -0
- package/dist/adapters/node/node-document-publisher-private.d.ts +2 -0
- package/dist/adapters/node/node-document-publisher-private.d.ts.map +1 -0
- package/dist/adapters/node/node-document-publisher-private.js +2 -0
- package/dist/adapters/node/node-document-publisher-private.js.map +1 -0
- package/dist/adapters/node/node-document-publisher.d.ts +54 -0
- package/dist/adapters/node/node-document-publisher.d.ts.map +1 -0
- package/dist/adapters/node/node-document-publisher.js +336 -0
- package/dist/adapters/node/node-document-publisher.js.map +1 -0
- package/dist/adapters/node/node-document-reachability-projector.d.ts +17 -0
- package/dist/adapters/node/node-document-reachability-projector.d.ts.map +1 -0
- package/dist/adapters/node/node-document-reachability-projector.js +43 -0
- package/dist/adapters/node/node-document-reachability-projector.js.map +1 -0
- package/dist/adapters/node/node-document-structure-verifier.d.ts +21 -0
- package/dist/adapters/node/node-document-structure-verifier.d.ts.map +1 -0
- package/dist/adapters/node/node-document-structure-verifier.js +80 -0
- package/dist/adapters/node/node-document-structure-verifier.js.map +1 -0
- package/dist/adapters/node/node-document-template-reader.d.ts +10 -0
- package/dist/adapters/node/node-document-template-reader.d.ts.map +1 -0
- package/dist/adapters/node/node-document-template-reader.js +32 -0
- package/dist/adapters/node/node-document-template-reader.js.map +1 -0
- package/dist/adapters/node/node-document-transaction-coordinator.d.ts +11 -0
- package/dist/adapters/node/node-document-transaction-coordinator.d.ts.map +1 -0
- package/dist/adapters/node/node-document-transaction-coordinator.js +60 -0
- package/dist/adapters/node/node-document-transaction-coordinator.js.map +1 -0
- package/dist/adapters/node/node-metadata-instance-validator.d.ts +9 -0
- package/dist/adapters/node/node-metadata-instance-validator.d.ts.map +1 -0
- package/dist/adapters/node/node-metadata-instance-validator.js +90 -0
- package/dist/adapters/node/node-metadata-instance-validator.js.map +1 -0
- package/dist/adapters/node/node-owner-membership-reader.d.ts +10 -0
- package/dist/adapters/node/node-owner-membership-reader.d.ts.map +1 -0
- package/dist/adapters/node/node-owner-membership-reader.js +62 -0
- package/dist/adapters/node/node-owner-membership-reader.js.map +1 -0
- package/dist/adapters/node/node-path-authority.d.ts +53 -0
- package/dist/adapters/node/node-path-authority.d.ts.map +1 -0
- package/dist/adapters/node/node-path-authority.js +186 -0
- package/dist/adapters/node/node-path-authority.js.map +1 -0
- package/dist/adapters/node/read-document-authority-file.d.ts +12 -0
- package/dist/adapters/node/read-document-authority-file.d.ts.map +1 -0
- package/dist/adapters/node/read-document-authority-file.js +78 -0
- package/dist/adapters/node/read-document-authority-file.js.map +1 -0
- package/dist/adapters/node/recapture-document-publication-paths.d.ts +17 -0
- package/dist/adapters/node/recapture-document-publication-paths.d.ts.map +1 -0
- package/dist/adapters/node/recapture-document-publication-paths.js +33 -0
- package/dist/adapters/node/recapture-document-publication-paths.js.map +1 -0
- package/dist/application/model/document-authoring-profile-description.d.ts +57 -0
- package/dist/application/model/document-authoring-profile-description.d.ts.map +1 -0
- package/dist/application/model/document-authoring-profile-description.js +2 -0
- package/dist/application/model/document-authoring-profile-description.js.map +1 -0
- package/dist/application/model/document-catalog.d.ts +88 -0
- package/dist/application/model/document-catalog.d.ts.map +1 -0
- package/dist/application/model/document-catalog.js +2 -0
- package/dist/application/model/document-catalog.js.map +1 -0
- package/dist/application/model/document-command.d.ts +69 -0
- package/dist/application/model/document-command.d.ts.map +1 -0
- package/dist/application/model/document-command.js +2 -0
- package/dist/application/model/document-command.js.map +1 -0
- package/dist/application/model/document-find.d.ts +22 -0
- package/dist/application/model/document-find.d.ts.map +1 -0
- package/dist/application/model/document-find.js +2 -0
- package/dist/application/model/document-find.js.map +1 -0
- package/dist/application/model/document-parent-materialization.d.ts +26 -0
- package/dist/application/model/document-parent-materialization.d.ts.map +1 -0
- package/dist/application/model/document-parent-materialization.js +2 -0
- package/dist/application/model/document-parent-materialization.js.map +1 -0
- package/dist/application/model/document-physical-identity.d.ts +10 -0
- package/dist/application/model/document-physical-identity.d.ts.map +1 -0
- package/dist/application/model/document-physical-identity.js +29 -0
- package/dist/application/model/document-physical-identity.js.map +1 -0
- package/dist/application/model/document-planning.d.ts +209 -0
- package/dist/application/model/document-planning.d.ts.map +1 -0
- package/dist/application/model/document-planning.js +2 -0
- package/dist/application/model/document-planning.js.map +1 -0
- package/dist/application/model/document-receipt.d.ts +101 -0
- package/dist/application/model/document-receipt.d.ts.map +1 -0
- package/dist/application/model/document-receipt.js +2 -0
- package/dist/application/model/document-receipt.js.map +1 -0
- package/dist/application/model/document-transaction-inspection.d.ts +66 -0
- package/dist/application/model/document-transaction-inspection.d.ts.map +1 -0
- package/dist/application/model/document-transaction-inspection.js +2 -0
- package/dist/application/model/document-transaction-inspection.js.map +1 -0
- package/dist/application/model/document-transaction.d.ts +169 -0
- package/dist/application/model/document-transaction.d.ts.map +1 -0
- package/dist/application/model/document-transaction.js +2 -0
- package/dist/application/model/document-transaction.js.map +1 -0
- package/dist/application/policies/assert-artifact-owner-allowed.d.ts +3 -0
- package/dist/application/policies/assert-artifact-owner-allowed.d.ts.map +1 -0
- package/dist/application/policies/assert-artifact-owner-allowed.js +8 -0
- package/dist/application/policies/assert-artifact-owner-allowed.js.map +1 -0
- package/dist/application/policies/assert-v2-planning-profile.d.ts +3 -0
- package/dist/application/policies/assert-v2-planning-profile.d.ts.map +1 -0
- package/dist/application/policies/assert-v2-planning-profile.js +7 -0
- package/dist/application/policies/assert-v2-planning-profile.js.map +1 -0
- package/dist/application/policies/authoring-profile-semantics.d.ts +42 -0
- package/dist/application/policies/authoring-profile-semantics.d.ts.map +1 -0
- package/dist/application/policies/authoring-profile-semantics.js +129 -0
- package/dist/application/policies/authoring-profile-semantics.js.map +1 -0
- package/dist/application/policies/classify-document-recovery.d.ts +81 -0
- package/dist/application/policies/classify-document-recovery.d.ts.map +1 -0
- package/dist/application/policies/classify-document-recovery.js +138 -0
- package/dist/application/policies/classify-document-recovery.js.map +1 -0
- package/dist/application/policies/document-authoring-semantic-digests.d.ts +31 -0
- package/dist/application/policies/document-authoring-semantic-digests.d.ts.map +1 -0
- package/dist/application/policies/document-authoring-semantic-digests.js +163 -0
- package/dist/application/policies/document-authoring-semantic-digests.js.map +1 -0
- package/dist/application/policies/document-catalog-authority-stability.d.ts +12 -0
- package/dist/application/policies/document-catalog-authority-stability.d.ts.map +1 -0
- package/dist/application/policies/document-catalog-authority-stability.js +16 -0
- package/dist/application/policies/document-catalog-authority-stability.js.map +1 -0
- package/dist/application/policies/document-catalog-diagnostics.d.ts +8 -0
- package/dist/application/policies/document-catalog-diagnostics.d.ts.map +1 -0
- package/dist/application/policies/document-catalog-diagnostics.js +44 -0
- package/dist/application/policies/document-catalog-diagnostics.js.map +1 -0
- package/dist/application/policies/document-catalog-fields.d.ts +18 -0
- package/dist/application/policies/document-catalog-fields.d.ts.map +1 -0
- package/dist/application/policies/document-catalog-fields.js +62 -0
- package/dist/application/policies/document-catalog-fields.js.map +1 -0
- package/dist/application/policies/document-catalog-sidecar.d.ts +10 -0
- package/dist/application/policies/document-catalog-sidecar.d.ts.map +1 -0
- package/dist/application/policies/document-catalog-sidecar.js +66 -0
- package/dist/application/policies/document-catalog-sidecar.js.map +1 -0
- package/dist/application/policies/document-command-consumer-root.d.ts +2 -0
- package/dist/application/policies/document-command-consumer-root.d.ts.map +1 -0
- package/dist/application/policies/document-command-consumer-root.js +15 -0
- package/dist/application/policies/document-command-consumer-root.js.map +1 -0
- package/dist/application/policies/document-command-projection.d.ts +20 -0
- package/dist/application/policies/document-command-projection.d.ts.map +1 -0
- package/dist/application/policies/document-command-projection.js +90 -0
- package/dist/application/policies/document-command-projection.js.map +1 -0
- package/dist/application/policies/document-contract-digests.d.ts +20 -0
- package/dist/application/policies/document-contract-digests.d.ts.map +1 -0
- package/dist/application/policies/document-contract-digests.js +329 -0
- package/dist/application/policies/document-contract-digests.js.map +1 -0
- package/dist/application/policies/document-logical-preimage.d.ts +14 -0
- package/dist/application/policies/document-logical-preimage.d.ts.map +1 -0
- package/dist/application/policies/document-logical-preimage.js +61 -0
- package/dist/application/policies/document-logical-preimage.js.map +1 -0
- package/dist/application/policies/document-planning-policy-error.d.ts +6 -0
- package/dist/application/policies/document-planning-policy-error.d.ts.map +1 -0
- package/dist/application/policies/document-planning-policy-error.js +9 -0
- package/dist/application/policies/document-planning-policy-error.js.map +1 -0
- package/dist/application/policies/document-receipt-policy.d.ts +5 -0
- package/dist/application/policies/document-receipt-policy.d.ts.map +1 -0
- package/dist/application/policies/document-receipt-policy.js +92 -0
- package/dist/application/policies/document-receipt-policy.js.map +1 -0
- package/dist/application/policies/document-repository-path.d.ts +3 -0
- package/dist/application/policies/document-repository-path.d.ts.map +1 -0
- package/dist/application/policies/document-repository-path.js +24 -0
- package/dist/application/policies/document-repository-path.js.map +1 -0
- package/dist/application/policies/document-temporary-path.d.ts +7 -0
- package/dist/application/policies/document-temporary-path.d.ts.map +1 -0
- package/dist/application/policies/document-temporary-path.js +34 -0
- package/dist/application/policies/document-temporary-path.js.map +1 -0
- package/dist/application/policies/document-transaction-digests.d.ts +5 -0
- package/dist/application/policies/document-transaction-digests.d.ts.map +1 -0
- package/dist/application/policies/document-transaction-digests.js +12 -0
- package/dist/application/policies/document-transaction-digests.js.map +1 -0
- package/dist/application/policies/document-transaction-envelope-body.d.ts +28 -0
- package/dist/application/policies/document-transaction-envelope-body.d.ts.map +1 -0
- package/dist/application/policies/document-transaction-envelope-body.js +140 -0
- package/dist/application/policies/document-transaction-envelope-body.js.map +1 -0
- package/dist/application/policies/document-transaction-envelope-policy.d.ts +4 -0
- package/dist/application/policies/document-transaction-envelope-policy.d.ts.map +1 -0
- package/dist/application/policies/document-transaction-envelope-policy.js +159 -0
- package/dist/application/policies/document-transaction-envelope-policy.js.map +1 -0
- package/dist/application/policies/inspect-catalog-document.d.ts +18 -0
- package/dist/application/policies/inspect-catalog-document.d.ts.map +1 -0
- package/dist/application/policies/inspect-catalog-document.js +126 -0
- package/dist/application/policies/inspect-catalog-document.js.map +1 -0
- package/dist/application/policies/normalize-document-intent.d.ts +3 -0
- package/dist/application/policies/normalize-document-intent.d.ts.map +1 -0
- package/dist/application/policies/normalize-document-intent.js +104 -0
- package/dist/application/policies/normalize-document-intent.js.map +1 -0
- package/dist/application/policies/project-catalog-metadata.d.ts +7 -0
- package/dist/application/policies/project-catalog-metadata.d.ts.map +1 -0
- package/dist/application/policies/project-catalog-metadata.js +165 -0
- package/dist/application/policies/project-catalog-metadata.js.map +1 -0
- package/dist/application/policies/project-document-reachability.d.ts +14 -0
- package/dist/application/policies/project-document-reachability.d.ts.map +1 -0
- package/dist/application/policies/project-document-reachability.js +57 -0
- package/dist/application/policies/project-document-reachability.js.map +1 -0
- package/dist/application/policies/project-similar-document-advice.d.ts +4 -0
- package/dist/application/policies/project-similar-document-advice.d.ts.map +1 -0
- package/dist/application/policies/project-similar-document-advice.js +17 -0
- package/dist/application/policies/project-similar-document-advice.js.map +1 -0
- package/dist/application/policies/resolve-document-authoring.d.ts +13 -0
- package/dist/application/policies/resolve-document-authoring.d.ts.map +1 -0
- package/dist/application/policies/resolve-document-authoring.js +154 -0
- package/dist/application/policies/resolve-document-authoring.js.map +1 -0
- package/dist/application/policies/same-document-catalog-snapshot.d.ts +3 -0
- package/dist/application/policies/same-document-catalog-snapshot.d.ts.map +1 -0
- package/dist/application/policies/same-document-catalog-snapshot.js +24 -0
- package/dist/application/policies/same-document-catalog-snapshot.js.map +1 -0
- package/dist/application/ports/authoring-profile-reader.d.ts +37 -0
- package/dist/application/ports/authoring-profile-reader.d.ts.map +1 -0
- package/dist/application/ports/authoring-profile-reader.js +2 -0
- package/dist/application/ports/authoring-profile-reader.js.map +1 -0
- package/dist/application/ports/canonical-document-renderer.d.ts +29 -0
- package/dist/application/ports/canonical-document-renderer.d.ts.map +1 -0
- package/dist/application/ports/canonical-document-renderer.js +2 -0
- package/dist/application/ports/canonical-document-renderer.js.map +1 -0
- package/dist/application/ports/document-authority-recompiler.d.ts +19 -0
- package/dist/application/ports/document-authority-recompiler.d.ts.map +1 -0
- package/dist/application/ports/document-authority-recompiler.js +2 -0
- package/dist/application/ports/document-authority-recompiler.js.map +1 -0
- package/dist/application/ports/document-contract-validator.d.ts +6 -0
- package/dist/application/ports/document-contract-validator.d.ts.map +1 -0
- package/dist/application/ports/document-contract-validator.js +2 -0
- package/dist/application/ports/document-contract-validator.js.map +1 -0
- package/dist/application/ports/document-environment-inspector.d.ts +12 -0
- package/dist/application/ports/document-environment-inspector.d.ts.map +1 -0
- package/dist/application/ports/document-environment-inspector.js +2 -0
- package/dist/application/ports/document-environment-inspector.js.map +1 -0
- package/dist/application/ports/document-file-state.d.ts +55 -0
- package/dist/application/ports/document-file-state.d.ts.map +1 -0
- package/dist/application/ports/document-file-state.js +2 -0
- package/dist/application/ports/document-file-state.js.map +1 -0
- package/dist/application/ports/document-journal-store.d.ts +31 -0
- package/dist/application/ports/document-journal-store.d.ts.map +1 -0
- package/dist/application/ports/document-journal-store.js +2 -0
- package/dist/application/ports/document-journal-store.js.map +1 -0
- package/dist/application/ports/document-metadata-sidecar-reader.d.ts +13 -0
- package/dist/application/ports/document-metadata-sidecar-reader.d.ts.map +1 -0
- package/dist/application/ports/document-metadata-sidecar-reader.js +2 -0
- package/dist/application/ports/document-metadata-sidecar-reader.js.map +1 -0
- package/dist/application/ports/document-parent-materializer.d.ts +24 -0
- package/dist/application/ports/document-parent-materializer.d.ts.map +1 -0
- package/dist/application/ports/document-parent-materializer.js +2 -0
- package/dist/application/ports/document-parent-materializer.js.map +1 -0
- package/dist/application/ports/document-planning-profile-reader.d.ts +9 -0
- package/dist/application/ports/document-planning-profile-reader.d.ts.map +1 -0
- package/dist/application/ports/document-planning-profile-reader.js +2 -0
- package/dist/application/ports/document-planning-profile-reader.js.map +1 -0
- package/dist/application/ports/document-planning-state-reader.d.ts +10 -0
- package/dist/application/ports/document-planning-state-reader.d.ts.map +1 -0
- package/dist/application/ports/document-planning-state-reader.js +2 -0
- package/dist/application/ports/document-planning-state-reader.js.map +1 -0
- package/dist/application/ports/document-publisher.d.ts +38 -0
- package/dist/application/ports/document-publisher.d.ts.map +1 -0
- package/dist/application/ports/document-publisher.js +2 -0
- package/dist/application/ports/document-publisher.js.map +1 -0
- package/dist/application/ports/document-reachability-projector.d.ts +13 -0
- package/dist/application/ports/document-reachability-projector.d.ts.map +1 -0
- package/dist/application/ports/document-reachability-projector.js +2 -0
- package/dist/application/ports/document-reachability-projector.js.map +1 -0
- package/dist/application/ports/document-structure-verifier.d.ts +17 -0
- package/dist/application/ports/document-structure-verifier.d.ts.map +1 -0
- package/dist/application/ports/document-structure-verifier.js +2 -0
- package/dist/application/ports/document-structure-verifier.js.map +1 -0
- package/dist/application/ports/document-template-reader.d.ts +9 -0
- package/dist/application/ports/document-template-reader.d.ts.map +1 -0
- package/dist/application/ports/document-template-reader.js +2 -0
- package/dist/application/ports/document-template-reader.js.map +1 -0
- package/dist/application/ports/document-transaction-coordinator.d.ts +21 -0
- package/dist/application/ports/document-transaction-coordinator.d.ts.map +1 -0
- package/dist/application/ports/document-transaction-coordinator.js +2 -0
- package/dist/application/ports/document-transaction-coordinator.js.map +1 -0
- package/dist/application/ports/documentation-catalog-reader-v2.d.ts +11 -0
- package/dist/application/ports/documentation-catalog-reader-v2.d.ts.map +1 -0
- package/dist/application/ports/documentation-catalog-reader-v2.js +2 -0
- package/dist/application/ports/documentation-catalog-reader-v2.js.map +1 -0
- package/dist/application/ports/documentation-catalog-reader.d.ts +11 -0
- package/dist/application/ports/documentation-catalog-reader.d.ts.map +1 -0
- package/dist/application/ports/documentation-catalog-reader.js +2 -0
- package/dist/application/ports/documentation-catalog-reader.js.map +1 -0
- package/dist/application/ports/documentation-search-catalog-reader-v2.d.ts +9 -0
- package/dist/application/ports/documentation-search-catalog-reader-v2.d.ts.map +1 -0
- package/dist/application/ports/documentation-search-catalog-reader-v2.js +2 -0
- package/dist/application/ports/documentation-search-catalog-reader-v2.js.map +1 -0
- package/dist/application/ports/documentation-search-catalog-reader.d.ts +10 -0
- package/dist/application/ports/documentation-search-catalog-reader.d.ts.map +1 -0
- package/dist/application/ports/documentation-search-catalog-reader.js +2 -0
- package/dist/application/ports/documentation-search-catalog-reader.js.map +1 -0
- package/dist/application/ports/metadata-instance-validator.d.ts +18 -0
- package/dist/application/ports/metadata-instance-validator.d.ts.map +1 -0
- package/dist/application/ports/metadata-instance-validator.js +2 -0
- package/dist/application/ports/metadata-instance-validator.js.map +1 -0
- package/dist/application/ports/owner-membership-reader.d.ts +14 -0
- package/dist/application/ports/owner-membership-reader.d.ts.map +1 -0
- package/dist/application/ports/owner-membership-reader.js +2 -0
- package/dist/application/ports/owner-membership-reader.js.map +1 -0
- package/dist/application/ports/similar-document-advisor.d.ts +17 -0
- package/dist/application/ports/similar-document-advisor.d.ts.map +1 -0
- package/dist/application/ports/similar-document-advisor.js +2 -0
- package/dist/application/ports/similar-document-advisor.js.map +1 -0
- package/dist/application/projections/document-catalog-projections.d.ts +3 -0
- package/dist/application/projections/document-catalog-projections.d.ts.map +1 -0
- package/dist/application/projections/document-catalog-projections.js +24 -0
- package/dist/application/projections/document-catalog-projections.js.map +1 -0
- package/dist/application/use-cases/apply-document-plan.d.ts +16 -0
- package/dist/application/use-cases/apply-document-plan.d.ts.map +1 -0
- package/dist/application/use-cases/apply-document-plan.js +311 -0
- package/dist/application/use-cases/apply-document-plan.js.map +1 -0
- package/dist/application/use-cases/apply-document-recovery-receipt.d.ts +14 -0
- package/dist/application/use-cases/apply-document-recovery-receipt.d.ts.map +1 -0
- package/dist/application/use-cases/apply-document-recovery-receipt.js +17 -0
- package/dist/application/use-cases/apply-document-recovery-receipt.js.map +1 -0
- package/dist/application/use-cases/build-documentation-catalog.d.ts +41 -0
- package/dist/application/use-cases/build-documentation-catalog.d.ts.map +1 -0
- package/dist/application/use-cases/build-documentation-catalog.js +259 -0
- package/dist/application/use-cases/build-documentation-catalog.js.map +1 -0
- package/dist/application/use-cases/compile-document-plan.d.ts +6 -0
- package/dist/application/use-cases/compile-document-plan.d.ts.map +1 -0
- package/dist/application/use-cases/compile-document-plan.js +200 -0
- package/dist/application/use-cases/compile-document-plan.js.map +1 -0
- package/dist/application/use-cases/document-journal-reconciliation.d.ts +18 -0
- package/dist/application/use-cases/document-journal-reconciliation.d.ts.map +1 -0
- package/dist/application/use-cases/document-journal-reconciliation.js +90 -0
- package/dist/application/use-cases/document-journal-reconciliation.js.map +1 -0
- package/dist/application/use-cases/document-parent-materialization-continuation.d.ts +3 -0
- package/dist/application/use-cases/document-parent-materialization-continuation.d.ts.map +1 -0
- package/dist/application/use-cases/document-parent-materialization-continuation.js +79 -0
- package/dist/application/use-cases/document-parent-materialization-continuation.js.map +1 -0
- package/dist/application/use-cases/document-transaction-continuation.d.ts +64 -0
- package/dist/application/use-cases/document-transaction-continuation.d.ts.map +1 -0
- package/dist/application/use-cases/document-transaction-continuation.js +283 -0
- package/dist/application/use-cases/document-transaction-continuation.js.map +1 -0
- package/dist/application/use-cases/document-transaction-error.d.ts +5 -0
- package/dist/application/use-cases/document-transaction-error.d.ts.map +1 -0
- package/dist/application/use-cases/document-transaction-error.js +9 -0
- package/dist/application/use-cases/document-transaction-error.js.map +1 -0
- package/dist/application/use-cases/document-transaction-execution.d.ts +9 -0
- package/dist/application/use-cases/document-transaction-execution.d.ts.map +1 -0
- package/dist/application/use-cases/document-transaction-execution.js +40 -0
- package/dist/application/use-cases/document-transaction-execution.js.map +1 -0
- package/dist/application/use-cases/document-transaction-receipts.d.ts +21 -0
- package/dist/application/use-cases/document-transaction-receipts.d.ts.map +1 -0
- package/dist/application/use-cases/document-transaction-receipts.js +180 -0
- package/dist/application/use-cases/document-transaction-receipts.js.map +1 -0
- package/dist/application/use-cases/find-documents.d.ts +20 -0
- package/dist/application/use-cases/find-documents.d.ts.map +1 -0
- package/dist/application/use-cases/find-documents.js +114 -0
- package/dist/application/use-cases/find-documents.js.map +1 -0
- package/dist/application/use-cases/load-v2-profile-description.d.ts +20 -0
- package/dist/application/use-cases/load-v2-profile-description.d.ts.map +1 -0
- package/dist/application/use-cases/load-v2-profile-description.js +14 -0
- package/dist/application/use-cases/load-v2-profile-description.js.map +1 -0
- package/dist/application/use-cases/plan-documentation-document.d.ts +74 -0
- package/dist/application/use-cases/plan-documentation-document.d.ts.map +1 -0
- package/dist/application/use-cases/plan-documentation-document.js +273 -0
- package/dist/application/use-cases/plan-documentation-document.js.map +1 -0
- package/dist/application/use-cases/recapture-directory-receipt-evidence.d.ts +8 -0
- package/dist/application/use-cases/recapture-directory-receipt-evidence.d.ts.map +1 -0
- package/dist/application/use-cases/recapture-directory-receipt-evidence.js +32 -0
- package/dist/application/use-cases/recapture-directory-receipt-evidence.js.map +1 -0
- package/dist/application/use-cases/recover-document-transaction.d.ts +10 -0
- package/dist/application/use-cases/recover-document-transaction.d.ts.map +1 -0
- package/dist/application/use-cases/recover-document-transaction.js +361 -0
- package/dist/application/use-cases/recover-document-transaction.js.map +1 -0
- package/dist/application/use-cases/run-document-doctor.d.ts +18 -0
- package/dist/application/use-cases/run-document-doctor.d.ts.map +1 -0
- package/dist/application/use-cases/run-document-doctor.js +171 -0
- package/dist/application/use-cases/run-document-doctor.js.map +1 -0
- package/dist/application/use-cases/run-document-new.d.ts +30 -0
- package/dist/application/use-cases/run-document-new.d.ts.map +1 -0
- package/dist/application/use-cases/run-document-new.js +221 -0
- package/dist/application/use-cases/run-document-new.js.map +1 -0
- package/dist/application/use-cases/run-document-recover.d.ts +21 -0
- package/dist/application/use-cases/run-document-recover.d.ts.map +1 -0
- package/dist/application/use-cases/run-document-recover.js +126 -0
- package/dist/application/use-cases/run-document-recover.js.map +1 -0
- package/dist/binary-string-comparator.d.ts +3 -0
- package/dist/binary-string-comparator.d.ts.map +1 -0
- package/dist/binary-string-comparator.js +12 -0
- package/dist/binary-string-comparator.js.map +1 -0
- package/dist/cancellation.d.ts +2 -0
- package/dist/cancellation.d.ts.map +1 -0
- package/dist/cancellation.js +12 -0
- package/dist/cancellation.js.map +1 -0
- package/dist/canonical-json.d.ts +3 -0
- package/dist/canonical-json.d.ts.map +1 -0
- package/dist/canonical-json.js +2 -0
- package/dist/canonical-json.js.map +1 -0
- package/dist/capability-runtime.d.ts +12 -0
- package/dist/capability-runtime.d.ts.map +1 -0
- package/dist/capability-runtime.js +10 -0
- package/dist/capability-runtime.js.map +1 -0
- package/dist/composition/describe-document-authoring-profile-v2.d.ts +14 -0
- package/dist/composition/describe-document-authoring-profile-v2.d.ts.map +1 -0
- package/dist/composition/describe-document-authoring-profile-v2.js +220 -0
- package/dist/composition/describe-document-authoring-profile-v2.js.map +1 -0
- package/dist/composition/inspect-document-authoring-environment-v1.d.ts +7 -0
- package/dist/composition/inspect-document-authoring-environment-v1.d.ts.map +1 -0
- package/dist/composition/inspect-document-authoring-environment-v1.js +10 -0
- package/dist/composition/inspect-document-authoring-environment-v1.js.map +1 -0
- package/dist/composition/inspect-document-transaction.d.ts +4 -0
- package/dist/composition/inspect-document-transaction.d.ts.map +1 -0
- package/dist/composition/inspect-document-transaction.js +179 -0
- package/dist/composition/inspect-document-transaction.js.map +1 -0
- package/dist/composition/node-document-authority-recompiler.d.ts +11 -0
- package/dist/composition/node-document-authority-recompiler.d.ts.map +1 -0
- package/dist/composition/node-document-authority-recompiler.js +81 -0
- package/dist/composition/node-document-authority-recompiler.js.map +1 -0
- package/dist/composition/node-document-planning.d.ts +7 -0
- package/dist/composition/node-document-planning.d.ts.map +1 -0
- package/dist/composition/node-document-planning.js +99 -0
- package/dist/composition/node-document-planning.js.map +1 -0
- package/dist/composition/node-document-writing-private.d.ts +15 -0
- package/dist/composition/node-document-writing-private.d.ts.map +1 -0
- package/dist/composition/node-document-writing-private.js +54 -0
- package/dist/composition/node-document-writing-private.js.map +1 -0
- package/dist/composition/node-document-writing.d.ts +8 -0
- package/dist/composition/node-document-writing.d.ts.map +1 -0
- package/dist/composition/node-document-writing.js +10 -0
- package/dist/composition/node-document-writing.js.map +1 -0
- package/dist/document-catalog-error.d.ts +6 -0
- package/dist/document-catalog-error.d.ts.map +1 -0
- package/dist/document-catalog-error.js +9 -0
- package/dist/document-catalog-error.js.map +1 -0
- package/dist/document-planning-error.d.ts +6 -0
- package/dist/document-planning-error.d.ts.map +1 -0
- package/dist/document-planning-error.js +9 -0
- package/dist/document-planning-error.js.map +1 -0
- package/dist/documentation-observation/adapters/outbound/filesystem/filesystem-markdown-document-reader.d.ts +14 -0
- package/dist/documentation-observation/adapters/outbound/filesystem/filesystem-markdown-document-reader.d.ts.map +1 -0
- package/dist/documentation-observation/adapters/outbound/filesystem/filesystem-markdown-document-reader.js +108 -0
- package/dist/documentation-observation/adapters/outbound/filesystem/filesystem-markdown-document-reader.js.map +1 -0
- package/dist/documentation-observation/adapters/outbound/filesystem/filesystem-markdown-filesystem.d.ts +14 -0
- package/dist/documentation-observation/adapters/outbound/filesystem/filesystem-markdown-filesystem.d.ts.map +1 -0
- package/dist/documentation-observation/adapters/outbound/filesystem/filesystem-markdown-filesystem.js +61 -0
- package/dist/documentation-observation/adapters/outbound/filesystem/filesystem-markdown-filesystem.js.map +1 -0
- package/dist/documentation-observation/adapters/outbound/filesystem/filesystem-markdown-paths.d.ts +8 -0
- package/dist/documentation-observation/adapters/outbound/filesystem/filesystem-markdown-paths.d.ts.map +1 -0
- package/dist/documentation-observation/adapters/outbound/filesystem/filesystem-markdown-paths.js +44 -0
- package/dist/documentation-observation/adapters/outbound/filesystem/filesystem-markdown-paths.js.map +1 -0
- package/dist/documentation-observation/adapters/outbound/filesystem/filesystem-markdown-reference-resolver.d.ts +6 -0
- package/dist/documentation-observation/adapters/outbound/filesystem/filesystem-markdown-reference-resolver.d.ts.map +1 -0
- package/dist/documentation-observation/adapters/outbound/filesystem/filesystem-markdown-reference-resolver.js +160 -0
- package/dist/documentation-observation/adapters/outbound/filesystem/filesystem-markdown-reference-resolver.js.map +1 -0
- package/dist/documentation-observation/adapters/outbound/filesystem/filesystem-markdown-repository.d.ts +8 -0
- package/dist/documentation-observation/adapters/outbound/filesystem/filesystem-markdown-repository.d.ts.map +1 -0
- package/dist/documentation-observation/adapters/outbound/filesystem/filesystem-markdown-repository.js +13 -0
- package/dist/documentation-observation/adapters/outbound/filesystem/filesystem-markdown-repository.js.map +1 -0
- package/dist/documentation-observation/adapters/outbound/filesystem/filesystem-markdown-tree-observer.d.ts +6 -0
- package/dist/documentation-observation/adapters/outbound/filesystem/filesystem-markdown-tree-observer.d.ts.map +1 -0
- package/dist/documentation-observation/adapters/outbound/filesystem/filesystem-markdown-tree-observer.js +260 -0
- package/dist/documentation-observation/adapters/outbound/filesystem/filesystem-markdown-tree-observer.js.map +1 -0
- package/dist/documentation-observation/adapters/outbound/filesystem/markdown-document-parser.d.ts +3 -0
- package/dist/documentation-observation/adapters/outbound/filesystem/markdown-document-parser.d.ts.map +1 -0
- package/dist/documentation-observation/adapters/outbound/filesystem/markdown-document-parser.js +260 -0
- package/dist/documentation-observation/adapters/outbound/filesystem/markdown-document-parser.js.map +1 -0
- package/dist/documentation-observation/adapters/outbound/filesystem/markdown-reference-target.d.ts +15 -0
- package/dist/documentation-observation/adapters/outbound/filesystem/markdown-reference-target.d.ts.map +1 -0
- package/dist/documentation-observation/adapters/outbound/filesystem/markdown-reference-target.js +59 -0
- package/dist/documentation-observation/adapters/outbound/filesystem/markdown-reference-target.js.map +1 -0
- package/dist/documentation-observation/application/model/markdown-document.d.ts +69 -0
- package/dist/documentation-observation/application/model/markdown-document.d.ts.map +1 -0
- package/dist/documentation-observation/application/model/markdown-document.js +10 -0
- package/dist/documentation-observation/application/model/markdown-document.js.map +1 -0
- package/dist/documentation-observation/application/ports/markdown-repository.d.ts +18 -0
- package/dist/documentation-observation/application/ports/markdown-repository.d.ts.map +1 -0
- package/dist/documentation-observation/application/ports/markdown-repository.js +2 -0
- package/dist/documentation-observation/application/ports/markdown-repository.js.map +1 -0
- package/dist/errors.d.ts +6 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +9 -0
- package/dist/errors.js.map +1 -0
- package/dist/filesystem-path-safety.d.ts +11 -0
- package/dist/filesystem-path-safety.d.ts.map +1 -0
- package/dist/filesystem-path-safety.js +122 -0
- package/dist/filesystem-path-safety.js.map +1 -0
- package/dist/find-command.d.ts +28 -0
- package/dist/find-command.d.ts.map +1 -0
- package/dist/find-command.js +146 -0
- package/dist/find-command.js.map +1 -0
- package/dist/index.d.ts +64 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +95 -0
- package/dist/index.js.map +1 -0
- package/dist/installed-artifact-identity.d.ts +2 -0
- package/dist/installed-artifact-identity.d.ts.map +1 -0
- package/dist/installed-artifact-identity.js +13 -0
- package/dist/installed-artifact-identity.js.map +1 -0
- package/dist/observation.d.ts +4 -0
- package/dist/observation.d.ts.map +1 -0
- package/dist/observation.js +3 -0
- package/dist/observation.js.map +1 -0
- package/dist/package-version.d.ts +2 -0
- package/dist/package-version.d.ts.map +1 -0
- package/dist/package-version.js +10 -0
- package/dist/package-version.js.map +1 -0
- package/dist/qualification/index.d.ts +27 -0
- package/dist/qualification/index.d.ts.map +1 -0
- package/dist/qualification/index.js +144 -0
- package/dist/qualification/index.js.map +1 -0
- package/dist/schema-catalog.d.ts +4 -0
- package/dist/schema-catalog.d.ts.map +1 -0
- package/dist/schema-catalog.js +70 -0
- package/dist/schema-catalog.js.map +1 -0
- package/dist/state-contract.d.ts +3 -0
- package/dist/state-contract.d.ts.map +1 -0
- package/dist/state-contract.js +4 -0
- package/dist/state-contract.js.map +1 -0
- package/dist/strict-json.d.ts +2 -0
- package/dist/strict-json.d.ts.map +1 -0
- package/dist/strict-json.js +2 -0
- package/dist/strict-json.js.map +1 -0
- package/dist/strict-yaml.d.ts +3 -0
- package/dist/strict-yaml.d.ts.map +1 -0
- package/dist/strict-yaml.js +37 -0
- package/dist/strict-yaml.js.map +1 -0
- package/package.json +66 -0
- package/schemas/document-authoring-profile/v1.schema.json +265 -0
- package/schemas/document-authoring-profile/v2.schema.json +168 -0
- package/schemas/document-authoring-profile/v3.schema.json +200 -0
- package/schemas/document-command-envelope/v1.schema.json +161 -0
- package/schemas/document-command-envelope/v2.schema.json +205 -0
- package/schemas/document-intent/v1.schema.json +102 -0
- package/schemas/document-parent-materialization/v2.schema.json +65 -0
- package/schemas/document-plan/v1.schema.json +162 -0
- package/schemas/document-plan/v2.schema.json +85 -0
- package/schemas/document-receipt/v1.schema.json +141 -0
- package/schemas/document-receipt/v2.schema.json +108 -0
- package/schemas/foundation-transaction-envelope/v3.schema.json +169 -0
- package/schemas/foundation-transaction-envelope/v4.schema.json +164 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { assertNotCancelled } from "../../cancellation.js";
|
|
2
|
+
import { CapabilityInputError } from "../../capability-runtime.js";
|
|
3
|
+
import { DocumentCatalogError } from "../../document-catalog-error.js";
|
|
4
|
+
import { DocumentPlanningError } from "../../document-planning-error.js";
|
|
5
|
+
import { readDocumentAuthorityFile } from "./read-document-authority-file.js";
|
|
6
|
+
const MAX_TEMPLATE_BYTES = 256 * 1024;
|
|
7
|
+
export class NodeDocumentTemplateReader {
|
|
8
|
+
async read(request) {
|
|
9
|
+
assertNotCancelled(request.signal);
|
|
10
|
+
try {
|
|
11
|
+
const file = await readDocumentAuthorityFile({
|
|
12
|
+
consumerRoot: request.consumerRoot,
|
|
13
|
+
maxBytes: MAX_TEMPLATE_BYTES,
|
|
14
|
+
path: request.path
|
|
15
|
+
});
|
|
16
|
+
assertNotCancelled(request.signal);
|
|
17
|
+
return Object.freeze({ evidence: file.evidence, source: file.source });
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
if (error instanceof CapabilityInputError || error instanceof DocumentPlanningError) {
|
|
21
|
+
throw error;
|
|
22
|
+
}
|
|
23
|
+
if (error instanceof DocumentCatalogError) {
|
|
24
|
+
throw new DocumentPlanningError(error.code === "DOCUMENT_CATALOG_INPUT_INVALID"
|
|
25
|
+
? "DOCUMENT_PLANNING_INPUT_INVALID"
|
|
26
|
+
: "DOCUMENT_PLANNING_AUTHORITY_UNAVAILABLE", `Document template is unavailable or invalid: ${request.path}.`, { cause: error });
|
|
27
|
+
}
|
|
28
|
+
throw new DocumentPlanningError("DOCUMENT_PLANNING_AUTHORITY_UNAVAILABLE", `Document template is unavailable or invalid: ${request.path}.`, { cause: error });
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=node-document-template-reader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-document-template-reader.js","sourceRoot":"","sources":["../../../src/adapters/node/node-document-template-reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAGnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAE9E,MAAM,kBAAkB,GAAG,GAAG,GAAG,IAAI,CAAC;AAEtC,MAAM,OAAO,0BAA0B;IACrC,KAAK,CAAC,IAAI,CAAC,OAIV;QACC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,yBAAyB,CAAC;gBAC3C,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,QAAQ,EAAE,kBAAkB;gBAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB,CAAC,CAAC;YACH,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACnC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,oBAAoB,IAAI,KAAK,YAAY,qBAAqB,EAAE,CAAC;gBACpF,MAAM,KAAK,CAAC;YACd,CAAC;YACD,IAAI,KAAK,YAAY,oBAAoB,EAAE,CAAC;gBAC1C,MAAM,IAAI,qBAAqB,CAC7B,KAAK,CAAC,IAAI,KAAK,gCAAgC;oBAC7C,CAAC,CAAC,iCAAiC;oBACnC,CAAC,CAAC,yCAAyC,EAC7C,gDAAgD,OAAO,CAAC,IAAI,GAAG,EAC/D,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,qBAAqB,CAC7B,yCAAyC,EACzC,gDAAgD,OAAO,CAAC,IAAI,GAAG,EAC/D,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { DocumentTransactionCoordinator, DocumentTransactionLease, DocumentTransactionStatus } from "../../application/ports/document-transaction-coordinator.js";
|
|
2
|
+
export declare class NodeDocumentTransactionCoordinator implements DocumentTransactionCoordinator {
|
|
3
|
+
#private;
|
|
4
|
+
constructor(consumerRoot: string);
|
|
5
|
+
inspect(): Promise<DocumentTransactionStatus>;
|
|
6
|
+
acquire(_request: {
|
|
7
|
+
readonly mode: "apply" | "recover";
|
|
8
|
+
}): Promise<DocumentTransactionLease>;
|
|
9
|
+
}
|
|
10
|
+
export declare function createNodeDocumentTransactionCoordinator(consumerRoot: string): DocumentTransactionCoordinator;
|
|
11
|
+
//# sourceMappingURL=node-document-transaction-coordinator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-document-transaction-coordinator.d.ts","sourceRoot":"","sources":["../../../src/adapters/node/node-document-transaction-coordinator.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,8BAA8B,EAC9B,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,6DAA6D,CAAC;AAerE,qBAAa,kCAAmC,YAAW,8BAA8B;;IAGvF,YAAY,YAAY,EAAE,MAAM,EAE/B;IAEK,OAAO,IAAI,OAAO,CAAC,yBAAyB,CAAC,CAElD;IAEK,OAAO,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,CAAA;KAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAgCjG;CACF;AAED,wBAAgB,wCAAwC,CACtD,YAAY,EAAE,MAAM,GACnB,8BAA8B,CAEhC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { acquireMutationLease, releaseMutationLease, retainMutationBarrier } from "@agent-teams/repository-mutation/node";
|
|
2
|
+
import { inspectDocumentTransactionV2 } from "../../composition/inspect-document-transaction.js";
|
|
3
|
+
function projected(inspection) {
|
|
4
|
+
if (inspection.state === "idle") {
|
|
5
|
+
return { state: "idle" };
|
|
6
|
+
}
|
|
7
|
+
if (inspection.state === "recoverable") {
|
|
8
|
+
return { state: "recoverable" };
|
|
9
|
+
}
|
|
10
|
+
return { state: "manual-recovery-required", reason: inspection.reason };
|
|
11
|
+
}
|
|
12
|
+
export class NodeDocumentTransactionCoordinator {
|
|
13
|
+
#consumerRoot;
|
|
14
|
+
constructor(consumerRoot) {
|
|
15
|
+
this.#consumerRoot = consumerRoot;
|
|
16
|
+
}
|
|
17
|
+
async inspect() {
|
|
18
|
+
return projected(await inspectDocumentTransactionV2(this.#consumerRoot));
|
|
19
|
+
}
|
|
20
|
+
async acquire(_request) {
|
|
21
|
+
const lease = await acquireMutationLease(this.#consumerRoot);
|
|
22
|
+
let held = true;
|
|
23
|
+
try {
|
|
24
|
+
const status = await this.inspect();
|
|
25
|
+
return {
|
|
26
|
+
status,
|
|
27
|
+
release: async (options) => {
|
|
28
|
+
if (!held) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (options?.retainTransactionBarrier === true) {
|
|
32
|
+
retainMutationBarrier(lease);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
try {
|
|
36
|
+
if ((await this.inspect()).state !== "idle") {
|
|
37
|
+
retainMutationBarrier(lease);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
retainMutationBarrier(lease);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
await releaseMutationLease(lease);
|
|
45
|
+
held = false;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
retainMutationBarrier(lease);
|
|
51
|
+
await releaseMutationLease(lease);
|
|
52
|
+
held = false;
|
|
53
|
+
throw error;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
export function createNodeDocumentTransactionCoordinator(consumerRoot) {
|
|
58
|
+
return new NodeDocumentTransactionCoordinator(consumerRoot);
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=node-document-transaction-coordinator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-document-transaction-coordinator.js","sourceRoot":"","sources":["../../../src/adapters/node/node-document-transaction-coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EAEtB,MAAM,uCAAuC,CAAC;AAO/C,OAAO,EAAE,4BAA4B,EAAE,MAAM,mDAAmD,CAAC;AAEjG,SAAS,SAAS,CAChB,UAAoE;IAEpE,IAAI,UAAU,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;QAChC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC3B,CAAC;IACD,IAAI,UAAU,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;QACvC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IAClC,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,0BAA0B,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;AAC1E,CAAC;AAED,MAAM,OAAO,kCAAkC;IACpC,aAAa,CAAS;IAE/B,YAAY,YAAoB;QAC9B,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,OAAO;QACX,OAAO,SAAS,CAAC,MAAM,4BAA4B,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAgD;QAC5D,MAAM,KAAK,GAAkB,MAAM,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC5E,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACpC,OAAO;gBACL,MAAM;gBACN,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;oBACzB,IAAI,CAAC,IAAI,EAAE,CAAC;wBACV,OAAO;oBACT,CAAC;oBACD,IAAI,OAAO,EAAE,wBAAwB,KAAK,IAAI,EAAE,CAAC;wBAC/C,qBAAqB,CAAC,KAAK,CAAC,CAAC;oBAC/B,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC;4BACH,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;gCAC5C,qBAAqB,CAAC,KAAK,CAAC,CAAC;4BAC/B,CAAC;wBACH,CAAC;wBAAC,MAAM,CAAC;4BACP,qBAAqB,CAAC,KAAK,CAAC,CAAC;wBAC/B,CAAC;oBACH,CAAC;oBACD,MAAM,oBAAoB,CAAC,KAAK,CAAC,CAAC;oBAClC,IAAI,GAAG,KAAK,CAAC;gBACf,CAAC;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAC7B,MAAM,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAClC,IAAI,GAAG,KAAK,CAAC;YACb,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF;AAED,MAAM,UAAU,wCAAwC,CACtD,YAAoB;IAEpB,OAAO,IAAI,kCAAkC,CAAC,YAAY,CAAC,CAAC;AAC9D,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { MetadataInstanceValidator, MetadataSchemaSnapshot } from "../../application/ports/metadata-instance-validator.js";
|
|
2
|
+
export declare class NodeMetadataInstanceValidator implements MetadataInstanceValidator {
|
|
3
|
+
load(request: {
|
|
4
|
+
readonly consumerRoot: string;
|
|
5
|
+
readonly path: string;
|
|
6
|
+
readonly signal?: AbortSignal;
|
|
7
|
+
}): Promise<MetadataSchemaSnapshot>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=node-metadata-instance-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-metadata-instance-validator.d.ts","sourceRoot":"","sources":["../../../src/adapters/node/node-metadata-instance-validator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,yBAAyB,EACzB,sBAAsB,EAEvB,MAAM,wDAAwD,CAAC;AAmDhE,qBAAa,6BAA8B,YAAW,yBAAyB;IACvE,IAAI,CAAC,OAAO,EAAE;QAClB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;KAC/B,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAiDlC;CACF"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { Ajv2020 } from "ajv/dist/2020.js";
|
|
2
|
+
import { assertNotCancelled } from "../../cancellation.js";
|
|
3
|
+
import { parseStrictJson, StrictJsonError } from "../../strict-json.js";
|
|
4
|
+
import { DocumentCatalogError } from "../../document-catalog-error.js";
|
|
5
|
+
import { readDocumentAuthorityFile } from "./read-document-authority-file.js";
|
|
6
|
+
const MAX_METADATA_SCHEMA_BYTES = 1024 * 1024;
|
|
7
|
+
function isRecord(value) {
|
|
8
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
9
|
+
}
|
|
10
|
+
function invalidSchema(message, cause) {
|
|
11
|
+
throw new DocumentCatalogError("DOCUMENT_CATALOG_INPUT_INVALID", message, cause === undefined ? undefined : { cause });
|
|
12
|
+
}
|
|
13
|
+
function assertLocalReferences(value) {
|
|
14
|
+
if (Array.isArray(value)) {
|
|
15
|
+
for (const item of value) {
|
|
16
|
+
assertLocalReferences(item);
|
|
17
|
+
}
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (!isRecord(value)) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
for (const [key, item] of Object.entries(value)) {
|
|
24
|
+
if (key === "$ref" && (typeof item !== "string" || !item.startsWith("#"))) {
|
|
25
|
+
invalidSchema("Document metadata schema may use only local fragment $ref values.");
|
|
26
|
+
}
|
|
27
|
+
if (["$async", "$dynamicRef", "$recursiveRef"].includes(key)) {
|
|
28
|
+
invalidSchema("Document metadata schema may not use async, dynamic, or recursive validation.");
|
|
29
|
+
}
|
|
30
|
+
assertLocalReferences(item);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function messages(errors) {
|
|
34
|
+
return Object.freeze((errors ?? [])
|
|
35
|
+
.slice(0, 16)
|
|
36
|
+
.map((error) => `${error.instancePath || "/"} ${error.message ?? "is invalid"}`.slice(0, 1000)));
|
|
37
|
+
}
|
|
38
|
+
export class NodeMetadataInstanceValidator {
|
|
39
|
+
async load(request) {
|
|
40
|
+
assertNotCancelled(request.signal);
|
|
41
|
+
const file = await readDocumentAuthorityFile({
|
|
42
|
+
consumerRoot: request.consumerRoot,
|
|
43
|
+
maxBytes: MAX_METADATA_SCHEMA_BYTES,
|
|
44
|
+
path: request.path
|
|
45
|
+
});
|
|
46
|
+
assertNotCancelled(request.signal);
|
|
47
|
+
let schema;
|
|
48
|
+
try {
|
|
49
|
+
schema = parseStrictJson(file.source);
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
if (error instanceof StrictJsonError) {
|
|
53
|
+
invalidSchema("Document metadata schema must contain strict JSON.", error);
|
|
54
|
+
}
|
|
55
|
+
throw error;
|
|
56
|
+
}
|
|
57
|
+
if (!isRecord(schema)) {
|
|
58
|
+
invalidSchema("Document metadata schema must be a JSON object.");
|
|
59
|
+
}
|
|
60
|
+
assertLocalReferences(schema);
|
|
61
|
+
const ajv = new Ajv2020({
|
|
62
|
+
allErrors: true,
|
|
63
|
+
strict: true,
|
|
64
|
+
strictTuples: false,
|
|
65
|
+
validateFormats: false
|
|
66
|
+
});
|
|
67
|
+
let validate;
|
|
68
|
+
try {
|
|
69
|
+
validate = ajv.compile(schema);
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
invalidSchema("Document metadata schema cannot be compiled as Draft 2020-12.", error);
|
|
73
|
+
}
|
|
74
|
+
assertNotCancelled(request.signal);
|
|
75
|
+
return Object.freeze({
|
|
76
|
+
evidence: file.evidence,
|
|
77
|
+
...(Array.isArray(schema["required"]) &&
|
|
78
|
+
schema["required"].every((item) => typeof item === "string")
|
|
79
|
+
? {
|
|
80
|
+
requiredProperties: Object.freeze([...new Set(schema["required"])].toSorted())
|
|
81
|
+
}
|
|
82
|
+
: {}),
|
|
83
|
+
validate(instance) {
|
|
84
|
+
const valid = validate(instance);
|
|
85
|
+
return Object.freeze({ messages: messages(validate.errors), valid });
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=node-metadata-instance-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-metadata-instance-validator.js","sourceRoot":"","sources":["../../../src/adapters/node/node-metadata-instance-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { OwnerMembershipReader, OwnerMembershipSnapshot } from "../../application/ports/owner-membership-reader.js";
|
|
2
|
+
export declare class NodeOwnerMembershipReader implements OwnerMembershipReader {
|
|
3
|
+
read(request: {
|
|
4
|
+
readonly consumerRoot: string;
|
|
5
|
+
readonly contract: "foundation.owner-map/v1";
|
|
6
|
+
readonly path: string;
|
|
7
|
+
readonly signal?: AbortSignal;
|
|
8
|
+
}): Promise<OwnerMembershipSnapshot>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=node-owner-membership-reader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-owner-membership-reader.d.ts","sourceRoot":"","sources":["../../../src/adapters/node/node-owner-membership-reader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,oDAAoD,CAAC;AA8D5D,qBAAa,yBAA0B,YAAW,qBAAqB;IAC/D,IAAI,CAAC,OAAO,EAAE;QAClB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;QAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;KAC/B,GAAG,OAAO,CAAC,uBAAuB,CAAC,CASnC;CACF"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { CapabilityInputError } from "../../capability-runtime.js";
|
|
2
|
+
import { assertNotCancelled } from "../../cancellation.js";
|
|
3
|
+
import { compareBinaryStrings } from "../../binary-string-comparator.js";
|
|
4
|
+
import { parseStrictYamlSource } from "../../strict-yaml.js";
|
|
5
|
+
import { DocumentCatalogError } from "../../document-catalog-error.js";
|
|
6
|
+
import { readDocumentAuthorityFile } from "./read-document-authority-file.js";
|
|
7
|
+
const MAX_OWNER_CATALOG_BYTES = 1024 * 1024;
|
|
8
|
+
const MAX_OWNER_COUNT = 4096;
|
|
9
|
+
const OWNER_ID = /^[A-Za-z0-9@][A-Za-z0-9@._/-]*$/u;
|
|
10
|
+
function isRecord(value) {
|
|
11
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
12
|
+
}
|
|
13
|
+
function invalidOwnerCatalog(message, cause) {
|
|
14
|
+
throw new DocumentCatalogError("DOCUMENT_CATALOG_INPUT_INVALID", message, cause === undefined ? undefined : { cause });
|
|
15
|
+
}
|
|
16
|
+
function parseOwnerIds(source) {
|
|
17
|
+
let input;
|
|
18
|
+
try {
|
|
19
|
+
input = parseStrictYamlSource(source, "document-owner-catalog");
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
if (error instanceof CapabilityInputError) {
|
|
23
|
+
invalidOwnerCatalog("Document owner catalog must contain strict YAML.", error);
|
|
24
|
+
}
|
|
25
|
+
throw error;
|
|
26
|
+
}
|
|
27
|
+
if (!isRecord(input)) {
|
|
28
|
+
invalidOwnerCatalog("Document owner catalog must be an object.");
|
|
29
|
+
}
|
|
30
|
+
const keys = Object.keys(input).toSorted(compareBinaryStrings);
|
|
31
|
+
if (keys.length !== 2 ||
|
|
32
|
+
keys[0] !== "owners" ||
|
|
33
|
+
keys[1] !== "version" ||
|
|
34
|
+
input.version !== 1 ||
|
|
35
|
+
!isRecord(input.owners)) {
|
|
36
|
+
invalidOwnerCatalog("Document owner catalog must contain only version 1 and an owners object.");
|
|
37
|
+
}
|
|
38
|
+
const owners = input.owners;
|
|
39
|
+
const ids = Object.keys(owners).toSorted(compareBinaryStrings);
|
|
40
|
+
if (ids.length === 0 || ids.length > MAX_OWNER_COUNT) {
|
|
41
|
+
invalidOwnerCatalog(`Document owner catalog must contain between 1 and ${MAX_OWNER_COUNT} owners.`);
|
|
42
|
+
}
|
|
43
|
+
for (const id of ids) {
|
|
44
|
+
if (id.length > 214 || !OWNER_ID.test(id) || !isRecord(owners[id])) {
|
|
45
|
+
invalidOwnerCatalog("Document owner IDs must be normalized opaque identifiers with object metadata.");
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return Object.freeze(ids);
|
|
49
|
+
}
|
|
50
|
+
export class NodeOwnerMembershipReader {
|
|
51
|
+
async read(request) {
|
|
52
|
+
assertNotCancelled(request.signal);
|
|
53
|
+
const file = await readDocumentAuthorityFile({
|
|
54
|
+
consumerRoot: request.consumerRoot,
|
|
55
|
+
maxBytes: MAX_OWNER_CATALOG_BYTES,
|
|
56
|
+
path: request.path
|
|
57
|
+
});
|
|
58
|
+
assertNotCancelled(request.signal);
|
|
59
|
+
return Object.freeze({ evidence: file.evidence, ids: parseOwnerIds(file.source) });
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=node-owner-membership-reader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-owner-membership-reader.js","sourceRoot":"","sources":["../../../src/adapters/node/node-owner-membership-reader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { PortablePathIdentity } from "@agent-teams/repository-mutation";
|
|
2
|
+
interface NodePathAuthorityStat {
|
|
3
|
+
readonly birthtimeNs: bigint;
|
|
4
|
+
readonly dev: bigint;
|
|
5
|
+
readonly ino: bigint;
|
|
6
|
+
isDirectory(): boolean;
|
|
7
|
+
isSymbolicLink(): boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface NodePathAuthorityOperations {
|
|
10
|
+
readonly lstat: (path: string) => Promise<NodePathAuthorityStat>;
|
|
11
|
+
readonly readdir: (path: string) => Promise<string[]>;
|
|
12
|
+
readonly realpath: (path: string) => Promise<string>;
|
|
13
|
+
}
|
|
14
|
+
export interface NodeRepositoryRootAuthority {
|
|
15
|
+
readonly canonicalRoot: string;
|
|
16
|
+
readonly identity: PortablePathIdentity;
|
|
17
|
+
readonly lexicalRoot: string;
|
|
18
|
+
}
|
|
19
|
+
export interface NodeRepositoryDirectoryAuthority {
|
|
20
|
+
readonly ancestry: readonly {
|
|
21
|
+
readonly absolutePath: string;
|
|
22
|
+
readonly identity: PortablePathIdentity;
|
|
23
|
+
readonly repositoryPath: string;
|
|
24
|
+
}[];
|
|
25
|
+
readonly directory: string;
|
|
26
|
+
readonly directoryIdentity: PortablePathIdentity;
|
|
27
|
+
readonly repositoryPath: string;
|
|
28
|
+
readonly root: NodeRepositoryRootAuthority;
|
|
29
|
+
}
|
|
30
|
+
export interface NodeRepositoryPathAuthority {
|
|
31
|
+
readonly ancestry: NodeRepositoryDirectoryAuthority["ancestry"];
|
|
32
|
+
readonly destinationPath: string;
|
|
33
|
+
readonly parent: string;
|
|
34
|
+
readonly parentIdentity: PortablePathIdentity;
|
|
35
|
+
readonly repositoryPath: string;
|
|
36
|
+
readonly root: NodeRepositoryRootAuthority;
|
|
37
|
+
}
|
|
38
|
+
export declare function sameNodePathIdentity(left: PortablePathIdentity, right: PortablePathIdentity): boolean;
|
|
39
|
+
export declare function captureNodeRepositoryRootAuthority(consumerRoot: string, operations?: NodePathAuthorityOperations): Promise<NodeRepositoryRootAuthority>;
|
|
40
|
+
export declare function captureNodeRepositoryDirectoryAuthority(request: {
|
|
41
|
+
readonly consumerRoot: string;
|
|
42
|
+
readonly operations?: NodePathAuthorityOperations;
|
|
43
|
+
readonly repositoryPath: string;
|
|
44
|
+
}): Promise<NodeRepositoryDirectoryAuthority>;
|
|
45
|
+
export declare function captureNodeRepositoryPathAuthority(request: {
|
|
46
|
+
readonly consumerRoot: string;
|
|
47
|
+
readonly operations?: NodePathAuthorityOperations;
|
|
48
|
+
readonly repositoryPath: string;
|
|
49
|
+
}): Promise<NodeRepositoryPathAuthority>;
|
|
50
|
+
export declare function sameNodePathAncestry(left: NodeRepositoryDirectoryAuthority["ancestry"], right: NodeRepositoryDirectoryAuthority["ancestry"]): boolean;
|
|
51
|
+
export declare function recaptureNodeRepositoryPathAuthority(authority: NodeRepositoryPathAuthority, operations?: NodePathAuthorityOperations): Promise<NodeRepositoryPathAuthority>;
|
|
52
|
+
export {};
|
|
53
|
+
//# sourceMappingURL=node-path-authority.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-path-authority.d.ts","sourceRoot":"","sources":["../../../src/adapters/node/node-path-authority.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { lstat, readdir, realpath } from "node:fs/promises";
|
|
2
|
+
import { isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
3
|
+
import { portableRepositoryPathIdentity } from "@agent-teams/repository-mutation";
|
|
4
|
+
import { isDocumentRepositoryPath } from "../../application/policies/document-repository-path.js";
|
|
5
|
+
const nodeOperations = {
|
|
6
|
+
lstat: (path) => lstat(path, { bigint: true }),
|
|
7
|
+
readdir,
|
|
8
|
+
realpath
|
|
9
|
+
};
|
|
10
|
+
// Threat contract: portable Node does not expose mkdirat/linkat/openat2
|
|
11
|
+
// confinement through a held directory descriptor. These adapters therefore
|
|
12
|
+
// protect cooperative Foundation writers and fail closed on observable moves,
|
|
13
|
+
// replacements, and symlink swaps. A malicious same-OS-user process can still
|
|
14
|
+
// win an unobservable gap between a proof and a pathname syscall (including
|
|
15
|
+
// mkdir -> first lstat, open, and link), and may cause an out-of-root side
|
|
16
|
+
// effect before the post-operation proof rejects the result. Such hostile
|
|
17
|
+
// syscall racing is outside the portable adapter guarantee. Callers must
|
|
18
|
+
// recapture before and after every sensitive operation and must never claim
|
|
19
|
+
// ownership, journal evidence, or report publication when either proof differs.
|
|
20
|
+
function identity(metadata) {
|
|
21
|
+
const value = {
|
|
22
|
+
birthtimeNs: metadata.birthtimeNs,
|
|
23
|
+
dev: metadata.dev,
|
|
24
|
+
ino: metadata.ino
|
|
25
|
+
};
|
|
26
|
+
if (value.birthtimeNs === 0n || value.dev === 0n || value.ino === 0n) {
|
|
27
|
+
throw new Error("Repository path authority has zero physical identity.");
|
|
28
|
+
}
|
|
29
|
+
return value;
|
|
30
|
+
}
|
|
31
|
+
export function sameNodePathIdentity(left, right) {
|
|
32
|
+
return left.birthtimeNs === right.birthtimeNs &&
|
|
33
|
+
left.dev === right.dev &&
|
|
34
|
+
left.ino === right.ino;
|
|
35
|
+
}
|
|
36
|
+
function contained(root, candidate) {
|
|
37
|
+
const relation = relative(root, candidate);
|
|
38
|
+
return relation === "" ||
|
|
39
|
+
(!isAbsolute(relation) && relation !== ".." && !relation.startsWith(`..${sep}`));
|
|
40
|
+
}
|
|
41
|
+
function assertRealDirectory(metadata, description) {
|
|
42
|
+
if (metadata.isSymbolicLink() || !metadata.isDirectory()) {
|
|
43
|
+
throw new Error(`${description} must be a real directory.`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
async function assertNoPortableAlias(parent, segment, operations) {
|
|
47
|
+
const expected = portableRepositoryPathIdentity(segment);
|
|
48
|
+
const entries = await operations.readdir(parent);
|
|
49
|
+
if (entries.some((entry) => entry !== segment && portableRepositoryPathIdentity(entry) === expected)) {
|
|
50
|
+
throw new Error(`Repository ancestry has a portable name collision: ${segment}.`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
export async function captureNodeRepositoryRootAuthority(consumerRoot, operations = nodeOperations) {
|
|
54
|
+
const lexicalRoot = resolve(consumerRoot);
|
|
55
|
+
const before = await operations.lstat(lexicalRoot);
|
|
56
|
+
assertRealDirectory(before, "Repository root");
|
|
57
|
+
const beforeIdentity = identity(before);
|
|
58
|
+
const canonicalRoot = await operations.realpath(lexicalRoot);
|
|
59
|
+
const [lexicalAfter, canonicalAfter] = await Promise.all([
|
|
60
|
+
operations.lstat(lexicalRoot),
|
|
61
|
+
operations.lstat(canonicalRoot)
|
|
62
|
+
]);
|
|
63
|
+
assertRealDirectory(lexicalAfter, "Repository root");
|
|
64
|
+
assertRealDirectory(canonicalAfter, "Canonical repository root");
|
|
65
|
+
const lexicalAfterIdentity = identity(lexicalAfter);
|
|
66
|
+
const canonicalAfterIdentity = identity(canonicalAfter);
|
|
67
|
+
if (!sameNodePathIdentity(beforeIdentity, lexicalAfterIdentity) ||
|
|
68
|
+
!sameNodePathIdentity(lexicalAfterIdentity, canonicalAfterIdentity)) {
|
|
69
|
+
throw new Error("Repository root identity changed while it was captured.");
|
|
70
|
+
}
|
|
71
|
+
return Object.freeze({
|
|
72
|
+
canonicalRoot,
|
|
73
|
+
identity: canonicalAfterIdentity,
|
|
74
|
+
lexicalRoot
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
async function captureChildDirectory(root, parent, repositoryPath, segment, operations) {
|
|
78
|
+
await assertNoPortableAlias(parent, segment, operations);
|
|
79
|
+
const absolutePath = join(parent, segment);
|
|
80
|
+
const before = await operations.lstat(absolutePath);
|
|
81
|
+
assertRealDirectory(before, `Repository ancestry ${repositoryPath}`);
|
|
82
|
+
const beforeIdentity = identity(before);
|
|
83
|
+
const canonical = await operations.realpath(absolutePath);
|
|
84
|
+
if (resolve(canonical) !== resolve(absolutePath) ||
|
|
85
|
+
!contained(root.canonicalRoot, canonical)) {
|
|
86
|
+
throw new Error("Repository ancestry is redirected or escapes the repository.");
|
|
87
|
+
}
|
|
88
|
+
const after = await operations.lstat(absolutePath);
|
|
89
|
+
assertRealDirectory(after, `Repository ancestry ${repositoryPath}`);
|
|
90
|
+
const afterIdentity = identity(after);
|
|
91
|
+
if (!sameNodePathIdentity(beforeIdentity, afterIdentity)) {
|
|
92
|
+
throw new Error(`Repository ancestry identity changed: ${repositoryPath}.`);
|
|
93
|
+
}
|
|
94
|
+
return Object.freeze({
|
|
95
|
+
absolutePath: canonical,
|
|
96
|
+
identity: afterIdentity,
|
|
97
|
+
repositoryPath
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
export async function captureNodeRepositoryDirectoryAuthority(request) {
|
|
101
|
+
const operations = request.operations ?? nodeOperations;
|
|
102
|
+
if (request.repositoryPath !== "." &&
|
|
103
|
+
!isDocumentRepositoryPath(request.repositoryPath)) {
|
|
104
|
+
throw new Error("Repository directory is not a portable repository path.");
|
|
105
|
+
}
|
|
106
|
+
const root = await captureNodeRepositoryRootAuthority(request.consumerRoot, operations);
|
|
107
|
+
const ancestry = [{
|
|
108
|
+
absolutePath: root.canonicalRoot,
|
|
109
|
+
identity: root.identity,
|
|
110
|
+
repositoryPath: "."
|
|
111
|
+
}];
|
|
112
|
+
let parent = root.canonicalRoot;
|
|
113
|
+
const traversed = [];
|
|
114
|
+
if (request.repositoryPath !== ".") {
|
|
115
|
+
for (const segment of request.repositoryPath.split("/")) {
|
|
116
|
+
traversed.push(segment);
|
|
117
|
+
const captured = await captureChildDirectory(root, parent, traversed.join("/"), segment, operations);
|
|
118
|
+
ancestry.push(captured);
|
|
119
|
+
parent = captured.absolutePath;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
const rootAfter = await captureNodeRepositoryRootAuthority(request.consumerRoot, operations);
|
|
123
|
+
if (!sameRootAuthority(root, rootAfter)) {
|
|
124
|
+
throw new Error("Repository root changed while ancestry was captured.");
|
|
125
|
+
}
|
|
126
|
+
const leaf = ancestry.at(-1);
|
|
127
|
+
return Object.freeze({
|
|
128
|
+
ancestry: Object.freeze(ancestry),
|
|
129
|
+
directory: leaf.absolutePath,
|
|
130
|
+
directoryIdentity: leaf.identity,
|
|
131
|
+
repositoryPath: request.repositoryPath,
|
|
132
|
+
root
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
export async function captureNodeRepositoryPathAuthority(request) {
|
|
136
|
+
if (!isDocumentRepositoryPath(request.repositoryPath)) {
|
|
137
|
+
throw new Error("Repository destination is not a portable repository path.");
|
|
138
|
+
}
|
|
139
|
+
const segments = request.repositoryPath.split("/");
|
|
140
|
+
const basename = segments.at(-1);
|
|
141
|
+
const parentRepositoryPath = segments.length === 1
|
|
142
|
+
? "."
|
|
143
|
+
: segments.slice(0, -1).join("/");
|
|
144
|
+
const directory = await captureNodeRepositoryDirectoryAuthority({
|
|
145
|
+
consumerRoot: request.consumerRoot,
|
|
146
|
+
...(request.operations === undefined ? {} : { operations: request.operations }),
|
|
147
|
+
repositoryPath: parentRepositoryPath
|
|
148
|
+
});
|
|
149
|
+
await assertNoPortableAlias(directory.directory, basename, request.operations ?? nodeOperations);
|
|
150
|
+
return Object.freeze({
|
|
151
|
+
ancestry: directory.ancestry,
|
|
152
|
+
destinationPath: join(directory.directory, basename),
|
|
153
|
+
parent: directory.directory,
|
|
154
|
+
parentIdentity: directory.directoryIdentity,
|
|
155
|
+
repositoryPath: request.repositoryPath,
|
|
156
|
+
root: directory.root
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
function sameRootAuthority(left, right) {
|
|
160
|
+
return left.canonicalRoot === right.canonicalRoot &&
|
|
161
|
+
left.lexicalRoot === right.lexicalRoot &&
|
|
162
|
+
sameNodePathIdentity(left.identity, right.identity);
|
|
163
|
+
}
|
|
164
|
+
export function sameNodePathAncestry(left, right) {
|
|
165
|
+
return left.length === right.length && left.every((entry, index) => {
|
|
166
|
+
const other = right[index];
|
|
167
|
+
return other !== undefined &&
|
|
168
|
+
entry.absolutePath === other.absolutePath &&
|
|
169
|
+
entry.repositoryPath === other.repositoryPath &&
|
|
170
|
+
sameNodePathIdentity(entry.identity, other.identity);
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
export async function recaptureNodeRepositoryPathAuthority(authority, operations = nodeOperations) {
|
|
174
|
+
const recaptured = await captureNodeRepositoryPathAuthority({
|
|
175
|
+
consumerRoot: authority.root.lexicalRoot,
|
|
176
|
+
operations,
|
|
177
|
+
repositoryPath: authority.repositoryPath
|
|
178
|
+
});
|
|
179
|
+
if (!sameRootAuthority(authority.root, recaptured.root) ||
|
|
180
|
+
!sameNodePathAncestry(authority.ancestry, recaptured.ancestry) ||
|
|
181
|
+
authority.destinationPath !== recaptured.destinationPath) {
|
|
182
|
+
throw new Error("Repository path authority changed during the operation.");
|
|
183
|
+
}
|
|
184
|
+
return recaptured;
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=node-path-authority.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-path-authority.js","sourceRoot":"","sources":["../../../src/adapters/node/node-path-authority.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { DocumentAuthorityEvidence } from "../../application/model/document-catalog.js";
|
|
2
|
+
export interface DocumentAuthorityFile {
|
|
3
|
+
readonly bytes: Buffer;
|
|
4
|
+
readonly evidence: DocumentAuthorityEvidence;
|
|
5
|
+
readonly source: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function readDocumentAuthorityFile(request: {
|
|
8
|
+
readonly consumerRoot: string;
|
|
9
|
+
readonly maxBytes: number;
|
|
10
|
+
readonly path: string;
|
|
11
|
+
}): Promise<DocumentAuthorityFile>;
|
|
12
|
+
//# sourceMappingURL=read-document-authority-file.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-document-authority-file.d.ts","sourceRoot":"","sources":["../../../src/adapters/node/read-document-authority-file.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAEV,yBAAyB,EAC1B,MAAM,6CAA6C,CAAC;AAIrD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AA6DD,wBAAsB,yBAAyB,CAAC,OAAO,EAAE;IACvD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA4BjC"}
|