@cat-factory/orchestration 0.238.0 → 0.240.0
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/dist/container/modules.d.ts.map +1 -1
- package/dist/container/modules.js +5 -0
- package/dist/container/modules.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/modules/execution/ExecutionService.d.ts.map +1 -1
- package/dist/modules/execution/ExecutionService.js +2 -1
- package/dist/modules/execution/ExecutionService.js.map +1 -1
- package/dist/modules/execution/VisualConfirmationController.d.ts +20 -4
- package/dist/modules/execution/VisualConfirmationController.d.ts.map +1 -1
- package/dist/modules/execution/VisualConfirmationController.js +77 -15
- package/dist/modules/execution/VisualConfirmationController.js.map +1 -1
- package/dist/modules/execution/drive.d.ts +28 -0
- package/dist/modules/execution/drive.d.ts.map +1 -1
- package/dist/modules/execution/drive.js +53 -3
- package/dist/modules/execution/drive.js.map +1 -1
- package/dist/modules/execution/gate-window-controllers.d.ts +2 -0
- package/dist/modules/execution/gate-window-controllers.d.ts.map +1 -1
- package/dist/modules/execution/gate-window-controllers.js +2 -1
- package/dist/modules/execution/gate-window-controllers.js.map +1 -1
- package/dist/modules/execution/visual-confirm-design-references.d.ts +85 -0
- package/dist/modules/execution/visual-confirm-design-references.d.ts.map +1 -0
- package/dist/modules/execution/visual-confirm-design-references.js +229 -0
- package/dist/modules/execution/visual-confirm-design-references.js.map +1 -0
- package/package.json +11 -11
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { ConflictError, isAsyncAgentExecutor } from '@cat-factory/kernel';
|
|
2
|
+
import { countCapturedViews } from '@cat-factory/contracts';
|
|
3
|
+
import { resolveDesignReferences } from './visual-confirm-design-references.js';
|
|
2
4
|
import { FIXER_AGENT_KIND, UI_TESTER_AGENT_KIND, VISUAL_CONFIRM_AGENT_KIND } from './ci.logic.js';
|
|
3
5
|
import { recordDispatchAttribution } from './step-fold.logic.js';
|
|
4
6
|
/** Render the human's findings as the resolved-context block handed to the fixer. */
|
|
@@ -71,7 +73,9 @@ export class VisualConfirmationController {
|
|
|
71
73
|
const block = await this.deps.blockRepository.get(workspaceId, instance.blockId);
|
|
72
74
|
if (!block)
|
|
73
75
|
return { kind: 'noop' };
|
|
74
|
-
|
|
76
|
+
const gathered = await this.gatherPairs(workspaceId, instance, block, await this.store(workspaceId));
|
|
77
|
+
vc.pairs = gathered.pairs;
|
|
78
|
+
vc.designReferences = gathered.design;
|
|
75
79
|
// The pairs come from the LAST UI-tester report, which predates this fix — the gate does
|
|
76
80
|
// not auto re-run the UI tester yet (see the handover doc). Flag the staleness so the human
|
|
77
81
|
// knows to recapture (or re-run the UI tester) before judging the screenshots as final,
|
|
@@ -118,14 +122,19 @@ export class VisualConfirmationController {
|
|
|
118
122
|
return this.completeStep(workspaceId, instance, step, isFinalStep);
|
|
119
123
|
}
|
|
120
124
|
const maxAttempts = (await this.deps.resolveRiskPolicy(workspaceId, block)).ciMaxAttempts;
|
|
121
|
-
const pairs = await this.gatherPairs(workspaceId, instance, block, store);
|
|
125
|
+
const { pairs, design } = await this.gatherPairs(workspaceId, instance, block, store);
|
|
122
126
|
step.visualConfirm = {
|
|
123
127
|
phase: 'awaiting_human',
|
|
124
128
|
pairs,
|
|
129
|
+
designReferences: design,
|
|
125
130
|
attempts: 0,
|
|
126
131
|
maxAttempts,
|
|
127
132
|
rounds: [],
|
|
128
|
-
|
|
133
|
+
// Gated on what was CAPTURED, never on how many rows the gallery has: a reference-only row
|
|
134
|
+
// (a linked design's frame, an uploaded mock) makes a pair too, so counting rows would drop
|
|
135
|
+
// this warning — and the approve-button acknowledgement it drives — for exactly the run that
|
|
136
|
+
// needs it, one showing a reviewer nothing but the mocks they already had.
|
|
137
|
+
...(countCapturedViews(pairs) === 0
|
|
129
138
|
? {
|
|
130
139
|
degradedReason: 'No UI screenshots were captured for this task — review the change manually, then approve or request a fix.',
|
|
131
140
|
}
|
|
@@ -147,8 +156,11 @@ export class VisualConfirmationController {
|
|
|
147
156
|
return this.dispatchFixer(workspaceId, instance, step, block, action.findings ?? '');
|
|
148
157
|
case 'recapture': {
|
|
149
158
|
const vc = step.visualConfirm;
|
|
150
|
-
if (vc)
|
|
151
|
-
|
|
159
|
+
if (vc) {
|
|
160
|
+
const refreshed = await this.gatherPairs(workspaceId, instance, block, await this.store(workspaceId));
|
|
161
|
+
vc.pairs = refreshed.pairs;
|
|
162
|
+
vc.designReferences = refreshed.design;
|
|
163
|
+
}
|
|
152
164
|
return this.toAwaitingHuman(workspaceId, instance, step, block);
|
|
153
165
|
}
|
|
154
166
|
}
|
|
@@ -220,9 +232,11 @@ export class VisualConfirmationController {
|
|
|
220
232
|
return { kind: 'awaiting_job', jobId: step.jobId, stepIndex: instance.currentStep };
|
|
221
233
|
}
|
|
222
234
|
/**
|
|
223
|
-
* Gather actual-vs-reference pairs: the latest UI-tester report's screenshots
|
|
224
|
-
*
|
|
225
|
-
* gate's entry path doesn't resolve it
|
|
235
|
+
* Gather actual-vs-reference pairs: the latest UI-tester report's screenshots, the frames the
|
|
236
|
+
* task's linked DESIGNS retained, and the block's hand-uploaded references. The caller passes
|
|
237
|
+
* the already-resolved per-account store (or null) so the gate's entry path doesn't resolve it
|
|
238
|
+
* twice; the design summary comes back beside the pairs because "a design is linked and gave
|
|
239
|
+
* nothing" is a fact only this read knows and only the gate state can carry.
|
|
226
240
|
*/
|
|
227
241
|
async gatherPairs(workspaceId, instance, block, store) {
|
|
228
242
|
const byView = new Map();
|
|
@@ -243,10 +257,40 @@ export class VisualConfirmationController {
|
|
|
243
257
|
byView.set(shot.view, {
|
|
244
258
|
view: shot.view,
|
|
245
259
|
actualArtifactId,
|
|
260
|
+
// No `referenceOrigin`: a reference the CAPTURE named is one the gate did not source, so
|
|
261
|
+
// it can say where it came from only by guessing. An absent origin is "unknown", which is
|
|
262
|
+
// the honest answer and a different one from "a person uploaded this".
|
|
246
263
|
referenceArtifactId: shot.referenceArtifactId ?? null,
|
|
247
264
|
});
|
|
248
265
|
}
|
|
249
|
-
// Reference: the
|
|
266
|
+
// Reference, first half: the frames retained from the DESIGNS this task links. Folded in
|
|
267
|
+
// BEFORE the hand-uploaded set below, which is the precedence that matters: an upload is a
|
|
268
|
+
// deliberate act against this one task, while a design render is a projection the next import
|
|
269
|
+
// replaces, so a person who uploaded a reference for a view must not have it swapped out from
|
|
270
|
+
// under them by whatever the file happens to say today.
|
|
271
|
+
const design = await resolveDesignReferences(this.deps.documentRepository, store, workspaceId, block.id);
|
|
272
|
+
for (const ref of design?.references ?? []) {
|
|
273
|
+
const existing = byView.get(ref.view);
|
|
274
|
+
if (existing) {
|
|
275
|
+
// A reference the CAPTURE named for this view is left alone. The same precedence the
|
|
276
|
+
// uploads below rely on, for the same reason: an explicitly chosen reference outranks a
|
|
277
|
+
// projection of whatever the linked file says today, and the design fold cannot tell
|
|
278
|
+
// which of the two it would be replacing. Only a view with no reference at all is filled.
|
|
279
|
+
if (existing.referenceArtifactId)
|
|
280
|
+
continue;
|
|
281
|
+
existing.referenceArtifactId = ref.artifactId;
|
|
282
|
+
existing.referenceOrigin = 'design';
|
|
283
|
+
}
|
|
284
|
+
else {
|
|
285
|
+
byView.set(ref.view, {
|
|
286
|
+
view: ref.view,
|
|
287
|
+
actualArtifactId: null,
|
|
288
|
+
referenceArtifactId: ref.artifactId,
|
|
289
|
+
referenceOrigin: 'design',
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
// Reference, second half: the block's uploaded reference design images (carry no executionId).
|
|
250
294
|
if (store) {
|
|
251
295
|
const refs = (await store.listByBlock(workspaceId, block.id)).filter((r) => r.kind === 'reference');
|
|
252
296
|
// `listByBlock` returns references oldest-first, so assign unconditionally: the LAST
|
|
@@ -255,13 +299,21 @@ export class VisualConfirmationController {
|
|
|
255
299
|
for (const ref of refs) {
|
|
256
300
|
const view = ref.view ?? '(reference)';
|
|
257
301
|
const existing = byView.get(view);
|
|
258
|
-
if (existing)
|
|
302
|
+
if (existing) {
|
|
259
303
|
existing.referenceArtifactId = ref.id;
|
|
260
|
-
|
|
261
|
-
|
|
304
|
+
existing.referenceOrigin = 'upload';
|
|
305
|
+
}
|
|
306
|
+
else {
|
|
307
|
+
byView.set(view, {
|
|
308
|
+
view,
|
|
309
|
+
actualArtifactId: null,
|
|
310
|
+
referenceArtifactId: ref.id,
|
|
311
|
+
referenceOrigin: 'upload',
|
|
312
|
+
});
|
|
313
|
+
}
|
|
262
314
|
}
|
|
263
315
|
}
|
|
264
|
-
return [...byView.values()];
|
|
316
|
+
return { pairs: [...byView.values()], design: design?.summary ?? null };
|
|
265
317
|
}
|
|
266
318
|
/** Flip to awaiting-human, summon the human (idempotent notification), and park. */
|
|
267
319
|
async toAwaitingHuman(workspaceId, instance, step, block) {
|
|
@@ -343,8 +395,18 @@ export class VisualConfirmationController {
|
|
|
343
395
|
throw new ConflictError('No visual-confirmation gate is currently awaiting input');
|
|
344
396
|
return found;
|
|
345
397
|
}
|
|
398
|
+
/**
|
|
399
|
+
* How many screenshots this gate is asking a human to look at.
|
|
400
|
+
*
|
|
401
|
+
* The captured count, not the row count: a design frame or an uploaded mock makes a pair with
|
|
402
|
+
* nothing captured against it, so summoning a reviewer to "5 captured screenshots" that are all
|
|
403
|
+
* blank is the same misreading the degraded note above exists to prevent.
|
|
404
|
+
*/
|
|
405
|
+
capturedCount(vc) {
|
|
406
|
+
return countCapturedViews(vc.pairs ?? []);
|
|
407
|
+
}
|
|
346
408
|
proposal(vc) {
|
|
347
|
-
const n = vc
|
|
409
|
+
const n = this.capturedCount(vc);
|
|
348
410
|
return n > 0
|
|
349
411
|
? `Review ${n} screenshot${n === 1 ? '' : 's'} against the reference designs, then approve or request a fix.`
|
|
350
412
|
: 'Review the UI change, then approve or request a fix.';
|
|
@@ -353,7 +415,7 @@ export class VisualConfirmationController {
|
|
|
353
415
|
async raiseReadyNotification(workspaceId, instance, block, vc) {
|
|
354
416
|
if (!this.deps.notificationService)
|
|
355
417
|
return;
|
|
356
|
-
const n = vc
|
|
418
|
+
const n = this.capturedCount(vc);
|
|
357
419
|
await this.deps.notificationService.raise(workspaceId, {
|
|
358
420
|
type: 'visual_confirmation_ready',
|
|
359
421
|
blockId: block.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VisualConfirmationController.js","sourceRoot":"","sources":["../../../src/modules/execution/VisualConfirmationController.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VisualConfirmationController.js","sourceRoot":"","sources":["../../../src/modules/execution/VisualConfirmationController.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,24 @@ export interface DriveConfig {
|
|
|
7
7
|
jobPollFailureTolerance: number;
|
|
8
8
|
ciPollIntervalMs: number;
|
|
9
9
|
ciMaxPolls: number;
|
|
10
|
+
/**
|
|
11
|
+
* Ceiling on ONE engine call this loop waits on — an `advanceInstance` or a status read —
|
|
12
|
+
* enforced through {@link DriveOptions.withStepCeiling}. It bounds BOTH for the same reason the
|
|
13
|
+
* Worker wraps both in one `stepConfig`: either can hang on the same external dependency, and a
|
|
14
|
+
* hung poll wedges the run exactly as a hung advance does.
|
|
15
|
+
*
|
|
16
|
+
* `0` means unbounded, which is what the deterministic conformance/unit fakes want: they own
|
|
17
|
+
* no clock, and a call that never settles there is a test bug, not a production hang.
|
|
18
|
+
*/
|
|
19
|
+
advanceTimeoutMs: number;
|
|
10
20
|
}
|
|
21
|
+
/** What {@link DriveOptions.withStepCeiling} answers: the call settled, or the ceiling won. */
|
|
22
|
+
export type StepOutcome<T> = {
|
|
23
|
+
timedOut: false;
|
|
24
|
+
value: T;
|
|
25
|
+
} | {
|
|
26
|
+
timedOut: true;
|
|
27
|
+
};
|
|
11
28
|
/** Runtime seams the driver loop needs; both have inert defaults. */
|
|
12
29
|
export interface DriveOptions {
|
|
13
30
|
/**
|
|
@@ -19,6 +36,17 @@ export interface DriveOptions {
|
|
|
19
36
|
sleep?: (ms: number) => Promise<void>;
|
|
20
37
|
/** Where to log lifecycle breadcrumbs. Defaults to a no-op. */
|
|
21
38
|
log?: Logger;
|
|
39
|
+
/**
|
|
40
|
+
* Bound ONE engine call at `cfg.advanceTimeoutMs`. Same seam shape as `sleep`, and for the same
|
|
41
|
+
* reason: orchestration owns no timers, so the facade supplies the clock (the Node `drive.ts`
|
|
42
|
+
* wrapper injects a `Promise.race`; the Cloudflare driver never runs this loop, it wraps the
|
|
43
|
+
* same calls in a `step.do` carrying the same timeout).
|
|
44
|
+
*
|
|
45
|
+
* The work is ABANDONED rather than aborted on a timeout (a promise cannot be cancelled), so a
|
|
46
|
+
* late writer can still land afterwards; every run write goes through the rev-guarded
|
|
47
|
+
* `casPersist`, which is what makes abandoning it safe rather than a lost-update race.
|
|
48
|
+
*/
|
|
49
|
+
withStepCeiling?: <T>(work: Promise<T>, ms: number) => Promise<StepOutcome<T>>;
|
|
22
50
|
}
|
|
23
51
|
/** What a drive ended on, so the runner can schedule follow-up work (a decision timeout). */
|
|
24
52
|
export interface DriveOutcome {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drive.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/drive.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAQ5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,kEAAkE;AAClE,MAAM,WAAW,WAAW;IAC1B,iBAAiB,EAAE,MAAM,CAAA;IACzB,WAAW,EAAE,MAAM,CAAA;IACnB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,gBAAgB,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"drive.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/drive.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAQ5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,kEAAkE;AAClE,MAAM,WAAW,WAAW;IAC1B,iBAAiB,EAAE,MAAM,CAAA;IACzB,WAAW,EAAE,MAAM,CAAA;IACnB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,gBAAgB,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB;;;;;;;;OAQG;IACH,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,+FAA+F;AAC/F,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAA;AAE/E,qEAAqE;AACrE,MAAM,WAAW,YAAY;IAC3B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,+DAA+D;IAC/D,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;CAC/E;AAED,6FAA6F;AAC7F,MAAM,WAAW,YAAY;IAC3B,+EAA+E;IAC/E,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AA4BD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,gBAAgB,EACtB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,WAAW,EAChB,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,YAAY,CAAC,CA0MvB"}
|
|
@@ -1,6 +1,28 @@
|
|
|
1
1
|
import { describeError, noopLogger } from '@cat-factory/kernel';
|
|
2
2
|
import { failureFromAdvanceError, failureFromDriver, failureFromResult, } from './runFailure.js';
|
|
3
3
|
const instantSleep = () => Promise.resolve();
|
|
4
|
+
/** No facade clock wired (or `advanceTimeoutMs: 0`): await the work as this loop always did. */
|
|
5
|
+
const unbounded = async (work) => ({
|
|
6
|
+
timedOut: false,
|
|
7
|
+
value: await work,
|
|
8
|
+
});
|
|
9
|
+
/**
|
|
10
|
+
* The ceiling in the coarsest unit that still states it truthfully, for the run's user-facing
|
|
11
|
+
* failure ("did not complete within 30 minutes"). Production values are minutes; the smaller
|
|
12
|
+
* units exist so a deployment that tightens the knob is quoted its own number back rather than
|
|
13
|
+
* a rounded-to-nothing "0 seconds".
|
|
14
|
+
*/
|
|
15
|
+
function describeCeiling(ms) {
|
|
16
|
+
if (ms >= 60_000) {
|
|
17
|
+
const minutes = Math.round(ms / 60_000);
|
|
18
|
+
return `${minutes} minute${minutes === 1 ? '' : 's'}`;
|
|
19
|
+
}
|
|
20
|
+
if (ms >= 1000) {
|
|
21
|
+
const seconds = Math.round(ms / 1000);
|
|
22
|
+
return `${seconds} second${seconds === 1 ? '' : 's'}`;
|
|
23
|
+
}
|
|
24
|
+
return `${ms}ms`;
|
|
25
|
+
}
|
|
4
26
|
/**
|
|
5
27
|
* Drive one run to a standstill. The runtime-neutral driver loop: it contains NO
|
|
6
28
|
* business logic — every decision lives in {@link ExecutionService} — and uses plain
|
|
@@ -18,6 +40,9 @@ const instantSleep = () => Promise.resolve();
|
|
|
18
40
|
*/
|
|
19
41
|
export async function driveExecution(exec, workspaceId, executionId, cfg, opts = {}) {
|
|
20
42
|
const sleep = opts.sleep ?? instantSleep;
|
|
43
|
+
// `advanceTimeoutMs: 0` is the explicit opt-out, so a facade that wires the clock still gets
|
|
44
|
+
// the unbounded await rather than a zero-length ceiling that fails every advance instantly.
|
|
45
|
+
const withStepCeiling = cfg.advanceTimeoutMs > 0 ? (opts.withStepCeiling ?? unbounded) : unbounded;
|
|
21
46
|
// Bind the run's correlation ids ONCE, so every line the driver emits — including the
|
|
22
47
|
// poll-failure warnings below, which fire deep inside `pollUntil` — is greppable by run
|
|
23
48
|
// without each call site re-spreading them.
|
|
@@ -48,7 +73,19 @@ export async function driveExecution(exec, workspaceId, executionId, cfg, opts =
|
|
|
48
73
|
await sleep(intervalMs);
|
|
49
74
|
let result;
|
|
50
75
|
try {
|
|
51
|
-
|
|
76
|
+
// The same ceiling the advance gets, with the Worker's disposition rather than the
|
|
77
|
+
// advance's: over there a poll runs inside a `step.do` carrying the same `stepConfig`,
|
|
78
|
+
// and a timed-out step THROWS into `pollOnce`, which counts it as one unreadable poll.
|
|
79
|
+
// That is the honest reading — a status read that never answered is a status that could
|
|
80
|
+
// not be read — and it keeps the tolerance below as the one thing deciding when enough
|
|
81
|
+
// of them is terminal. Without it a hung poll wedged the run exactly as a hung advance
|
|
82
|
+
// did: pg-boss keeps heartbeating the active job, so the sweeper still reads it `live`
|
|
83
|
+
// (stuck-run audit F9).
|
|
84
|
+
const attempt = await withStepCeiling(poll(), cfg.advanceTimeoutMs);
|
|
85
|
+
if (attempt.timedOut) {
|
|
86
|
+
throw new Error(`no answer within ${describeCeiling(cfg.advanceTimeoutMs)}`);
|
|
87
|
+
}
|
|
88
|
+
result = attempt.value;
|
|
52
89
|
}
|
|
53
90
|
catch (error) {
|
|
54
91
|
// A bare `catch` used to discard the cause, so a run killed by three unreadable polls
|
|
@@ -76,9 +113,14 @@ export async function driveExecution(exec, workspaceId, executionId, cfg, opts =
|
|
|
76
113
|
return null;
|
|
77
114
|
};
|
|
78
115
|
for (;;) {
|
|
79
|
-
let
|
|
116
|
+
let outcome;
|
|
80
117
|
try {
|
|
81
|
-
|
|
118
|
+
// Bounded, because nothing else bounds it: pg-boss heartbeats an ACTIVE job regardless of
|
|
119
|
+
// handler progress, so a hung call inside an advance leaves the run `running` with a live
|
|
120
|
+
// job and a frozen `updated_at`: the sweeper classifies it `live` and skips it, and the
|
|
121
|
+
// run wedges until the queue's expire cap (up to 24h). Cloudflare has always capped the
|
|
122
|
+
// same call at its `step.do` timeout; this restores the symmetry (stuck-run audit F9).
|
|
123
|
+
outcome = await withStepCeiling(exec.advanceInstance(workspaceId, executionId, { rethrowAgentErrors: true }), cfg.advanceTimeoutMs);
|
|
82
124
|
}
|
|
83
125
|
catch (error) {
|
|
84
126
|
// A thrown `DomainError` carries a machine-readable `details.reason` (e.g. a
|
|
@@ -89,6 +131,14 @@ export async function driveExecution(exec, workspaceId, executionId, cfg, opts =
|
|
|
89
131
|
await fail(failureFromAdvanceError(error));
|
|
90
132
|
return {};
|
|
91
133
|
}
|
|
134
|
+
if (outcome.timedOut) {
|
|
135
|
+
// A `timeout` kind, not the `agent` one a thrown advance records: nothing reached an
|
|
136
|
+
// agent, and the operator's fix is the wedged dependency, not a transcript.
|
|
137
|
+
log.warn('advance exceeded its ceiling; failing the run', { ceilingMs: cfg.advanceTimeoutMs });
|
|
138
|
+
await fail(failureFromDriver(`Step advance did not complete within ${describeCeiling(cfg.advanceTimeoutMs)}`, 'timeout'));
|
|
139
|
+
return {};
|
|
140
|
+
}
|
|
141
|
+
let result = outcome.value;
|
|
92
142
|
// Drain whatever gate the step parked on. A gate poll can resolve to a DIFFERENT
|
|
93
143
|
// gate — e.g. a `ci` step that finds CI red dispatches a `ci-fixer` and returns
|
|
94
144
|
// `awaiting_job` — so loop until the result is no longer an awaiting_* gate rather
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drive.js","sourceRoot":"","sources":["../../../src/modules/execution/drive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAe,MAAM,qBAAqB,CAAA;AAE5E,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,GAElB,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"drive.js","sourceRoot":"","sources":["../../../src/modules/execution/drive.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,6 +52,8 @@ export interface GateWindowControllerDeps {
|
|
|
52
52
|
environmentTeardown: ExecutionServiceDependencies['environmentTeardown'];
|
|
53
53
|
branchUpdater: ExecutionServiceDependencies['branchUpdater'];
|
|
54
54
|
resolveBinaryArtifactStore: ExecutionServiceDependencies['resolveBinaryArtifactStore'];
|
|
55
|
+
/** The document corpus the visual-confirmation gate reads a task's linked DESIGNS from. */
|
|
56
|
+
documentRepository: ExecutionServiceDependencies['documentRepository'];
|
|
55
57
|
forkChatService: ExecutionServiceDependencies['forkChatService'];
|
|
56
58
|
/** Tracker writeback — the review gate echoes a HEADLESS park's open findings through it. */
|
|
57
59
|
issueWriteback: ExecutionServiceDependencies['issueWriteback'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-window-controllers.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/gate-window-controllers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,KAAK,EACL,mBAAmB,EACnB,WAAW,EACX,UAAU,EACX,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,KAAK,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAChG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAA;AAChF,OAAO,EAAE,oBAAoB,EAAE,KAAK,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AAC/F,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAA;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAQpE;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,eAAe,EAAE,eAAe,CAAA;IAChC,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,UAAU,EAAE,UAAU,CAAA;IACtB,aAAa,EAAE,aAAa,CAAA;IAC5B,cAAc,EAAE,mBAAmB,CAAA;IACnC,YAAY,EAAE,eAAe,CAAA;IAC7B,SAAS,EAAE,SAAS,CAAA;IACpB,WAAW,EAAE,WAAW,CAAA;IACxB,KAAK,EAAE,KAAK,CAAA;IACZ,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,MAAM,CAAA;IACtB,iBAAiB,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAA;IACxF,oBAAoB,EAAE,wBAAwB,CAAC,sBAAsB,CAAC,CAAA;IACtE,mBAAmB,EAAE,4BAA4B,CAAC,qBAAqB,CAAC,CAAA;IACxE,qBAAqB,EAAE,4BAA4B,CAAC,uBAAuB,CAAC,CAAA;IAC5E,uBAAuB,EAAE,4BAA4B,CAAC,yBAAyB,CAAC,CAAA;IAChF,mBAAmB,EAAE,4BAA4B,CAAC,qBAAqB,CAAC,CAAA;IACxE,aAAa,EAAE,4BAA4B,CAAC,eAAe,CAAC,CAAA;IAC5D,0BAA0B,EAAE,4BAA4B,CAAC,4BAA4B,CAAC,CAAA;IACtF,eAAe,EAAE,4BAA4B,CAAC,iBAAiB,CAAC,CAAA;IAChE,6FAA6F;IAC7F,cAAc,EAAE,4BAA4B,CAAC,gBAAgB,CAAC,CAAA;IAC9D,+CAA+C;IAC/C,MAAM,EAAE,4BAA4B,CAAC,QAAQ,CAAC,CAAA;CAC/C;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,wBAAwB;;;;;;;;
|
|
1
|
+
{"version":3,"file":"gate-window-controllers.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/gate-window-controllers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,KAAK,EACL,mBAAmB,EACnB,WAAW,EACX,UAAU,EACX,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,KAAK,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAChG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAA;AAChF,OAAO,EAAE,oBAAoB,EAAE,KAAK,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AAC/F,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAA;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAQpE;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,eAAe,EAAE,eAAe,CAAA;IAChC,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,UAAU,EAAE,UAAU,CAAA;IACtB,aAAa,EAAE,aAAa,CAAA;IAC5B,cAAc,EAAE,mBAAmB,CAAA;IACnC,YAAY,EAAE,eAAe,CAAA;IAC7B,SAAS,EAAE,SAAS,CAAA;IACpB,WAAW,EAAE,WAAW,CAAA;IACxB,KAAK,EAAE,KAAK,CAAA;IACZ,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,MAAM,CAAA;IACtB,iBAAiB,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAA;IACxF,oBAAoB,EAAE,wBAAwB,CAAC,sBAAsB,CAAC,CAAA;IACtE,mBAAmB,EAAE,4BAA4B,CAAC,qBAAqB,CAAC,CAAA;IACxE,qBAAqB,EAAE,4BAA4B,CAAC,uBAAuB,CAAC,CAAA;IAC5E,uBAAuB,EAAE,4BAA4B,CAAC,yBAAyB,CAAC,CAAA;IAChF,mBAAmB,EAAE,4BAA4B,CAAC,qBAAqB,CAAC,CAAA;IACxE,aAAa,EAAE,4BAA4B,CAAC,eAAe,CAAC,CAAA;IAC5D,0BAA0B,EAAE,4BAA4B,CAAC,4BAA4B,CAAC,CAAA;IACtF,2FAA2F;IAC3F,kBAAkB,EAAE,4BAA4B,CAAC,oBAAoB,CAAC,CAAA;IACtE,eAAe,EAAE,4BAA4B,CAAC,iBAAiB,CAAC,CAAA;IAChE,6FAA6F;IAC7F,cAAc,EAAE,4BAA4B,CAAC,gBAAgB,CAAC,CAAA;IAC9D,+CAA+C;IAC/C,MAAM,EAAE,4BAA4B,CAAC,QAAQ,CAAC,CAAA;CAC/C;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,wBAAwB;;;;;;;;EAmJxE;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,eAAe,CAAA;IAChC,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,UAAU,EAAE,UAAU,CAAA;IACtB,YAAY,EAAE,eAAe,CAAA;IAC7B,SAAS,EAAE,SAAS,CAAA;IACpB,uBAAuB,EAAE,4BAA4B,CAAC,yBAAyB,CAAC,CAAA;IAChF,wBAAwB,EAAE,4BAA4B,CAAC,0BAA0B,CAAC,CAAA;IAClF,oBAAoB,EAAE,4BAA4B,CAAC,sBAAsB,CAAC,CAAA;IAC1E,kBAAkB,EAAE,4BAA4B,CAAC,oBAAoB,CAAC,CAAA;IACtE,iBAAiB,EAAE,4BAA4B,CAAC,mBAAmB,CAAC,CAAA;IACpE,0BAA0B,EAAE,4BAA4B,CAAC,4BAA4B,CAAC,CAAA;IACtF,mBAAmB,EAAE,4BAA4B,CAAC,qBAAqB,CAAC,CAAA;CACzE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4E1D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,4BAA4B,EAC1C,OAAO,EAAE;IAAE,YAAY,EAAE,eAAe,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,GAC/D,mBAAmB,CAcrB"}
|
|
@@ -27,7 +27,7 @@ import { defaultTaskTypeRegistry } from '@cat-factory/kernel';
|
|
|
27
27
|
* Build the human-gate window controllers over one shared deps bundle (see the module doc).
|
|
28
28
|
*/
|
|
29
29
|
export function buildGateWindowControllers(deps) {
|
|
30
|
-
const { blockRepository, executionRepository, workRunner, agentExecutor, notificationService, contextBuilder, stateMachine, stepGraph, idGenerator, clock, clockNow, resolveRiskPolicy, dispatchIterationCap, testerQualityReviewer, environmentProvisioning, environmentTeardown, branchUpdater, resolveBinaryArtifactStore, forkChatService, issueWriteback, logger, } = deps;
|
|
30
|
+
const { blockRepository, executionRepository, workRunner, agentExecutor, notificationService, contextBuilder, stateMachine, stepGraph, idGenerator, clock, clockNow, resolveRiskPolicy, dispatchIterationCap, testerQualityReviewer, environmentProvisioning, environmentTeardown, branchUpdater, resolveBinaryArtifactStore, documentRepository, forkChatService, issueWriteback, logger, } = deps;
|
|
31
31
|
const testerController = new TesterController({
|
|
32
32
|
blockRepository,
|
|
33
33
|
notificationService,
|
|
@@ -103,6 +103,7 @@ export function buildGateWindowControllers(deps) {
|
|
|
103
103
|
contextBuilder,
|
|
104
104
|
notificationService,
|
|
105
105
|
...(resolveBinaryArtifactStore ? { resolveBinaryArtifactStore } : {}),
|
|
106
|
+
...(documentRepository ? { documentRepository } : {}),
|
|
106
107
|
resolveRiskPolicy,
|
|
107
108
|
stateMachine,
|
|
108
109
|
stepGraph,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-window-controllers.js","sourceRoot":"","sources":["../../../src/modules/execution/gate-window-controllers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAeH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAA;AAChF,OAAO,EAAE,oBAAoB,EAAiC,MAAM,2BAA2B,CAAA;AAC/F,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAA;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAChG,OAAO,EACL,kCAAkC,EAClC,kCAAkC,GACnC,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"gate-window-controllers.js","sourceRoot":"","sources":["../../../src/modules/execution/gate-window-controllers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { BinaryArtifactRecord, BinaryArtifactStore, DocumentRecord, DocumentRepository } from '@cat-factory/kernel';
|
|
2
|
+
import type { DocumentRenderStatus, VisualConfirmDesignGapReason, VisualConfirmDesignReferences } from '@cat-factory/contracts';
|
|
3
|
+
/**
|
|
4
|
+
* How many design-rendered views one gallery may carry, across every design a task links.
|
|
5
|
+
*
|
|
6
|
+
* A per-document render cap already bounds each design (Figma rasterises the first frames of a
|
|
7
|
+
* file, not all of them), and this bounds their SUM: a task linking four designs would otherwise
|
|
8
|
+
* push a couple of captured screenshots off the bottom of a page of mocks nobody asked to review
|
|
9
|
+
* here. Whatever it excludes is COUNTED and stated, never quietly trimmed.
|
|
10
|
+
*/
|
|
11
|
+
export declare const MAX_DESIGN_REFERENCE_VIEWS = 12;
|
|
12
|
+
/** One design-rendered frame, keyed by the view name it pairs on. */
|
|
13
|
+
export interface DesignReference {
|
|
14
|
+
view: string;
|
|
15
|
+
artifactId: string;
|
|
16
|
+
}
|
|
17
|
+
/** The fold's product: what to show, and what to say about what is missing. */
|
|
18
|
+
export interface DesignReferenceFold {
|
|
19
|
+
references: DesignReference[];
|
|
20
|
+
summary: VisualConfirmDesignReferences;
|
|
21
|
+
}
|
|
22
|
+
/** The document fields the fold reads; a `DocumentRecord` structurally satisfies it. */
|
|
23
|
+
export interface DesignDocumentSummary {
|
|
24
|
+
source: DocumentRecord['source'];
|
|
25
|
+
externalId: string;
|
|
26
|
+
title: string;
|
|
27
|
+
renderStatus: DocumentRenderStatus | null;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Why a linked design contributed less than its whole set of frames, or null when it contributed
|
|
31
|
+
* everything it has.
|
|
32
|
+
*
|
|
33
|
+
* Reads the stored `renderStatus` AND what the artifact store actually holds, because the two can
|
|
34
|
+
* disagree in the one direction that matters: a row CLAIMING retention over an empty shelf (an
|
|
35
|
+
* account that re-pointed its blob backend, a reclaim that outran its re-import) would otherwise
|
|
36
|
+
* describe a gallery that is not there. `partial` is such a claim just as `stored` is, and left to
|
|
37
|
+
* speak for itself it tells the reviewer "only part of its frames were retained" above nothing at
|
|
38
|
+
* all, which reads as a design that is merely short rather than one that is absent, and sends them
|
|
39
|
+
* looking for the frames that did survive.
|
|
40
|
+
*
|
|
41
|
+
* So the two claiming statuses are checked against what is held, and the three that already say
|
|
42
|
+
* nothing was kept (`failed` / `none` / `storage_unavailable`) stand as they are: each names a
|
|
43
|
+
* DIFFERENT cause of the same empty shelf, and collapsing them would throw the cause away.
|
|
44
|
+
*/
|
|
45
|
+
export declare function designGapReason(renderStatus: DocumentRenderStatus | null, heldImages: number): VisualConfirmDesignGapReason | null;
|
|
46
|
+
/**
|
|
47
|
+
* Fold a task's design documents and their retained renders into the gate's reference set.
|
|
48
|
+
*
|
|
49
|
+
* Four rules, each of which the obvious shape gets wrong:
|
|
50
|
+
*
|
|
51
|
+
* A view name claimed by TWO designs is qualified with its design's label on BOTH sides, never
|
|
52
|
+
* just the second. This is the same rule slice 1 applied to a frame name repeated across pages
|
|
53
|
+
* within one file: leaving the first occurrence bare hands the plain name to whichever document
|
|
54
|
+
* happened to be read first, so re-ordering the links would silently re-point a reviewed view at
|
|
55
|
+
* a different screen. The cost is that neither qualified name matches a screenshot captured as
|
|
56
|
+
* plain "Checkout", which is correct: nothing knows which of two designs that capture is of.
|
|
57
|
+
*
|
|
58
|
+
* Within ONE design, the NEWEST render for a view wins. The artifact reads are ordered oldest
|
|
59
|
+
* first, so a later assignment overriding an earlier one is the rule, not an accident.
|
|
60
|
+
*
|
|
61
|
+
* The cap counts VIEWS, not artifacts, and is applied after the per-view reduction: capping the
|
|
62
|
+
* raw rows first would spend the budget on frames a later revision had already replaced. It is
|
|
63
|
+
* SHARED across the linked designs rather than consumed in read order (see {@link allocate}), and
|
|
64
|
+
* what it cuts is named per design, not just totalled.
|
|
65
|
+
*
|
|
66
|
+
* Emission stays in document order with each design's own frames contiguous: the allocation
|
|
67
|
+
* decides how many slots each design gets, never how the gallery reads.
|
|
68
|
+
*/
|
|
69
|
+
export declare function foldDesignReferences(documents: readonly DesignDocumentSummary[], artifacts: readonly BinaryArtifactRecord[], cap?: number): DesignReferenceFold;
|
|
70
|
+
/**
|
|
71
|
+
* Read the task's linked DESIGN documents and their retained renders, then fold them.
|
|
72
|
+
*
|
|
73
|
+
* Returns null when the task links no design at all, which is a different fact from a design that
|
|
74
|
+
* gave nothing: the first has nothing to state and the second is exactly what the summary exists
|
|
75
|
+
* to say. Two reads regardless of how many designs are attached (the batched
|
|
76
|
+
* {@link BinaryArtifactStore.listByDocuments}), because this runs on the driver path of every run
|
|
77
|
+
* whose pipeline carries the gate.
|
|
78
|
+
*
|
|
79
|
+
* The documents are read LIVE at gather time rather than off the run's recorded context, for the
|
|
80
|
+
* same reason the hand-uploaded references are: `recapture` exists so a person can attach a
|
|
81
|
+
* missing reference mid-review and see it, and a design linked while the gate is parked is that
|
|
82
|
+
* same act.
|
|
83
|
+
*/
|
|
84
|
+
export declare function resolveDesignReferences(documentRepository: DocumentRepository | undefined, store: BinaryArtifactStore | null, workspaceId: string, blockId: string): Promise<DesignReferenceFold | null>;
|
|
85
|
+
//# sourceMappingURL=visual-confirm-design-references.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visual-confirm-design-references.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/visual-confirm-design-references.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EAEnB,cAAc,EACd,kBAAkB,EACnB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EACV,oBAAoB,EAEpB,4BAA4B,EAC5B,6BAA6B,EAC9B,MAAM,wBAAwB,CAAA;AAc/B;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,KAAK,CAAA;AAE5C,qEAAqE;AACrE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,+EAA+E;AAC/E,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,eAAe,EAAE,CAAA;IAC7B,OAAO,EAAE,6BAA6B,CAAA;CACvC;AAED,wFAAwF;AACxF,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;IAChC,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,oBAAoB,GAAG,IAAI,CAAA;CAC1C;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EAAE,oBAAoB,GAAG,IAAI,EACzC,UAAU,EAAE,MAAM,GACjB,4BAA4B,GAAG,IAAI,CAoBrC;AAiED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,SAAS,qBAAqB,EAAE,EAC3C,SAAS,EAAE,SAAS,oBAAoB,EAAE,EAC1C,GAAG,SAA6B,GAC/B,mBAAmB,CAmErB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,uBAAuB,CAC3C,kBAAkB,EAAE,kBAAkB,GAAG,SAAS,EAClD,KAAK,EAAE,mBAAmB,GAAG,IAAI,EACjC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAiBrC"}
|