loopforge 3.9.0 → 3.9.2

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 (133) hide show
  1. package/README.md +18 -0
  2. package/dist/audit.d.ts +13 -1
  3. package/dist/audit.d.ts.map +1 -1
  4. package/dist/audit.js +18 -3
  5. package/dist/audit.js.map +1 -1
  6. package/dist/committed-round.d.ts +29 -32
  7. package/dist/committed-round.d.ts.map +1 -1
  8. package/dist/committed-round.js +164 -157
  9. package/dist/committed-round.js.map +1 -1
  10. package/dist/contract-items.d.ts +3 -2
  11. package/dist/contract-items.d.ts.map +1 -1
  12. package/dist/contract-items.js +18 -7
  13. package/dist/contract-items.js.map +1 -1
  14. package/dist/enforcement-gate.d.ts.map +1 -1
  15. package/dist/enforcement-gate.js +13 -61
  16. package/dist/enforcement-gate.js.map +1 -1
  17. package/dist/engine.d.ts.map +1 -1
  18. package/dist/engine.js +16 -9
  19. package/dist/engine.js.map +1 -1
  20. package/dist/evidence-claims.d.ts +6 -5
  21. package/dist/evidence-claims.d.ts.map +1 -1
  22. package/dist/evidence-claims.js +21 -20
  23. package/dist/evidence-claims.js.map +1 -1
  24. package/dist/evidence-provider.d.ts +73 -42
  25. package/dist/evidence-provider.d.ts.map +1 -1
  26. package/dist/evidence-provider.js +437 -138
  27. package/dist/evidence-provider.js.map +1 -1
  28. package/dist/explain.d.ts +18 -3
  29. package/dist/explain.d.ts.map +1 -1
  30. package/dist/explain.js +26 -5
  31. package/dist/explain.js.map +1 -1
  32. package/dist/field-accounting.d.ts +29 -0
  33. package/dist/field-accounting.d.ts.map +1 -0
  34. package/dist/field-accounting.js +132 -0
  35. package/dist/field-accounting.js.map +1 -0
  36. package/dist/files-reconciliation.d.ts +18 -0
  37. package/dist/files-reconciliation.d.ts.map +1 -0
  38. package/dist/files-reconciliation.js +59 -0
  39. package/dist/files-reconciliation.js.map +1 -0
  40. package/dist/index.d.ts +7 -3
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +4 -1
  43. package/dist/index.js.map +1 -1
  44. package/dist/loop-compiler.d.ts +5 -11
  45. package/dist/loop-compiler.d.ts.map +1 -1
  46. package/dist/loop-compiler.js +33 -102
  47. package/dist/loop-compiler.js.map +1 -1
  48. package/dist/loop-store.d.ts +3 -0
  49. package/dist/loop-store.d.ts.map +1 -1
  50. package/dist/loop-store.js +21 -11
  51. package/dist/loop-store.js.map +1 -1
  52. package/dist/mcp/round-lifecycle.d.ts +26 -2
  53. package/dist/mcp/round-lifecycle.d.ts.map +1 -1
  54. package/dist/mcp/round-lifecycle.js +193 -25
  55. package/dist/mcp/round-lifecycle.js.map +1 -1
  56. package/dist/mcp/server.d.ts.map +1 -1
  57. package/dist/mcp/server.js +17 -14
  58. package/dist/mcp/server.js.map +1 -1
  59. package/dist/mcp/session.d.ts +15 -1
  60. package/dist/mcp/session.d.ts.map +1 -1
  61. package/dist/mcp/session.js +34 -1
  62. package/dist/mcp/session.js.map +1 -1
  63. package/dist/mcp/submission-boundary.d.ts +6 -3
  64. package/dist/mcp/submission-boundary.d.ts.map +1 -1
  65. package/dist/mcp/submission-boundary.js +54 -9
  66. package/dist/mcp/submission-boundary.js.map +1 -1
  67. package/dist/mcp/tools.d.ts.map +1 -1
  68. package/dist/mcp/tools.js +73 -39
  69. package/dist/mcp/tools.js.map +1 -1
  70. package/dist/policy-metrics.d.ts +18 -0
  71. package/dist/policy-metrics.d.ts.map +1 -1
  72. package/dist/policy-metrics.js +67 -1
  73. package/dist/policy-metrics.js.map +1 -1
  74. package/dist/prompt-assembler.d.ts.map +1 -1
  75. package/dist/prompt-assembler.js +63 -11
  76. package/dist/prompt-assembler.js.map +1 -1
  77. package/dist/protocol.d.ts +207 -11
  78. package/dist/protocol.d.ts.map +1 -1
  79. package/dist/protocol.js +7 -1
  80. package/dist/protocol.js.map +1 -1
  81. package/dist/replay.d.ts +3 -0
  82. package/dist/replay.d.ts.map +1 -1
  83. package/dist/replay.js +46 -7
  84. package/dist/replay.js.map +1 -1
  85. package/dist/round-contract.d.ts +5 -4
  86. package/dist/round-contract.d.ts.map +1 -1
  87. package/dist/round-contract.js +4 -4
  88. package/dist/round-contract.js.map +1 -1
  89. package/dist/round-coordinator.d.ts +2 -1
  90. package/dist/round-coordinator.d.ts.map +1 -1
  91. package/dist/round-coordinator.js +17 -9
  92. package/dist/round-coordinator.js.map +1 -1
  93. package/dist/round-driver.d.ts +4 -1
  94. package/dist/round-driver.d.ts.map +1 -1
  95. package/dist/round-driver.js +2 -0
  96. package/dist/round-driver.js.map +1 -1
  97. package/dist/round-facts.d.ts +3 -2
  98. package/dist/round-facts.d.ts.map +1 -1
  99. package/dist/round-facts.js +4 -4
  100. package/dist/round-facts.js.map +1 -1
  101. package/dist/round-transaction.d.ts +21 -10
  102. package/dist/round-transaction.d.ts.map +1 -1
  103. package/dist/round-transaction.js +81 -19
  104. package/dist/round-transaction.js.map +1 -1
  105. package/dist/self-eval.d.ts +40 -10
  106. package/dist/self-eval.d.ts.map +1 -1
  107. package/dist/self-eval.js +543 -123
  108. package/dist/self-eval.js.map +1 -1
  109. package/dist/submission-diagnostics.d.ts +12 -0
  110. package/dist/submission-diagnostics.d.ts.map +1 -0
  111. package/dist/submission-diagnostics.js +12 -0
  112. package/dist/submission-diagnostics.js.map +1 -0
  113. package/dist/submission-guidance.d.ts +137 -0
  114. package/dist/submission-guidance.d.ts.map +1 -0
  115. package/dist/submission-guidance.js +855 -0
  116. package/dist/submission-guidance.js.map +1 -0
  117. package/dist/submission-receipt.d.ts +48 -0
  118. package/dist/submission-receipt.d.ts.map +1 -0
  119. package/dist/submission-receipt.js +341 -0
  120. package/dist/submission-receipt.js.map +1 -0
  121. package/dist/token-utils.d.ts +7 -0
  122. package/dist/token-utils.d.ts.map +1 -1
  123. package/dist/token-utils.js +15 -0
  124. package/dist/token-utils.js.map +1 -1
  125. package/dist/verification-gate.d.ts +7 -6
  126. package/dist/verification-gate.d.ts.map +1 -1
  127. package/dist/verification-gate.js +100 -117
  128. package/dist/verification-gate.js.map +1 -1
  129. package/dist/version.d.ts +1 -1
  130. package/dist/version.js +1 -1
  131. package/loop_policy.json +58 -58
  132. package/package.json +2 -1
  133. package/skills/perception/SKILL.md +71 -27
@@ -14,8 +14,8 @@
14
14
  * - downgraded to `contradicted` when error-level verification flags say
15
15
  * the machine contradicted the claim.
16
16
  */
17
- import { machineEvidenceForRound, readOnlyRounds } from "./committed-round.js";
18
- import { isPassedAfterObservation } from "./evidence-provider.js";
17
+ import { readOnlyRounds } from "./committed-round.js";
18
+ import { afterObservations, gitDeltaState, isPassedAfterObservation, } from "./evidence-provider.js";
19
19
  import { claimedMetCriteria } from "./self-eval.js";
20
20
  /** Contradicting error flags that invalidate agent claims. */
21
21
  // NOTE: keep these as literals — importing the CHECK_* constants here would
@@ -32,19 +32,19 @@ function hasPassingTestEvidence(selfEval) {
32
32
  results.failed === 0 &&
33
33
  results.passed > 0;
34
34
  }
35
- function hasPassedAfterCommand(observations) {
35
+ function hasPassedAfterCommand(deltas) {
36
36
  // v3.8: ONE predicate — the gate's entrypoint-tamper exclusion and this
37
37
  // module's check were two divergent definitions of "machine-backed".
38
- const git = observations.find((item) => item.providerId === "git") ?? null;
39
- const changed = git ? new Set(git.files) : null;
40
- return observations.some((item) => isPassedAfterObservation(item, changed));
38
+ const git = gitDeltaState(deltas);
39
+ return afterObservations(deltas)
40
+ .some((observation) => isPassedAfterObservation(observation, git));
41
41
  }
42
42
  /** Derive the runtime claim view for a round. No file-level or text-level
43
43
  * guessing: git observations only serve the evidence_integrity warn. */
44
- export function deriveClaimView(selfEval, evidenceSnapshots) {
44
+ export function deriveClaimView(selfEval, evidenceDeltas) {
45
45
  const met = claimedMetCriteria(selfEval.execution_report);
46
46
  const machineVerified = hasPassingTestEvidence(selfEval) &&
47
- hasPassedAfterCommand(evidenceSnapshots);
47
+ hasPassedAfterCommand(evidenceDeltas);
48
48
  const claims = met.map((targetId) => ({
49
49
  targetId,
50
50
  status: machineVerified ? "verified" : "claimed",
@@ -59,14 +59,14 @@ export function deriveClaimView(selfEval, evidenceSnapshots) {
59
59
  // claim, not evidence. Without a passed command, R8 and the
60
60
  // criteria-claims check can no longer be satisfied by fabrication.
61
61
  hasMachineEvidence: hasPassingTestEvidence(selfEval) &&
62
- hasPassedAfterCommand(evidenceSnapshots),
62
+ hasPassedAfterCommand(evidenceDeltas),
63
63
  };
64
64
  }
65
65
  /** Re-derive a claim view including the contradiction downgrade driven by
66
66
  * verification flags. Used by audit and listVerifiedClaims on persisted
67
67
  * snapshots; the live round path uses deriveClaimView only. */
68
- export function rederiveClaimViewWithFlags(selfEval, evidenceSnapshots, flags) {
69
- const view = deriveClaimView(selfEval, evidenceSnapshots);
68
+ export function rederiveClaimViewWithFlags(selfEval, evidenceDeltas, flags) {
69
+ const view = deriveClaimView(selfEval, evidenceDeltas);
70
70
  const contradicted = flags.some((flag) => flag.severity === "error" && CONTRADICTING_CHECKS.has(flag.check));
71
71
  if (contradicted) {
72
72
  view.claims = view.claims.map((claim) => ({
@@ -79,18 +79,18 @@ export function rederiveClaimViewWithFlags(selfEval, evidenceSnapshots, flags) {
79
79
  }
80
80
  return view;
81
81
  }
82
- /** Files actually changed in a committed round (git provider, after evidence
83
- * preferred). Returns null when the round has no observable git snapshot. */
82
+ /** Files actually changed in a committed round — the shared observation
83
+ * delta, not the full after snapshot. Returns null when the round has no
84
+ * observable Git boundary. */
84
85
  export function resolveRoundFiles(vaultEntries, loopId, round) {
85
86
  const committed = readOnlyRounds(vaultEntries)
86
87
  .find((view) => view.loopId === loopId && view.round === round);
87
- if (!committed)
88
+ if (!committed || committed.evidenceIncomplete)
88
89
  return null;
89
- const evidence = machineEvidenceForRound(committed);
90
- const git = evidence.find((item) => item.providerId === "git" && Array.isArray(item.files));
91
- if (!git)
90
+ const git = committed.observationDelta.find((delta) => delta.kind === "git");
91
+ if (!git || git.changedFiles === null)
92
92
  return null;
93
- return git.files.filter((file) => typeof file === "string");
93
+ return [...git.changedFiles];
94
94
  }
95
95
  /** Stable cr-IDs (and criterion texts) backed by verified claims across all
96
96
  * committed rounds. Criterion texts are mapped to cr-IDs by callers that
@@ -100,8 +100,9 @@ export function listVerifiedClaims(vaultEntries, loopId) {
100
100
  for (const round of readOnlyRounds(vaultEntries)) {
101
101
  if (round.loopId !== loopId || !round.evaluation)
102
102
  continue;
103
- const evidence = machineEvidenceForRound(round);
104
- const view = rederiveClaimViewWithFlags(round.evaluation, evidence, round.verificationFlags);
103
+ // v3.9.1: claims are checked against what THAT round changed, not the
104
+ // whole after-snapshot (which would include pre-existing dirt).
105
+ const view = rederiveClaimViewWithFlags(round.evaluation, round.observationDelta, round.verificationFlags);
105
106
  for (const claim of view.claims) {
106
107
  if (claim.status === "verified")
107
108
  verified.add(claim.targetId);
@@ -1 +1 @@
1
- {"version":3,"file":"evidence-claims.js","sourceRoot":"","sources":["../src/evidence-claims.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evidence-claims.js","sourceRoot":"","sources":["../src/evidence-claims.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@
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, GitObservation, MachineObservation, ObservedCapability } from "./protocol.js";
12
+ import type { CommandObservation, ConfiguredCapability, EvidenceCapability, MachineObservation, ObservedCapability } from "./protocol.js";
13
13
  import type { CommandEvidencePolicy, LoopPolicy } from "./policy.js";
14
14
  /** Interface for evidence capture providers.
15
15
  *
@@ -52,15 +52,15 @@ export declare function isProviderRegistered(name: string): boolean;
52
52
  /** v3.8: The ONE machine-backed predicate. A command observation proves a
53
53
  * claim only when it is an after-phase command that PASSED and whose
54
54
  * entrypoint was not modified in the same round. Before-phase observations
55
- * are the baseline and never evidence. When no git delta is available the
56
- * entrypoint arm fails open (matching the historical behaviour).
55
+ * are the baseline and never evidence.
56
+ *
57
+ * `not_applicable` (no Git provider participated) leaves the entrypoint arm
58
+ * out; `unknown` (a Git boundary existed but its change set is unobservable)
59
+ * is NOT a pass — the boundary cannot rule out entrypoint tampering.
57
60
  *
58
61
  * v3.8 replaced two divergent implementations (the gate excluded tampered
59
62
  * commands, evidence-claims did not) with this single function. */
60
- export declare function isPassedAfterObservation(observation: MachineObservation, gitChangedFiles: ReadonlySet<string> | null): boolean;
61
- /** v3.8: The changed-file set of a round's git observation, or null when no
62
- * git observation exists (entrypoint checks then fail open). */
63
- export declare function gitChangedFiles(observations: ReadonlyArray<MachineObservation>): Set<string> | null;
63
+ export declare function isPassedAfterObservation(observation: MachineObservation, git: GitDeltaState): boolean;
64
64
  /** v3.8: Live capability derived from observations. Rendered only — never
65
65
  * hashed, never persisted independently (it is a pure function of the
66
66
  * observations it is given). */
@@ -156,50 +156,81 @@ export declare class CommandEvidenceProvider implements EvidenceProvider {
156
156
  capture(context?: EvidenceCaptureContext): Promise<CommandObservation | null>;
157
157
  private observation;
158
158
  }
159
- /** v1.17: Result of capturing git file state across all three categories. */
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. */
160
167
  export interface GitFileState {
161
- /** Tracked files modified but unstaged (git diff --name-only). */
162
- tracked: string[];
163
- /** Files in the staging area (git diff --cached --name-only). */
164
- staged: string[];
165
- /** Untracked files not yet known to git (git ls-files --others --exclude-standard). */
168
+ /** Every path in the index, including paths deleted from the worktree. */
169
+ tracked: GitTrackedEntry[];
170
+ /** Non-ignored untracked paths. */
166
171
  untracked: string[];
167
- /** v2.13: HEAD commit hash for backtrack restore point.
168
- * undefined when git is unavailable or not a repository. */
172
+ /** Dirty-since-HEAD paths, for display only. */
173
+ dirty: string[];
174
+ /** HEAD at this boundary; absent in a repository with no commit. */
169
175
  head?: string;
170
176
  }
171
- /** v2.0.1: Capture git file state using parallel async execFile.
172
- *
173
- * Runs three git commands concurrently via Promise.all. Uses a single
174
- * timeout (shared across all commands) and an optional AbortSignal for
175
- * early cancellation. Shell-free (execFile, not exec).
176
- *
177
- * On any command failure, returns null — the caller should treat git
178
- * evidence as unavailable and degrade gracefully.
179
- *
180
- * Performance: wall-clock time is max(single-command), not sum(3).
181
- * On a normal repo (~200ms/command): ~200ms vs ~600ms sequential.
182
- * On Windows with antivirus (~4s/command): ~4s vs ~12s sequential. */
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. */
183
191
  export declare function captureGitFileStateAsync(signal?: AbortSignal, timeoutMs?: number,
184
192
  /** Workspace root; injectable so tests can capture against a temp repo.
185
193
  * Defaults to the process cwd, matching the evidence providers. */
186
- cwd?: string): Promise<GitFileState | null>;
194
+ cwd?: string): Promise<GitCaptureResult>;
187
195
  export declare class GitEvidenceProvider implements EvidenceProvider {
188
196
  readonly name = "git";
189
197
  readonly kind: "git";
190
- capture(context?: EvidenceCaptureContext): Promise<GitObservation | null>;
198
+ capture(context?: EvidenceCaptureContext): Promise<MachineObservation | null>;
191
199
  }
192
- /** Extract merged file list from observations for backward compat with
193
- * runtimeFilesChanged (string[] | null).
194
- *
195
- * Looks for the "git" provider first; falls back to merging all providers'
196
- * files arrays (deduplicated). */
197
- export declare function extractFilesFromSnapshots(observations: MachineObservation[]): string[] | null;
198
- /** v3.8: The round delta of two observation collections (before → after):
199
- * files that appeared, disappeared, or changed content. The full payload of
200
- * each after-observation is preserved; only `files` is narrowed. This is the
201
- * single derivation the transaction persists and every reader consumes. */
202
- export declare function diffSnapshotCollections(before: MachineObservation[], after: MachineObservation[]): MachineObservation[];
203
- /** Compute a diff between two observation collections (before → after). */
204
- export declare function diffSnapshots(before: MachineObservation[], after: MachineObservation[]): string[] | null;
200
+ /** v3.9.1: One provider's derived before→after view. `before`/`after` are
201
+ * references to the persisted observations — never copies, never mutated.
202
+ * Only `changedFiles` is a derived fact; it is null for every non-Git
203
+ * provider (command entrypoints are not a change set) and for any Git pair
204
+ * whose boundary cannot be compared. */
205
+ export interface ObservationDelta {
206
+ providerId: string;
207
+ kind: MachineObservation["kind"];
208
+ before: MachineObservation | null;
209
+ after: MachineObservation | null;
210
+ /** Git only. [] = observed no change; null = unknown.
211
+ * command/custom always null (no file-change concept). */
212
+ changedFiles: string[] | null;
213
+ }
214
+ /** The Git change set for a round, with applicability kept distinct from
215
+ * observability: no Git provider is `not_applicable`; a Git provider whose
216
+ * boundary cannot be compared is `unknown` (never an empty set). */
217
+ export type GitDeltaState = {
218
+ state: "not_applicable";
219
+ } | {
220
+ state: "unknown";
221
+ } | {
222
+ state: "observed";
223
+ changedFiles: ReadonlySet<string>;
224
+ };
225
+ /** The ONE before→after derivation. Delta entries are one per
226
+ * kind+providerId in the union of both collections, in deterministic order.
227
+ * Missing sides and duplicate keys are explicit; they never masquerade as an
228
+ * observed no-change. */
229
+ export declare function deriveObservationDeltas(before: readonly MachineObservation[], after: readonly MachineObservation[]): ObservationDelta[];
230
+ /** Resolve the round's Git change state once. No Git provider =
231
+ * not_applicable; any Git delta with an unknown change set = unknown; else
232
+ * the union of every observed Git change set. */
233
+ export declare function gitDeltaState(deltas: readonly ObservationDelta[]): GitDeltaState;
234
+ /** The after-phase observations referenced by a delta collection. */
235
+ export declare function afterObservations(deltas: readonly ObservationDelta[]): MachineObservation[];
205
236
  //# sourceMappingURL=evidence-provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"evidence-provider.d.ts","sourceRoot":"","sources":["../src/evidence-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,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;;;;;;;oEAOoE;AACpE,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,kBAAkB,EAC/B,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,GAC1C,OAAO,CAOT;AAED;iEACiE;AACjE,wBAAgB,eAAe,CAC7B,YAAY,EAAE,aAAa,CAAC,kBAAkB,CAAC,GAC9C,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAGpB;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;AAmDD;;;;;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,6EAA6E;AAC7E,MAAM,WAAW,YAAY;IAC3B,kEAAkE;IAClE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,iEAAiE;IACjE,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,uFAAuF;IACvF,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB;iEAC6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;sEAWsE;AACtE,wBAAsB,wBAAwB,CAC5C,MAAM,CAAC,EAAE,WAAW,EACpB,SAAS,CAAC,EAAE,MAAM;AAClB;oEACoE;AACpE,GAAG,SAAgB,GAClB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAoD9B;AAsBD,qBAAa,mBAAoB,YAAW,gBAAgB;IAC1D,QAAQ,CAAC,IAAI,SAAS;IACtB,QAAQ,CAAC,IAAI,EAAG,KAAK,CAAU;IAE/B,OAAO,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;CAoD1E;AAMD;;;;mCAImC;AACnC,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,kBAAkB,EAAE,GACjC,MAAM,EAAE,GAAG,IAAI,CASjB;AAED;;;4EAG4E;AAC5E,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,kBAAkB,EAAE,EAC5B,KAAK,EAAE,kBAAkB,EAAE,GAC1B,kBAAkB,EAAE,CAStB;AAED,2EAA2E;AAC3E,wBAAgB,aAAa,CAC3B,MAAM,EAAE,kBAAkB,EAAE,EAC5B,KAAK,EAAE,kBAAkB,EAAE,GAC1B,MAAM,EAAE,GAAG,IAAI,CAEjB"}
1
+ {"version":3,"file":"evidence-provider.d.ts","sourceRoot":"","sources":["../src/evidence-provider.ts"],"names":[],"mappings":"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"}