loopforge 3.9.4 → 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.
Files changed (283) hide show
  1. package/README.md +236 -112
  2. package/dist/audit.d.ts +73 -15
  3. package/dist/audit.d.ts.map +1 -1
  4. package/dist/audit.js +131 -61
  5. package/dist/audit.js.map +1 -1
  6. package/dist/canonical-state.d.ts +114 -40
  7. package/dist/canonical-state.d.ts.map +1 -1
  8. package/dist/canonical-state.js +276 -182
  9. package/dist/canonical-state.js.map +1 -1
  10. package/dist/cli.d.ts.map +1 -1
  11. package/dist/cli.js +41 -12
  12. package/dist/cli.js.map +1 -1
  13. package/dist/cognitive-governance.d.ts +0 -2
  14. package/dist/cognitive-governance.d.ts.map +1 -1
  15. package/dist/cognitive-governance.js +0 -4
  16. package/dist/cognitive-governance.js.map +1 -1
  17. package/dist/committed-round.d.ts +97 -156
  18. package/dist/committed-round.d.ts.map +1 -1
  19. package/dist/committed-round.js +223 -419
  20. package/dist/committed-round.js.map +1 -1
  21. package/dist/constraint-lifecycle.d.ts +73 -0
  22. package/dist/constraint-lifecycle.d.ts.map +1 -0
  23. package/dist/constraint-lifecycle.js +174 -0
  24. package/dist/constraint-lifecycle.js.map +1 -0
  25. package/dist/context-boundary.d.ts +83 -0
  26. package/dist/context-boundary.d.ts.map +1 -0
  27. package/dist/context-boundary.js +101 -0
  28. package/dist/context-boundary.js.map +1 -0
  29. package/dist/contract-items.d.ts +12 -8
  30. package/dist/contract-items.d.ts.map +1 -1
  31. package/dist/contract-items.js +31 -26
  32. package/dist/contract-items.js.map +1 -1
  33. package/dist/contract-requirement.d.ts +47 -0
  34. package/dist/contract-requirement.d.ts.map +1 -0
  35. package/dist/contract-requirement.js +51 -0
  36. package/dist/contract-requirement.js.map +1 -0
  37. package/dist/criterion-status.d.ts +35 -0
  38. package/dist/criterion-status.d.ts.map +1 -0
  39. package/dist/criterion-status.js +89 -0
  40. package/dist/criterion-status.js.map +1 -0
  41. package/dist/enforcement-gate.d.ts +26 -38
  42. package/dist/enforcement-gate.d.ts.map +1 -1
  43. package/dist/enforcement-gate.js +196 -319
  44. package/dist/enforcement-gate.js.map +1 -1
  45. package/dist/engine.d.ts +9 -103
  46. package/dist/engine.d.ts.map +1 -1
  47. package/dist/engine.js +27 -897
  48. package/dist/engine.js.map +1 -1
  49. package/dist/errors.d.ts +41 -0
  50. package/dist/errors.d.ts.map +1 -0
  51. package/dist/errors.js +69 -0
  52. package/dist/errors.js.map +1 -0
  53. package/dist/evidence-claims.d.ts +33 -31
  54. package/dist/evidence-claims.d.ts.map +1 -1
  55. package/dist/evidence-claims.js +58 -72
  56. package/dist/evidence-claims.js.map +1 -1
  57. package/dist/evidence-posture-view.d.ts +19 -0
  58. package/dist/evidence-posture-view.d.ts.map +1 -0
  59. package/dist/evidence-posture-view.js +116 -0
  60. package/dist/evidence-posture-view.js.map +1 -0
  61. package/dist/evidence-posture.d.ts +73 -0
  62. package/dist/evidence-posture.d.ts.map +1 -0
  63. package/dist/evidence-posture.js +281 -0
  64. package/dist/evidence-posture.js.map +1 -0
  65. package/dist/evidence-provider.d.ts +55 -37
  66. package/dist/evidence-provider.d.ts.map +1 -1
  67. package/dist/evidence-provider.js +182 -332
  68. package/dist/evidence-provider.js.map +1 -1
  69. package/dist/explain.d.ts +166 -27
  70. package/dist/explain.d.ts.map +1 -1
  71. package/dist/explain.js +372 -58
  72. package/dist/explain.js.map +1 -1
  73. package/dist/field-accounting.d.ts.map +1 -1
  74. package/dist/field-accounting.js +3 -22
  75. package/dist/field-accounting.js.map +1 -1
  76. package/dist/generate-schema.js +13 -8
  77. package/dist/generate-schema.js.map +1 -1
  78. package/dist/git-boundary.d.ts +128 -0
  79. package/dist/git-boundary.d.ts.map +1 -0
  80. package/dist/git-boundary.js +625 -0
  81. package/dist/git-boundary.js.map +1 -0
  82. package/dist/git-facts.d.ts +22 -0
  83. package/dist/git-facts.d.ts.map +1 -0
  84. package/dist/git-facts.js +29 -0
  85. package/dist/git-facts.js.map +1 -0
  86. package/dist/git-motion.d.ts +37 -0
  87. package/dist/git-motion.d.ts.map +1 -0
  88. package/dist/git-motion.js +59 -0
  89. package/dist/git-motion.js.map +1 -0
  90. package/dist/history.d.ts +44 -0
  91. package/dist/history.d.ts.map +1 -0
  92. package/dist/history.js +77 -0
  93. package/dist/history.js.map +1 -0
  94. package/dist/index.d.ts +19 -9
  95. package/dist/index.d.ts.map +1 -1
  96. package/dist/index.js +12 -4
  97. package/dist/index.js.map +1 -1
  98. package/dist/init.d.ts +16 -0
  99. package/dist/init.d.ts.map +1 -1
  100. package/dist/init.js +80 -14
  101. package/dist/init.js.map +1 -1
  102. package/dist/loop-compiler.d.ts +39 -23
  103. package/dist/loop-compiler.d.ts.map +1 -1
  104. package/dist/loop-compiler.js +368 -565
  105. package/dist/loop-compiler.js.map +1 -1
  106. package/dist/loop-store.d.ts +6 -5
  107. package/dist/loop-store.d.ts.map +1 -1
  108. package/dist/loop-store.js +153 -35
  109. package/dist/loop-store.js.map +1 -1
  110. package/dist/mcp/round-lifecycle.d.ts +255 -81
  111. package/dist/mcp/round-lifecycle.d.ts.map +1 -1
  112. package/dist/mcp/round-lifecycle.js +1552 -539
  113. package/dist/mcp/round-lifecycle.js.map +1 -1
  114. package/dist/mcp/server.d.ts.map +1 -1
  115. package/dist/mcp/server.js +42 -18
  116. package/dist/mcp/server.js.map +1 -1
  117. package/dist/mcp/session.d.ts +81 -39
  118. package/dist/mcp/session.d.ts.map +1 -1
  119. package/dist/mcp/session.js +956 -282
  120. package/dist/mcp/session.js.map +1 -1
  121. package/dist/mcp/submission-boundary.d.ts +23 -31
  122. package/dist/mcp/submission-boundary.d.ts.map +1 -1
  123. package/dist/mcp/submission-boundary.js +242 -92
  124. package/dist/mcp/submission-boundary.js.map +1 -1
  125. package/dist/mcp/submission-handle.d.ts +66 -0
  126. package/dist/mcp/submission-handle.d.ts.map +1 -0
  127. package/dist/mcp/submission-handle.js +173 -0
  128. package/dist/mcp/submission-handle.js.map +1 -0
  129. package/dist/mcp/tools.d.ts +17 -7
  130. package/dist/mcp/tools.d.ts.map +1 -1
  131. package/dist/mcp/tools.js +707 -244
  132. package/dist/mcp/tools.js.map +1 -1
  133. package/dist/open-question.d.ts +7 -0
  134. package/dist/open-question.d.ts.map +1 -0
  135. package/dist/open-question.js +14 -0
  136. package/dist/open-question.js.map +1 -0
  137. package/dist/policy-metrics.d.ts +31 -21
  138. package/dist/policy-metrics.d.ts.map +1 -1
  139. package/dist/policy-metrics.js +117 -64
  140. package/dist/policy-metrics.js.map +1 -1
  141. package/dist/policy.d.ts +11 -39
  142. package/dist/policy.d.ts.map +1 -1
  143. package/dist/policy.js +12 -12
  144. package/dist/policy.js.map +1 -1
  145. package/dist/progress.d.ts +45 -0
  146. package/dist/progress.d.ts.map +1 -0
  147. package/dist/progress.js +136 -0
  148. package/dist/progress.js.map +1 -0
  149. package/dist/prompt-assembler.d.ts +20 -6
  150. package/dist/prompt-assembler.d.ts.map +1 -1
  151. package/dist/prompt-assembler.js +475 -479
  152. package/dist/prompt-assembler.js.map +1 -1
  153. package/dist/prompt-coverage.d.ts +0 -6
  154. package/dist/prompt-coverage.d.ts.map +1 -1
  155. package/dist/prompt-coverage.js +4 -8
  156. package/dist/prompt-coverage.js.map +1 -1
  157. package/dist/prompt-freshness.d.ts +6 -17
  158. package/dist/prompt-freshness.d.ts.map +1 -1
  159. package/dist/prompt-freshness.js +27 -22
  160. package/dist/prompt-freshness.js.map +1 -1
  161. package/dist/prompt-policy.d.ts +14 -7
  162. package/dist/prompt-policy.d.ts.map +1 -1
  163. package/dist/prompt-policy.js +21 -5
  164. package/dist/prompt-policy.js.map +1 -1
  165. package/dist/protocol.d.ts +843 -424
  166. package/dist/protocol.d.ts.map +1 -1
  167. package/dist/protocol.js +73 -102
  168. package/dist/protocol.js.map +1 -1
  169. package/dist/recovery-guidance.d.ts +13 -0
  170. package/dist/recovery-guidance.d.ts.map +1 -0
  171. package/dist/recovery-guidance.js +15 -0
  172. package/dist/recovery-guidance.js.map +1 -0
  173. package/dist/recovery.d.ts +68 -0
  174. package/dist/recovery.d.ts.map +1 -0
  175. package/dist/recovery.js +234 -0
  176. package/dist/recovery.js.map +1 -0
  177. package/dist/replay.d.ts +42 -8
  178. package/dist/replay.d.ts.map +1 -1
  179. package/dist/replay.js +311 -84
  180. package/dist/replay.js.map +1 -1
  181. package/dist/result-facts.d.ts +45 -0
  182. package/dist/result-facts.d.ts.map +1 -0
  183. package/dist/result-facts.js +86 -0
  184. package/dist/result-facts.js.map +1 -0
  185. package/dist/round-contract.d.ts +38 -8
  186. package/dist/round-contract.d.ts.map +1 -1
  187. package/dist/round-contract.js +71 -31
  188. package/dist/round-contract.js.map +1 -1
  189. package/dist/round-coordinator.d.ts +41 -89
  190. package/dist/round-coordinator.d.ts.map +1 -1
  191. package/dist/round-coordinator.js +250 -267
  192. package/dist/round-coordinator.js.map +1 -1
  193. package/dist/round-driver.d.ts +56 -16
  194. package/dist/round-driver.d.ts.map +1 -1
  195. package/dist/round-driver.js +225 -39
  196. package/dist/round-driver.js.map +1 -1
  197. package/dist/round-facts.d.ts +33 -52
  198. package/dist/round-facts.d.ts.map +1 -1
  199. package/dist/round-facts.js +51 -160
  200. package/dist/round-facts.js.map +1 -1
  201. package/dist/round-guidance.d.ts +56 -0
  202. package/dist/round-guidance.d.ts.map +1 -0
  203. package/dist/round-guidance.js +161 -0
  204. package/dist/round-guidance.js.map +1 -0
  205. package/dist/round-outcome.d.ts +21 -0
  206. package/dist/round-outcome.d.ts.map +1 -0
  207. package/dist/round-outcome.js +31 -0
  208. package/dist/round-outcome.js.map +1 -0
  209. package/dist/round-transaction.d.ts +168 -21
  210. package/dist/round-transaction.d.ts.map +1 -1
  211. package/dist/round-transaction.js +837 -38
  212. package/dist/round-transaction.js.map +1 -1
  213. package/dist/self-eval.d.ts +37 -61
  214. package/dist/self-eval.d.ts.map +1 -1
  215. package/dist/self-eval.js +413 -392
  216. package/dist/self-eval.js.map +1 -1
  217. package/dist/storage.d.ts +16 -0
  218. package/dist/storage.d.ts.map +1 -1
  219. package/dist/storage.js +54 -4
  220. package/dist/storage.js.map +1 -1
  221. package/dist/subgoal-state.d.ts +2 -3
  222. package/dist/subgoal-state.d.ts.map +1 -1
  223. package/dist/subgoal-state.js +2 -3
  224. package/dist/subgoal-state.js.map +1 -1
  225. package/dist/submission-guidance.d.ts +29 -21
  226. package/dist/submission-guidance.d.ts.map +1 -1
  227. package/dist/submission-guidance.js +308 -260
  228. package/dist/submission-guidance.js.map +1 -1
  229. package/dist/submission-receipt.d.ts +16 -8
  230. package/dist/submission-receipt.d.ts.map +1 -1
  231. package/dist/submission-receipt.js +145 -51
  232. package/dist/submission-receipt.js.map +1 -1
  233. package/dist/token-utils.d.ts +28 -7
  234. package/dist/token-utils.d.ts.map +1 -1
  235. package/dist/token-utils.js +27 -11
  236. package/dist/token-utils.js.map +1 -1
  237. package/dist/transaction-identity.d.ts +9 -0
  238. package/dist/transaction-identity.d.ts.map +1 -0
  239. package/dist/transaction-identity.js +69 -0
  240. package/dist/transaction-identity.js.map +1 -0
  241. package/dist/verification-actions.d.ts.map +1 -1
  242. package/dist/verification-actions.js +10 -11
  243. package/dist/verification-actions.js.map +1 -1
  244. package/dist/verification-gate.d.ts +23 -47
  245. package/dist/verification-gate.d.ts.map +1 -1
  246. package/dist/verification-gate.js +202 -423
  247. package/dist/verification-gate.js.map +1 -1
  248. package/dist/version.d.ts +1 -1
  249. package/dist/version.js +1 -1
  250. package/dist/working-memory.d.ts +187 -0
  251. package/dist/working-memory.d.ts.map +1 -0
  252. package/dist/working-memory.js +767 -0
  253. package/dist/working-memory.js.map +1 -0
  254. package/dist/workspace-checkpoint.d.ts +88 -0
  255. package/dist/workspace-checkpoint.d.ts.map +1 -0
  256. package/dist/workspace-checkpoint.js +326 -0
  257. package/dist/workspace-checkpoint.js.map +1 -0
  258. package/dist/workspace-restore.d.ts +68 -0
  259. package/dist/workspace-restore.d.ts.map +1 -0
  260. package/dist/workspace-restore.js +604 -0
  261. package/dist/workspace-restore.js.map +1 -0
  262. package/dist/workspace.d.ts +0 -9
  263. package/dist/workspace.d.ts.map +1 -1
  264. package/dist/workspace.js +0 -17
  265. package/dist/workspace.js.map +1 -1
  266. package/loop_policy.json +4 -18
  267. package/package.json +68 -68
  268. package/skills/forge/SKILL.md +212 -0
  269. package/skills/forge/references/evidence-and-contracts.md +204 -0
  270. package/skills/forge/references/recovery-and-views.md +188 -0
  271. package/dist/cognitive-facts.d.ts +0 -30
  272. package/dist/cognitive-facts.d.ts.map +0 -1
  273. package/dist/cognitive-facts.js +0 -113
  274. package/dist/cognitive-facts.js.map +0 -1
  275. package/dist/loop-extras-parser.d.ts +0 -81
  276. package/dist/loop-extras-parser.d.ts.map +0 -1
  277. package/dist/loop-extras-parser.js +0 -213
  278. package/dist/loop-extras-parser.js.map +0 -1
  279. package/dist/loop-projection.d.ts +0 -6
  280. package/dist/loop-projection.d.ts.map +0 -1
  281. package/dist/loop-projection.js +0 -28
  282. package/dist/loop-projection.js.map +0 -1
  283. package/skills/perception/SKILL.md +0 -389
@@ -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;AAiBH,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAElB,kBAAkB,EACnB,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAMrE;;;4EAG4E;AAC5E,MAAM,WAAW,sBAAsB;IACrC,iEAAiE;IACjE,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC1B,kEAAkE;IAClE,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,qBAAqB,GAC7B,kBAAkB,GAClB,IAAI,GACJ,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;AAEvC,MAAM,WAAW,gBAAgB;IAC/B,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;uDACmD;IACnD,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC1C;;8EAE0E;IAC1E,OAAO,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,qBAAqB,CAAC;CAClE;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC5B;AAED,MAAM,MAAM,uBAAuB,GAAG,MAAM,gBAAgB,CAAC;AAI7D,oEAAoE;AACpE,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,uBAAuB,GAC/B,IAAI,CAGN;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGhE;AAED;;sDAEsD;AACtD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAID;;;;;;;;;;oEAUoE;AACpE,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,kBAAkB,EAC/B,GAAG,EAAE,aAAa,GACjB,OAAO,CAaT;AAED;;iCAEiC;AACjC,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAC/C,UAAU,EAAE,oBAAoB,GAC/B,kBAAkB,CA0BpB;AAED;;;;;;;;;;;2CAW2C;AAC3C,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,oBAAoB,EAChC,MAAM,EAAE,UAAU,EAClB,QAAQ,CAAC,EAAE,kBAAkB,GAC5B,MAAM,EAAE,CA0CV;AAED;;;;;;;uEAOuE;AACvE,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,UAAU,EAClB,YAAY,GAAE,aAAa,CAAC,kBAAkB,CAAM,GACnD,kBAAkB,CAuBpB;AAsDD;;;;;sEAKsE;AACtE,qBAAa,iBAAiB;IAChB,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,gBAAgB,EAAE;IAEjD;;;;iBAIa;IACb,MAAM,CAAC,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,iBAAiB;IAMpE,mEAAmE;IACnE,MAAM,CAAC,UAAU,IAAI,iBAAiB;IAatC,8EAA8E;IACxE,YAAY,CAAC,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;CA8DxF;AA0ED;;;;;;;;;;;;kBAYkB;AAClB,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,UAAU,EAClB,SAAS,SAAgB,GACxB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAkBxB;AAED;;;;;;;wCAOwC;AACxC,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,SAAS,GAAG,QAAQ,CAAC;CAClC;AAED;;;;;+EAK+E;AAC/E,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EACzC,SAAS,SAAgB,GACxB,eAAe,EAAE,CAenB;AAED;;;;+EAI+E;AAC/E,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,GACV,MAAM,EAAE,CAgBV;AAED,6EAA6E;AAC7E,qBAAa,uBAAwB,YAAW,gBAAgB;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,MAAM,EAAE,qBAAqB;IA8BzC,OAAO,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAyH7E,OAAO,CAAC,WAAW;CA2CpB;AAID;qDACqD;AACrD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,8DAA8D;AAC9D,MAAM,WAAW,YAAY;IAC3B,0EAA0E;IAC1E,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,mCAAmC;IACnC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gDAAgD;IAChD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;iDACiD;AACjD,MAAM,MAAM,gBAAgB,GACxB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,GACjC;IACE,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC;IACxD,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AA+CN;;;8DAG8D;AAC9D,wBAAsB,wBAAwB,CAC5C,MAAM,CAAC,EAAE,WAAW,EACpB,SAAS,CAAC,EAAE,MAAM;AAClB;oEACoE;AACpE,GAAG,SAAgB,GAClB,OAAO,CAAC,gBAAgB,CAAC,CA8H3B;AAyID,qBAAa,mBAAoB,YAAW,gBAAgB;IAC1D,QAAQ,CAAC,IAAI,SAAS;IACtB,QAAQ,CAAC,IAAI,EAAG,KAAK,CAAU;IAEzB,OAAO,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;CAyHpF;AAMD;;;;yCAIyC;AACzC,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAClC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACjC;+DAC2D;IAC3D,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAC/B;AAED;;qEAEqE;AACrE,MAAM,MAAM,aAAa,GACrB;IAAE,KAAK,EAAE,gBAAgB,CAAA;CAAE,GAC3B;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,GACpB;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC;AAqC7D;;;0BAG0B;AAC1B,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,kBAAkB,EAAE,EACrC,KAAK,EAAE,SAAS,kBAAkB,EAAE,GACnC,gBAAgB,EAAE,CAmDpB;AAED;;kDAEkD;AAClD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,SAAS,gBAAgB,EAAE,GAClC,aAAa,CASf;AAED,qEAAqE;AACrE,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,gBAAgB,EAAE,GAClC,kBAAkB,EAAE,CAItB"}
1
+ {"version":3,"file":"evidence-provider.d.ts","sourceRoot":"","sources":["../src/evidence-provider.ts"],"names":[],"mappings":"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"}