@telora/daemon 0.22.91 → 0.22.104
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/build-info.json +6 -3
- package/dist/cli/verify-setup-config.d.ts +4 -3
- package/dist/cli/verify-setup-config.d.ts.map +1 -1
- package/dist/cli/verify-setup-config.js.map +1 -1
- package/dist/completion/event-phases.js +5 -5
- package/dist/completion/event-phases.js.map +1 -1
- package/dist/completion/event.d.ts +7 -0
- package/dist/completion/event.d.ts.map +1 -1
- package/dist/completion/event.js.map +1 -1
- package/dist/completion/review-exit-phase.d.ts.map +1 -1
- package/dist/completion/review-exit-phase.js +2 -1
- package/dist/completion/review-exit-phase.js.map +1 -1
- package/dist/delivery/external-hold.js +1 -1
- package/dist/delivery/external-hold.js.map +1 -1
- package/dist/delivery/operator-hold.d.ts +14 -0
- package/dist/delivery/operator-hold.d.ts.map +1 -1
- package/dist/delivery/operator-hold.js +31 -1
- package/dist/delivery/operator-hold.js.map +1 -1
- package/dist/directive/directive-dispatch.js +2 -2
- package/dist/directive/directive-dispatch.js.map +1 -1
- package/dist/directive/directive-executor.d.ts.map +1 -1
- package/dist/directive/directive-executor.js +2 -1
- package/dist/directive/directive-executor.js.map +1 -1
- package/dist/directive/directive-verify-hold-gate.d.ts +32 -8
- package/dist/directive/directive-verify-hold-gate.d.ts.map +1 -1
- package/dist/directive/directive-verify-hold-gate.js +20 -21
- package/dist/directive/directive-verify-hold-gate.js.map +1 -1
- package/dist/focus/focus-engine.d.ts.map +1 -1
- package/dist/focus/focus-engine.js +6 -9
- package/dist/focus/focus-engine.js.map +1 -1
- package/dist/focus/listener-spawn.d.ts +31 -0
- package/dist/focus/listener-spawn.d.ts.map +1 -1
- package/dist/focus/listener-spawn.js +44 -22
- package/dist/focus/listener-spawn.js.map +1 -1
- package/dist/focus/listener.d.ts.map +1 -1
- package/dist/focus/listener.js +4 -0
- package/dist/focus/listener.js.map +1 -1
- package/dist/focus/team-actionable-work.d.ts +76 -20
- package/dist/focus/team-actionable-work.d.ts.map +1 -1
- package/dist/focus/team-actionable-work.js +85 -20
- package/dist/focus/team-actionable-work.js.map +1 -1
- package/dist/git/exec.d.ts.map +1 -1
- package/dist/git/exec.js +2 -1
- package/dist/git/exec.js.map +1 -1
- package/dist/nexus/incoming.js +1 -1
- package/dist/nexus/incoming.js.map +1 -1
- package/dist/nexus/pending-returns.d.ts +124 -0
- package/dist/nexus/pending-returns.d.ts.map +1 -0
- package/dist/nexus/pending-returns.js +194 -0
- package/dist/nexus/pending-returns.js.map +1 -0
- package/dist/nexus/return-routing.d.ts +89 -0
- package/dist/nexus/return-routing.d.ts.map +1 -0
- package/dist/nexus/return-routing.js +148 -0
- package/dist/nexus/return-routing.js.map +1 -0
- package/dist/nexus/return.d.ts +66 -89
- package/dist/nexus/return.d.ts.map +1 -1
- package/dist/nexus/return.js +116 -279
- package/dist/nexus/return.js.map +1 -1
- package/dist/prompt/focus-prompt-builder.d.ts.map +1 -1
- package/dist/prompt/focus-prompt-builder.js +1 -0
- package/dist/prompt/focus-prompt-builder.js.map +1 -1
- package/dist/queries/delivery-gate-state.d.ts +31 -0
- package/dist/queries/delivery-gate-state.d.ts.map +1 -1
- package/dist/queries/delivery-gate-state.js +31 -4
- package/dist/queries/delivery-gate-state.js.map +1 -1
- package/dist/queries/focus-discovery.d.ts +7 -1
- package/dist/queries/focus-discovery.d.ts.map +1 -1
- package/dist/queries/focus-discovery.js +9 -3
- package/dist/queries/focus-discovery.js.map +1 -1
- package/dist/queries/requests.d.ts +51 -3
- package/dist/queries/requests.d.ts.map +1 -1
- package/dist/queries/requests.js +63 -10
- package/dist/queries/requests.js.map +1 -1
- package/dist/queries/shared.js +1 -1
- package/dist/queries/verification.d.ts +15 -0
- package/dist/queries/verification.d.ts.map +1 -1
- package/dist/queries/verification.js +2 -0
- package/dist/queries/verification.js.map +1 -1
- package/dist/shell/config.d.ts.map +1 -1
- package/dist/shell/config.js +10 -9
- package/dist/shell/config.js.map +1 -1
- package/dist/shell/unified-shell-status.d.ts +6 -0
- package/dist/shell/unified-shell-status.d.ts.map +1 -1
- package/dist/shell/unified-shell-status.js +9 -2
- package/dist/shell/unified-shell-status.js.map +1 -1
- package/dist/spawn/prompt-assembly.js +1 -1
- package/dist/spawn/prompt-assembly.js.map +1 -1
- package/dist/spawn/respawn-cycle-escalation.d.ts.map +1 -1
- package/dist/spawn/respawn-cycle-escalation.js +11 -3
- package/dist/spawn/respawn-cycle-escalation.js.map +1 -1
- package/dist/spawn/review-hold-park.d.ts +31 -0
- package/dist/spawn/review-hold-park.d.ts.map +1 -0
- package/dist/spawn/review-hold-park.js +120 -0
- package/dist/spawn/review-hold-park.js.map +1 -0
- package/dist/spawn/spawn-cooldown.d.ts +27 -4
- package/dist/spawn/spawn-cooldown.d.ts.map +1 -1
- package/dist/spawn/spawn-cooldown.js +88 -3
- package/dist/spawn/spawn-cooldown.js.map +1 -1
- package/dist/spawn/spawn-decision.d.ts.map +1 -1
- package/dist/spawn/spawn-decision.js +6 -0
- package/dist/spawn/spawn-decision.js.map +1 -1
- package/dist/testing/fixtures/index.js +1 -1
- package/dist/types/config.d.ts +9 -6
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/update/auto-update-idle.d.ts.map +1 -1
- package/dist/update/auto-update-idle.js +2 -1
- package/dist/update/auto-update-idle.js.map +1 -1
- package/dist/verify/failure-signature.d.ts.map +1 -1
- package/dist/verify/failure-signature.js +1 -0
- package/dist/verify/failure-signature.js.map +1 -1
- package/dist/verify/verification-baseline.d.ts +63 -16
- package/dist/verify/verification-baseline.d.ts.map +1 -1
- package/dist/verify/verification-baseline.js +74 -34
- package/dist/verify/verification-baseline.js.map +1 -1
- package/dist/verify/verification-checkout.d.ts +71 -0
- package/dist/verify/verification-checkout.d.ts.map +1 -0
- package/dist/verify/verification-checkout.js +353 -0
- package/dist/verify/verification-checkout.js.map +1 -0
- package/dist/verify/verification-config.d.ts +76 -0
- package/dist/verify/verification-config.d.ts.map +1 -1
- package/dist/verify/verification-config.js +100 -12
- package/dist/verify/verification-config.js.map +1 -1
- package/dist/verify/verification-default-on.d.ts +102 -11
- package/dist/verify/verification-default-on.d.ts.map +1 -1
- package/dist/verify/verification-default-on.js +252 -16
- package/dist/verify/verification-default-on.js.map +1 -1
- package/dist/verify/verification-deps-default.js +1 -1
- package/dist/verify/verification-deps-default.js.map +1 -1
- package/dist/verify/verification-deps.d.ts +28 -3
- package/dist/verify/verification-deps.d.ts.map +1 -1
- package/dist/verify/verification-deterministic.d.ts +63 -1
- package/dist/verify/verification-deterministic.d.ts.map +1 -1
- package/dist/verify/verification-deterministic.js +38 -29
- package/dist/verify/verification-deterministic.js.map +1 -1
- package/dist/verify/verification-engine.d.ts.map +1 -1
- package/dist/verify/verification-engine.js +20 -20
- package/dist/verify/verification-engine.js.map +1 -1
- package/dist/verify/verification-evidence-unavailable-feedback.d.ts.map +1 -1
- package/dist/verify/verification-evidence-unavailable-feedback.js +6 -1
- package/dist/verify/verification-evidence-unavailable-feedback.js.map +1 -1
- package/dist/verify/verification-feedback.d.ts +3 -0
- package/dist/verify/verification-feedback.d.ts.map +1 -1
- package/dist/verify/verification-feedback.js +5 -2
- package/dist/verify/verification-feedback.js.map +1 -1
- package/dist/verify/verification-manifest.d.ts.map +1 -1
- package/dist/verify/verification-manifest.js +1 -0
- package/dist/verify/verification-manifest.js.map +1 -1
- package/dist/verify/verification-timeout-fault.d.ts +147 -0
- package/dist/verify/verification-timeout-fault.d.ts.map +1 -0
- package/dist/verify/verification-timeout-fault.js +211 -0
- package/dist/verify/verification-timeout-fault.js.map +1 -0
- package/dist/verify/verify-gate-stall.d.ts +5 -1
- package/dist/verify/verify-gate-stall.d.ts.map +1 -1
- package/dist/verify/verify-gate-stall.js +10 -1
- package/dist/verify/verify-gate-stall.js.map +1 -1
- package/dist/worktree/verify-interlock.d.ts +9 -1
- package/dist/worktree/verify-interlock.d.ts.map +1 -1
- package/dist/worktree/verify-interlock.js +40 -3
- package/dist/worktree/verify-interlock.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
-
// Pinned by:
|
|
2
|
+
// Pinned by: packages/daemon/src/verify/verification-default-on.test.ts,
|
|
3
|
+
// packages/daemon/src/verify/verification-run-config-source.test.ts
|
|
3
4
|
// PINNED-BY-END
|
|
4
5
|
/**
|
|
5
6
|
* Default-on deterministic verification: selection + concurrency cap.
|
|
@@ -18,11 +19,20 @@
|
|
|
18
19
|
* @module verification-default-on
|
|
19
20
|
*/
|
|
20
21
|
import { DELIVERY_STATUS } from '@telora/daemon-core';
|
|
21
|
-
import { DEFAULT_VERIFY_MAX_CONCURRENT } from './verification-config.js';
|
|
22
|
-
import { resolveVerifyManifestPath } from './verification-manifest.js';
|
|
22
|
+
import { DEFAULT_VERIFY_MAX_CONCURRENT, formatVerifyConfigSource, } from './verification-config.js';
|
|
23
|
+
import { readVerifyManifest, resolveVerifyManifestPath, VERIFY_MANIFEST_FILENAME, } from './verification-manifest.js';
|
|
24
|
+
import { runGitSync } from '../git/exec.js';
|
|
23
25
|
import { configForProduct } from '../shell/config.js';
|
|
26
|
+
import { getFocusWorktree } from '../focus/focus-worktree-state.js';
|
|
27
|
+
import { resolveHeadSha } from './verification-baseline.js';
|
|
28
|
+
import { judgedFailedSha, readVerificationHistory } from '../queries/delivery-gate-state.js';
|
|
24
29
|
import { createLogger } from '../shell/log.js';
|
|
25
30
|
const log = createLogger({ module: 'verification' });
|
|
31
|
+
/** Default HEAD reader: the registered focus worktree's HEAD, or null when unreadable. */
|
|
32
|
+
function defaultResolveFocusHeadSha(focusId) {
|
|
33
|
+
const worktree = getFocusWorktree(focusId);
|
|
34
|
+
return worktree ? resolveHeadSha(worktree.worktreePath) : null;
|
|
35
|
+
}
|
|
26
36
|
// ---------------------------------------------------------------------------
|
|
27
37
|
// Concurrency cap
|
|
28
38
|
// ---------------------------------------------------------------------------
|
|
@@ -111,10 +121,19 @@ export function __getVerificationSemaphoreForTests() {
|
|
|
111
121
|
* product including healthy ones, so it is contained HERE: logged at ERROR
|
|
112
122
|
* naming the product and the manifest path (every tick -- a persistent,
|
|
113
123
|
* operator-visible state, never a debug line), and that product's `resolved`
|
|
114
|
-
* comes back `undefined
|
|
115
|
-
*
|
|
124
|
+
* comes back `undefined`: it contributes no cap while other products keep
|
|
125
|
+
* gating. The product's EXPLICIT-method deliveries still verify: they carry
|
|
116
126
|
* their own command on the delivery row, so a repo-root manifest typo has no
|
|
117
127
|
* bearing on them and must not disarm them.
|
|
128
|
+
*
|
|
129
|
+
* Nor does the typo disarm a branch that ships a working gate. repoPath is the
|
|
130
|
+
* operator's checkout, which may lag the code under verification, so the product
|
|
131
|
+
* is resolved again with that manifest set aside (`judgedCommitOnly`) and its
|
|
132
|
+
* scan still arms each delivery from the manifest its judged commit ships. That
|
|
133
|
+
* resolution carries no command even when env or daemon.json declare one: a
|
|
134
|
+
* delivery whose commit ships no manifest would fall back at dispatch to the
|
|
135
|
+
* broken repoPath file and fail on it, so until the file is fixed only
|
|
136
|
+
* branch-declared gates arm.
|
|
118
137
|
*/
|
|
119
138
|
export function resolveProductVerificationScopes(config, resolve) {
|
|
120
139
|
return config.products.map((product) => {
|
|
@@ -125,12 +144,29 @@ export function resolveProductVerificationScopes(config, resolve) {
|
|
|
125
144
|
catch (err) {
|
|
126
145
|
log.error(`[verification] default-on config unresolvable for product ${product.id} `
|
|
127
146
|
+ `(manifest: ${resolveVerifyManifestPath(productConfig.repoPath)}): `
|
|
128
|
-
+ `${err.message} -- this product's default-on gate
|
|
129
|
-
+ `its explicit-method deliveries and all other products are unaffected.`);
|
|
130
|
-
return { product, productConfig, resolved: undefined };
|
|
147
|
+
+ `${err.message} -- until it is fixed this product's default-on gate arms only deliveries `
|
|
148
|
+
+ `whose judged commit ships its own manifest; its explicit-method deliveries and all other products are unaffected.`);
|
|
149
|
+
return { product, productConfig, resolved: undefined, ...resolveJudgedCommitOnly(productConfig, resolve) };
|
|
131
150
|
}
|
|
132
151
|
});
|
|
133
152
|
}
|
|
153
|
+
/** The product resolved with its repoPath manifest set aside, holding no command (see resolveProductVerificationScopes). */
|
|
154
|
+
function resolveJudgedCommitOnly(productConfig, resolve) {
|
|
155
|
+
try {
|
|
156
|
+
const withoutRepoManifest = resolve(productConfig, () => undefined);
|
|
157
|
+
return {
|
|
158
|
+
judgedCommitOnly: {
|
|
159
|
+
...withoutRepoManifest,
|
|
160
|
+
command: '',
|
|
161
|
+
enabled: false,
|
|
162
|
+
sources: { ...withoutRepoManifest.sources, command: { layer: 'default' } },
|
|
163
|
+
},
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
catch {
|
|
167
|
+
return {};
|
|
168
|
+
}
|
|
169
|
+
}
|
|
134
170
|
/**
|
|
135
171
|
* Resolve the ONE daemon-wide concurrency cap for the shared semaphore.
|
|
136
172
|
*
|
|
@@ -182,9 +218,43 @@ export function resolveDaemonWideVerifyCap(scopes) {
|
|
|
182
218
|
* delivery -- bounded and idempotent.
|
|
183
219
|
*/
|
|
184
220
|
const defaultOnRan = new Set();
|
|
185
|
-
/**
|
|
221
|
+
/**
|
|
222
|
+
* HEAD-keyed re-verify guard: delivery id -> the commit its last default-on
|
|
223
|
+
* verify FAILED on (the gate command exited non-zero at that sha).
|
|
224
|
+
*
|
|
225
|
+
* The steady-state guard above is keyed on STATUS re-entry, and a failed verify
|
|
226
|
+
* with every issue Done steps verify -> verify_failed -> coding -> verify within
|
|
227
|
+
* ~60s -- so the same unchanged commit re-ran the whole gate (one delivery
|
|
228
|
+
* re-verified 5x on one sha, f1 2026-09-13), and each run re-took the verify hold.
|
|
229
|
+
* A gate on an unchanged tree renders the same verdict; only a NEW commit on the
|
|
230
|
+
* focus branch can change it. So an entry here suppresses selection while the
|
|
231
|
+
* focus HEAD still equals the failed sha, survives the status round trip, and is
|
|
232
|
+
* dropped (re-armed) the first time a readable HEAD differs; an unreadable HEAD
|
|
233
|
+
* keeps it (fail closed). A pass clears it. A timed-out run records nothing (a
|
|
234
|
+
* kill is not a verdict about the tree; judgedFailedSha).
|
|
235
|
+
*
|
|
236
|
+
* This map is only the hot copy. The DURABLE record is gate_state
|
|
237
|
+
* `verificationHistory.failedAtSha`: the failure feedback stamps it on the
|
|
238
|
+
* rejection, every clearing writer carries it (carryVerificationHistory), and a
|
|
239
|
+
* pass resets it -- so a daemon restart does not re-arm the unchanged commit.
|
|
240
|
+
* Selection reads the map first, then that record; the map covers a rejection
|
|
241
|
+
* write that did not land.
|
|
242
|
+
*/
|
|
243
|
+
const failedAtSha = new Map();
|
|
244
|
+
/** `${deliveryId}@${sha}` pairs whose suppression was already logged. */
|
|
245
|
+
const loggedShaSkips = new Set();
|
|
246
|
+
function forgetFailedSha(deliveryId, durableSha) {
|
|
247
|
+
for (const sha of [failedAtSha.get(deliveryId), durableSha]) {
|
|
248
|
+
if (sha !== undefined)
|
|
249
|
+
loggedShaSkips.delete(`${deliveryId}@${sha}`);
|
|
250
|
+
}
|
|
251
|
+
failedAtSha.delete(deliveryId);
|
|
252
|
+
}
|
|
253
|
+
/** Test-only: reset the default-on re-run guards (status- and HEAD-keyed). */
|
|
186
254
|
export function __resetDefaultOnGuardForTests() {
|
|
187
255
|
defaultOnRan.clear();
|
|
256
|
+
failedAtSha.clear();
|
|
257
|
+
loggedShaSkips.clear();
|
|
188
258
|
}
|
|
189
259
|
/** Test-only: snapshot of the default-on re-run guard. */
|
|
190
260
|
export function __getDefaultOnGuardForTests() {
|
|
@@ -198,6 +268,144 @@ export function markDefaultOnRan(deliveryId) {
|
|
|
198
268
|
export function __markDefaultOnRanForTests(deliveryId) {
|
|
199
269
|
defaultOnRan.add(deliveryId);
|
|
200
270
|
}
|
|
271
|
+
/**
|
|
272
|
+
* Dispatch-result bookkeeping for a default-on run:
|
|
273
|
+
* - no checkout could be made -> un-mark, so the next tick retries (the run
|
|
274
|
+
* never happened; no verdict exists to guard);
|
|
275
|
+
* - the gate command FAILED at a known sha (non-zero exit, not a timeout, final
|
|
276
|
+
* outcome failed) -> record the sha so that commit is not re-verified;
|
|
277
|
+
* - a pass -> forget any recorded failure.
|
|
278
|
+
*/
|
|
279
|
+
export function noteDefaultOnResult(deliveryId, result) {
|
|
280
|
+
if (result.checkoutUnavailable) {
|
|
281
|
+
defaultOnRan.delete(deliveryId);
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
const failedSha = judgedFailedSha(result);
|
|
285
|
+
if (result.outcome === 'failed' && failedSha) {
|
|
286
|
+
failedAtSha.set(deliveryId, failedSha);
|
|
287
|
+
}
|
|
288
|
+
else if (result.outcome === 'passed') {
|
|
289
|
+
forgetFailedSha(deliveryId);
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* True when the delivery's last default-on verify failed on the focus's CURRENT
|
|
294
|
+
* HEAD (skip it). The failed sha is the in-memory copy, else the durable
|
|
295
|
+
* gate_state record. Only a readable HEAD that DIFFERS re-arms the delivery; an
|
|
296
|
+
* unreadable HEAD keeps it suppressed.
|
|
297
|
+
*/
|
|
298
|
+
function failedOnCurrentHead(delivery, focusId, deps) {
|
|
299
|
+
const failedSha = failedAtSha.get(delivery.id) ?? readVerificationHistory(delivery.gateState).failedAtSha;
|
|
300
|
+
if (failedSha === undefined)
|
|
301
|
+
return false;
|
|
302
|
+
const head = (deps.resolveFocusHeadSha ?? defaultResolveFocusHeadSha)(focusId);
|
|
303
|
+
if (head !== null && head !== failedSha) {
|
|
304
|
+
forgetFailedSha(delivery.id, failedSha);
|
|
305
|
+
return false;
|
|
306
|
+
}
|
|
307
|
+
const key = `${delivery.id}@${failedSha}`;
|
|
308
|
+
if (!loggedShaSkips.has(key)) {
|
|
309
|
+
loggedShaSkips.add(key);
|
|
310
|
+
const why = head === null
|
|
311
|
+
? `its last verify failed on ${failedSha.slice(0, 8)} and the focus HEAD is unreadable`
|
|
312
|
+
: `focus HEAD ${failedSha.slice(0, 8)} is the commit its last verify failed on`;
|
|
313
|
+
log.info(`[verification] default-on: not re-verifying delivery ${delivery.id} -- ${why}; `
|
|
314
|
+
+ `a new commit on the focus branch re-arms it`);
|
|
315
|
+
}
|
|
316
|
+
return true;
|
|
317
|
+
}
|
|
318
|
+
/** Read telora.verify.json as committed at `sha`, through the manifest reader's own validation. */
|
|
319
|
+
function readManifestAtCommit(worktreePath, sha, runGit) {
|
|
320
|
+
const manifestPath = resolveVerifyManifestPath(worktreePath);
|
|
321
|
+
// readVerifyManifest reports a readText throw as a malformed file, so a git
|
|
322
|
+
// failure is recorded here and told apart after the read.
|
|
323
|
+
let gitFailure;
|
|
324
|
+
const failed = (what, error) => {
|
|
325
|
+
gitFailure = `git ${what} failed in ${worktreePath}: ${error ?? 'no error output'}`;
|
|
326
|
+
return new Error(gitFailure);
|
|
327
|
+
};
|
|
328
|
+
const committed = {
|
|
329
|
+
// ls-tree exits 0 with no output for an absent path: only that empty listing means "ships none".
|
|
330
|
+
exists: () => {
|
|
331
|
+
const listed = runGit(['ls-tree', '--name-only', sha, '--', VERIFY_MANIFEST_FILENAME], worktreePath);
|
|
332
|
+
if (!listed.success)
|
|
333
|
+
throw failed(`ls-tree ${sha}`, listed.error);
|
|
334
|
+
return listed.output.trim() !== '';
|
|
335
|
+
},
|
|
336
|
+
readText: () => {
|
|
337
|
+
const shown = runGit(['show', `${sha}:${VERIFY_MANIFEST_FILENAME}`], worktreePath);
|
|
338
|
+
if (!shown.success)
|
|
339
|
+
throw failed(`show ${sha}:${VERIFY_MANIFEST_FILENAME}`, shown.error);
|
|
340
|
+
return shown.output;
|
|
341
|
+
},
|
|
342
|
+
};
|
|
343
|
+
try {
|
|
344
|
+
const manifest = readVerifyManifest(worktreePath, committed);
|
|
345
|
+
return { sha, manifestPath, ...(manifest ? { manifest } : {}) };
|
|
346
|
+
}
|
|
347
|
+
catch (err) {
|
|
348
|
+
if (gitFailure !== undefined)
|
|
349
|
+
return { unreadable: gitFailure };
|
|
350
|
+
return { sha, manifestPath, malformed: err.message };
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Build the judged-commit manifest reader over a focus -> worktree lookup. A file
|
|
355
|
+
* is immutable at a sha, so each worktree's last read is reused while its HEAD
|
|
356
|
+
* is unchanged rather than re-running git every tick. Only reads git answered
|
|
357
|
+
* are kept; an unreadable one is retried on the next call.
|
|
358
|
+
*/
|
|
359
|
+
export function buildJudgedCommitManifestReader(resolveWorktreePath = (focusId) => getFocusWorktree(focusId)?.worktreePath ?? null, runGit = runGitSync) {
|
|
360
|
+
const lastRead = new Map();
|
|
361
|
+
return (focusId) => {
|
|
362
|
+
const worktreePath = resolveWorktreePath(focusId);
|
|
363
|
+
if (!worktreePath)
|
|
364
|
+
return null;
|
|
365
|
+
const head = runGit(['rev-parse', 'HEAD'], worktreePath);
|
|
366
|
+
const sha = head.output.trim();
|
|
367
|
+
if (!head.success || sha === '') {
|
|
368
|
+
return { unreadable: `git rev-parse HEAD failed in ${worktreePath}: ${head.error ?? 'no error output'}` };
|
|
369
|
+
}
|
|
370
|
+
const cached = lastRead.get(worktreePath);
|
|
371
|
+
if (cached?.sha === sha)
|
|
372
|
+
return cached;
|
|
373
|
+
const read = readManifestAtCommit(worktreePath, sha, runGit);
|
|
374
|
+
if (!('unreadable' in read))
|
|
375
|
+
lastRead.set(worktreePath, read);
|
|
376
|
+
return read;
|
|
377
|
+
};
|
|
378
|
+
}
|
|
379
|
+
const defaultReadJudgedCommitManifest = buildJudgedCommitManifestReader();
|
|
380
|
+
/**
|
|
381
|
+
* The provisional run config for a delivery whose product repoPath resolves no
|
|
382
|
+
* command: what its judged commit declares, or null when that commit ships no
|
|
383
|
+
* manifest. An operator timeout (env or daemon.json) still outranks the
|
|
384
|
+
* manifest's, as in resolveDefaultVerification. A MALFORMED committed manifest
|
|
385
|
+
* still arms: the dispatch re-reads it in the checkout and fails the run naming
|
|
386
|
+
* the file -- the same loud result a configured product gets -- rather than the
|
|
387
|
+
* delivery silently skipping its gate. An UNREADABLE commit is logged at ERROR
|
|
388
|
+
* and left unarmed for this tick only: it is not marked run, so the next tick
|
|
389
|
+
* reads it again, and no verdict is recorded against a commit nobody read.
|
|
390
|
+
*/
|
|
391
|
+
function armFromJudgedCommit(deliveryId, focusId, resolved, deps) {
|
|
392
|
+
const read = (deps.readJudgedCommitManifest ?? defaultReadJudgedCommitManifest)(focusId);
|
|
393
|
+
if (read && 'unreadable' in read) {
|
|
394
|
+
log.error(`[verification] default-on: delivery ${deliveryId} is NOT armed this tick -- the telora.verify.json its judged `
|
|
395
|
+
+ `commit ships could not be read (${read.unreadable}); it is read again next tick`);
|
|
396
|
+
return null;
|
|
397
|
+
}
|
|
398
|
+
if (!read || (read.manifest === undefined && read.malformed === undefined))
|
|
399
|
+
return null;
|
|
400
|
+
const manifestTimeout = resolved.sources.timeoutMs.layer === 'default' ? read.manifest?.timeoutMs : undefined;
|
|
401
|
+
log.info(`[verification] default-on: delivery ${deliveryId} armed from the telora.verify.json committed at `
|
|
402
|
+
+ `${read.sha.slice(0, 8)} (the product repoPath declares no command)`);
|
|
403
|
+
return {
|
|
404
|
+
command: read.manifest?.command ?? '',
|
|
405
|
+
timeoutMs: manifestTimeout ?? resolved.timeoutMs,
|
|
406
|
+
timeoutSource: formatVerifyConfigSource(manifestTimeout !== undefined ? { layer: 'manifest', path: read.manifestPath } : resolved.sources.timeoutMs),
|
|
407
|
+
};
|
|
408
|
+
}
|
|
201
409
|
// ---------------------------------------------------------------------------
|
|
202
410
|
// Selection
|
|
203
411
|
// ---------------------------------------------------------------------------
|
|
@@ -205,17 +413,27 @@ export function __markDefaultOnRanForTests(deliveryId) {
|
|
|
205
413
|
* Discover deliveries that should receive a DEFAULT-ON deterministic run: in
|
|
206
414
|
* `verify` status, anchored to an injection, with no explicit verification
|
|
207
415
|
* method (so not already returned by getPendingVerifications), not in a
|
|
208
|
-
* read-only audit focus (those are discovery-only and never run a suite),
|
|
209
|
-
*
|
|
416
|
+
* read-only audit focus (those are discovery-only and never run a suite), not
|
|
417
|
+
* already run this verify-entry (steady-state guard), and not failed on the
|
|
418
|
+
* focus's unchanged HEAD (HEAD-keyed guard).
|
|
210
419
|
*
|
|
211
420
|
* Synthesizes a `deterministic` PendingVerification carrying the resolved
|
|
212
|
-
* config-default command + timeout
|
|
213
|
-
*
|
|
421
|
+
* config-default command + timeout and a `defaultOnSource` marker. Those values
|
|
422
|
+
* are PROVISIONAL -- resolved against the product repoPath, which may lag the
|
|
423
|
+
* branch -- and a run on a detached checkout re-resolves both from the verified
|
|
424
|
+
* code (verify/verification-checkout.ts).
|
|
425
|
+
*
|
|
426
|
+
* Arming does not wait on repoPath either. When no command resolves there, each
|
|
427
|
+
* delivery is armed from the telora.verify.json its judged commit ships
|
|
428
|
+
* (armFromJudgedCommit), so a branch that introduces the gate is verified on its
|
|
429
|
+
* next run. An operator's `declined` marker is the exception: it suppresses the
|
|
430
|
+
* repo manifest, and no branch overturns it. With no command anywhere the
|
|
431
|
+
* feature stays inert.
|
|
214
432
|
*
|
|
215
433
|
* `config` must be product-scoped (config.productId identifies the product).
|
|
216
434
|
*/
|
|
217
435
|
export async function collectDefaultOnVerifications(config, resolved, explicitDeliveryIds, deps) {
|
|
218
|
-
if (!resolved.enabled)
|
|
436
|
+
if (!resolved.enabled && config.defaultVerification?.declined === true)
|
|
219
437
|
return [];
|
|
220
438
|
const focuses = await deps.getActiveFocuses(config.organizationId, config.productId);
|
|
221
439
|
const candidates = [];
|
|
@@ -246,6 +464,16 @@ export async function collectDefaultOnVerifications(config, resolved, explicitDe
|
|
|
246
464
|
observedInVerify.add(d.id);
|
|
247
465
|
if (defaultOnRan.has(d.id))
|
|
248
466
|
continue; // already ran this verify-entry
|
|
467
|
+
if (failedOnCurrentHead(d, focus.focus_id, deps))
|
|
468
|
+
continue; // unchanged commit already failed
|
|
469
|
+
// timeoutSource names the layer the timeout came from, so a run that applies
|
|
470
|
+
// these tick values as-is (in place, no checkout) can still say where its
|
|
471
|
+
// timeout was read if it is killed by it.
|
|
472
|
+
const verificationConfig = resolved.enabled
|
|
473
|
+
? { command: resolved.command, timeoutMs: resolved.timeoutMs, timeoutSource: formatVerifyConfigSource(resolved.sources.timeoutMs) }
|
|
474
|
+
: armFromJudgedCommit(d.id, focus.focus_id, resolved, deps);
|
|
475
|
+
if (!verificationConfig)
|
|
476
|
+
continue; // no command at repoPath, and the judged commit declares none (or went unread)
|
|
249
477
|
candidates.push({
|
|
250
478
|
deliveryId: d.id,
|
|
251
479
|
deliveryName: d.name,
|
|
@@ -253,7 +481,7 @@ export async function collectDefaultOnVerifications(config, resolved, explicitDe
|
|
|
253
481
|
focusId: focus.focus_id,
|
|
254
482
|
injectionNodeId: d.injectionId,
|
|
255
483
|
verificationMethod: 'deterministic',
|
|
256
|
-
verificationConfig
|
|
484
|
+
verificationConfig,
|
|
257
485
|
verificationOutcome: null,
|
|
258
486
|
verificationLastRunAt: null,
|
|
259
487
|
// Recorded git state travels with the verification so the evidence
|
|
@@ -261,11 +489,19 @@ export async function collectDefaultOnVerifications(config, resolved, explicitDe
|
|
|
261
489
|
// commit rather than reporting blindness.
|
|
262
490
|
gitState: d.gitState,
|
|
263
491
|
mergeCommitSha: d.mergeCommitSha,
|
|
492
|
+
// Marks the candidate default-on. The command + timeout above were read
|
|
493
|
+
// from repoPath and are provisional: a checkout run re-resolves them from
|
|
494
|
+
// the verified code, with this block and repoPath as the lower layers.
|
|
495
|
+
defaultOnSource: {
|
|
496
|
+
defaultVerification: config.defaultVerification,
|
|
497
|
+
repoPath: config.repoPath,
|
|
498
|
+
},
|
|
264
499
|
});
|
|
265
500
|
}
|
|
266
501
|
}
|
|
267
502
|
// Prune guard entries for deliveries no longer sitting in verify, so a
|
|
268
|
-
// genuine re-entry (verify_failed -> coding -> verify) runs again
|
|
503
|
+
// genuine re-entry (verify_failed -> coding -> verify) runs again -- unless its
|
|
504
|
+
// HEAD-keyed failure still stands (failedAtSha is deliberately NOT pruned here).
|
|
269
505
|
for (const id of [...defaultOnRan]) {
|
|
270
506
|
if (!observedInVerify.has(id))
|
|
271
507
|
defaultOnRan.delete(id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verification-default-on.js","sourceRoot":"","sources":["../../src/verify/verification-default-on.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"verification-default-on.js","sourceRoot":"","sources":["../../src/verify/verification-default-on.ts"],"names":[],"mappings":"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"}
|
|
@@ -90,7 +90,7 @@ export const defaultDeps = (config) => {
|
|
|
90
90
|
resolveCwd,
|
|
91
91
|
integrationBranch: config.integrationBranch,
|
|
92
92
|
securityFindingGate: buildDefaultSecurityFindingGateDeps(),
|
|
93
|
-
resolveDefaultVerification: (c) => defaultResolveDefaultVerification(c),
|
|
93
|
+
resolveDefaultVerification: (c, readManifest) => defaultResolveDefaultVerification(c, undefined, readManifest),
|
|
94
94
|
getActiveFocuses,
|
|
95
95
|
getFocusDeliveries,
|
|
96
96
|
deliverFailureFeedback: (v, result) => deliverVerificationFailureFeedback(v, result, config.organizationId).then(() => undefined),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verification-deps-default.js","sourceRoot":"","sources":["../../src/verify/verification-deps-default.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"verification-deps-default.js","sourceRoot":"","sources":["../../src/verify/verification-deps-default.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,13 +17,16 @@
|
|
|
17
17
|
*/
|
|
18
18
|
import type { StrategyResult } from './verification-deterministic.js';
|
|
19
19
|
import type { runDeterministicStrategy } from './verification-deterministic.js';
|
|
20
|
+
import type { VerifyCheckout } from './verification-checkout.js';
|
|
20
21
|
import type { getPendingVerifications, PendingVerification, VerificationOutcome } from '../queries/verification.js';
|
|
21
22
|
import type { NodeWriteback } from '../reality/reality-writeback.js';
|
|
22
23
|
import type { ReconcileTargetsResult, TargetRestatement, TargetShortfall, VerifyEvidence } from './verify-restatement.js';
|
|
23
24
|
import type { FileEscalationInput } from '../completion/escalations.js';
|
|
24
25
|
import type { EvidenceUnavailableDetail } from '../queries/delivery-gate-state.js';
|
|
25
26
|
import type { DaemonConfig } from '../types/index.js';
|
|
26
|
-
import type { ResolvedDefaultVerification } from './verification-config.js';
|
|
27
|
+
import type { AppliedVerificationConfig, ResolvedDefaultVerification } from './verification-config.js';
|
|
28
|
+
import type { VerifyManifestReader } from './verification-manifest.js';
|
|
29
|
+
import type { JudgedCommitRead } from './verification-default-on.js';
|
|
27
30
|
import type { getActiveFocuses } from '../queries/focus-discovery.js';
|
|
28
31
|
import type { getFocusDeliveries } from '../queries/focuses.js';
|
|
29
32
|
import type { AiInspectionInputs } from './ai-inspection-context.js';
|
|
@@ -102,9 +105,11 @@ export interface VerificationDeps {
|
|
|
102
105
|
/**
|
|
103
106
|
* Resolve the default-on deterministic verification config (env > file >
|
|
104
107
|
* default). When it yields `enabled: false` (no command configured) the
|
|
105
|
-
* default-on scan
|
|
108
|
+
* default-on scan arms only from judged commits. `readManifest` replaces the
|
|
109
|
+
* repo-manifest read (the tick passes a silent one to set a malformed repoPath
|
|
110
|
+
* manifest aside); omitted, the real file is read.
|
|
106
111
|
*/
|
|
107
|
-
resolveDefaultVerification: (config: DaemonConfig) => ResolvedDefaultVerification;
|
|
112
|
+
resolveDefaultVerification: (config: DaemonConfig, readManifest?: VerifyManifestReader) => ResolvedDefaultVerification;
|
|
108
113
|
/** Enumerate active focuses for a product (default-on candidate discovery). */
|
|
109
114
|
getActiveFocuses: typeof getActiveFocuses;
|
|
110
115
|
/** Fetch a focus's deliveries (default-on candidate discovery). */
|
|
@@ -135,6 +140,26 @@ export interface VerificationDeps {
|
|
|
135
140
|
requeueEvidenceUnavailableAsRework?: (v: PendingVerification, fault: Omit<EvidenceUnavailableDetail, 'heldAt'>) => Promise<void>;
|
|
136
141
|
/** cwd for the HEAD run -- the focus worktree. Optional; dispatch falls back to resolveCwd. */
|
|
137
142
|
resolveVerificationCwd?: (v: PendingVerification) => string;
|
|
143
|
+
/**
|
|
144
|
+
* The focus worktree a deterministic verify judges (its HEAD is checked out
|
|
145
|
+
* detached for the run); null when the focus has none. Optional; defaults to
|
|
146
|
+
* the registered focus worktree (verify/verification-checkout.ts).
|
|
147
|
+
*/
|
|
148
|
+
resolveFocusWorktreePath?: (v: PendingVerification) => string | null;
|
|
149
|
+
/** Detached-checkout factory for a deterministic run. Optional; defaults to createVerifyCheckout. */
|
|
150
|
+
createVerifyCheckout?: (focusWorktreePath: string, checkoutKey: string) => VerifyCheckout | null;
|
|
151
|
+
/**
|
|
152
|
+
* Re-resolve a DEFAULT-ON candidate's command + timeout from the code a run
|
|
153
|
+
* executes in (`runPath`, the detached checkout), with the product repoPath
|
|
154
|
+
* manifest as a recorded fallback. Throws on a malformed manifest in that code.
|
|
155
|
+
* Never consulted for explicit-method rows or in-place runs. Optional; defaults
|
|
156
|
+
* to the real resolver over process.env (verify/verification-checkout.ts).
|
|
157
|
+
*/
|
|
158
|
+
resolveRunVerificationConfig?: (v: PendingVerification, runPath: string) => AppliedVerificationConfig;
|
|
159
|
+
/** Focus worktree HEAD sha (default-on HEAD re-verify guard). Optional; null never suppresses. */
|
|
160
|
+
resolveFocusHeadSha?: (focusId: string) => string | null;
|
|
161
|
+
/** The telora.verify.json a focus's judged commit ships (default-on arming). Optional; defaults to a git read. */
|
|
162
|
+
readJudgedCommitManifest?: (focusId: string) => JudgedCommitRead | null;
|
|
138
163
|
/**
|
|
139
164
|
* Count of commits the delivery branch is ahead of the integration base.
|
|
140
165
|
* Used by the evidence-integrity guard to tell a broken diff MEASUREMENT
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verification-deps.d.ts","sourceRoot":"","sources":["../../src/verify/verification-deps.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,KAAK,EACV,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EACV,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"verification-deps.d.ts","sourceRoot":"","sources":["../../src/verify/verification-deps.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,6 +47,68 @@ export interface StrategyResult {
|
|
|
47
47
|
* zero-parse output be laundered into a differential pass.
|
|
48
48
|
*/
|
|
49
49
|
timedOut?: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* The test runner's own totals line(s), found in a TIMED-OUT run's output
|
|
52
|
+
* (verify/verification-timeout-fault.ts). Present only when the runner got as
|
|
53
|
+
* far as printing them: the kill then landed after that runner finished (in
|
|
54
|
+
* teardown, a lingering handle, or a later stage of the command), not mid-suite,
|
|
55
|
+
* and the descriptions say so. Descriptive only -- the run stays timedOut and
|
|
56
|
+
* failed; a printed summary is never a pass verdict.
|
|
57
|
+
*/
|
|
58
|
+
runnerSummary?: string[];
|
|
59
|
+
/**
|
|
60
|
+
* The commit the run judged: the focus HEAD sha of the detached checkout the
|
|
61
|
+
* command ran in (verify/verification-checkout.ts). Undefined for an in-place
|
|
62
|
+
* run (no focus worktree). Keys the default-on HEAD re-verify guard.
|
|
63
|
+
*/
|
|
64
|
+
verifiedSha?: string;
|
|
65
|
+
/**
|
|
66
|
+
* True when no fixed-commit verdict exists (outcome 'pending'): no detached
|
|
67
|
+
* checkout of the focus HEAD could be made, so the command was NOT run, or a
|
|
68
|
+
* dependency install moved the checkout's linked packages mid-run, so its
|
|
69
|
+
* verdict was discarded. The tick retries next pass.
|
|
70
|
+
*/
|
|
71
|
+
checkoutUnavailable?: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* The command + timeout the run applied, and where they were read. A default-on
|
|
74
|
+
* run on a detached checkout re-resolves both from the telora.verify.json IN THE
|
|
75
|
+
* CHECKOUT (the code under verification), so a value committed on the verified
|
|
76
|
+
* branch applies to its next run; `manifestFallback` records that the checkout
|
|
77
|
+
* shipped none and the product repoPath manifest was used. An explicit-method
|
|
78
|
+
* row carries its row values; an in-place run carries the tick-resolved values.
|
|
79
|
+
* Set by verify/verification-checkout.ts; the baseline run sizes itself from it.
|
|
80
|
+
*/
|
|
81
|
+
appliedConfig?: {
|
|
82
|
+
command: string;
|
|
83
|
+
timeoutMs: number;
|
|
84
|
+
/**
|
|
85
|
+
* Where `timeoutMs` was read, as a formatVerifyConfigSource label (an env var,
|
|
86
|
+
* daemon.json, a manifest path or its recorded fallback, the typed default, or
|
|
87
|
+
* the delivery's own config), so a timed-out run can say which layer to change.
|
|
88
|
+
*/
|
|
89
|
+
timeoutSource: string;
|
|
90
|
+
/** The manifest the values were read from, when one was read. */
|
|
91
|
+
manifestPath?: string;
|
|
92
|
+
/** True when the verified code shipped no manifest and the repoPath manifest was applied. */
|
|
93
|
+
manifestFallback?: boolean;
|
|
94
|
+
/** Where the verified code's manifest was looked for (read first). */
|
|
95
|
+
verifiedManifestPath?: string;
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* True when the command was NOT run because its config could not be resolved
|
|
99
|
+
* from the verified code (a malformed manifest there). No run output exists to
|
|
100
|
+
* attribute, so baseline attribution is skipped and the rationale -- naming the
|
|
101
|
+
* manifest and the problem -- stands.
|
|
102
|
+
*/
|
|
103
|
+
configUnresolved?: boolean;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* The worktree whose verify interlock a run holds, and the delivery it judges.
|
|
107
|
+
* Omitted for an in-place run, which holds its own cwd and names no delivery.
|
|
108
|
+
*/
|
|
109
|
+
export interface VerifyHoldTarget {
|
|
110
|
+
worktreePath: string;
|
|
111
|
+
deliveryId?: string;
|
|
50
112
|
}
|
|
51
113
|
/**
|
|
52
114
|
* Context for persisting a deterministic run's full log to a file. When
|
|
@@ -76,5 +138,5 @@ export interface DeterministicLogContext {
|
|
|
76
138
|
* still-on-branch delivery path, where the selector's merge-base auto-derivation
|
|
77
139
|
* is correct).
|
|
78
140
|
*/
|
|
79
|
-
export declare function runDeterministicStrategy(config: Record<string, unknown> | null, cwd: string, logContext?: DeterministicLogContext, extraEnv?: Record<string, string
|
|
141
|
+
export declare function runDeterministicStrategy(config: Record<string, unknown> | null, cwd: string, logContext?: DeterministicLogContext, extraEnv?: Record<string, string>, hold?: VerifyHoldTarget): Promise<StrategyResult>;
|
|
80
142
|
//# sourceMappingURL=verification-deterministic.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verification-deterministic.d.ts","sourceRoot":"","sources":["../../src/verify/verification-deterministic.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"verification-deterministic.d.ts","sourceRoot":"","sources":["../../src/verify/verification-deterministic.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAQtE;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,+BAA+B,QAAiB,CAAC;AAE9D,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yFAAyF;IACzF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,sFAAsF;IACtF,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB;;;;WAIG;QACH,aAAa,EAAE,MAAM,CAAC;QACtB,iEAAiE;QACjE,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,6FAA6F;QAC7F,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,sEAAsE;QACtE,oBAAoB,CAAC,EAAE,MAAM,CAAC;KAC/B,CAAC;IACF;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,kFAAkF;IAClF,WAAW,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAiBD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACtC,GAAG,EAAE,MAAM,EACX,UAAU,CAAC,EAAE,uBAAuB,EACpC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,IAAI,CAAC,EAAE,gBAAgB,GACtB,OAAO,CAAC,cAAc,CAAC,CA8HzB"}
|