audit-tools 0.50.4 → 0.50.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 (54) hide show
  1. package/dist/audit/cli/auditStep.d.ts +30 -0
  2. package/dist/audit/cli/auditStep.d.ts.map +1 -1
  3. package/dist/audit/cli/auditStep.js +50 -0
  4. package/dist/audit/cli/auditStep.js.map +1 -1
  5. package/dist/audit/cli/foldTransaction.d.ts +103 -0
  6. package/dist/audit/cli/foldTransaction.d.ts.map +1 -0
  7. package/dist/audit/cli/foldTransaction.js +243 -0
  8. package/dist/audit/cli/foldTransaction.js.map +1 -0
  9. package/dist/audit/cli/nextStepHelpers.d.ts +109 -28
  10. package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
  11. package/dist/audit/cli/nextStepHelpers.js +661 -560
  12. package/dist/audit/cli/nextStepHelpers.js.map +1 -1
  13. package/dist/audit/cli/reviewRun.d.ts +15 -3
  14. package/dist/audit/cli/reviewRun.d.ts.map +1 -1
  15. package/dist/audit/cli/reviewRun.js +39 -13
  16. package/dist/audit/cli/reviewRun.js.map +1 -1
  17. package/dist/audit/orchestrator/advance.d.ts +38 -36
  18. package/dist/audit/orchestrator/advance.d.ts.map +1 -1
  19. package/dist/audit/orchestrator/advance.js +126 -82
  20. package/dist/audit/orchestrator/advance.js.map +1 -1
  21. package/dist/audit/orchestrator/advanceTypes.d.ts +23 -0
  22. package/dist/audit/orchestrator/advanceTypes.d.ts.map +1 -1
  23. package/dist/audit/orchestrator/designReviewSnapshot.d.ts +8 -2
  24. package/dist/audit/orchestrator/designReviewSnapshot.d.ts.map +1 -1
  25. package/dist/audit/orchestrator/designReviewSnapshot.js +12 -6
  26. package/dist/audit/orchestrator/designReviewSnapshot.js.map +1 -1
  27. package/dist/audit/orchestrator/executorRunners.d.ts.map +1 -1
  28. package/dist/audit/orchestrator/executorRunners.js +1 -1
  29. package/dist/audit/orchestrator/executorRunners.js.map +1 -1
  30. package/dist/audit/orchestrator/executors.d.ts.map +1 -1
  31. package/dist/audit/orchestrator/executors.js +1 -1
  32. package/dist/audit/orchestrator/executors.js.map +1 -1
  33. package/dist/audit/orchestrator/hostInputPause.d.ts +0 -33
  34. package/dist/audit/orchestrator/hostInputPause.d.ts.map +1 -1
  35. package/dist/audit/orchestrator/hostInputPause.js +6 -64
  36. package/dist/audit/orchestrator/hostInputPause.js.map +1 -1
  37. package/dist/audit/orchestrator/obligationPolicy.d.ts +90 -0
  38. package/dist/audit/orchestrator/obligationPolicy.d.ts.map +1 -0
  39. package/dist/audit/orchestrator/obligationPolicy.js +228 -0
  40. package/dist/audit/orchestrator/obligationPolicy.js.map +1 -0
  41. package/dist/audit/orchestrator/systemicChallengeExecutor.d.ts +1 -1
  42. package/dist/audit/orchestrator/systemicChallengeExecutor.d.ts.map +1 -1
  43. package/dist/audit/orchestrator/systemicChallengeExecutor.js +23 -1
  44. package/dist/audit/orchestrator/systemicChallengeExecutor.js.map +1 -1
  45. package/dist/audit/types/systemicChallenge.d.ts +9 -0
  46. package/dist/audit/types/systemicChallenge.d.ts.map +1 -1
  47. package/dist/shared/engine/obligationEngine.d.ts +52 -11
  48. package/dist/shared/engine/obligationEngine.d.ts.map +1 -1
  49. package/dist/shared/engine/obligationEngine.js +46 -9
  50. package/dist/shared/engine/obligationEngine.js.map +1 -1
  51. package/dist/shared/observability/runLog.d.ts +2 -0
  52. package/dist/shared/observability/runLog.d.ts.map +1 -1
  53. package/dist/shared/observability/runLog.js.map +1 -1
  54. package/package.json +1 -1
@@ -152,25 +152,51 @@ export declare function deriveEngineBound(cap: number): number;
152
152
  * - `step` null, `stopped: "bound"` → the fold spent `maxTransitions`
153
153
  * transitions without reaching an emit or completion. Also non-convergence,
154
154
  * detected by counting rather than by signature.
155
+ * - `step` null, `stopped: "budget"` → the fold spent `maxExecutions` charged
156
+ * obligation executions. This is NOT non-convergence: the budget is a pacing
157
+ * cap, the stop is graceful, and the caller resumes the fold on its next
158
+ * call. Only possible when `opts.maxExecutions` is supplied.
155
159
  *
156
160
  * `stopped` being ABSENT is what means "the run is complete". A caller that
157
161
  * branches on `step` alone therefore cannot tell completion from
158
- * non-convergence, and would report a wedged fold as a finished one — so both
159
- * stopped values must be handled explicitly. `lastObligationId` names the
160
- * obligation the fold was executing when it stopped, so a caller can say WHICH
161
- * obligation is spinning without parsing it out of a message.
162
+ * non-convergence, and would report a wedged fold as a finished one — so every
163
+ * stopped value must be handled explicitly. `lastObligationId` names the
164
+ * obligation the fold was executing (or, for `budget`, about to execute) when
165
+ * it stopped, so a caller can say WHICH obligation is in flight without
166
+ * parsing it out of a message.
162
167
  */
163
168
  export interface AdvanceResult<S, Step> {
164
169
  state: S;
165
170
  step: Step | null;
166
- stopped?: "cycle" | "bound";
171
+ stopped?: "cycle" | "bound" | "budget";
167
172
  /** The obligation in flight when `stopped` was set; absent otherwise. */
168
173
  lastObligationId?: string;
174
+ /**
175
+ * The numeric limit that fired — `maxTransitions` for `bound`,
176
+ * `maxExecutions` for `budget`; absent for `cycle` (no number fired). Carried
177
+ * ON the result so `describeStoppedFold` reports the number that actually
178
+ * stopped the fold, and no caller has to know which of two limits to restate.
179
+ */
180
+ stoppedBound?: number;
181
+ /**
182
+ * Charged obligation executions this call spent (the unit `maxExecutions`
183
+ * caps). Carried on every outcome so a caller can RECORD the spend — the
184
+ * CX-02 hold-time measurement reads it — without re-counting dispatches
185
+ * against a second counter that could drift from the engine's own.
186
+ */
187
+ executions: number;
169
188
  }
170
- /** A non-convergent stop, described once for every draw that can hit one. */
189
+ /**
190
+ * A stop, described once for every draw that can hit one. `cycle` and `bound`
191
+ * are non-convergence; `budget` is the graceful pacing cap — a caller that
192
+ * expects the cap should branch on `stopped === "budget"` BEFORE reaching for
193
+ * this description, and build its own resumable pause from its accumulators.
194
+ * The description exists so a caller that does NOT special-case the budget
195
+ * still reports the stop honestly rather than as a finished run.
196
+ */
171
197
  export interface StoppedFoldDescription {
172
198
  /** Which backstop fired, carried through so a caller need not re-read it. */
173
- stopped: "cycle" | "bound";
199
+ stopped: "cycle" | "bound" | "budget";
174
200
  /**
175
201
  * The obligation in flight when the fold stopped, or `"unknown"` when it
176
202
  * stopped before selecting one. Never parsed out of prose.
@@ -189,14 +215,16 @@ export interface StoppedFoldDescription {
189
215
  * null-check itself the branch: there is no way to consume the description
190
216
  * without having asked the question.
191
217
  *
192
- * Consumers pass the bound actually in force (`opts.bound`) rather than
193
- * restating a constant, so the number a host reads is the number that fired.
218
+ * The number reported is `outcome.stoppedBound` the limit that actually
219
+ * fired, carried on the result by the engine itself. `opts.bound` remains as
220
+ * the fallback for callers describing an outcome from an engine that did not
221
+ * stamp one, so the number a host reads is still never a restated constant.
194
222
  *
195
223
  * `cause` is prose for a human terminal ONLY. Never match it: `stopped` and
196
224
  * `spinning` are the machine-readable fields, and recognizing a wedged fold by
197
225
  * its message text is the divergence this module's bounded-call invariant bans.
198
226
  */
199
- export declare function describeStoppedFold(outcome: Pick<AdvanceResult<unknown, unknown>, "stopped" | "lastObligationId">, opts?: {
227
+ export declare function describeStoppedFold(outcome: Pick<AdvanceResult<unknown, unknown>, "stopped" | "lastObligationId" | "stoppedBound">, opts?: {
200
228
  bound?: number;
201
229
  }): StoppedFoldDescription | null;
202
230
  /**
@@ -222,7 +250,19 @@ export declare function describeStoppedFold(outcome: Pick<AdvanceResult<unknown,
222
250
  * signature — it stops the loop with `stopped: "bound"` after that many
223
251
  * consecutive transitions.
224
252
  *
225
- * BOTH backstops terminate GRACEFULLY. The bound used to throw, which forced
253
+ * **Execution budget.** `opts.maxExecutions` is the consumer-facing pacing cap
254
+ * (PH-03: a budget stop the result expresses structurally, so no caller wraps
255
+ * the engine in a second drain to enforce one). The engine charges EVERY
256
+ * `obligation.execute` call to it, spend-before-dispatch: once the budget is
257
+ * spent, the next selected obligation is NOT executed and the loop returns
258
+ * `stopped: "budget"` naming it. Because every transition follows a charged
259
+ * execution, `transitions <= charged executions` holds by construction — so a
260
+ * `maxTransitions` derived via {@link deriveEngineBound} from the same cap can
261
+ * never fire first, which is the bounded-call invariant this module owns. An
262
+ * `emit` spends its charge and returns normally; it is never converted into a
263
+ * budget stop.
264
+ *
265
+ * ALL backstops terminate GRACEFULLY. The bound used to throw, which forced
226
266
  * every consumer to recognize a wedged fold by matching text in an error
227
267
  * message and to recover the spinning obligation's id with a regex over that
228
268
  * same prose — so the engine's bound was part of its contract while its only
@@ -239,5 +279,6 @@ export declare function describeStoppedFold(outcome: Pick<AdvanceResult<unknown,
239
279
  export declare function advance<S, Ctx, Step>(engine: ObligationEngine<S, Ctx, Step>, state: S, ctx: Ctx, opts?: {
240
280
  maxTransitions?: number;
241
281
  stateSignature?: (state: S) => string;
282
+ maxExecutions?: number;
242
283
  }): Promise<AdvanceResult<S, Step>>;
243
284
  //# sourceMappingURL=obligationEngine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"obligationEngine.d.ts","sourceRoot":"","sources":["../../../src/shared/engine/obligationEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"obligationEngine.d.ts","sourceRoot":"","sources":["../../../src/shared/engine/obligationEngine.ts"],"names":[],"mappings":"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"}
@@ -111,8 +111,10 @@ export function deriveEngineBound(cap) {
111
111
  * null-check itself the branch: there is no way to consume the description
112
112
  * without having asked the question.
113
113
  *
114
- * Consumers pass the bound actually in force (`opts.bound`) rather than
115
- * restating a constant, so the number a host reads is the number that fired.
114
+ * The number reported is `outcome.stoppedBound` the limit that actually
115
+ * fired, carried on the result by the engine itself. `opts.bound` remains as
116
+ * the fallback for callers describing an outcome from an engine that did not
117
+ * stamp one, so the number a host reads is still never a restated constant.
116
118
  *
117
119
  * `cause` is prose for a human terminal ONLY. Never match it: `stopped` and
118
120
  * `spinning` are the machine-readable fields, and recognizing a wedged fold by
@@ -121,13 +123,16 @@ export function deriveEngineBound(cap) {
121
123
  export function describeStoppedFold(outcome, opts) {
122
124
  if (!outcome.stopped)
123
125
  return null;
124
- const bound = opts?.bound ?? DEFAULT_MAX_TRANSITIONS;
126
+ const bound = outcome.stoppedBound ?? opts?.bound ?? DEFAULT_MAX_TRANSITIONS;
127
+ const cause = outcome.stopped === "bound"
128
+ ? `spent the engine transition bound (${String(bound)}) without reaching a host-actionable step`
129
+ : outcome.stopped === "budget"
130
+ ? `spent its charged-execution budget (${String(bound)}) and pauses resumably at the cap`
131
+ : "revisited a state it had already scanned this run";
125
132
  return {
126
133
  stopped: outcome.stopped,
127
134
  spinning: outcome.lastObligationId ?? "unknown",
128
- cause: outcome.stopped === "bound"
129
- ? `spent the engine transition bound (${String(bound)}) without reaching a host-actionable step`
130
- : "revisited a state it had already scanned this run",
135
+ cause,
131
136
  };
132
137
  }
133
138
  /**
@@ -153,7 +158,19 @@ export function describeStoppedFold(outcome, opts) {
153
158
  * signature — it stops the loop with `stopped: "bound"` after that many
154
159
  * consecutive transitions.
155
160
  *
156
- * BOTH backstops terminate GRACEFULLY. The bound used to throw, which forced
161
+ * **Execution budget.** `opts.maxExecutions` is the consumer-facing pacing cap
162
+ * (PH-03: a budget stop the result expresses structurally, so no caller wraps
163
+ * the engine in a second drain to enforce one). The engine charges EVERY
164
+ * `obligation.execute` call to it, spend-before-dispatch: once the budget is
165
+ * spent, the next selected obligation is NOT executed and the loop returns
166
+ * `stopped: "budget"` naming it. Because every transition follows a charged
167
+ * execution, `transitions <= charged executions` holds by construction — so a
168
+ * `maxTransitions` derived via {@link deriveEngineBound} from the same cap can
169
+ * never fire first, which is the bounded-call invariant this module owns. An
170
+ * `emit` spends its charge and returns normally; it is never converted into a
171
+ * budget stop.
172
+ *
173
+ * ALL backstops terminate GRACEFULLY. The bound used to throw, which forced
157
174
  * every consumer to recognize a wedged fold by matching text in an error
158
175
  * message and to recover the spinning obligation's id with a regex over that
159
176
  * same prose — so the engine's bound was part of its contract while its only
@@ -169,10 +186,12 @@ export function describeStoppedFold(outcome, opts) {
169
186
  */
170
187
  export async function advance(engine, state, ctx, opts) {
171
188
  const maxTransitions = opts?.maxTransitions ?? DEFAULT_MAX_TRANSITIONS;
189
+ const maxExecutions = opts?.maxExecutions;
172
190
  const stateSignature = opts?.stateSignature;
173
191
  const visited = stateSignature ? new Set() : null;
174
192
  let current = state;
175
193
  let transitions = 0;
194
+ let executions = 0;
176
195
  // The obligation most recently selected — reported on every non-convergent
177
196
  // stop so the caller can name what is spinning.
178
197
  let lastObligationId = null;
@@ -188,6 +207,7 @@ export async function advance(engine, state, ctx, opts) {
188
207
  state: current,
189
208
  step: null,
190
209
  stopped: "cycle",
210
+ executions,
191
211
  ...(lastObligationId === null ? {} : { lastObligationId }),
192
212
  };
193
213
  }
@@ -195,11 +215,26 @@ export async function advance(engine, state, ctx, opts) {
195
215
  }
196
216
  const obligation = findNextObligation(engine.priority, engine.obligations, current);
197
217
  if (!obligation)
198
- return { state: current, step: null };
218
+ return { state: current, step: null, executions };
199
219
  lastObligationId = obligation.id;
220
+ if (maxExecutions !== undefined && executions >= maxExecutions) {
221
+ // The budget is spent and another obligation is still actionable. Spend-
222
+ // before-dispatch: the selected obligation is NOT executed — a cap stated
223
+ // as a maximum must never authorize one step past itself. Graceful and
224
+ // resumable; the next call re-selects this same obligation.
225
+ return {
226
+ state: current,
227
+ step: null,
228
+ stopped: "budget",
229
+ lastObligationId,
230
+ stoppedBound: maxExecutions,
231
+ executions,
232
+ };
233
+ }
234
+ executions += 1;
200
235
  const outcome = await obligation.execute(current, ctx);
201
236
  if (outcome.kind === "emit") {
202
- return { state: outcome.state ?? current, step: outcome.step };
237
+ return { state: outcome.state ?? current, step: outcome.step, executions };
203
238
  }
204
239
  current = outcome.state;
205
240
  if (++transitions > maxTransitions) {
@@ -213,6 +248,8 @@ export async function advance(engine, state, ctx, opts) {
213
248
  step: null,
214
249
  stopped: "bound",
215
250
  lastObligationId,
251
+ stoppedBound: maxTransitions,
252
+ executions,
216
253
  };
217
254
  }
218
255
  }
@@ -1 +1 @@
1
- {"version":3,"file":"obligationEngine.js","sourceRoot":"","sources":["../../../src/shared/engine/obligationEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"obligationEngine.js","sourceRoot":"","sources":["../../../src/shared/engine/obligationEngine.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,8 @@ export interface RunLogEvent {
13
13
  artifact?: string;
14
14
  tokens_est?: number;
15
15
  duration_ms?: number;
16
+ /** Charged obligation executions a fold spent (CX-02 hold measurement). */
17
+ executions?: number;
16
18
  note?: string;
17
19
  /** Run- or request-scoped token for correlating log events across a single invocation. */
18
20
  correlationId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"runLog.d.ts","sourceRoot":"","sources":["../../../src/shared/observability/runLog.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,MAAM,MAAM,eAAe,GACvB,YAAY,GACZ,gBAAgB,GAChB,cAAc,GACd,gBAAgB,GAChB,OAAO,GACP,SAAS,GACT,MAAM,GACN,OAAO,GACP,OAAO,CAAC;AAEZ,MAAM,WAAW,WAAW;IAC1B,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0FAA0F;IAC1F,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2DAA2D;IAC3D,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;gBAEvB,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB;IAMxD,2EAA2E;IAC3E,MAAM,CAAC,QAAQ,IAAI,SAAS;IAI5B,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,8EAA8E;IAC9E,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;CAgBhC"}
1
+ {"version":3,"file":"runLog.d.ts","sourceRoot":"","sources":["../../../src/shared/observability/runLog.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,MAAM,MAAM,eAAe,GACvB,YAAY,GACZ,gBAAgB,GAChB,cAAc,GACd,gBAAgB,GAChB,OAAO,GACP,SAAS,GACT,MAAM,GACN,OAAO,GACP,OAAO,CAAC;AAEZ,MAAM,WAAW,WAAW;IAC1B,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0FAA0F;IAC1F,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2DAA2D;IAC3D,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;gBAEvB,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB;IAMxD,2EAA2E;IAC3E,MAAM,CAAC,QAAQ,IAAI,SAAS;IAI5B,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,8EAA8E;IAC9E,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;CAgBhC"}
@@ -1 +1 @@
1
- {"version":3,"file":"runLog.js","sourceRoot":"","sources":["../../../src/shared/observability/runLog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0CpC,MAAM,OAAO,SAAS;IACH,IAAI,CAAS;IACb,OAAO,CAAU;IACjB,GAAG,CAAe;IAEnC,YAAY,IAAY,EAAE,UAA4B,EAAE;QACtD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;QACvC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,2EAA2E;IAC3E,MAAM,CAAC,QAAQ;QACb,OAAO,IAAI,SAAS,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,8EAA8E;IAC9E,KAAK,CAAC,KAAkB;QACtB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACpD,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QACrF,CAAC;QAAC,MAAM,CAAC;YACP,sEAAsE;YACtE,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,GAAG,IAAI,CAAC;QAC3H,CAAC;QACD,IAAI,CAAC;YACH,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACnD,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,wCAAwC;QAC1C,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"runLog.js","sourceRoot":"","sources":["../../../src/shared/observability/runLog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4CpC,MAAM,OAAO,SAAS;IACH,IAAI,CAAS;IACb,OAAO,CAAU;IACjB,GAAG,CAAe;IAEnC,YAAY,IAAY,EAAE,UAA4B,EAAE;QACtD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;QACvC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,2EAA2E;IAC3E,MAAM,CAAC,QAAQ;QACb,OAAO,IAAI,SAAS,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,8EAA8E;IAC9E,KAAK,CAAC,KAAkB;QACtB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACpD,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QACrF,CAAC;QAAC,MAAM,CAAC;YACP,sEAAsE;YACtE,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,GAAG,IAAI,CAAC;QAC3H,CAAC;QACD,IAAI,CAAC;YACH,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACnD,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,wCAAwC;QAC1C,CAAC;IACH,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "audit-tools",
3
- "version": "0.50.4",
3
+ "version": "0.50.7",
4
4
  "private": false,
5
5
  "license": "ISC",
6
6
  "description": "Provider-neutral code auditing and remediation workflows for arbitrary repositories.",