@sourcey/catalog-verifier 1.1.4 → 1.1.6
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/SBOM.cdx.json +16 -16
- package/SOURCEY-CLOSURE.json +573 -589
- package/SOURCEY-DISTRIBUTION.json +1 -1
- package/THIRD_PARTY_NOTICES.json +6 -6
- package/dist/contracts/agent-readiness/src/authority.d.ts +51 -0
- package/dist/contracts/agent-readiness/src/authority.d.ts.map +1 -0
- package/dist/contracts/agent-readiness/src/authority.js +36 -0
- package/dist/contracts/agent-readiness/src/authority.js.map +1 -0
- package/dist/contracts/agent-readiness/src/binding.d.ts +600 -0
- package/dist/contracts/agent-readiness/src/binding.d.ts.map +1 -0
- package/dist/contracts/agent-readiness/src/binding.js +466 -0
- package/dist/contracts/agent-readiness/src/binding.js.map +1 -0
- package/dist/contracts/agent-readiness/src/declaration-acquisition.d.ts +484 -202
- package/dist/contracts/agent-readiness/src/declaration-acquisition.d.ts.map +1 -1
- package/dist/contracts/agent-readiness/src/declaration-acquisition.js +13 -11
- package/dist/contracts/agent-readiness/src/declaration-acquisition.js.map +1 -1
- package/dist/contracts/agent-readiness/src/declaration-reference.d.ts +4 -7
- package/dist/contracts/agent-readiness/src/declaration-reference.d.ts.map +1 -1
- package/dist/contracts/agent-readiness/src/declaration-reference.js +3 -6
- package/dist/contracts/agent-readiness/src/declaration-reference.js.map +1 -1
- package/dist/contracts/agent-readiness/src/declaration.d.ts +1930 -334
- package/dist/contracts/agent-readiness/src/declaration.d.ts.map +1 -1
- package/dist/contracts/agent-readiness/src/declaration.js +73 -78
- package/dist/contracts/agent-readiness/src/declaration.js.map +1 -1
- package/dist/contracts/agent-readiness/src/index.d.ts +3532 -4849
- package/dist/contracts/agent-readiness/src/index.d.ts.map +1 -1
- package/dist/contracts/agent-readiness/src/index.js +228 -949
- package/dist/contracts/agent-readiness/src/index.js.map +1 -1
- package/dist/contracts/agent-readiness/src/jobs.d.ts +199 -0
- package/dist/contracts/agent-readiness/src/jobs.d.ts.map +1 -0
- package/dist/contracts/agent-readiness/src/jobs.js +125 -0
- package/dist/contracts/agent-readiness/src/jobs.js.map +1 -0
- package/dist/contracts/agent-readiness/src/operate-policy.d.ts +251 -0
- package/dist/contracts/agent-readiness/src/operate-policy.d.ts.map +1 -0
- package/dist/contracts/agent-readiness/src/operate-policy.js +86 -0
- package/dist/contracts/agent-readiness/src/operate-policy.js.map +1 -0
- package/dist/contracts/agent-readiness/src/run.d.ts +485 -0
- package/dist/contracts/agent-readiness/src/run.d.ts.map +1 -0
- package/dist/contracts/agent-readiness/src/run.js +308 -0
- package/dist/contracts/agent-readiness/src/run.js.map +1 -0
- package/dist/contracts/agent-readiness/src/shared.d.ts +53 -62
- package/dist/contracts/agent-readiness/src/shared.d.ts.map +1 -1
- package/dist/contracts/agent-readiness/src/shared.js +51 -85
- package/dist/contracts/agent-readiness/src/shared.js.map +1 -1
- package/dist/contracts/api/src/index.d.ts +13861 -14913
- package/dist/contracts/api/src/index.d.ts.map +1 -1
- package/dist/contracts/api/src/index.js +93 -80
- package/dist/contracts/api/src/index.js.map +1 -1
- package/dist/contracts/artifact/src/index.d.ts +135 -71
- package/dist/contracts/artifact/src/index.d.ts.map +1 -1
- package/dist/contracts/artifact/src/index.js +16 -12
- package/dist/contracts/artifact/src/index.js.map +1 -1
- package/dist/contracts/assets/src/index.d.ts +0 -129
- package/dist/contracts/assets/src/index.d.ts.map +1 -1
- package/dist/contracts/assets/src/index.js +4 -4
- package/dist/contracts/assets/src/index.js.map +1 -1
- package/dist/contracts/assurance/src/index.d.ts +0 -1
- package/dist/contracts/assurance/src/index.d.ts.map +1 -1
- package/dist/contracts/authoring/src/index.d.ts +48 -247
- package/dist/contracts/authoring/src/index.d.ts.map +1 -1
- package/dist/contracts/authoring/src/index.js +4 -7
- package/dist/contracts/authoring/src/index.js.map +1 -1
- package/dist/contracts/authority/src/index.d.ts +0 -3
- package/dist/contracts/authority/src/index.d.ts.map +1 -1
- package/dist/contracts/authority/src/index.js +1 -2
- package/dist/contracts/authority/src/index.js.map +1 -1
- package/dist/contracts/billing/src/index.d.ts +0 -124
- package/dist/contracts/billing/src/index.d.ts.map +1 -1
- package/dist/contracts/billing/src/index.js +2 -58
- package/dist/contracts/billing/src/index.js.map +1 -1
- package/dist/contracts/catalog-verifier/src/index.d.ts +0 -3
- package/dist/contracts/catalog-verifier/src/index.d.ts.map +1 -1
- package/dist/contracts/company-authoring/src/index.d.ts +72 -0
- package/dist/contracts/company-authoring/src/index.d.ts.map +1 -0
- package/dist/contracts/company-authoring/src/index.js +41 -0
- package/dist/contracts/company-authoring/src/index.js.map +1 -0
- package/dist/contracts/company-standing/src/index.d.ts +128 -0
- package/dist/contracts/company-standing/src/index.d.ts.map +1 -0
- package/dist/contracts/company-standing/src/index.js +135 -0
- package/dist/contracts/company-standing/src/index.js.map +1 -0
- package/dist/contracts/company-verification/src/index.d.ts +94 -0
- package/dist/contracts/company-verification/src/index.d.ts.map +1 -0
- package/dist/contracts/company-verification/src/index.js +138 -0
- package/dist/contracts/company-verification/src/index.js.map +1 -0
- package/dist/contracts/datasets/src/index.d.ts +80 -129
- package/dist/contracts/datasets/src/index.d.ts.map +1 -1
- package/dist/contracts/events/src/index.d.ts +41 -5
- package/dist/contracts/events/src/index.d.ts.map +1 -1
- package/dist/contracts/events/src/index.js +51 -12
- package/dist/contracts/events/src/index.js.map +1 -1
- package/dist/contracts/evidence/src/index.d.ts +6 -291
- package/dist/contracts/evidence/src/index.d.ts.map +1 -1
- package/dist/contracts/evidence/src/index.js +12 -99
- package/dist/contracts/evidence/src/index.js.map +1 -1
- package/dist/contracts/feed/src/index.d.ts +0 -3
- package/dist/contracts/feed/src/index.d.ts.map +1 -1
- package/dist/contracts/observations/src/index.d.ts +0 -1
- package/dist/contracts/observations/src/index.d.ts.map +1 -1
- package/dist/contracts/observations/src/index.js +1 -4
- package/dist/contracts/observations/src/index.js.map +1 -1
- package/dist/contracts/policies/src/index.d.ts +0 -13
- package/dist/contracts/policies/src/index.d.ts.map +1 -1
- package/dist/contracts/policies/src/index.js +3 -2
- package/dist/contracts/policies/src/index.js.map +1 -1
- package/dist/contracts/publication/src/index.d.ts +282 -1285
- package/dist/contracts/publication/src/index.d.ts.map +1 -1
- package/dist/contracts/publication/src/index.js +22 -162
- package/dist/contracts/publication/src/index.js.map +1 -1
- package/dist/contracts/release/src/index.d.ts +120 -21
- package/dist/contracts/release/src/index.d.ts.map +1 -1
- package/dist/contracts/release/src/index.js +14 -2
- package/dist/contracts/release/src/index.js.map +1 -1
- package/dist/contracts/revisions/src/index.d.ts +107 -69
- package/dist/contracts/revisions/src/index.d.ts.map +1 -1
- package/dist/contracts/revisions/src/index.js +26 -8
- package/dist/contracts/revisions/src/index.js.map +1 -1
- package/dist/contracts/routes/src/index.d.ts +1 -17
- package/dist/contracts/routes/src/index.d.ts.map +1 -1
- package/dist/contracts/routes/src/index.js +7 -7
- package/dist/contracts/routes/src/index.js.map +1 -1
- package/dist/contracts/sourcey-publication/src/ownership.d.ts.map +1 -1
- package/dist/contracts/sourcey-publication/src/ownership.js +3 -1
- package/dist/contracts/sourcey-publication/src/ownership.js.map +1 -1
- package/dist/contracts/standards/src/index.d.ts +0 -1552
- package/dist/contracts/standards/src/index.d.ts.map +1 -1
- package/dist/contracts/standards/src/index.js +1 -723
- package/dist/contracts/standards/src/index.js.map +1 -1
- package/dist/contracts/startup-credits-commercial/src/index.d.ts +53 -382
- package/dist/contracts/startup-credits-commercial/src/index.d.ts.map +1 -1
- package/dist/contracts/startup-credits-commercial/src/index.js +30 -267
- package/dist/contracts/startup-credits-commercial/src/index.js.map +1 -1
- package/dist/modules/agent-readiness-engine/src/assertions.d.ts +24 -0
- package/dist/modules/agent-readiness-engine/src/assertions.d.ts.map +1 -0
- package/dist/modules/agent-readiness-engine/src/assertions.js +145 -0
- package/dist/modules/agent-readiness-engine/src/assertions.js.map +1 -0
- package/dist/modules/agent-readiness-engine/src/binding.d.ts +12 -0
- package/dist/modules/agent-readiness-engine/src/binding.d.ts.map +1 -0
- package/dist/modules/agent-readiness-engine/src/binding.js +104 -0
- package/dist/modules/agent-readiness-engine/src/binding.js.map +1 -0
- package/dist/modules/agent-readiness-engine/src/checks.d.ts +57 -0
- package/dist/modules/agent-readiness-engine/src/checks.d.ts.map +1 -0
- package/dist/modules/agent-readiness-engine/src/checks.js +126 -0
- package/dist/modules/agent-readiness-engine/src/checks.js.map +1 -0
- package/dist/modules/agent-readiness-engine/src/path.d.ts +24 -0
- package/dist/modules/agent-readiness-engine/src/path.d.ts.map +1 -0
- package/dist/modules/agent-readiness-engine/src/path.js +308 -0
- package/dist/modules/agent-readiness-engine/src/path.js.map +1 -0
- package/dist/modules/agent-readiness-engine/src/rate.d.ts +23 -0
- package/dist/modules/agent-readiness-engine/src/rate.d.ts.map +1 -0
- package/dist/modules/agent-readiness-engine/src/rate.js +57 -0
- package/dist/modules/agent-readiness-engine/src/rate.js.map +1 -0
- package/dist/modules/agent-readiness-engine/src/run.d.ts +9 -0
- package/dist/modules/agent-readiness-engine/src/run.d.ts.map +1 -0
- package/dist/modules/agent-readiness-engine/src/run.js +45 -0
- package/dist/modules/agent-readiness-engine/src/run.js.map +1 -0
- package/dist/modules/agent-readiness-engine/src/templates.d.ts +21 -0
- package/dist/modules/agent-readiness-engine/src/templates.d.ts.map +1 -0
- package/dist/modules/agent-readiness-engine/src/templates.js +89 -0
- package/dist/modules/agent-readiness-engine/src/templates.js.map +1 -0
- package/dist/modules/agent-readiness-jobs/src/index.d.ts +196 -0
- package/dist/modules/agent-readiness-jobs/src/index.d.ts.map +1 -0
- package/dist/modules/agent-readiness-jobs/src/index.js +186 -0
- package/dist/modules/agent-readiness-jobs/src/index.js.map +1 -0
- package/dist/modules/agent-readiness-policy/src/current-policy.d.ts +64 -245
- package/dist/modules/agent-readiness-policy/src/current-policy.d.ts.map +1 -1
- package/dist/modules/agent-readiness-policy/src/current-policy.js +10 -478
- package/dist/modules/agent-readiness-policy/src/current-policy.js.map +1 -1
- package/dist/modules/agent-readiness-policy/src/declaration-jobs.d.ts +20 -0
- package/dist/modules/agent-readiness-policy/src/declaration-jobs.d.ts.map +1 -0
- package/dist/modules/agent-readiness-policy/src/declaration-jobs.js +32 -0
- package/dist/modules/agent-readiness-policy/src/declaration-jobs.js.map +1 -0
- package/dist/modules/agent-readiness-policy/src/impact.d.ts +1 -80
- package/dist/modules/agent-readiness-policy/src/impact.d.ts.map +1 -1
- package/dist/modules/agent-readiness-policy/src/impact.js +2 -189
- package/dist/modules/agent-readiness-policy/src/impact.js.map +1 -1
- package/dist/modules/agent-readiness-policy/src/index.d.ts +21 -968
- package/dist/modules/agent-readiness-policy/src/index.d.ts.map +1 -1
- package/dist/modules/agent-readiness-policy/src/index.js +137 -470
- package/dist/modules/agent-readiness-policy/src/index.js.map +1 -1
- package/dist/modules/agent-readiness-policy/src/offer-relations.d.ts +0 -5
- package/dist/modules/agent-readiness-policy/src/offer-relations.d.ts.map +1 -1
- package/dist/modules/agent-readiness-policy/src/offer-relations.js +2 -4
- package/dist/modules/agent-readiness-policy/src/offer-relations.js.map +1 -1
- package/dist/modules/agent-readiness-policy/src/operate-policy.d.ts +16 -0
- package/dist/modules/agent-readiness-policy/src/operate-policy.d.ts.map +1 -0
- package/dist/modules/agent-readiness-policy/src/operate-policy.js +110 -0
- package/dist/modules/agent-readiness-policy/src/operate-policy.js.map +1 -0
- package/dist/modules/agent-readiness-policy/src/prior-projection.d.ts +3 -0
- package/dist/modules/agent-readiness-policy/src/prior-projection.d.ts.map +1 -0
- package/dist/modules/agent-readiness-policy/src/prior-projection.js +11 -0
- package/dist/modules/agent-readiness-policy/src/prior-projection.js.map +1 -0
- package/dist/modules/agent-readiness-policy/src/revision.d.ts +13 -2
- package/dist/modules/agent-readiness-policy/src/revision.d.ts.map +1 -1
- package/dist/modules/agent-readiness-policy/src/revision.js +79 -38
- package/dist/modules/agent-readiness-policy/src/revision.js.map +1 -1
- package/dist/modules/agent-readiness-repository/src/change.d.ts +3 -4
- package/dist/modules/agent-readiness-repository/src/change.d.ts.map +1 -1
- package/dist/modules/agent-readiness-repository/src/change.js +4 -4
- package/dist/modules/agent-readiness-repository/src/change.js.map +1 -1
- package/dist/modules/agent-readiness-repository/src/declaration-blob.d.ts +0 -5
- package/dist/modules/agent-readiness-repository/src/declaration-blob.d.ts.map +1 -1
- package/dist/modules/agent-readiness-repository/src/declaration-blob.js +2 -9
- package/dist/modules/agent-readiness-repository/src/declaration-blob.js.map +1 -1
- package/dist/modules/agent-readiness-repository/src/index.d.ts +1 -51
- package/dist/modules/agent-readiness-repository/src/index.d.ts.map +1 -1
- package/dist/modules/agent-readiness-repository/src/index.js +4 -113
- package/dist/modules/agent-readiness-repository/src/index.js.map +1 -1
- package/dist/modules/artifact/src/agent-readiness-closure.d.ts +4 -7
- package/dist/modules/artifact/src/agent-readiness-closure.d.ts.map +1 -1
- package/dist/modules/artifact/src/agent-readiness-closure.js +5 -22
- package/dist/modules/artifact/src/agent-readiness-closure.js.map +1 -1
- package/dist/modules/artifact/src/index.d.ts +5 -4
- package/dist/modules/artifact/src/index.d.ts.map +1 -1
- package/dist/modules/artifact/src/index.js +47 -45
- package/dist/modules/artifact/src/index.js.map +1 -1
- package/dist/modules/artifact/src/policy-closure.js +2 -2
- package/dist/modules/artifact/src/policy-closure.js.map +1 -1
- package/dist/modules/assets/src/authority-bundle.d.ts +2 -5
- package/dist/modules/assets/src/authority-bundle.d.ts.map +1 -1
- package/dist/modules/assets/src/authority-bundle.js +1 -9
- package/dist/modules/assets/src/authority-bundle.js.map +1 -1
- package/dist/modules/assets/src/delta.d.ts +0 -5
- package/dist/modules/assets/src/delta.d.ts.map +1 -1
- package/dist/modules/assets/src/delta.js +1 -38
- package/dist/modules/assets/src/delta.js.map +1 -1
- package/dist/modules/assets/src/index.d.ts +1 -1
- package/dist/modules/assets/src/index.d.ts.map +1 -1
- package/dist/modules/assets/src/ingestion.d.ts +2 -1
- package/dist/modules/assets/src/ingestion.d.ts.map +1 -1
- package/dist/modules/authority/src/index.d.ts +3 -10
- package/dist/modules/authority/src/index.d.ts.map +1 -1
- package/dist/modules/authority/src/index.js +113 -201
- package/dist/modules/authority/src/index.js.map +1 -1
- package/dist/modules/authority-state/src/index.d.ts +2 -1
- package/dist/modules/authority-state/src/index.d.ts.map +1 -1
- package/dist/modules/catalog-admission/src/admission-conflicts.d.ts +5 -7
- package/dist/modules/catalog-admission/src/admission-conflicts.d.ts.map +1 -1
- package/dist/modules/catalog-admission/src/admission-conflicts.js +1 -1
- package/dist/modules/catalog-admission/src/admission-conflicts.js.map +1 -1
- package/dist/modules/catalog-admission/src/change-analysis.d.ts +1 -2
- package/dist/modules/catalog-admission/src/change-analysis.d.ts.map +1 -1
- package/dist/modules/catalog-admission/src/change-analysis.js +0 -4
- package/dist/modules/catalog-admission/src/change-analysis.js.map +1 -1
- package/dist/modules/catalog-admission/src/index.d.ts +2 -9
- package/dist/modules/catalog-admission/src/index.d.ts.map +1 -1
- package/dist/modules/catalog-admission/src/index.js +28 -13
- package/dist/modules/catalog-admission/src/index.js.map +1 -1
- package/dist/modules/catalog-admission/src/machine-admission.d.ts +140 -19
- package/dist/modules/catalog-admission/src/machine-admission.d.ts.map +1 -1
- package/dist/modules/catalog-admission/src/machine-admission.js +12 -331
- package/dist/modules/catalog-admission/src/machine-admission.js.map +1 -1
- package/dist/modules/catalog-admission/src/publication-composition.d.ts +17 -1
- package/dist/modules/catalog-admission/src/publication-composition.d.ts.map +1 -1
- package/dist/modules/catalog-admission/src/publication-dependencies.d.ts +1 -6
- package/dist/modules/catalog-admission/src/publication-dependencies.d.ts.map +1 -1
- package/dist/modules/catalog-admission/src/publication-dependencies.js +5 -33
- package/dist/modules/catalog-admission/src/publication-dependencies.js.map +1 -1
- package/dist/modules/catalog-admission/src/publication-entities.d.ts +0 -1
- package/dist/modules/catalog-admission/src/publication-entities.d.ts.map +1 -1
- package/dist/modules/catalog-admission/src/publication-entities.js +1 -1
- package/dist/modules/catalog-admission/src/publication-entities.js.map +1 -1
- package/dist/modules/catalog-admission/src/publication.d.ts +3 -8
- package/dist/modules/catalog-admission/src/publication.d.ts.map +1 -1
- package/dist/modules/catalog-admission/src/publication.js +0 -13
- package/dist/modules/catalog-admission/src/publication.js.map +1 -1
- package/dist/modules/catalog-admission/src/submission.js +1 -1
- package/dist/modules/catalog-admission/src/submission.js.map +1 -1
- package/dist/modules/catalog-admission/src/taxonomy.d.ts +3 -0
- package/dist/modules/catalog-admission/src/taxonomy.d.ts.map +1 -0
- package/dist/modules/catalog-admission/src/taxonomy.js +7 -0
- package/dist/modules/catalog-admission/src/taxonomy.js.map +1 -0
- package/dist/modules/catalog-authoring-validation/src/index.d.ts +0 -1
- package/dist/modules/catalog-authoring-validation/src/index.d.ts.map +1 -1
- package/dist/modules/catalog-authoring-validation/src/index.js +1 -1
- package/dist/modules/catalog-authoring-validation/src/index.js.map +1 -1
- package/dist/modules/catalog-model/src/index.d.ts +2 -2
- package/dist/modules/catalog-model/src/index.d.ts.map +1 -1
- package/dist/modules/catalog-primitives/src/index.d.ts +2 -4
- package/dist/modules/catalog-primitives/src/index.d.ts.map +1 -1
- package/dist/modules/catalog-primitives/src/index.js +24 -0
- package/dist/modules/catalog-primitives/src/index.js.map +1 -1
- package/dist/modules/catalog-read-port/src/index.d.ts +3 -3
- package/dist/modules/catalog-read-port/src/index.d.ts.map +1 -1
- package/dist/modules/evidence-comparison/src/domains.d.ts +8 -0
- package/dist/modules/evidence-comparison/src/domains.d.ts.map +1 -0
- package/dist/modules/evidence-comparison/src/domains.js +16 -0
- package/dist/modules/evidence-comparison/src/domains.js.map +1 -0
- package/dist/modules/evidence-operations/src/attested-capture.d.ts +75 -0
- package/dist/modules/evidence-operations/src/attested-capture.d.ts.map +1 -0
- package/dist/modules/evidence-operations/src/attested-capture.js +227 -0
- package/dist/modules/evidence-operations/src/attested-capture.js.map +1 -0
- package/dist/modules/evidence-operations/src/configuration.d.ts +2 -163
- package/dist/modules/evidence-operations/src/configuration.d.ts.map +1 -1
- package/dist/modules/evidence-operations/src/configuration.js +7 -7
- package/dist/modules/evidence-operations/src/configuration.js.map +1 -1
- package/dist/modules/evidence-operations/src/evidence-authority-materialization.d.ts +53 -0
- package/dist/modules/evidence-operations/src/evidence-authority-materialization.d.ts.map +1 -0
- package/dist/modules/evidence-operations/src/evidence-authority-materialization.js +161 -0
- package/dist/modules/evidence-operations/src/evidence-authority-materialization.js.map +1 -0
- package/dist/modules/evidence-operations/src/evidence-authority.d.ts +27 -2128
- package/dist/modules/evidence-operations/src/evidence-authority.d.ts.map +1 -1
- package/dist/modules/evidence-operations/src/evidence-authority.js +46 -206
- package/dist/modules/evidence-operations/src/evidence-authority.js.map +1 -1
- package/dist/modules/evidence-operations/src/evidence-normalization.d.ts +10 -96
- package/dist/modules/evidence-operations/src/evidence-normalization.d.ts.map +1 -1
- package/dist/modules/evidence-operations/src/evidence-normalization.js +32 -329
- package/dist/modules/evidence-operations/src/evidence-normalization.js.map +1 -1
- package/dist/modules/evidence-operations/src/evidence-revision.d.ts +5 -0
- package/dist/modules/evidence-operations/src/evidence-revision.d.ts.map +1 -0
- package/dist/modules/evidence-operations/src/evidence-revision.js +12 -0
- package/dist/modules/evidence-operations/src/evidence-revision.js.map +1 -0
- package/dist/modules/evidence-operations/src/proof-graph.d.ts +13 -6
- package/dist/modules/evidence-operations/src/proof-graph.d.ts.map +1 -1
- package/dist/modules/evidence-operations/src/proof-graph.js +82 -59
- package/dist/modules/evidence-operations/src/proof-graph.js.map +1 -1
- package/dist/modules/evidence-operations/src/retained-revision.d.ts +7 -5
- package/dist/modules/evidence-operations/src/retained-revision.d.ts.map +1 -1
- package/dist/modules/evidence-operations/src/retained-revision.js +14 -16
- package/dist/modules/evidence-operations/src/retained-revision.js.map +1 -1
- package/dist/modules/evidence-operations/src/source-authority.js +1 -1
- package/dist/modules/evidence-operations/src/source-authority.js.map +1 -1
- package/dist/modules/evidence-operations/src/submission-verifier.d.ts +13 -23
- package/dist/modules/evidence-operations/src/submission-verifier.d.ts.map +1 -1
- package/dist/modules/evidence-operations/src/submission-verifier.js +5 -20
- package/dist/modules/evidence-operations/src/submission-verifier.js.map +1 -1
- package/dist/modules/provenance/src/evidence-bindings.d.ts +2 -1
- package/dist/modules/provenance/src/evidence-bindings.d.ts.map +1 -1
- package/dist/modules/provenance/src/evidence-coverage.d.ts +2 -1
- package/dist/modules/provenance/src/evidence-coverage.d.ts.map +1 -1
- package/dist/modules/provenance/src/index.d.ts +17 -11
- package/dist/modules/provenance/src/index.d.ts.map +1 -1
- package/dist/modules/provenance/src/index.js +62 -62
- package/dist/modules/provenance/src/index.js.map +1 -1
- package/dist/modules/provenance/src/material-claims.d.ts +7 -136
- package/dist/modules/provenance/src/material-claims.d.ts.map +1 -1
- package/dist/modules/provenance/src/material-claims.js +8 -10
- package/dist/modules/provenance/src/material-claims.js.map +1 -1
- package/dist/modules/release/src/agent-readiness-authority.d.ts +71 -0
- package/dist/modules/release/src/agent-readiness-authority.d.ts.map +1 -0
- package/dist/modules/release/src/agent-readiness-authority.js +164 -0
- package/dist/modules/release/src/agent-readiness-authority.js.map +1 -0
- package/dist/modules/release/src/agent-readiness-publication-inputs.d.ts +1 -2
- package/dist/modules/release/src/agent-readiness-publication-inputs.d.ts.map +1 -1
- package/dist/modules/release/src/agent-readiness-publication-inputs.js +3 -6
- package/dist/modules/release/src/agent-readiness-publication-inputs.js.map +1 -1
- package/dist/modules/release/src/agent-readiness-regrade-evidence.d.ts +13 -89
- package/dist/modules/release/src/agent-readiness-regrade-evidence.d.ts.map +1 -1
- package/dist/modules/release/src/agent-readiness-regrade-evidence.js +14 -46
- package/dist/modules/release/src/agent-readiness-regrade-evidence.js.map +1 -1
- package/dist/modules/release/src/changes.d.ts +3 -3
- package/dist/modules/release/src/changes.d.ts.map +1 -1
- package/dist/modules/release/src/changes.js +1 -2
- package/dist/modules/release/src/changes.js.map +1 -1
- package/dist/modules/release/src/evidence-admission.d.ts +10 -10
- package/dist/modules/release/src/evidence-admission.d.ts.map +1 -1
- package/dist/modules/release/src/evidence-admission.js +52 -60
- package/dist/modules/release/src/evidence-admission.js.map +1 -1
- package/dist/modules/release/src/evidence-bundle-tree.d.ts +7 -7
- package/dist/modules/release/src/evidence-bundle-tree.d.ts.map +1 -1
- package/dist/modules/release/src/evidence-bundle-tree.js +15 -15
- package/dist/modules/release/src/evidence-bundle-tree.js.map +1 -1
- package/dist/modules/release/src/identity.d.ts +2 -1
- package/dist/modules/release/src/identity.d.ts.map +1 -1
- package/dist/modules/release/src/identity.js.map +1 -1
- package/dist/modules/release/src/inputs.d.ts +12 -11
- package/dist/modules/release/src/inputs.d.ts.map +1 -1
- package/dist/modules/release/src/inputs.js +30 -202
- package/dist/modules/release/src/inputs.js.map +1 -1
- package/dist/modules/release/src/publication-inputs.d.ts +2 -1
- package/dist/modules/release/src/publication-inputs.d.ts.map +1 -1
- package/dist/modules/release/src/transition.d.ts +2 -2
- package/dist/modules/release/src/transition.d.ts.map +1 -1
- package/dist/modules/release/src/transition.js.map +1 -1
- package/dist/modules/release/src/verification-policies.d.ts +59 -242
- package/dist/modules/release/src/verification-policies.d.ts.map +1 -1
- package/dist/modules/release/src/verification-policies.js +2 -2
- package/dist/modules/release/src/verification-policies.js.map +1 -1
- package/dist/modules/sourcey-publication/src/verifier.d.ts +4 -3
- package/dist/modules/sourcey-publication/src/verifier.d.ts.map +1 -1
- package/dist/modules/sourcey-publication/src/verifier.js +53 -50
- package/dist/modules/sourcey-publication/src/verifier.js.map +1 -1
- package/dist/packages/catalog-verifier/src/application.d.ts +18 -5
- package/dist/packages/catalog-verifier/src/application.d.ts.map +1 -1
- package/dist/packages/catalog-verifier/src/application.js +161 -5
- package/dist/packages/catalog-verifier/src/application.js.map +1 -1
- package/dist/packages/catalog-verifier/src/program.d.ts.map +1 -1
- package/dist/packages/catalog-verifier/src/program.js +34 -1
- package/dist/packages/catalog-verifier/src/program.js.map +1 -1
- package/package.json +2 -3
- package/dist/contracts/agent-readiness/src/evidence.d.ts +0 -245
- package/dist/contracts/agent-readiness/src/evidence.d.ts.map +0 -1
- package/dist/contracts/agent-readiness/src/evidence.js +0 -213
- package/dist/contracts/agent-readiness/src/evidence.js.map +0 -1
- package/dist/contracts/agent-readiness/src/interaction.d.ts +0 -26
- package/dist/contracts/agent-readiness/src/interaction.d.ts.map +0 -1
- package/dist/contracts/agent-readiness/src/interaction.js +0 -24
- package/dist/contracts/agent-readiness/src/interaction.js.map +0 -1
- package/dist/contracts/agent-readiness/src/method-pack.d.ts +0 -389
- package/dist/contracts/agent-readiness/src/method-pack.d.ts.map +0 -1
- package/dist/contracts/agent-readiness/src/method-pack.js +0 -181
- package/dist/contracts/agent-readiness/src/method-pack.js.map +0 -1
- package/dist/modules/agent-readiness-policy/src/corroboration.d.ts +0 -38
- package/dist/modules/agent-readiness-policy/src/corroboration.d.ts.map +0 -1
- package/dist/modules/agent-readiness-policy/src/corroboration.js +0 -66
- package/dist/modules/agent-readiness-policy/src/corroboration.js.map +0 -1
- package/dist/modules/agent-readiness-policy/src/current-policy-metrics.d.ts +0 -35
- package/dist/modules/agent-readiness-policy/src/current-policy-metrics.d.ts.map +0 -1
- package/dist/modules/agent-readiness-policy/src/current-policy-metrics.js +0 -721
- package/dist/modules/agent-readiness-policy/src/current-policy-metrics.js.map +0 -1
- package/dist/modules/agent-readiness-policy/src/current-policy-standards.d.ts +0 -99
- package/dist/modules/agent-readiness-policy/src/current-policy-standards.d.ts.map +0 -1
- package/dist/modules/agent-readiness-policy/src/current-policy-standards.js +0 -99
- package/dist/modules/agent-readiness-policy/src/current-policy-standards.js.map +0 -1
- package/dist/modules/agent-readiness-policy/src/current-policy-validation.d.ts +0 -4
- package/dist/modules/agent-readiness-policy/src/current-policy-validation.d.ts.map +0 -1
- package/dist/modules/agent-readiness-policy/src/current-policy-validation.js +0 -11
- package/dist/modules/agent-readiness-policy/src/current-policy-validation.js.map +0 -1
- package/dist/modules/agent-readiness-policy/src/grading.d.ts +0 -40
- package/dist/modules/agent-readiness-policy/src/grading.d.ts.map +0 -1
- package/dist/modules/agent-readiness-policy/src/grading.js +0 -46
- package/dist/modules/agent-readiness-policy/src/grading.js.map +0 -1
- package/dist/modules/agent-readiness-policy/src/policy-validation.d.ts +0 -3
- package/dist/modules/agent-readiness-policy/src/policy-validation.d.ts.map +0 -1
- package/dist/modules/agent-readiness-policy/src/policy-validation.js +0 -39
- package/dist/modules/agent-readiness-policy/src/policy-validation.js.map +0 -1
- package/dist/modules/agent-readiness-policy/src/projection-lineage.d.ts +0 -3
- package/dist/modules/agent-readiness-policy/src/projection-lineage.d.ts.map +0 -1
- package/dist/modules/agent-readiness-policy/src/projection-lineage.js +0 -12
- package/dist/modules/agent-readiness-policy/src/projection-lineage.js.map +0 -1
- package/dist/modules/agent-readiness-policy/src/standard-mapping.d.ts +0 -7
- package/dist/modules/agent-readiness-policy/src/standard-mapping.d.ts.map +0 -1
- package/dist/modules/agent-readiness-policy/src/standard-mapping.js +0 -14
- package/dist/modules/agent-readiness-policy/src/standard-mapping.js.map +0 -1
- package/dist/modules/agent-readiness-policy/src/surface-selection.d.ts +0 -44
- package/dist/modules/agent-readiness-policy/src/surface-selection.d.ts.map +0 -1
- package/dist/modules/agent-readiness-policy/src/surface-selection.js +0 -238
- package/dist/modules/agent-readiness-policy/src/surface-selection.js.map +0 -1
- package/dist/modules/agent-readiness-repository/src/admission.d.ts +0 -35
- package/dist/modules/agent-readiness-repository/src/admission.d.ts.map +0 -1
- package/dist/modules/agent-readiness-repository/src/admission.js +0 -56
- package/dist/modules/agent-readiness-repository/src/admission.js.map +0 -1
- package/dist/modules/authority/src/retained-capture-receipt.d.ts +0 -95
- package/dist/modules/authority/src/retained-capture-receipt.d.ts.map +0 -1
- package/dist/modules/authority/src/retained-capture-receipt.js +0 -76
- package/dist/modules/authority/src/retained-capture-receipt.js.map +0 -1
- package/dist/modules/catalog-admission/src/publication-recomposition.d.ts +0 -42
- package/dist/modules/catalog-admission/src/publication-recomposition.d.ts.map +0 -1
- package/dist/modules/catalog-admission/src/publication-recomposition.js +0 -163
- package/dist/modules/catalog-admission/src/publication-recomposition.js.map +0 -1
- package/dist/modules/evidence-comparison/src/values.d.ts +0 -75
- package/dist/modules/evidence-comparison/src/values.d.ts.map +0 -1
- package/dist/modules/evidence-comparison/src/values.js +0 -283
- package/dist/modules/evidence-comparison/src/values.js.map +0 -1
- package/dist/modules/evidence-grounding/src/figures.d.ts +0 -56
- package/dist/modules/evidence-grounding/src/figures.d.ts.map +0 -1
- package/dist/modules/evidence-grounding/src/figures.js +0 -727
- package/dist/modules/evidence-grounding/src/figures.js.map +0 -1
- package/dist/modules/evidence-grounding/src/index.d.ts +0 -4
- package/dist/modules/evidence-grounding/src/index.d.ts.map +0 -1
- package/dist/modules/evidence-grounding/src/index.js +0 -4
- package/dist/modules/evidence-grounding/src/index.js.map +0 -1
- package/dist/modules/evidence-grounding/src/locator.d.ts +0 -50
- package/dist/modules/evidence-grounding/src/locator.d.ts.map +0 -1
- package/dist/modules/evidence-grounding/src/locator.js +0 -162
- package/dist/modules/evidence-grounding/src/locator.js.map +0 -1
- package/dist/modules/evidence-grounding/src/written.d.ts +0 -29
- package/dist/modules/evidence-grounding/src/written.d.ts.map +0 -1
- package/dist/modules/evidence-grounding/src/written.js +0 -111
- package/dist/modules/evidence-grounding/src/written.js.map +0 -1
- package/dist/modules/evidence-operations/src/dependency-versions.d.ts +0 -2
- package/dist/modules/evidence-operations/src/dependency-versions.d.ts.map +0 -1
- package/dist/modules/evidence-operations/src/dependency-versions.js +0 -17
- package/dist/modules/evidence-operations/src/dependency-versions.js.map +0 -1
- package/dist/modules/evidence-operations/src/html-document.d.ts +0 -4
- package/dist/modules/evidence-operations/src/html-document.d.ts.map +0 -1
- package/dist/modules/evidence-operations/src/html-document.js +0 -99
- package/dist/modules/evidence-operations/src/html-document.js.map +0 -1
- package/dist/modules/policy-identity/src/index.d.ts +0 -7
- package/dist/modules/policy-identity/src/index.d.ts.map +0 -1
- package/dist/modules/policy-identity/src/index.js +0 -23
- package/dist/modules/policy-identity/src/index.js.map +0 -1
- package/dist/modules/release/src/publication-authorities.d.ts +0 -298
- package/dist/modules/release/src/publication-authorities.d.ts.map +0 -1
- package/dist/modules/release/src/publication-authorities.js +0 -56
- package/dist/modules/release/src/publication-authorities.js.map +0 -1
- package/dist/modules/standard-adapter-runtime/src/index.d.ts +0 -16
- package/dist/modules/standard-adapter-runtime/src/index.d.ts.map +0 -1
- package/dist/modules/standard-adapter-runtime/src/index.js +0 -43
- package/dist/modules/standard-adapter-runtime/src/index.js.map +0 -1
- package/dist/modules/standard-evidence/src/index.d.ts +0 -33
- package/dist/modules/standard-evidence/src/index.d.ts.map +0 -1
- package/dist/modules/standard-evidence/src/index.js +0 -149
- package/dist/modules/standard-evidence/src/index.js.map +0 -1
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
import { compareInstants } from "provenry/primitives";
|
|
2
|
+
import { AGENT_READINESS_STEPS, } from "../../../contracts/agent-readiness/src/index.js";
|
|
3
|
+
const MAXIMUM_EVIDENCE = 32;
|
|
4
|
+
/** Facts that name an interface an agent can call; others (metadata, registration) do not. */
|
|
5
|
+
const NAMING_FACTS = new Set([
|
|
6
|
+
"mcp_endpoint",
|
|
7
|
+
"ard_entry",
|
|
8
|
+
"api_catalog_link",
|
|
9
|
+
"openapi_server",
|
|
10
|
+
"oauth_protected_resource",
|
|
11
|
+
]);
|
|
12
|
+
/**
|
|
13
|
+
* The Operate path a profile's runs establish: one outcome per step, each
|
|
14
|
+
* resting on entries of the runs. The latest run decides every step; earlier
|
|
15
|
+
* runs count only to reproduce a refusal, the one way a step is `blocked`.
|
|
16
|
+
* Documentation never enters: only exchanges, discovery attempts, recorded
|
|
17
|
+
* credentials and recorded human steps.
|
|
18
|
+
*/
|
|
19
|
+
export function evaluatePath(input) {
|
|
20
|
+
const runs = [...input.runs].sort((left, right) => compareInstants(left.finished_at, right.finished_at) ||
|
|
21
|
+
(left.run_digest < right.run_digest ? -1 : 1));
|
|
22
|
+
const current = runs.at(-1);
|
|
23
|
+
if (!current)
|
|
24
|
+
throw new Error("A path needs at least one run.");
|
|
25
|
+
const { job, binding } = input;
|
|
26
|
+
const succeeded = (run) => run.assertions.length === job.assertions.length &&
|
|
27
|
+
job.assertions.every(({ name }) => run.assertions.some(({ assertion, holds }) => assertion === name && holds));
|
|
28
|
+
const ok = succeeded(current);
|
|
29
|
+
const jobEvidence = exchangeEvidence(current, (entry) => entry.purpose === "job");
|
|
30
|
+
const refusal = (purpose) => reproducedRefusal(runs, purpose, input.policy.blocked);
|
|
31
|
+
const jobRefusal = ok ? null : refusal("job");
|
|
32
|
+
const jobStep = (() => {
|
|
33
|
+
if (ok)
|
|
34
|
+
return result("job", "machine", null, jobEvidence);
|
|
35
|
+
if (jobRefusal && jobRefusal.status !== 402) {
|
|
36
|
+
return result("job", "blocked", null, jobRefusal.evidence);
|
|
37
|
+
}
|
|
38
|
+
return notAssessed("job");
|
|
39
|
+
})();
|
|
40
|
+
const usedRoles = [...new Set(binding.calls.flatMap(({ credentials }) => credentials))];
|
|
41
|
+
const delegationStep = (() => {
|
|
42
|
+
if (binding.delegation.kind === "none") {
|
|
43
|
+
return ok && usedRoles.length === 0
|
|
44
|
+
? result("delegation", "not_applicable", null, jobEvidence)
|
|
45
|
+
: notAssessed("delegation");
|
|
46
|
+
}
|
|
47
|
+
const delegationRefusal = refusal("delegation");
|
|
48
|
+
if (delegationRefusal)
|
|
49
|
+
return result("delegation", "blocked", null, delegationRefusal.evidence);
|
|
50
|
+
// The authority the job actually carried: the handles on its own requests.
|
|
51
|
+
const carried = new Set(current.exchanges.flatMap((entry) => entry.purpose === "job" && entry.role === "request"
|
|
52
|
+
? entry.record.request.credentials.map(({ handle_digest }) => handle_digest)
|
|
53
|
+
: []));
|
|
54
|
+
const held = current.credentials.filter(({ handle_digest }) => carried.has(handle_digest));
|
|
55
|
+
if (usedRoles.length === 0 || held.length === 0 || held.length !== carried.size) {
|
|
56
|
+
return notAssessed("delegation");
|
|
57
|
+
}
|
|
58
|
+
const evidence = held.map((source) => ({
|
|
59
|
+
kind: "credential",
|
|
60
|
+
run_digest: current.run_digest,
|
|
61
|
+
handle_digest: source.handle_digest,
|
|
62
|
+
}));
|
|
63
|
+
const issuedBy = new Set(held.flatMap(({ source }) => (source.kind === "issued" ? [source.exchange_digest] : [])));
|
|
64
|
+
evidence.push(...exchangeEvidence(current, (entry) => issuedBy.has(entry.record.exchange_digest)));
|
|
65
|
+
if (held.some(({ source }) => source.kind === "entered")) {
|
|
66
|
+
return result("delegation", "workaround", "setup", evidence);
|
|
67
|
+
}
|
|
68
|
+
return binding.delegation.kind === "oauth"
|
|
69
|
+
? result("delegation", "approval", "setup", evidence)
|
|
70
|
+
: result("delegation", "machine", null, evidence);
|
|
71
|
+
})();
|
|
72
|
+
const payStep = (() => {
|
|
73
|
+
if (jobRefusal?.status === 402)
|
|
74
|
+
return result("pay", "blocked", null, jobRefusal.evidence);
|
|
75
|
+
if (binding.payment.kind === "none") {
|
|
76
|
+
return ok ? result("pay", "not_applicable", null, jobEvidence) : notAssessed("pay");
|
|
77
|
+
}
|
|
78
|
+
return human(current, "pay", ok ? jobEvidence : []) ?? notAssessed("pay");
|
|
79
|
+
})();
|
|
80
|
+
const confirmStep = (() => {
|
|
81
|
+
if (!ok || current.error_probe === null)
|
|
82
|
+
return notAssessed("confirm");
|
|
83
|
+
const evidence = [
|
|
84
|
+
...jobEvidence,
|
|
85
|
+
...exchangeEvidence(current, (entry) => entry.purpose === "error_probe"),
|
|
86
|
+
];
|
|
87
|
+
return current.error_probe.typed
|
|
88
|
+
? result("confirm", "machine", null, evidence)
|
|
89
|
+
: result("confirm", "workaround", "recurring", evidence);
|
|
90
|
+
})();
|
|
91
|
+
const discoverStep = (() => {
|
|
92
|
+
const { attempts, facts } = current.discovery;
|
|
93
|
+
if (attempts.length === 0)
|
|
94
|
+
return notAssessed("discover");
|
|
95
|
+
const used = binding.calls.flatMap(({ endpoint_id }) => {
|
|
96
|
+
const uri = input.endpoints.get(endpoint_id);
|
|
97
|
+
return uri ? [uri] : [];
|
|
98
|
+
});
|
|
99
|
+
const named = facts.filter((fact) => NAMING_FACTS.has(fact.fact) && used.some((uri) => namesEndpoint(fact.value, uri)));
|
|
100
|
+
const evidence = (named.length > 0 ? named.map(({ attempt_digest }) => attempt_digest) : attempts).map((attempt) => ({
|
|
101
|
+
kind: "discovery",
|
|
102
|
+
run_digest: current.run_digest,
|
|
103
|
+
attempt_digest: attempt,
|
|
104
|
+
}));
|
|
105
|
+
return named.length > 0
|
|
106
|
+
? result("discover", "machine", null, evidence)
|
|
107
|
+
: result("discover", "workaround", "setup", evidence);
|
|
108
|
+
})();
|
|
109
|
+
const sustainStep = (() => {
|
|
110
|
+
if (binding.delegation.kind === "none") {
|
|
111
|
+
return ok ? result("sustain", "not_applicable", null, jobEvidence) : notAssessed("sustain");
|
|
112
|
+
}
|
|
113
|
+
const { rotation, revocation } = binding.sustain;
|
|
114
|
+
const handoffs = current.handoffs.flatMap((handoff, index) => handoff.step === "sustain" ? [index] : []);
|
|
115
|
+
const evidence = [
|
|
116
|
+
...exchangeEvidence(current, (entry) => entry.purpose.startsWith("sustain_")),
|
|
117
|
+
...handoffs.map((handoff) => ({ kind: "handoff", run_digest: current.run_digest, handoff })),
|
|
118
|
+
];
|
|
119
|
+
const witnessed = upkeepWitnesses(current);
|
|
120
|
+
const part = (kind, purpose) => {
|
|
121
|
+
if (kind === "manual")
|
|
122
|
+
return handoffs.some((index) => current.handoffs[index]?.kind === "workaround")
|
|
123
|
+
? "workaround"
|
|
124
|
+
: "not_assessed";
|
|
125
|
+
return (purpose === "sustain_rotation" ? witnessed.rotation : witnessed.revocation)
|
|
126
|
+
? "machine"
|
|
127
|
+
: "not_assessed";
|
|
128
|
+
};
|
|
129
|
+
const parts = [
|
|
130
|
+
part(rotation.kind, "sustain_rotation"),
|
|
131
|
+
part(revocation.kind, "sustain_revocation"),
|
|
132
|
+
];
|
|
133
|
+
if (parts.includes("not_assessed"))
|
|
134
|
+
return notAssessed("sustain");
|
|
135
|
+
return parts.includes("workaround")
|
|
136
|
+
? result("sustain", "workaround", "recurring", evidence)
|
|
137
|
+
: result("sustain", "machine", null, evidence);
|
|
138
|
+
})();
|
|
139
|
+
return {
|
|
140
|
+
runDigest: current.run_digest,
|
|
141
|
+
steps: [discoverStep, delegationStep, payStep, jobStep, confirmStep, sustainStep].map((step) => step.outcome === "not_assessed" || step.outcome === "blocked"
|
|
142
|
+
? step
|
|
143
|
+
: (human(current, step.step, step.evidence, step) ?? step)),
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
/** Accepted maintenance requests are not effects: correlate their readbacks. */
|
|
147
|
+
function upkeepWitnesses(run) {
|
|
148
|
+
const at = (purpose) => run.exchanges.findIndex((entry) => entry.purpose === purpose && entry.role === "request");
|
|
149
|
+
const baselineAt = at("sustain_baseline");
|
|
150
|
+
const rotationAt = at("sustain_rotation");
|
|
151
|
+
const rotatedAt = at("sustain_rotated_probe");
|
|
152
|
+
const revokeAt = at("sustain_revocation");
|
|
153
|
+
const refusedAt = at("sustain_revoked_probe");
|
|
154
|
+
const controlAt = at("sustain_control_probe");
|
|
155
|
+
const baseline = run.exchanges[baselineAt];
|
|
156
|
+
const rotation = run.exchanges[rotationAt];
|
|
157
|
+
const rotated = run.exchanges[rotatedAt];
|
|
158
|
+
const revoke = run.exchanges[revokeAt];
|
|
159
|
+
const refused = run.exchanges[refusedAt];
|
|
160
|
+
const control = run.exchanges[controlAt];
|
|
161
|
+
const succeeded = (entry) => entry?.record.outcome === "responded" &&
|
|
162
|
+
entry.record.response.status >= 200 &&
|
|
163
|
+
entry.record.response.status <= 299;
|
|
164
|
+
const handles = (entry) => entry?.record.request.credentials.map(({ handle_digest }) => handle_digest) ?? [];
|
|
165
|
+
const sameHandles = (a, b) => {
|
|
166
|
+
const left = handles(a);
|
|
167
|
+
const right = handles(b);
|
|
168
|
+
return (left.length > 0 &&
|
|
169
|
+
left.length === right.length &&
|
|
170
|
+
left.every((handle) => right.includes(handle)));
|
|
171
|
+
};
|
|
172
|
+
const sameProbe = (a, b) => a !== undefined &&
|
|
173
|
+
b !== undefined &&
|
|
174
|
+
a.record.request.method === "GET" &&
|
|
175
|
+
b.record.request.method === "GET" &&
|
|
176
|
+
a.record.request.url === b.record.request.url &&
|
|
177
|
+
a.record.request.body === null &&
|
|
178
|
+
b.record.request.body === null;
|
|
179
|
+
const issued = handles(rotated).length > 0 &&
|
|
180
|
+
handles(rotated).every((handle) => run.credentials.some((credential) => credential.handle_digest === handle &&
|
|
181
|
+
credential.source.kind === "issued" &&
|
|
182
|
+
credential.source.exchange_digest === rotation?.record.exchange_digest));
|
|
183
|
+
const renewed = baselineAt >= 0 &&
|
|
184
|
+
baselineAt < rotationAt &&
|
|
185
|
+
rotationAt < rotatedAt &&
|
|
186
|
+
succeeded(baseline) &&
|
|
187
|
+
succeeded(rotation) &&
|
|
188
|
+
succeeded(rotated) &&
|
|
189
|
+
sameProbe(baseline, rotated) &&
|
|
190
|
+
issued &&
|
|
191
|
+
handles(rotated).every((handle) => !handles(baseline).includes(handle));
|
|
192
|
+
const activeAt = rotatedAt >= 0 ? rotatedAt : baselineAt;
|
|
193
|
+
const active = run.exchanges[activeAt];
|
|
194
|
+
const revoked = activeAt >= 0 &&
|
|
195
|
+
activeAt < revokeAt &&
|
|
196
|
+
revokeAt < refusedAt &&
|
|
197
|
+
refusedAt < controlAt &&
|
|
198
|
+
succeeded(active) &&
|
|
199
|
+
succeeded(revoke) &&
|
|
200
|
+
succeeded(control) &&
|
|
201
|
+
refused?.record.outcome === "responded" &&
|
|
202
|
+
[401, 403].includes(refused.record.response.status) &&
|
|
203
|
+
sameHandles(active, refused) &&
|
|
204
|
+
sameProbe(active, refused) &&
|
|
205
|
+
sameProbe(refused, control) &&
|
|
206
|
+
handles(control).length > 0 &&
|
|
207
|
+
handles(control).every((handle) => !handles(refused).includes(handle));
|
|
208
|
+
return { rotation: renewed, revocation: revoked };
|
|
209
|
+
}
|
|
210
|
+
/** A listing no binding has run: every step not assessed, so no letter. */
|
|
211
|
+
export function unexercisedPath() {
|
|
212
|
+
return AGENT_READINESS_STEPS.map(notAssessed);
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Every human step the runner recorded at `step`. A workaround dominates
|
|
216
|
+
* approval, and recurrence is decided among handoffs of that outcome: a
|
|
217
|
+
* recurring consent must not turn a one-time mechanical setup into recurring
|
|
218
|
+
* work. All handoffs remain evidence, independent of their input order.
|
|
219
|
+
*/
|
|
220
|
+
function human(run, step, evidence, inferred) {
|
|
221
|
+
const handoffs = run.handoffs.flatMap((handoff, index) => handoff.step === step ? [{ handoff, index }] : []);
|
|
222
|
+
if (handoffs.length === 0)
|
|
223
|
+
return null;
|
|
224
|
+
const kind = inferred?.outcome === "workaround" ||
|
|
225
|
+
handoffs.some(({ handoff }) => handoff.kind === "workaround")
|
|
226
|
+
? "workaround"
|
|
227
|
+
: "approval";
|
|
228
|
+
const timing = (inferred?.outcome === kind && inferred.timing === "recurring") ||
|
|
229
|
+
handoffs.some(({ handoff }) => handoff.kind === kind && handoff.timing === "recurring")
|
|
230
|
+
? "recurring"
|
|
231
|
+
: "setup";
|
|
232
|
+
return result(step, kind, timing, [
|
|
233
|
+
...evidence,
|
|
234
|
+
...handoffs
|
|
235
|
+
.filter(({ index }) => !evidence.some((entry) => entry.kind === "handoff" &&
|
|
236
|
+
entry.run_digest === run.run_digest &&
|
|
237
|
+
entry.handoff === index))
|
|
238
|
+
.map(({ index }) => ({ kind: "handoff", run_digest: run.run_digest, handoff: index })),
|
|
239
|
+
]);
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* A refusal reproduced across runs: the latest run and earlier ones refused at
|
|
243
|
+
* `purpose` with the same status from the policy's list, at least the policy's
|
|
244
|
+
* interval apart, each time holding authority the same run proved valid (the
|
|
245
|
+
* same credentials succeeded on another exchange) or needing none.
|
|
246
|
+
*/
|
|
247
|
+
function reproducedRefusal(runs, purpose, rule) {
|
|
248
|
+
const refusals = runs.map((run) => {
|
|
249
|
+
const refused = run.exchanges.find((entry) => entry.purpose === purpose &&
|
|
250
|
+
entry.record.outcome === "responded" &&
|
|
251
|
+
rule.statuses.includes(entry.record.response.status));
|
|
252
|
+
if (refused?.record.outcome !== "responded")
|
|
253
|
+
return null;
|
|
254
|
+
const credentials = refused.record.request.credentials.map(({ handle_digest }) => handle_digest);
|
|
255
|
+
const succeeded = (entry) => entry.record.outcome === "responded" &&
|
|
256
|
+
entry.record.response.status >= 200 &&
|
|
257
|
+
entry.record.response.status <= 299;
|
|
258
|
+
// Authority is proved valid by the run itself: the service issued it in this
|
|
259
|
+
// run, or it succeeded on another exchange of this run.
|
|
260
|
+
const proved = (handle) => run.credentials.some(({ handle_digest, source }) => handle_digest === handle &&
|
|
261
|
+
source.kind === "issued" &&
|
|
262
|
+
run.exchanges.some((entry) => entry.record.exchange_digest === source.exchange_digest && succeeded(entry))) ||
|
|
263
|
+
run.exchanges.some((entry) => entry !== refused &&
|
|
264
|
+
succeeded(entry) &&
|
|
265
|
+
entry.record.request.credentials.some(({ handle_digest }) => handle_digest === handle));
|
|
266
|
+
const valid = credentials.every(proved);
|
|
267
|
+
return valid ? { run, entry: refused, status: refused.record.response.status } : null;
|
|
268
|
+
});
|
|
269
|
+
const latest = refusals.at(-1);
|
|
270
|
+
if (!latest)
|
|
271
|
+
return null;
|
|
272
|
+
const same = refusals.filter((refusal) => refusal?.status === latest.status);
|
|
273
|
+
const first = same[0];
|
|
274
|
+
if (!first ||
|
|
275
|
+
same.length < rule.attempts ||
|
|
276
|
+
Date.parse(latest.run.finished_at) - Date.parse(first.run.finished_at) <
|
|
277
|
+
rule.minimum_interval_seconds * 1_000) {
|
|
278
|
+
return null;
|
|
279
|
+
}
|
|
280
|
+
return {
|
|
281
|
+
status: latest.status,
|
|
282
|
+
evidence: same.slice(-MAXIMUM_EVIDENCE).map(({ run, entry }) => ({
|
|
283
|
+
kind: "exchange",
|
|
284
|
+
run_digest: run.run_digest,
|
|
285
|
+
exchange_digest: entry.record.exchange_digest,
|
|
286
|
+
})),
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
function exchangeEvidence(run, include) {
|
|
290
|
+
return run.exchanges.filter(include).map((entry) => ({
|
|
291
|
+
kind: "exchange",
|
|
292
|
+
run_digest: run.run_digest,
|
|
293
|
+
exchange_digest: entry.record.exchange_digest,
|
|
294
|
+
}));
|
|
295
|
+
}
|
|
296
|
+
/** A descriptor names an endpoint when it gives its exact URI or a base the URI sits under. */
|
|
297
|
+
function namesEndpoint(value, uri) {
|
|
298
|
+
const base = value.replace(/\/+$/u, "");
|
|
299
|
+
const endpoint = uri.replace(/\/+$/u, "");
|
|
300
|
+
return endpoint === base || endpoint.startsWith(`${base}/`);
|
|
301
|
+
}
|
|
302
|
+
function result(step, outcome, timing, evidence) {
|
|
303
|
+
return { step, outcome, timing, evidence: evidence.slice(0, MAXIMUM_EVIDENCE) };
|
|
304
|
+
}
|
|
305
|
+
function notAssessed(step) {
|
|
306
|
+
return { step, outcome: "not_assessed", timing: null, evidence: [] };
|
|
307
|
+
}
|
|
308
|
+
//# sourceMappingURL=path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path.js","sourceRoot":"","sources":["../../../../modules/agent-readiness-engine/src/path.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { AgentReadinessJobBinding, AgentReadinessOperateLetter, AgentReadinessStep, AgentReadinessStepResult } from "../../../contracts/agent-readiness/src/index.js";
|
|
2
|
+
import type { AgentReadinessPolicy } from "../../../contracts/agent-readiness/src/operate-policy.js";
|
|
3
|
+
export interface OperateRating {
|
|
4
|
+
/** Null shows the dash: the job has not been exercised, or no letter's coverage is met. */
|
|
5
|
+
readonly letter: AgentReadinessOperateLetter | null;
|
|
6
|
+
/** Steps not yet assessed, in path order. */
|
|
7
|
+
readonly missing: readonly AgentReadinessStep[];
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* The Operate letter of a path, by the policy's rules: a blocked Delegation or
|
|
11
|
+
* Pay is D and a blocked Job is F; otherwise the job must have been exercised,
|
|
12
|
+
* and the first letter, best first, whose condition and coverage both hold is
|
|
13
|
+
* the letter. A lower letter is never inferred: each asserts a recurring
|
|
14
|
+
* workaround that would have to be observed.
|
|
15
|
+
*/
|
|
16
|
+
export declare function rateOperate(policy: Pick<AgentReadinessPolicy, "letters">, steps: readonly AgentReadinessStepResult[]): OperateRating;
|
|
17
|
+
/**
|
|
18
|
+
* The Onboard level the Operate path alone establishes: 1 when the exercised
|
|
19
|
+
* job needed no account (no credential, and no payment or payment per call).
|
|
20
|
+
* Levels 2 to 6 come only from onboarding runs; otherwise not yet assessed.
|
|
21
|
+
*/
|
|
22
|
+
export declare function onboardLevelFromOperate(binding: Pick<AgentReadinessJobBinding, "payment">, steps: readonly AgentReadinessStepResult[]): number | null;
|
|
23
|
+
//# sourceMappingURL=rate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate.d.ts","sourceRoot":"","sources":["../../../../modules/agent-readiness-engine/src/rate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,2BAA2B,EAC3B,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,iDAAiD,CAAC;AAEzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0DAA0D,CAAC;AAErG,MAAM,WAAW,aAAa;IAC5B,2FAA2F;IAC3F,QAAQ,CAAC,MAAM,EAAE,2BAA2B,GAAG,IAAI,CAAC;IACpD,6CAA6C;IAC7C,QAAQ,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACjD;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,EAC7C,KAAK,EAAE,SAAS,wBAAwB,EAAE,GACzC,aAAa,CAkCf;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,IAAI,CAAC,wBAAwB,EAAE,SAAS,CAAC,EAClD,KAAK,EAAE,SAAS,wBAAwB,EAAE,GACzC,MAAM,GAAG,IAAI,CAQf"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { AGENT_READINESS_STEPS } from "../../../contracts/agent-readiness/src/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* The Operate letter of a path, by the policy's rules: a blocked Delegation or
|
|
4
|
+
* Pay is D and a blocked Job is F; otherwise the job must have been exercised,
|
|
5
|
+
* and the first letter, best first, whose condition and coverage both hold is
|
|
6
|
+
* the letter. A lower letter is never inferred: each asserts a recurring
|
|
7
|
+
* workaround that would have to be observed.
|
|
8
|
+
*/
|
|
9
|
+
export function rateOperate(policy, steps) {
|
|
10
|
+
const outcome = new Map(steps.map((step) => [step.step, step]));
|
|
11
|
+
if (outcome.size !== AGENT_READINESS_STEPS.length) {
|
|
12
|
+
throw new Error("A path has exactly one result per step.");
|
|
13
|
+
}
|
|
14
|
+
const missing = AGENT_READINESS_STEPS.filter((step) => outcome.get(step)?.outcome === "not_assessed");
|
|
15
|
+
const blocked = (step) => outcome.get(step)?.outcome === "blocked";
|
|
16
|
+
if (blocked("delegation") || blocked("pay"))
|
|
17
|
+
return { letter: "D", missing };
|
|
18
|
+
if (blocked("job"))
|
|
19
|
+
return { letter: "F", missing };
|
|
20
|
+
const job = outcome.get("job")?.outcome;
|
|
21
|
+
if (job !== "machine" && job !== "approval" && job !== "workaround") {
|
|
22
|
+
return { letter: null, missing };
|
|
23
|
+
}
|
|
24
|
+
const workarounds = steps.filter(({ outcome }) => outcome === "workaround");
|
|
25
|
+
const recurring = workarounds
|
|
26
|
+
.filter(({ timing }) => timing === "recurring")
|
|
27
|
+
.map(({ step }) => step);
|
|
28
|
+
const setup = workarounds.filter(({ timing }) => timing === "setup").length;
|
|
29
|
+
for (const rule of policy.letters) {
|
|
30
|
+
const { condition } = rule;
|
|
31
|
+
const holds = (condition.workarounds_allowed || workarounds.length === 0) &&
|
|
32
|
+
recurring.every((step) => condition.recurring_allowed_in.includes(step)) &&
|
|
33
|
+
(condition.recurring_required_in === null ||
|
|
34
|
+
recurring.some((step) => condition.recurring_required_in?.includes(step))) &&
|
|
35
|
+
setup >= condition.setup_workarounds.minimum &&
|
|
36
|
+
(condition.setup_workarounds.maximum === null ||
|
|
37
|
+
setup <= condition.setup_workarounds.maximum) &&
|
|
38
|
+
rule.coverage.every((step) => outcome.get(step)?.outcome !== "not_assessed");
|
|
39
|
+
if (holds)
|
|
40
|
+
return { letter: rule.letter, missing };
|
|
41
|
+
}
|
|
42
|
+
return { letter: null, missing };
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* The Onboard level the Operate path alone establishes: 1 when the exercised
|
|
46
|
+
* job needed no account (no credential, and no payment or payment per call).
|
|
47
|
+
* Levels 2 to 6 come only from onboarding runs; otherwise not yet assessed.
|
|
48
|
+
*/
|
|
49
|
+
export function onboardLevelFromOperate(binding, steps) {
|
|
50
|
+
const outcome = new Map(steps.map((step) => [step.step, step.outcome]));
|
|
51
|
+
const exercised = ["machine", "approval", "workaround"].includes(outcome.get("job") ?? "");
|
|
52
|
+
const accountless = outcome.get("delegation") === "not_applicable";
|
|
53
|
+
const payment = outcome.get("pay") === "not_applicable" ||
|
|
54
|
+
(binding.payment.kind === "per_call" && outcome.get("pay") === "machine");
|
|
55
|
+
return exercised && accountless && payment ? 1 : null;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=rate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate.js","sourceRoot":"","sources":["../../../../modules/agent-readiness-engine/src/rate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { z } from "zod";
|
|
2
|
+
import { type AgentReadinessRunRecord, type AgentReadinessRunSummary, agentReadinessRunRecordCoreSchema } from "../../../contracts/agent-readiness/src/index.js";
|
|
3
|
+
/** A run record with its digest, checked as every reader checks it. */
|
|
4
|
+
export declare function sealAgentReadinessRunRecord(core: z.input<typeof agentReadinessRunRecordCoreSchema>): AgentReadinessRunRecord;
|
|
5
|
+
/** A published run record, only when its digest closes its content. */
|
|
6
|
+
export declare function verifyAgentReadinessRunRecord(value: unknown): AgentReadinessRunRecord;
|
|
7
|
+
/** The run as a card shows it: its reads, each request and what came back, what held. */
|
|
8
|
+
export declare function summarizeAgentReadinessRun(record: AgentReadinessRunRecord): AgentReadinessRunSummary;
|
|
9
|
+
//# sourceMappingURL=run.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../../modules/agent-readiness-engine/src/run.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,iCAAiC,EAGlC,MAAM,iDAAiD,CAAC;AAEzD,uEAAuE;AACvE,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,GACtD,uBAAuB,CAGzB;AAED,uEAAuE;AACvE,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,OAAO,GAAG,uBAAuB,CAOrF;AAED,yFAAyF;AACzF,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,uBAAuB,GAC9B,wBAAwB,CA2B1B"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { digest } from "provenry/primitives";
|
|
2
|
+
import { agentReadinessRunRecordCoreSchema, agentReadinessRunRecordSchema, agentReadinessRunSummarySchema, } from "../../../contracts/agent-readiness/src/index.js";
|
|
3
|
+
/** A run record with its digest, checked as every reader checks it. */
|
|
4
|
+
export function sealAgentReadinessRunRecord(core) {
|
|
5
|
+
const parsed = agentReadinessRunRecordCoreSchema.parse(core);
|
|
6
|
+
return agentReadinessRunRecordSchema.parse({ ...parsed, run_digest: digest(parsed) });
|
|
7
|
+
}
|
|
8
|
+
/** A published run record, only when its digest closes its content. */
|
|
9
|
+
export function verifyAgentReadinessRunRecord(value) {
|
|
10
|
+
const record = agentReadinessRunRecordSchema.parse(value);
|
|
11
|
+
const { run_digest, ...core } = record;
|
|
12
|
+
if (digest(agentReadinessRunRecordCoreSchema.parse(core)) !== run_digest) {
|
|
13
|
+
throw new Error("Agent Readiness run record digest does not match its content.");
|
|
14
|
+
}
|
|
15
|
+
return record;
|
|
16
|
+
}
|
|
17
|
+
/** The run as a card shows it: its reads, each request and what came back, what held. */
|
|
18
|
+
export function summarizeAgentReadinessRun(record) {
|
|
19
|
+
return agentReadinessRunSummarySchema.parse({
|
|
20
|
+
started_at: record.started_at,
|
|
21
|
+
finished_at: record.finished_at,
|
|
22
|
+
discovery_reads: record.discovery.attempts.length,
|
|
23
|
+
exchanges: record.exchanges.map(({ purpose, role, record: exchange }) => ({
|
|
24
|
+
purpose,
|
|
25
|
+
role,
|
|
26
|
+
method: exchange.request.method,
|
|
27
|
+
url: exchange.request.url,
|
|
28
|
+
started_at: exchange.started_at,
|
|
29
|
+
finished_at: exchange.finished_at,
|
|
30
|
+
response: exchange.outcome === "responded"
|
|
31
|
+
? {
|
|
32
|
+
status: exchange.response.status,
|
|
33
|
+
media_type: exchange.response.body.media_type,
|
|
34
|
+
content_bytes: exchange.response.body.content_bytes,
|
|
35
|
+
content_digest: exchange.response.body.content_digest,
|
|
36
|
+
}
|
|
37
|
+
: null,
|
|
38
|
+
transport_error: exchange.outcome === "transport_error" ? exchange.reason : null,
|
|
39
|
+
exchange_digest: exchange.exchange_digest,
|
|
40
|
+
})),
|
|
41
|
+
assertions: record.assertions,
|
|
42
|
+
error_probe: record.error_probe,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../modules/agent-readiness-engine/src/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAGL,iCAAiC,EACjC,6BAA6B,EAC7B,8BAA8B,GAC/B,MAAM,iDAAiD,CAAC;AAEzD,uEAAuE;AACvE,MAAM,UAAU,2BAA2B,CACzC,IAAuD;IAEvD,MAAM,MAAM,GAAG,iCAAiC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7D,OAAO,6BAA6B,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACxF,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,6BAA6B,CAAC,KAAc;IAC1D,MAAM,MAAM,GAAG,6BAA6B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IACvC,IAAI,MAAM,CAAC,iCAAiC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,0BAA0B,CACxC,MAA+B;IAE/B,OAAO,8BAA8B,CAAC,KAAK,CAAC;QAC1C,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,eAAe,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM;QACjD,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YACxE,OAAO;YACP,IAAI;YACJ,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM;YAC/B,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG;YACzB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,QAAQ,EACN,QAAQ,CAAC,OAAO,KAAK,WAAW;gBAC9B,CAAC,CAAC;oBACE,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM;oBAChC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU;oBAC7C,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa;oBACnD,cAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc;iBACtD;gBACH,CAAC,CAAC,IAAI;YACV,eAAe,EAAE,QAAQ,CAAC,OAAO,KAAK,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;YAChF,eAAe,EAAE,QAAQ,CAAC,eAAe;SAC1C,CAAC,CAAC;QACH,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** What a template may read: job inputs, the run's nonce, sink addresses and earlier calls' JSON. */
|
|
2
|
+
export interface TemplateContext {
|
|
3
|
+
readonly inputs: Readonly<Record<string, string | number | boolean>>;
|
|
4
|
+
readonly nonce: string;
|
|
5
|
+
readonly sinks: Readonly<Record<string, string>>;
|
|
6
|
+
readonly calls: ReadonlyMap<string, unknown>;
|
|
7
|
+
}
|
|
8
|
+
/** A template the run cannot fill: residue of this run, never a fact about the service. */
|
|
9
|
+
export declare class TemplateError extends Error {
|
|
10
|
+
readonly name = "TemplateError";
|
|
11
|
+
}
|
|
12
|
+
/** A string template filled in; every placeholder must name a scalar the run holds. */
|
|
13
|
+
export declare function resolveTemplate(template: string, context: TemplateContext): string;
|
|
14
|
+
/**
|
|
15
|
+
* A JSON template filled in. A string that is exactly one placeholder takes the
|
|
16
|
+
* referenced value with its JSON type; any other string interpolates scalars.
|
|
17
|
+
*/
|
|
18
|
+
export declare function resolveJsonTemplate(value: unknown, context: TemplateContext): unknown;
|
|
19
|
+
/** The value an RFC 6901 pointer names, or undefined. */
|
|
20
|
+
export declare function valueAtPointer(document: unknown, pointer: string): unknown;
|
|
21
|
+
//# sourceMappingURL=templates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../../modules/agent-readiness-engine/src/templates.ts"],"names":[],"mappings":"AAEA,qGAAqG;AACrG,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IACrE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9C;AAED,2FAA2F;AAC3F,qBAAa,aAAc,SAAQ,KAAK;IACtC,SAAkB,IAAI,mBAAmB;CAC1C;AAID,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,MAAM,CAWlF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAerF;AAiCD,yDAAyD;AACzD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAe1E"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { agentReadinessTemplateReferences } from "../../../contracts/agent-readiness/src/index.js";
|
|
2
|
+
/** A template the run cannot fill: residue of this run, never a fact about the service. */
|
|
3
|
+
export class TemplateError extends Error {
|
|
4
|
+
name = "TemplateError";
|
|
5
|
+
}
|
|
6
|
+
const WHOLE = /^\{\{([^{}]+)\}\}$/u;
|
|
7
|
+
/** A string template filled in; every placeholder must name a scalar the run holds. */
|
|
8
|
+
export function resolveTemplate(template, context) {
|
|
9
|
+
const references = agentReadinessTemplateReferences(template);
|
|
10
|
+
if (references === null)
|
|
11
|
+
throw new TemplateError("The template is not valid.");
|
|
12
|
+
let index = 0;
|
|
13
|
+
return template.replace(/\{\{[^{}]+\}\}/gu, () => {
|
|
14
|
+
const value = referenced(references[index++], context);
|
|
15
|
+
if (value === null || typeof value === "object") {
|
|
16
|
+
throw new TemplateError("Only a scalar can be interpolated into text.");
|
|
17
|
+
}
|
|
18
|
+
return String(value);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* A JSON template filled in. A string that is exactly one placeholder takes the
|
|
23
|
+
* referenced value with its JSON type; any other string interpolates scalars.
|
|
24
|
+
*/
|
|
25
|
+
export function resolveJsonTemplate(value, context) {
|
|
26
|
+
if (typeof value === "string") {
|
|
27
|
+
const references = agentReadinessTemplateReferences(value);
|
|
28
|
+
if (references?.length === 1 && WHOLE.test(value)) {
|
|
29
|
+
return referenced(references[0], context);
|
|
30
|
+
}
|
|
31
|
+
return resolveTemplate(value, context);
|
|
32
|
+
}
|
|
33
|
+
if (Array.isArray(value))
|
|
34
|
+
return value.map((item) => resolveJsonTemplate(item, context));
|
|
35
|
+
if (value !== null && typeof value === "object") {
|
|
36
|
+
return Object.fromEntries(Object.entries(value).map(([key, item]) => [key, resolveJsonTemplate(item, context)]));
|
|
37
|
+
}
|
|
38
|
+
return value;
|
|
39
|
+
}
|
|
40
|
+
function referenced(reference, context) {
|
|
41
|
+
switch (reference.kind) {
|
|
42
|
+
case "nonce":
|
|
43
|
+
return context.nonce;
|
|
44
|
+
case "input": {
|
|
45
|
+
if (!Object.hasOwn(context.inputs, reference.name)) {
|
|
46
|
+
throw new TemplateError(`The job has no input ${reference.name}.`);
|
|
47
|
+
}
|
|
48
|
+
return context.inputs[reference.name];
|
|
49
|
+
}
|
|
50
|
+
case "sink": {
|
|
51
|
+
const address = context.sinks[reference.name];
|
|
52
|
+
if (address === undefined)
|
|
53
|
+
throw new TemplateError(`No sink ${reference.name} is bound.`);
|
|
54
|
+
return address;
|
|
55
|
+
}
|
|
56
|
+
case "call": {
|
|
57
|
+
if (!context.calls.has(reference.callId)) {
|
|
58
|
+
throw new TemplateError(`Call ${reference.callId} has no JSON response to read.`);
|
|
59
|
+
}
|
|
60
|
+
const value = valueAtPointer(context.calls.get(reference.callId), reference.pointer);
|
|
61
|
+
if (value === undefined) {
|
|
62
|
+
throw new TemplateError(`Call ${reference.callId} has nothing at ${reference.pointer}.`);
|
|
63
|
+
}
|
|
64
|
+
return value;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/** The value an RFC 6901 pointer names, or undefined. */
|
|
69
|
+
export function valueAtPointer(document, pointer) {
|
|
70
|
+
if (pointer === "")
|
|
71
|
+
return document;
|
|
72
|
+
let value = document;
|
|
73
|
+
for (const raw of pointer.slice(1).split("/")) {
|
|
74
|
+
const token = raw.replaceAll("~1", "/").replaceAll("~0", "~");
|
|
75
|
+
if (Array.isArray(value)) {
|
|
76
|
+
if (!/^(?:0|[1-9][0-9]*)$/u.test(token))
|
|
77
|
+
return undefined;
|
|
78
|
+
value = value[Number(token)];
|
|
79
|
+
}
|
|
80
|
+
else if (value !== null && typeof value === "object" && Object.hasOwn(value, token)) {
|
|
81
|
+
value = value[token];
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
return undefined;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return value;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../../modules/agent-readiness-engine/src/templates.ts"],"names":[],"mappings":"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"}
|