loopforge 3.9.2 → 4.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +236 -112
- package/dist/audit.d.ts +73 -15
- package/dist/audit.d.ts.map +1 -1
- package/dist/audit.js +131 -61
- package/dist/audit.js.map +1 -1
- package/dist/canonical-state.d.ts +152 -40
- package/dist/canonical-state.d.ts.map +1 -1
- package/dist/canonical-state.js +382 -206
- package/dist/canonical-state.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +41 -12
- package/dist/cli.js.map +1 -1
- package/dist/cognitive-governance.d.ts +0 -2
- package/dist/cognitive-governance.d.ts.map +1 -1
- package/dist/cognitive-governance.js +0 -4
- package/dist/cognitive-governance.js.map +1 -1
- package/dist/committed-round.d.ts +105 -141
- package/dist/committed-round.d.ts.map +1 -1
- package/dist/committed-round.js +249 -372
- package/dist/committed-round.js.map +1 -1
- package/dist/constraint-lifecycle.d.ts +73 -0
- package/dist/constraint-lifecycle.d.ts.map +1 -0
- package/dist/constraint-lifecycle.js +174 -0
- package/dist/constraint-lifecycle.js.map +1 -0
- package/dist/context-boundary.d.ts +83 -0
- package/dist/context-boundary.d.ts.map +1 -0
- package/dist/context-boundary.js +101 -0
- package/dist/context-boundary.js.map +1 -0
- package/dist/contract-items.d.ts +12 -8
- package/dist/contract-items.d.ts.map +1 -1
- package/dist/contract-items.js +31 -26
- package/dist/contract-items.js.map +1 -1
- package/dist/contract-requirement.d.ts +47 -0
- package/dist/contract-requirement.d.ts.map +1 -0
- package/dist/contract-requirement.js +51 -0
- package/dist/contract-requirement.js.map +1 -0
- package/dist/criterion-status.d.ts +35 -0
- package/dist/criterion-status.d.ts.map +1 -0
- package/dist/criterion-status.js +89 -0
- package/dist/criterion-status.js.map +1 -0
- package/dist/enforcement-gate.d.ts +32 -67
- package/dist/enforcement-gate.d.ts.map +1 -1
- package/dist/enforcement-gate.js +203 -439
- package/dist/enforcement-gate.js.map +1 -1
- package/dist/engine.d.ts +9 -103
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +28 -887
- package/dist/engine.js.map +1 -1
- package/dist/errors.d.ts +41 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +69 -0
- package/dist/errors.js.map +1 -0
- package/dist/evidence-claims.d.ts +33 -31
- package/dist/evidence-claims.d.ts.map +1 -1
- package/dist/evidence-claims.js +58 -72
- package/dist/evidence-claims.js.map +1 -1
- package/dist/evidence-posture-view.d.ts +19 -0
- package/dist/evidence-posture-view.d.ts.map +1 -0
- package/dist/evidence-posture-view.js +116 -0
- package/dist/evidence-posture-view.js.map +1 -0
- package/dist/evidence-posture.d.ts +73 -0
- package/dist/evidence-posture.d.ts.map +1 -0
- package/dist/evidence-posture.js +281 -0
- package/dist/evidence-posture.js.map +1 -0
- package/dist/evidence-provider.d.ts +55 -37
- package/dist/evidence-provider.d.ts.map +1 -1
- package/dist/evidence-provider.js +182 -332
- package/dist/evidence-provider.js.map +1 -1
- package/dist/explain.d.ts +167 -27
- package/dist/explain.d.ts.map +1 -1
- package/dist/explain.js +373 -58
- package/dist/explain.js.map +1 -1
- package/dist/field-accounting.d.ts.map +1 -1
- package/dist/field-accounting.js +3 -22
- package/dist/field-accounting.js.map +1 -1
- package/dist/generate-schema.js +13 -8
- package/dist/generate-schema.js.map +1 -1
- package/dist/git-boundary.d.ts +128 -0
- package/dist/git-boundary.d.ts.map +1 -0
- package/dist/git-boundary.js +625 -0
- package/dist/git-boundary.js.map +1 -0
- package/dist/git-facts.d.ts +22 -0
- package/dist/git-facts.d.ts.map +1 -0
- package/dist/git-facts.js +29 -0
- package/dist/git-facts.js.map +1 -0
- package/dist/git-motion.d.ts +37 -0
- package/dist/git-motion.d.ts.map +1 -0
- package/dist/git-motion.js +59 -0
- package/dist/git-motion.js.map +1 -0
- package/dist/history.d.ts +44 -0
- package/dist/history.d.ts.map +1 -0
- package/dist/history.js +77 -0
- package/dist/history.js.map +1 -0
- package/dist/index.d.ts +19 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -4
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +16 -0
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +80 -14
- package/dist/init.js.map +1 -1
- package/dist/loop-compiler.d.ts +51 -19
- package/dist/loop-compiler.d.ts.map +1 -1
- package/dist/loop-compiler.js +423 -507
- package/dist/loop-compiler.js.map +1 -1
- package/dist/loop-store.d.ts +6 -5
- package/dist/loop-store.d.ts.map +1 -1
- package/dist/loop-store.js +153 -35
- package/dist/loop-store.js.map +1 -1
- package/dist/mcp/round-lifecycle.d.ts +285 -81
- package/dist/mcp/round-lifecycle.d.ts.map +1 -1
- package/dist/mcp/round-lifecycle.js +1629 -574
- package/dist/mcp/round-lifecycle.js.map +1 -1
- package/dist/mcp/server.d.ts +5 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +61 -19
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/session.d.ts +81 -39
- package/dist/mcp/session.d.ts.map +1 -1
- package/dist/mcp/session.js +963 -271
- package/dist/mcp/session.js.map +1 -1
- package/dist/mcp/submission-boundary.d.ts +23 -31
- package/dist/mcp/submission-boundary.d.ts.map +1 -1
- package/dist/mcp/submission-boundary.js +242 -82
- package/dist/mcp/submission-boundary.js.map +1 -1
- package/dist/mcp/submission-handle.d.ts +66 -0
- package/dist/mcp/submission-handle.d.ts.map +1 -0
- package/dist/mcp/submission-handle.js +173 -0
- package/dist/mcp/submission-handle.js.map +1 -0
- package/dist/mcp/tools.d.ts +17 -7
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +763 -244
- package/dist/mcp/tools.js.map +1 -1
- package/dist/open-question.d.ts +7 -0
- package/dist/open-question.d.ts.map +1 -0
- package/dist/open-question.js +14 -0
- package/dist/open-question.js.map +1 -0
- package/dist/policy-metrics.d.ts +31 -21
- package/dist/policy-metrics.d.ts.map +1 -1
- package/dist/policy-metrics.js +117 -64
- package/dist/policy-metrics.js.map +1 -1
- package/dist/policy.d.ts +15 -40
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +13 -13
- package/dist/policy.js.map +1 -1
- package/dist/progress.d.ts +45 -0
- package/dist/progress.d.ts.map +1 -0
- package/dist/progress.js +136 -0
- package/dist/progress.js.map +1 -0
- package/dist/prompt-assembler.d.ts +28 -9
- package/dist/prompt-assembler.d.ts.map +1 -1
- package/dist/prompt-assembler.js +592 -603
- package/dist/prompt-assembler.js.map +1 -1
- package/dist/prompt-coverage.d.ts +39 -0
- package/dist/prompt-coverage.d.ts.map +1 -0
- package/dist/prompt-coverage.js +80 -0
- package/dist/prompt-coverage.js.map +1 -0
- package/dist/prompt-freshness.d.ts +25 -0
- package/dist/prompt-freshness.d.ts.map +1 -0
- package/dist/prompt-freshness.js +88 -0
- package/dist/prompt-freshness.js.map +1 -0
- package/dist/prompt-policy.d.ts +14 -4
- package/dist/prompt-policy.d.ts.map +1 -1
- package/dist/prompt-policy.js +29 -10
- package/dist/prompt-policy.js.map +1 -1
- package/dist/protocol.d.ts +875 -419
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +73 -99
- package/dist/protocol.js.map +1 -1
- package/dist/recovery-guidance.d.ts +13 -0
- package/dist/recovery-guidance.d.ts.map +1 -0
- package/dist/recovery-guidance.js +15 -0
- package/dist/recovery-guidance.js.map +1 -0
- package/dist/recovery.d.ts +68 -0
- package/dist/recovery.d.ts.map +1 -0
- package/dist/recovery.js +234 -0
- package/dist/recovery.js.map +1 -0
- package/dist/replay.d.ts +42 -8
- package/dist/replay.d.ts.map +1 -1
- package/dist/replay.js +311 -84
- package/dist/replay.js.map +1 -1
- package/dist/result-facts.d.ts +45 -0
- package/dist/result-facts.d.ts.map +1 -0
- package/dist/result-facts.js +86 -0
- package/dist/result-facts.js.map +1 -0
- package/dist/round-contract.d.ts +38 -8
- package/dist/round-contract.d.ts.map +1 -1
- package/dist/round-contract.js +71 -31
- package/dist/round-contract.js.map +1 -1
- package/dist/round-coordinator.d.ts +45 -91
- package/dist/round-coordinator.d.ts.map +1 -1
- package/dist/round-coordinator.js +254 -271
- package/dist/round-coordinator.js.map +1 -1
- package/dist/round-driver.d.ts +56 -16
- package/dist/round-driver.d.ts.map +1 -1
- package/dist/round-driver.js +225 -39
- package/dist/round-driver.js.map +1 -1
- package/dist/round-facts.d.ts +33 -52
- package/dist/round-facts.d.ts.map +1 -1
- package/dist/round-facts.js +54 -157
- package/dist/round-facts.js.map +1 -1
- package/dist/round-guidance.d.ts +56 -0
- package/dist/round-guidance.d.ts.map +1 -0
- package/dist/round-guidance.js +161 -0
- package/dist/round-guidance.js.map +1 -0
- package/dist/round-outcome.d.ts +21 -0
- package/dist/round-outcome.d.ts.map +1 -0
- package/dist/round-outcome.js +31 -0
- package/dist/round-outcome.js.map +1 -0
- package/dist/round-transaction.d.ts +168 -21
- package/dist/round-transaction.d.ts.map +1 -1
- package/dist/round-transaction.js +856 -39
- package/dist/round-transaction.js.map +1 -1
- package/dist/self-eval.d.ts +40 -60
- package/dist/self-eval.d.ts.map +1 -1
- package/dist/self-eval.js +455 -384
- package/dist/self-eval.js.map +1 -1
- package/dist/storage.d.ts +16 -0
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +54 -4
- package/dist/storage.js.map +1 -1
- package/dist/subgoal-state.d.ts +2 -3
- package/dist/subgoal-state.d.ts.map +1 -1
- package/dist/subgoal-state.js +2 -3
- package/dist/subgoal-state.js.map +1 -1
- package/dist/submission-guidance.d.ts +43 -21
- package/dist/submission-guidance.d.ts.map +1 -1
- package/dist/submission-guidance.js +368 -262
- package/dist/submission-guidance.js.map +1 -1
- package/dist/submission-receipt.d.ts +16 -8
- package/dist/submission-receipt.d.ts.map +1 -1
- package/dist/submission-receipt.js +146 -51
- package/dist/submission-receipt.js.map +1 -1
- package/dist/token-utils.d.ts +47 -7
- package/dist/token-utils.d.ts.map +1 -1
- package/dist/token-utils.js +66 -15
- package/dist/token-utils.js.map +1 -1
- package/dist/transaction-identity.d.ts +9 -0
- package/dist/transaction-identity.d.ts.map +1 -0
- package/dist/transaction-identity.js +69 -0
- package/dist/transaction-identity.js.map +1 -0
- package/dist/verification-actions.d.ts +13 -0
- package/dist/verification-actions.d.ts.map +1 -0
- package/dist/verification-actions.js +44 -0
- package/dist/verification-actions.js.map +1 -0
- package/dist/verification-gate.d.ts +26 -46
- package/dist/verification-gate.d.ts.map +1 -1
- package/dist/verification-gate.js +218 -427
- package/dist/verification-gate.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/working-memory.d.ts +187 -0
- package/dist/working-memory.d.ts.map +1 -0
- package/dist/working-memory.js +767 -0
- package/dist/working-memory.js.map +1 -0
- package/dist/workspace-checkpoint.d.ts +88 -0
- package/dist/workspace-checkpoint.d.ts.map +1 -0
- package/dist/workspace-checkpoint.js +326 -0
- package/dist/workspace-checkpoint.js.map +1 -0
- package/dist/workspace-restore.d.ts +68 -0
- package/dist/workspace-restore.d.ts.map +1 -0
- package/dist/workspace-restore.js +604 -0
- package/dist/workspace-restore.js.map +1 -0
- package/dist/workspace.d.ts +0 -9
- package/dist/workspace.d.ts.map +1 -1
- package/dist/workspace.js +0 -17
- package/dist/workspace.js.map +1 -1
- package/loop_policy.json +5 -19
- package/package.json +2 -2
- package/skills/forge/SKILL.md +212 -0
- package/skills/forge/references/evidence-and-contracts.md +204 -0
- package/skills/forge/references/recovery-and-views.md +188 -0
- package/dist/cognitive-facts.d.ts +0 -30
- package/dist/cognitive-facts.d.ts.map +0 -1
- package/dist/cognitive-facts.js +0 -113
- package/dist/cognitive-facts.js.map +0 -1
- package/dist/loop-extras-parser.d.ts +0 -81
- package/dist/loop-extras-parser.d.ts.map +0 -1
- package/dist/loop-extras-parser.js +0 -213
- package/dist/loop-extras-parser.js.map +0 -1
- package/dist/loop-projection.d.ts +0 -6
- package/dist/loop-projection.d.ts.map +0 -1
- package/dist/loop-projection.js +0 -28
- package/dist/loop-projection.js.map +0 -1
- package/skills/perception/SKILL.md +0 -370
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence-posture-view.js","sourceRoot":"","sources":["../src/evidence-posture-view.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/** v4.0.3: the ONE evidence-posture derivation.
|
|
2
|
+
*
|
|
3
|
+
* `deriveEvidencePosture` is a PURE function over the facts of a single round
|
|
4
|
+
* transaction: the submitted evaluation, the after observations, their
|
|
5
|
+
* derived deltas, the verification flags, the contract binding and the
|
|
6
|
+
* machine-backed-success fact the verification gate already computed.
|
|
7
|
+
*
|
|
8
|
+
* It reads no policy, no filesystem, no Vault and no live workspace. The
|
|
9
|
+
* coordinator calls it exactly once per round (before the transaction is
|
|
10
|
+
* committed), persists the result inside that transaction, and every read
|
|
11
|
+
* surface consumes the persisted copy. Re-deriving the posture elsewhere
|
|
12
|
+
* would create a second interpretation of the same round, which is exactly
|
|
13
|
+
* what this module exists to prevent.
|
|
14
|
+
*
|
|
15
|
+
* Status priority (fixed; see the release plan):
|
|
16
|
+
* 1. rollback → not_applicable
|
|
17
|
+
* 2. contradicted (error flag, contradicted item, failed command)
|
|
18
|
+
* 3. unknown (indeterminate observation, unobservable workspace with
|
|
19
|
+
* verification in play, configured verification with no
|
|
20
|
+
* after command observation)
|
|
21
|
+
* 4. not_applicable (no success claim and no active contract)
|
|
22
|
+
* 5. verified (no contract or contract verified; no claim or the
|
|
23
|
+
* machine backed the claim)
|
|
24
|
+
* 6. insufficient (everything else)
|
|
25
|
+
*
|
|
26
|
+
* `unknown` never degrades to `verified` or to an empty result. `status` is
|
|
27
|
+
* computed from the COMPLETE data, before any display cap is applied.
|
|
28
|
+
*/
|
|
29
|
+
import type { EvidencePosture, FilesReconciliation, MachineObservation, SelfEvaluation, VerificationFlag } from "./protocol.js";
|
|
30
|
+
import type { ObservationDelta } from "./evidence-provider.js";
|
|
31
|
+
import type { ActiveContractView } from "./round-contract.js";
|
|
32
|
+
import type { ContractItemStatusView } from "./contract-items.js";
|
|
33
|
+
/** Fixed, code-level display caps. They are never policy: a policy knob must
|
|
34
|
+
* not be able to change which machine evidence a round carries. `omitted`
|
|
35
|
+
* records what the cap hid; the status decision always sees everything. */
|
|
36
|
+
export declare const EVIDENCE_POSTURE_CAPS: {
|
|
37
|
+
readonly providers: 16;
|
|
38
|
+
readonly commands: 16;
|
|
39
|
+
readonly contractItems: 24;
|
|
40
|
+
readonly findings: 12;
|
|
41
|
+
};
|
|
42
|
+
/** Per-item reason cap: a few short sentences of historical explanation. */
|
|
43
|
+
export declare const EVIDENCE_POSTURE_REASON_CAP = 2;
|
|
44
|
+
export declare const EVIDENCE_POSTURE_REASON_CHARS = 200;
|
|
45
|
+
/** The empty posture of a rollback directive: abandoning a branch makes no
|
|
46
|
+
* success claim and produces no evidence, so nothing is fabricated. */
|
|
47
|
+
export declare function rollbackEvidencePosture(round: number): EvidencePosture;
|
|
48
|
+
export interface EvidencePostureInput {
|
|
49
|
+
round: number;
|
|
50
|
+
kind: "evaluation" | "rollback";
|
|
51
|
+
/** The submitted evaluation; null only for callers with no evaluation. */
|
|
52
|
+
selfEval: SelfEvaluation | null;
|
|
53
|
+
afterEvidence: ReadonlyArray<MachineObservation>;
|
|
54
|
+
evidenceDeltas: ReadonlyArray<ObservationDelta>;
|
|
55
|
+
verificationFlags: ReadonlyArray<VerificationFlag>;
|
|
56
|
+
/** ONLY `VerificationResult.machineBackedSuccess`. This function never
|
|
57
|
+
* re-derives it from observations, flags or claims. */
|
|
58
|
+
machineBackedSuccess: boolean;
|
|
59
|
+
activeContract: ActiveContractView | null;
|
|
60
|
+
contractStatuses: ContractItemStatusView;
|
|
61
|
+
/** Policy fact at commit time: at least one enabled, after-capable command. */
|
|
62
|
+
verificationConfigured: boolean;
|
|
63
|
+
filesReconciliation: Pick<FilesReconciliation, "status" | "reported" | "observed"> | null;
|
|
64
|
+
}
|
|
65
|
+
/** Derive the ONE evidence posture of a round.
|
|
66
|
+
*
|
|
67
|
+
* All inputs belong to the same round transaction. The function is pure,
|
|
68
|
+
* deterministic and independent of any current policy: the caller passes the
|
|
69
|
+
* policy-derived `verificationConfigured` fact and the already-computed
|
|
70
|
+
* `machineBackedSuccess`.
|
|
71
|
+
*/
|
|
72
|
+
export declare function deriveEvidencePosture(input: EvidencePostureInput): EvidencePosture;
|
|
73
|
+
//# sourceMappingURL=evidence-posture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence-posture.d.ts","sourceRoot":"","sources":["../src/evidence-posture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAElB,cAAc,EACd,gBAAgB,EACjB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAIlE;;4EAE4E;AAC5E,eAAO,MAAM,qBAAqB;;;;;CAKxB,CAAC;AAEX,4EAA4E;AAC5E,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAC7C,eAAO,MAAM,6BAA6B,MAAM,CAAC;AAqCjD;wEACwE;AACxE,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAoBtE;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,YAAY,GAAG,UAAU,CAAC;IAChC,0EAA0E;IAC1E,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,aAAa,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IACjD,cAAc,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAChD,iBAAiB,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACnD;4DACwD;IACxD,oBAAoB,EAAE,OAAO,CAAC;IAC9B,cAAc,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC1C,gBAAgB,EAAE,sBAAsB,CAAC;IACzC,+EAA+E;IAC/E,sBAAsB,EAAE,OAAO,CAAC;IAChC,mBAAmB,EAAE,IAAI,CACvB,mBAAmB,EACnB,QAAQ,GAAG,UAAU,GAAG,UAAU,CACnC,GAAG,IAAI,CAAC;CACV;AAmID;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,oBAAoB,GAC1B,eAAe,CAkFjB"}
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
/** v4.0.3: the ONE evidence-posture derivation.
|
|
2
|
+
*
|
|
3
|
+
* `deriveEvidencePosture` is a PURE function over the facts of a single round
|
|
4
|
+
* transaction: the submitted evaluation, the after observations, their
|
|
5
|
+
* derived deltas, the verification flags, the contract binding and the
|
|
6
|
+
* machine-backed-success fact the verification gate already computed.
|
|
7
|
+
*
|
|
8
|
+
* It reads no policy, no filesystem, no Vault and no live workspace. The
|
|
9
|
+
* coordinator calls it exactly once per round (before the transaction is
|
|
10
|
+
* committed), persists the result inside that transaction, and every read
|
|
11
|
+
* surface consumes the persisted copy. Re-deriving the posture elsewhere
|
|
12
|
+
* would create a second interpretation of the same round, which is exactly
|
|
13
|
+
* what this module exists to prevent.
|
|
14
|
+
*
|
|
15
|
+
* Status priority (fixed; see the release plan):
|
|
16
|
+
* 1. rollback → not_applicable
|
|
17
|
+
* 2. contradicted (error flag, contradicted item, failed command)
|
|
18
|
+
* 3. unknown (indeterminate observation, unobservable workspace with
|
|
19
|
+
* verification in play, configured verification with no
|
|
20
|
+
* after command observation)
|
|
21
|
+
* 4. not_applicable (no success claim and no active contract)
|
|
22
|
+
* 5. verified (no contract or contract verified; no claim or the
|
|
23
|
+
* machine backed the claim)
|
|
24
|
+
* 6. insufficient (everything else)
|
|
25
|
+
*
|
|
26
|
+
* `unknown` never degrades to `verified` or to an empty result. `status` is
|
|
27
|
+
* computed from the COMPLETE data, before any display cap is applied.
|
|
28
|
+
*/
|
|
29
|
+
import { gitDeltaState } from "./evidence-provider.js";
|
|
30
|
+
import { effectiveSuccess } from "./round-outcome.js";
|
|
31
|
+
import { deriveFindingId } from "./token-utils.js";
|
|
32
|
+
/** Fixed, code-level display caps. They are never policy: a policy knob must
|
|
33
|
+
* not be able to change which machine evidence a round carries. `omitted`
|
|
34
|
+
* records what the cap hid; the status decision always sees everything. */
|
|
35
|
+
export const EVIDENCE_POSTURE_CAPS = {
|
|
36
|
+
providers: 16,
|
|
37
|
+
commands: 16,
|
|
38
|
+
contractItems: 24,
|
|
39
|
+
findings: 12,
|
|
40
|
+
};
|
|
41
|
+
/** Per-item reason cap: a few short sentences of historical explanation. */
|
|
42
|
+
export const EVIDENCE_POSTURE_REASON_CAP = 2;
|
|
43
|
+
export const EVIDENCE_POSTURE_REASON_CHARS = 200;
|
|
44
|
+
/** Observation statuses that leave the boundary undetermined. They are never
|
|
45
|
+
* treated as a pass and never as "no change". */
|
|
46
|
+
const INDETERMINATE_OBSERVATIONS = new Set([
|
|
47
|
+
"timeout",
|
|
48
|
+
"unavailable",
|
|
49
|
+
"error",
|
|
50
|
+
"aborted",
|
|
51
|
+
]);
|
|
52
|
+
const PROVIDER_KIND_RANK = {
|
|
53
|
+
git: 0,
|
|
54
|
+
custom: 1,
|
|
55
|
+
};
|
|
56
|
+
const SEVERITY_RANK = {
|
|
57
|
+
error: 0,
|
|
58
|
+
warn: 1,
|
|
59
|
+
info: 2,
|
|
60
|
+
};
|
|
61
|
+
/** Locale-independent ordering: the same input must produce the same JSON in
|
|
62
|
+
* every environment. */
|
|
63
|
+
function compareText(left, right) {
|
|
64
|
+
return left < right ? -1 : left > right ? 1 : 0;
|
|
65
|
+
}
|
|
66
|
+
function capList(values, cap) {
|
|
67
|
+
const limit = Math.max(0, cap);
|
|
68
|
+
if (values.length <= limit)
|
|
69
|
+
return { items: [...values], omitted: 0 };
|
|
70
|
+
return { items: values.slice(0, limit), omitted: values.length - limit };
|
|
71
|
+
}
|
|
72
|
+
/** The empty posture of a rollback directive: abandoning a branch makes no
|
|
73
|
+
* success claim and produces no evidence, so nothing is fabricated. */
|
|
74
|
+
export function rollbackEvidencePosture(round) {
|
|
75
|
+
return {
|
|
76
|
+
round,
|
|
77
|
+
kind: "rollback",
|
|
78
|
+
status: "not_applicable",
|
|
79
|
+
machineBackedSuccess: false,
|
|
80
|
+
verificationConfigured: false,
|
|
81
|
+
workspace: { status: "not_applicable", changedPathCount: 0 },
|
|
82
|
+
files: null,
|
|
83
|
+
providers: [],
|
|
84
|
+
commands: [],
|
|
85
|
+
contract: null,
|
|
86
|
+
findings: [],
|
|
87
|
+
omitted: {
|
|
88
|
+
providers: 0,
|
|
89
|
+
commands: 0,
|
|
90
|
+
contractItems: 0,
|
|
91
|
+
findings: 0,
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
function providerEntries(observations) {
|
|
96
|
+
const byKey = new Map();
|
|
97
|
+
for (const observation of observations) {
|
|
98
|
+
// Command observations are reported under `commands`; this list is the
|
|
99
|
+
// Git/custom provider surface.
|
|
100
|
+
if (observation.kind === "command")
|
|
101
|
+
continue;
|
|
102
|
+
byKey.set(`${observation.kind}\u0000${observation.providerId}`, {
|
|
103
|
+
providerId: observation.providerId,
|
|
104
|
+
kind: observation.kind,
|
|
105
|
+
status: observation.status,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
return [...byKey.values()].sort((left, right) => PROVIDER_KIND_RANK[left.kind] - PROVIDER_KIND_RANK[right.kind] ||
|
|
109
|
+
compareText(left.providerId, right.providerId));
|
|
110
|
+
}
|
|
111
|
+
function commandEntries(observations) {
|
|
112
|
+
const byId = new Map();
|
|
113
|
+
for (const observation of observations) {
|
|
114
|
+
if (observation.kind !== "command")
|
|
115
|
+
continue;
|
|
116
|
+
// A collector-synthesized failure observation (unavailable/timeout/error)
|
|
117
|
+
// may carry no per-command data. It is still a provider-level fact, but
|
|
118
|
+
// it cannot be attributed to a command id, so it does not invent one.
|
|
119
|
+
const commandId = observation.data.commandId;
|
|
120
|
+
if (typeof commandId !== "string" || commandId.length === 0)
|
|
121
|
+
continue;
|
|
122
|
+
byId.set(commandId, {
|
|
123
|
+
commandId,
|
|
124
|
+
status: observation.status,
|
|
125
|
+
required: observation.data.required === true,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
return [...byId.values()].sort((left, right) => compareText(left.commandId, right.commandId));
|
|
129
|
+
}
|
|
130
|
+
function findingEntries(flags) {
|
|
131
|
+
const byId = new Map();
|
|
132
|
+
for (const flag of flags) {
|
|
133
|
+
const id = deriveFindingId(flag);
|
|
134
|
+
const existing = byId.get(id);
|
|
135
|
+
// The id names the finding's SUBJECT, not its severity. A later, stronger
|
|
136
|
+
// finding for the same subject must not be hidden by an earlier weaker
|
|
137
|
+
// duplicate.
|
|
138
|
+
if (existing && SEVERITY_RANK[existing.severity] <= SEVERITY_RANK[flag.severity]) {
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
byId.set(id, {
|
|
142
|
+
id,
|
|
143
|
+
check: flag.check,
|
|
144
|
+
severity: flag.severity,
|
|
145
|
+
...(flag.ref ? { ref: flag.ref } : {}),
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
return [...byId.values()].sort((left, right) => SEVERITY_RANK[left.severity] - SEVERITY_RANK[right.severity] ||
|
|
149
|
+
compareText(left.check, right.check) ||
|
|
150
|
+
compareText(left.ref ?? "", right.ref ?? "") ||
|
|
151
|
+
compareText(left.id, right.id));
|
|
152
|
+
}
|
|
153
|
+
function contractEntry(activeContract, statuses) {
|
|
154
|
+
if (!statuses.contractId)
|
|
155
|
+
return { contract: null, omitted: 0 };
|
|
156
|
+
const criterionRefsById = new Map((activeContract?.items ?? []).map((item) => [item.id, [...(item.criterion_refs ?? [])]]));
|
|
157
|
+
const items = statuses.items
|
|
158
|
+
.map((item) => ({
|
|
159
|
+
id: item.itemId,
|
|
160
|
+
status: item.status,
|
|
161
|
+
criterionRefs: [...(criterionRefsById.get(item.itemId) ?? [])],
|
|
162
|
+
reasons: [...new Set(item.reasons)]
|
|
163
|
+
.slice(0, EVIDENCE_POSTURE_REASON_CAP)
|
|
164
|
+
.map((reason) => reason.slice(0, EVIDENCE_POSTURE_REASON_CHARS)),
|
|
165
|
+
}))
|
|
166
|
+
.sort((left, right) => compareText(left.id, right.id));
|
|
167
|
+
const capped = capList(items, EVIDENCE_POSTURE_CAPS.contractItems);
|
|
168
|
+
const pendingCount = Math.max(0, statuses.items.length -
|
|
169
|
+
statuses.verifiedCount -
|
|
170
|
+
statuses.insufficientCount -
|
|
171
|
+
statuses.contradictedCount);
|
|
172
|
+
return {
|
|
173
|
+
contract: {
|
|
174
|
+
id: statuses.contractId,
|
|
175
|
+
closure: statuses.closure,
|
|
176
|
+
items: capped.items,
|
|
177
|
+
verifiedCount: statuses.verifiedCount,
|
|
178
|
+
insufficientCount: statuses.insufficientCount,
|
|
179
|
+
contradictedCount: statuses.contradictedCount,
|
|
180
|
+
pendingCount,
|
|
181
|
+
},
|
|
182
|
+
omitted: capped.omitted,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
function workspaceEntry(deltas) {
|
|
186
|
+
const git = gitDeltaState(deltas);
|
|
187
|
+
if (git.state === "observed") {
|
|
188
|
+
return { status: "observed", changedPathCount: git.changedFiles.size };
|
|
189
|
+
}
|
|
190
|
+
return { status: git.state, changedPathCount: 0 };
|
|
191
|
+
}
|
|
192
|
+
function filesEntry(files) {
|
|
193
|
+
if (!files)
|
|
194
|
+
return null;
|
|
195
|
+
return {
|
|
196
|
+
reconciliation: files.status,
|
|
197
|
+
reported: files.reported.length,
|
|
198
|
+
observed: files.observed?.length ?? 0,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
/** Derive the ONE evidence posture of a round.
|
|
202
|
+
*
|
|
203
|
+
* All inputs belong to the same round transaction. The function is pure,
|
|
204
|
+
* deterministic and independent of any current policy: the caller passes the
|
|
205
|
+
* policy-derived `verificationConfigured` fact and the already-computed
|
|
206
|
+
* `machineBackedSuccess`.
|
|
207
|
+
*/
|
|
208
|
+
export function deriveEvidencePosture(input) {
|
|
209
|
+
if (input.kind === "rollback") {
|
|
210
|
+
return rollbackEvidencePosture(input.round);
|
|
211
|
+
}
|
|
212
|
+
const providers = providerEntries(input.afterEvidence);
|
|
213
|
+
const commands = commandEntries(input.afterEvidence);
|
|
214
|
+
const findings = findingEntries(input.verificationFlags);
|
|
215
|
+
const contract = contractEntry(input.activeContract, input.contractStatuses);
|
|
216
|
+
const workspace = workspaceEntry(input.evidenceDeltas);
|
|
217
|
+
const files = filesEntry(input.filesReconciliation);
|
|
218
|
+
const successClaim = input.selfEval ? effectiveSuccess(input.selfEval) : false;
|
|
219
|
+
const hasContract = input.contractStatuses.contractId !== "";
|
|
220
|
+
const hasObligation = successClaim || hasContract || input.verificationConfigured;
|
|
221
|
+
const afterCommands = input.afterEvidence.filter((observation) => observation.kind === "command" && observation.phase === "after");
|
|
222
|
+
// 2. A machine fact denies the round: an error-level finding, a
|
|
223
|
+
// contradicted contract item, or a command observed FAILING. Entrypoint
|
|
224
|
+
// tampering arrives as an error-level finding and is covered here; the
|
|
225
|
+
// failed command is checked explicitly so the deduction cannot depend on
|
|
226
|
+
// which layer happened to raise a flag.
|
|
227
|
+
const contradicted = input.verificationFlags.some((flag) => flag.severity === "error") ||
|
|
228
|
+
input.contractStatuses.items.some((item) => item.status === "contradicted") ||
|
|
229
|
+
commands.some((command) => command.status === "failed");
|
|
230
|
+
// 3. The machine could not determine the boundary. "Unknown" is a fact of
|
|
231
|
+
// observability, never an empty result.
|
|
232
|
+
const unknown = input.afterEvidence.some((observation) => INDETERMINATE_OBSERVATIONS.has(observation.status)) ||
|
|
233
|
+
(workspace.status === "unknown" &&
|
|
234
|
+
(hasContract || input.verificationConfigured)) ||
|
|
235
|
+
(input.verificationConfigured && hasObligation && afterCommands.length === 0);
|
|
236
|
+
let status;
|
|
237
|
+
if (contradicted) {
|
|
238
|
+
status = "contradicted";
|
|
239
|
+
}
|
|
240
|
+
else if (unknown) {
|
|
241
|
+
status = "unknown";
|
|
242
|
+
}
|
|
243
|
+
else if (!successClaim && !hasContract) {
|
|
244
|
+
// 4. Nothing was claimed and no slice was executed. Passed commands stay
|
|
245
|
+
// listed as facts; they do not add up to "this round was verified".
|
|
246
|
+
status = "not_applicable";
|
|
247
|
+
}
|
|
248
|
+
else if ((!hasContract || input.contractStatuses.closure === "verified") &&
|
|
249
|
+
(!successClaim || input.machineBackedSuccess)) {
|
|
250
|
+
// 5. Evidence coverage is complete. With no success claim this says the
|
|
251
|
+
// machine evidence is complete, not that the task succeeded.
|
|
252
|
+
status = "verified";
|
|
253
|
+
}
|
|
254
|
+
else {
|
|
255
|
+
// 6. A claim or contract remains without complete machine backing.
|
|
256
|
+
status = "insufficient";
|
|
257
|
+
}
|
|
258
|
+
const cappedProviders = capList(providers, EVIDENCE_POSTURE_CAPS.providers);
|
|
259
|
+
const cappedCommands = capList(commands, EVIDENCE_POSTURE_CAPS.commands);
|
|
260
|
+
const cappedFindings = capList(findings, EVIDENCE_POSTURE_CAPS.findings);
|
|
261
|
+
return {
|
|
262
|
+
round: input.round,
|
|
263
|
+
kind: "evaluation",
|
|
264
|
+
status,
|
|
265
|
+
machineBackedSuccess: input.machineBackedSuccess === true,
|
|
266
|
+
verificationConfigured: input.verificationConfigured === true,
|
|
267
|
+
workspace,
|
|
268
|
+
files,
|
|
269
|
+
providers: cappedProviders.items,
|
|
270
|
+
commands: cappedCommands.items,
|
|
271
|
+
contract: contract.contract,
|
|
272
|
+
findings: cappedFindings.items,
|
|
273
|
+
omitted: {
|
|
274
|
+
providers: cappedProviders.omitted,
|
|
275
|
+
commands: cappedCommands.omitted,
|
|
276
|
+
contractItems: contract.omitted,
|
|
277
|
+
findings: cappedFindings.omitted,
|
|
278
|
+
},
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
//# sourceMappingURL=evidence-posture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence-posture.js","sourceRoot":"","sources":["../src/evidence-posture.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,10 @@
|
|
|
9
9
|
* Built-in: GitEvidenceProvider — git file state capture with parallel async
|
|
10
10
|
* execution (v2.0.1), plus explicitly configured shell-free command providers.
|
|
11
11
|
*/
|
|
12
|
-
import type { CommandObservation, ConfiguredCapability, EvidenceCapability, MachineObservation, ObservedCapability } from "./protocol.js";
|
|
12
|
+
import type { CommandObservation, ConfiguredCapability, EvidenceCapability, MachineObservation, ObservedCapability, ProgressCoverage } from "./protocol.js";
|
|
13
|
+
import type { BoundaryCapture, BoundaryMaterializer } from "./git-boundary.js";
|
|
14
|
+
export { captureGitFileStateAsync } from "./git-boundary.js";
|
|
15
|
+
export type { GitCaptureResult, GitCaptureStatus, GitFileState, GitTrackedEntry, } from "./git-boundary.js";
|
|
13
16
|
import type { CommandEvidencePolicy, LoopPolicy } from "./policy.js";
|
|
14
17
|
/** Interface for evidence capture providers.
|
|
15
18
|
*
|
|
@@ -23,6 +26,16 @@ export interface EvidenceCaptureContext {
|
|
|
23
26
|
phase: "before" | "after";
|
|
24
27
|
/** Workspace root override (tests capture against temp repos). */
|
|
25
28
|
cwd?: string;
|
|
29
|
+
/** v3.9.8: when present, the Git provider materializes dirty/untracked
|
|
30
|
+
* content in the SAME boundary scan that produces the evidence. */
|
|
31
|
+
materializer?: BoundaryMaterializer;
|
|
32
|
+
/** v3.9.8: receives the captured boundary (fingerprints/head/contents) so a
|
|
33
|
+
* checkpoint can be built without re-hashing the workspace. */
|
|
34
|
+
boundarySink?: (boundary: BoundaryCapture) => void;
|
|
35
|
+
/** v3.9.8: hard cap on the boundary path count; only meaningful together
|
|
36
|
+
* with a materializer. A larger boundary yields an explicit error instead
|
|
37
|
+
* of a truncated map. */
|
|
38
|
+
maxPaths?: number;
|
|
26
39
|
}
|
|
27
40
|
export type EvidenceCaptureResult = MachineObservation | null | Promise<MachineObservation | null>;
|
|
28
41
|
export interface EvidenceProvider {
|
|
@@ -40,6 +53,14 @@ export interface EvidenceCollectOptions {
|
|
|
40
53
|
timeoutMs?: number;
|
|
41
54
|
loopId?: string;
|
|
42
55
|
phase?: "before" | "after";
|
|
56
|
+
/** Workspace root override; command providers and the Git provider use it. */
|
|
57
|
+
cwd?: string;
|
|
58
|
+
/** v3.9.8: enables content materialization in the same Git boundary scan. */
|
|
59
|
+
materializer?: BoundaryMaterializer;
|
|
60
|
+
/** v3.9.8: receives the Git boundary captured by this collection. */
|
|
61
|
+
boundarySink?: (boundary: BoundaryCapture) => void;
|
|
62
|
+
/** v3.9.8: boundary path cap for a checkpoint-bearing capture. */
|
|
63
|
+
maxPaths?: number;
|
|
43
64
|
}
|
|
44
65
|
export type EvidenceProviderFactory = () => EvidenceProvider;
|
|
45
66
|
/** Register a provider factory used by policy-driven collectors. */
|
|
@@ -87,6 +108,20 @@ export declare function capabilityWarnings(configured: ConfiguredCapability, pol
|
|
|
87
108
|
* and reported by `doctor`, never hashed. The hashed half stays
|
|
88
109
|
* `deriveConfiguredCapability(policy)` inside the canonical state. */
|
|
89
110
|
export declare function deriveEvidenceCapability(policy: LoopPolicy, observations?: ReadonlyArray<MachineObservation>): EvidenceCapability;
|
|
111
|
+
/** v3.8: Build the observation a failed capture resolves to. The status names
|
|
112
|
+
* the machine fact; `detail` explains it for the audit trail. */
|
|
113
|
+
/** v3.9.9: THE per-kind base observation schema table. Custom observations
|
|
114
|
+
* keep base 1; only their nested progress snapshot moved to inner 2. */
|
|
115
|
+
export declare function expectedObservationSchemaVersion(kind: "git" | "command" | "custom"): 1 | 2;
|
|
116
|
+
/** v4.0.1: the base observation-envelope judgment shared by the collector's
|
|
117
|
+
* parser and the legacy report. Custom `data` is opaque provider display
|
|
118
|
+
* data; an old `progress` key is ignored rather than rejected. */
|
|
119
|
+
export interface ObservationVersionIssue {
|
|
120
|
+
envelope: "observation";
|
|
121
|
+
schemaVersion: number;
|
|
122
|
+
reason: "schema" | "malformed";
|
|
123
|
+
}
|
|
124
|
+
export declare function observationVersionIssue(kind: unknown, schemaVersion: unknown, data: unknown, _status?: unknown): ObservationVersionIssue | null;
|
|
90
125
|
/** Collects observations from all configured providers (always async).
|
|
91
126
|
*
|
|
92
127
|
* v3.8: every configured provider produces exactly one observation per
|
|
@@ -156,47 +191,23 @@ export declare class CommandEvidenceProvider implements EvidenceProvider {
|
|
|
156
191
|
capture(context?: EvidenceCaptureContext): Promise<CommandObservation | null>;
|
|
157
192
|
private observation;
|
|
158
193
|
}
|
|
159
|
-
/** A tracked index entry. `mode` is the stage mode (100644, 100755, 120000,
|
|
160
|
-
* 160000); `object` is the index blob/commit id. */
|
|
161
|
-
export interface GitTrackedEntry {
|
|
162
|
-
path: string;
|
|
163
|
-
mode: string;
|
|
164
|
-
object: string;
|
|
165
|
-
}
|
|
166
|
-
/** v3.9.1: the complete workspace boundary at one instant. */
|
|
167
|
-
export interface GitFileState {
|
|
168
|
-
/** Every path in the index, including paths deleted from the worktree. */
|
|
169
|
-
tracked: GitTrackedEntry[];
|
|
170
|
-
/** Non-ignored untracked paths. */
|
|
171
|
-
untracked: string[];
|
|
172
|
-
/** Dirty-since-HEAD paths, for display only. */
|
|
173
|
-
dirty: string[];
|
|
174
|
-
/** HEAD at this boundary; absent in a repository with no commit. */
|
|
175
|
-
head?: string;
|
|
176
|
-
}
|
|
177
|
-
/** An explicit capture failure. The collector records the status; null is no
|
|
178
|
-
* longer used as an ambiguous "unavailable". */
|
|
179
|
-
export type GitCaptureResult = {
|
|
180
|
-
ok: true;
|
|
181
|
-
state: GitFileState;
|
|
182
|
-
} | {
|
|
183
|
-
ok: false;
|
|
184
|
-
status: "timeout" | "unavailable" | "aborted" | "error";
|
|
185
|
-
detail: string;
|
|
186
|
-
};
|
|
187
|
-
/** v3.9.1: capture the complete boundary. All required git commands run in
|
|
188
|
-
* one parallel batch; HEAD is best-effort (a repository with no commit is a
|
|
189
|
-
* valid boundary with no head). Any required-command failure returns an
|
|
190
|
-
* explicit status — never an empty-but-observed boundary. */
|
|
191
|
-
export declare function captureGitFileStateAsync(signal?: AbortSignal, timeoutMs?: number,
|
|
192
|
-
/** Workspace root; injectable so tests can capture against a temp repo.
|
|
193
|
-
* Defaults to the process cwd, matching the evidence providers. */
|
|
194
|
-
cwd?: string): Promise<GitCaptureResult>;
|
|
195
194
|
export declare class GitEvidenceProvider implements EvidenceProvider {
|
|
196
195
|
readonly name = "git";
|
|
197
196
|
readonly kind: "git";
|
|
198
197
|
capture(context?: EvidenceCaptureContext): Promise<MachineObservation | null>;
|
|
199
198
|
}
|
|
199
|
+
/** v4.0.1: the Git workspace progress fact. It reports what the machine
|
|
200
|
+
* observed — never a vote and never a policy. `null` means the provider
|
|
201
|
+
* produced no progress fact (command/custom observations). */
|
|
202
|
+
export interface ObservationProgress {
|
|
203
|
+
kind: "git";
|
|
204
|
+
coverage: ProgressCoverage;
|
|
205
|
+
/** The only authority. */
|
|
206
|
+
state: "changed" | "unchanged" | "unknown";
|
|
207
|
+
/** The provider's completeness assertion — display/diagnosis only. */
|
|
208
|
+
complete: boolean;
|
|
209
|
+
detail?: string;
|
|
210
|
+
}
|
|
200
211
|
/** v3.9.1: One provider's derived before→after view. `before`/`after` are
|
|
201
212
|
* references to the persisted observations — never copies, never mutated.
|
|
202
213
|
* Only `changedFiles` is a derived fact; it is null for every non-Git
|
|
@@ -210,7 +221,14 @@ export interface ObservationDelta {
|
|
|
210
221
|
/** Git only. [] = observed no change; null = unknown.
|
|
211
222
|
* command/custom always null (no file-change concept). */
|
|
212
223
|
changedFiles: string[] | null;
|
|
224
|
+
/** v3.9.9: this provider's before→after progress fact, or null when the
|
|
225
|
+
* provider reports no progress at all. Consumers select the facts they
|
|
226
|
+
* need by (kind, coverage) — nothing aggregates globally anymore. */
|
|
227
|
+
progress: ObservationProgress | null;
|
|
213
228
|
}
|
|
229
|
+
/** Stable display key for a coverage descriptor — derived only, never
|
|
230
|
+
* persisted, never used as an identity substitute for exact comparison. */
|
|
231
|
+
export declare function coverageKey(coverage: ProgressCoverage): string;
|
|
214
232
|
/** The Git change set for a round, with applicability kept distinct from
|
|
215
233
|
* observability: no Git provider is `not_applicable`; a Git provider whose
|
|
216
234
|
* boundary cannot be compared is `unknown` (never an empty set). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evidence-provider.d.ts","sourceRoot":"","sources":["../src/evidence-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"evidence-provider.d.ts","sourceRoot":"","sources":["../src/evidence-provider.ts"],"names":[],"mappings":"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"}
|