@telora/daemon 0.24.15 → 0.24.17
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 +5 -3
- package/dist/completion/review-exit/review-exit-phase.js +7 -3
- package/dist/completion/review-exit/review-exit-phase.js.map +1 -1
- package/dist/completion/review-exit/review-exit-rehoming.d.ts +27 -3
- package/dist/completion/review-exit/review-exit-rehoming.d.ts.map +1 -1
- package/dist/completion/review-exit/review-exit-rehoming.js +29 -5
- package/dist/completion/review-exit/review-exit-rehoming.js.map +1 -1
- package/dist/composition/execution-migrations-context.js +1 -1
- package/dist/composition/execution-spawn-process-context.d.ts +1 -1
- package/dist/composition/execution-spawn-process-context.d.ts.map +1 -1
- package/dist/composition/execution-spawn-process-context.js +3 -1
- package/dist/composition/execution-spawn-process-context.js.map +1 -1
- package/dist/focus/control-state.d.ts +12 -6
- package/dist/focus/control-state.d.ts.map +1 -1
- package/dist/focus/control-state.js +16 -9
- package/dist/focus/control-state.js.map +1 -1
- package/dist/focus-stage-lifecycle/index.js +1 -1
- package/dist/focus-stage-lifecycle/index.js.map +1 -1
- package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts +17 -7
- package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts.map +1 -1
- package/dist/focus-stage-lifecycle/wedge-watchdog.js +58 -28
- package/dist/focus-stage-lifecycle/wedge-watchdog.js.map +1 -1
- package/dist/prompt-sections/qa-author-section.d.ts +2 -1
- package/dist/prompt-sections/qa-author-section.d.ts.map +1 -1
- package/dist/prompt-sections/qa-author-section.js +7 -2
- package/dist/prompt-sections/qa-author-section.js.map +1 -1
- package/dist/prompt-sections/qa-failure-section.d.ts +29 -0
- package/dist/prompt-sections/qa-failure-section.d.ts.map +1 -0
- package/dist/prompt-sections/qa-failure-section.js +59 -0
- package/dist/prompt-sections/qa-failure-section.js.map +1 -0
- package/dist/prompt-sections/qa-tester-note.d.ts +33 -0
- package/dist/prompt-sections/qa-tester-note.d.ts.map +1 -0
- package/dist/prompt-sections/qa-tester-note.js +61 -0
- package/dist/prompt-sections/qa-tester-note.js.map +1 -0
- package/dist/prompt-sections/shared.js +1 -1
- package/dist/queries/api-client/shared.d.ts.map +1 -1
- package/dist/queries/api-client/shared.js +3 -1
- package/dist/queries/api-client/shared.js.map +1 -1
- package/dist/queries/focuses/ended-arm.d.ts +55 -7
- package/dist/queries/focuses/ended-arm.d.ts.map +1 -1
- package/dist/queries/focuses/ended-arm.js +59 -8
- package/dist/queries/focuses/ended-arm.js.map +1 -1
- package/dist/queries/focuses/focus-discovery.d.ts +18 -8
- package/dist/queries/focuses/focus-discovery.d.ts.map +1 -1
- package/dist/queries/focuses/focus-discovery.js +1 -0
- package/dist/queries/focuses/focus-discovery.js.map +1 -1
- package/dist/queries/qa-packets/focus-qa-failure.d.ts +69 -0
- package/dist/queries/qa-packets/focus-qa-failure.d.ts.map +1 -0
- package/dist/queries/qa-packets/focus-qa-failure.js +70 -0
- package/dist/queries/qa-packets/focus-qa-failure.js.map +1 -0
- package/dist/queries/qa-packets/qa-packets.d.ts +11 -3
- package/dist/queries/qa-packets/qa-packets.d.ts.map +1 -1
- package/dist/queries/qa-packets/qa-packets.js +10 -3
- package/dist/queries/qa-packets/qa-packets.js.map +1 -1
- package/dist/queries/wire-schemas/schemas.d.ts +2 -0
- package/dist/queries/wire-schemas/schemas.d.ts.map +1 -1
- package/dist/queries/wire-schemas/schemas.js +10 -3
- package/dist/queries/wire-schemas/schemas.js.map +1 -1
- package/dist/resolvers/delivery-acceptance-criteria.d.ts +23 -1
- package/dist/resolvers/delivery-acceptance-criteria.d.ts.map +1 -1
- package/dist/resolvers/delivery-acceptance-criteria.js +52 -8
- package/dist/resolvers/delivery-acceptance-criteria.js.map +1 -1
- package/dist/session/session-lineage.d.ts.map +1 -1
- package/dist/session/session-lineage.js +2 -1
- package/dist/session/session-lineage.js.map +1 -1
- package/dist/spawn/prompt-assembly.d.ts +27 -3
- package/dist/spawn/prompt-assembly.d.ts.map +1 -1
- package/dist/spawn/prompt-assembly.js +28 -34
- package/dist/spawn/prompt-assembly.js.map +1 -1
- package/dist/supervision/recorded-new-intent.d.ts +49 -0
- package/dist/supervision/recorded-new-intent.d.ts.map +1 -1
- package/dist/supervision/recorded-new-intent.js +10 -2
- package/dist/supervision/recorded-new-intent.js.map +1 -1
- package/dist/testing/fixtures/api-client.js +1 -1
- package/dist/testing/fixtures/index.js +1 -1
- package/dist/types/index.js +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ended-arm.d.ts","sourceRoot":"","sources":["../../../src/queries/focuses/ended-arm.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ended-arm.d.ts","sourceRoot":"","sources":["../../../src/queries/focuses/ended-arm.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;GAaG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,6BAA6B,wBAAwB,CAAC;AAEnE;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,0CAA0C,qCAAqC,CAAC;AAE7F,iFAAiF;AACjF,MAAM,MAAM,cAAc,GACtB,OAAO,6BAA6B,GACpC,OAAO,0CAA0C,CAAC;AAEtD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAE9E;AAED,4FAA4F;AAC5F,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,kBAAkB,EAAE,mBAAmB,EAAE,CAAC;IAC1C,gGAAgG;IAChG,KAAK,EAAE,MAAM,CAAC;CACf;AAMD;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,OAAO,GAAG,uBAAuB,GAAG,IAAI,CAY5F;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,OAAO,6BAA6B,CAAC;IAC7C,MAAM,EAAE;QACN,mEAAmE;QACnE,gBAAgB,EAAE,MAAM,CAAC;QACzB,sDAAsD;QACtD,GAAG,EAAE,MAAM,CAAC;QACZ,yFAAyF;QACzF,oBAAoB,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAC,CAAC;QACnG;;;;;WAKG;QACH,YAAY,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAC,CAAC;KAC5F,CAAC;CACH"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
2
|
// Pinned by: packages/daemon/src/completion/review-cycle-budget/review-cycle-cap-regression.test.ts,
|
|
3
|
-
// packages/daemon/src/completion/review-cycle-budget/review-cycle-churn-meter.test.ts
|
|
3
|
+
// packages/daemon/src/completion/review-cycle-budget/review-cycle-churn-meter.test.ts,
|
|
4
|
+
// packages/daemon/src/focus/disarm-reaper.test.ts, packages/daemon/src/queries/focuses/ended-arm.test.ts
|
|
4
5
|
// PINNED-BY-END
|
|
5
6
|
/**
|
|
6
7
|
* The ENDED-ARM record: the shape the daemon sends with a release to state WHY
|
|
@@ -10,7 +11,9 @@
|
|
|
10
11
|
* SHAPE with two readers on different sides of the release -- the writer
|
|
11
12
|
* (focuses.ts releaseFocusArm) and the crossing that composes it
|
|
12
13
|
* (completion/review-cycle-budget/review-cycle-cap.ts) -- and focuses.ts sits at the file-size
|
|
13
|
-
* ceiling.
|
|
14
|
+
* ceiling. It is also the daemon's ONE vocabulary for arm_ended_reason: every
|
|
15
|
+
* reader (the disarm reaper, the wedge diagnosis) compares against the
|
|
16
|
+
* constants here by value.
|
|
14
17
|
*
|
|
15
18
|
* @module queries/focuses/ended-arm
|
|
16
19
|
*/
|
|
@@ -18,18 +21,66 @@
|
|
|
18
21
|
* The ended-arm record that rides a release, stating WHY the daemon ended the
|
|
19
22
|
* arm and what was still outstanding.
|
|
20
23
|
*
|
|
21
|
-
* ONE reason
|
|
22
|
-
* release (the edge refuses it otherwise, handlers/focus/arm-ended.ts)
|
|
23
|
-
* role-less focus is never readable without its reason, and so the record
|
|
24
|
-
* never be mistaken for the operator stop (operator_stopped_at, which this
|
|
25
|
-
* does not write)
|
|
24
|
+
* The DAEMON writes ONE reason: 'review_budget_spent'. It is sent in the SAME
|
|
25
|
+
* call as the release (the edge refuses it otherwise, handlers/focus/arm-ended.ts)
|
|
26
|
+
* so the role-less focus is never readable without its reason, and so the record
|
|
27
|
+
* can never be mistaken for the operator stop (operator_stopped_at, which this
|
|
28
|
+
* path does not write).
|
|
26
29
|
*
|
|
27
30
|
* `detail` carries only what the DAEMON counted. The edge adds the acceptance
|
|
28
31
|
* criteria the last verdict-bearing review called not_met -- it owns the shape
|
|
29
32
|
* that record lives in -- so this daemon never parses a review summary.
|
|
30
33
|
*
|
|
31
|
-
* ARM_ENDED_REVIEW_BUDGET_SPENT is
|
|
34
|
+
* ARM_ENDED_REVIEW_BUDGET_SPENT is a value the DB CHECK constraint on
|
|
32
35
|
* product_focuses.arm_ended_reason allows and the wedge diagnosis reads back.
|
|
33
36
|
*/
|
|
34
37
|
export const ARM_ENDED_REVIEW_BUDGET_SPENT = 'review_budget_spent';
|
|
38
|
+
/**
|
|
39
|
+
* The LIFECYCLE end: the run finished every delivery its arm covered while one
|
|
40
|
+
* or more deliveries recorded as new intent under it still rest at planning.
|
|
41
|
+
* Written ONLY by SQL -- the lifecycle arm clear (auto_terminate_focus_team /
|
|
42
|
+
* clear_focus_team_on_review_window_close, migration 20261019155414) in the
|
|
43
|
+
* same write that nulls the role -- and never by this daemon (the edge refuses
|
|
44
|
+
* it on daemon_update_focus_status). The next arm clears it and promotes the
|
|
45
|
+
* recorded deliveries.
|
|
46
|
+
*
|
|
47
|
+
* Readers treat it as what it is: a run that FINISHED and a human re-arms --
|
|
48
|
+
* not an operator stop, and not a spent budget. Compare by value against these
|
|
49
|
+
* constants; never read "any non-null reason" as one meaning.
|
|
50
|
+
*/
|
|
51
|
+
export const ARM_ENDED_RUN_FINISHED_RECORDED_WORK_WAITS = 'run_finished_recorded_work_waits';
|
|
52
|
+
/**
|
|
53
|
+
* True when the recorded reason is the LIFECYCLE end -- the run finished its
|
|
54
|
+
* covered work and the recorded work waits for the next arm. False for a spent
|
|
55
|
+
* budget, for no reason at all, and for any value this daemon does not know
|
|
56
|
+
* (an unknown reason is never read as a finish).
|
|
57
|
+
*/
|
|
58
|
+
export function isRunFinishedArmEnd(reason) {
|
|
59
|
+
return reason === ARM_ENDED_RUN_FINISHED_RECORDED_WORK_WAITS;
|
|
60
|
+
}
|
|
61
|
+
function isRecord(value) {
|
|
62
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Parse a 'run_finished_recorded_work_waits' arm_ended_detail (JSONB) into its
|
|
66
|
+
* typed shape. Returns null when the value is not that shape at all (absent,
|
|
67
|
+
* not an object, or no recordedDeliveries array). Entries without a string id
|
|
68
|
+
* are dropped; a missing name reads as the id, so a delivery is never silently
|
|
69
|
+
* unnamed. A missing or non-numeric count falls back to the parsed list length.
|
|
70
|
+
*/
|
|
71
|
+
export function parseRecordedWorkWaitsDetail(detail) {
|
|
72
|
+
if (!isRecord(detail) || !Array.isArray(detail.recordedDeliveries))
|
|
73
|
+
return null;
|
|
74
|
+
const recordedDeliveries = [];
|
|
75
|
+
for (const entry of detail.recordedDeliveries) {
|
|
76
|
+
if (!isRecord(entry) || typeof entry.id !== 'string' || entry.id === '')
|
|
77
|
+
continue;
|
|
78
|
+
const name = typeof entry.name === 'string' && entry.name !== '' ? entry.name : entry.id;
|
|
79
|
+
recordedDeliveries.push({ id: entry.id, name });
|
|
80
|
+
}
|
|
81
|
+
const count = typeof detail.count === 'number' && Number.isFinite(detail.count)
|
|
82
|
+
? detail.count
|
|
83
|
+
: recordedDeliveries.length;
|
|
84
|
+
return { recordedDeliveries, count };
|
|
85
|
+
}
|
|
35
86
|
//# sourceMappingURL=ended-arm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ended-arm.js","sourceRoot":"","sources":["../../../src/queries/focuses/ended-arm.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,qGAAqG;AACrG,
|
|
1
|
+
{"version":3,"file":"ended-arm.js","sourceRoot":"","sources":["../../../src/queries/focuses/ended-arm.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,qGAAqG;AACrG,yFAAyF;AACzF,2GAA2G;AAC3G,gBAAgB;AAEhB;;;;;;;;;;;;;GAaG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,qBAAqB,CAAC;AAEnE;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,0CAA0C,GAAG,kCAAkC,CAAC;AAO7F;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAiC;IACnE,OAAO,MAAM,KAAK,0CAA0C,CAAC;AAC/D,CAAC;AAmBD,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,4BAA4B,CAAC,MAAe;IAC1D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC;QAAE,OAAO,IAAI,CAAC;IAChF,MAAM,kBAAkB,GAA0B,EAAE,CAAC;IACrD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE;YAAE,SAAS;QAClF,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACzF,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;QAC7E,CAAC,CAAC,MAAM,CAAC,KAAK;QACd,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC;IAC9B,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC;AACvC,CAAC"}
|
|
@@ -182,19 +182,29 @@ export interface ActiveFocusRow {
|
|
|
182
182
|
*/
|
|
183
183
|
first_armed_at: string | null;
|
|
184
184
|
/**
|
|
185
|
-
* WHY this focus's arm ended, when
|
|
186
|
-
* (product_focuses.arm_ended_reason).
|
|
187
|
-
*
|
|
188
|
-
*
|
|
189
|
-
*
|
|
190
|
-
*
|
|
191
|
-
*
|
|
192
|
-
*
|
|
185
|
+
* WHY this focus's arm ended, when a machine end is recorded
|
|
186
|
+
* (product_focuses.arm_ended_reason). Values live in queries/focuses/ended-arm.ts:
|
|
187
|
+
* 'review_budget_spent' => the review loop reached TELORA_REVIEW_CYCLE_CAP
|
|
188
|
+
* without converging and the daemon released the arm; further cycles require
|
|
189
|
+
* a NEW arm. 'run_finished_recorded_work_waits' => the LIFECYCLE clear released
|
|
190
|
+
* the arm with every covered delivery terminal while deliveries recorded as
|
|
191
|
+
* new intent wait at planning for the next arm -- a finish, not a stop.
|
|
192
|
+
* Null => no machine end recorded: the arm is live, was never made, ended at a
|
|
193
|
+
* lifecycle clear that discounted nothing, or was an operator stop
|
|
194
|
+
* (operator_stopped_at). Null on backends predating the column. Read by the
|
|
195
|
+
* disarm reaper and the wedge diagnosis, by value.
|
|
193
196
|
*
|
|
194
197
|
* OPTIONAL: `undefined` and `null` mean the same thing here (no machine end),
|
|
195
198
|
* so a row built without it reads exactly as it did before the column existed.
|
|
196
199
|
*/
|
|
197
200
|
arm_ended_reason?: string | null;
|
|
201
|
+
/**
|
|
202
|
+
* What the ended arm left outstanding (product_focuses.arm_ended_detail),
|
|
203
|
+
* shape keyed by arm_ended_reason; JSONB, so `unknown` until
|
|
204
|
+
* queries/focuses/ended-arm.ts parses it. OPTIONAL, null-equivalent like the
|
|
205
|
+
* reason.
|
|
206
|
+
*/
|
|
207
|
+
arm_ended_detail?: unknown;
|
|
198
208
|
/**
|
|
199
209
|
* The delivery ids this focus HELD when its CURRENT arm was taken
|
|
200
210
|
* (product_focuses.armed_baseline_delivery_ids, stamped on the arm edge).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-discovery.d.ts","sourceRoot":"","sources":["../../../src/queries/focuses/focus-discovery.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"focus-discovery.d.ts","sourceRoot":"","sources":["../../../src/queries/focuses/focus-discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -103,6 +103,7 @@ export async function getActiveFocuses(_organizationId, productId) {
|
|
|
103
103
|
operator_stopped_at: s.operatorStoppedAt ?? null,
|
|
104
104
|
first_armed_at: s.firstArmedAt ?? null,
|
|
105
105
|
arm_ended_reason: s.armEndedReason ?? null,
|
|
106
|
+
arm_ended_detail: s.armEndedDetail ?? null,
|
|
106
107
|
armed_baseline_delivery_ids: s.armedBaselineDeliveryIds ?? null,
|
|
107
108
|
current_workflow_stage_id: s.currentWorkflowStageId ?? null,
|
|
108
109
|
review_requested_at: s.reviewRequestedAt ?? null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-discovery.js","sourceRoot":"","sources":["../../../src/queries/focuses/focus-discovery.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"focus-discovery.js","sourceRoot":"","sources":["../../../src/queries/focuses/focus-discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The QA failure a coding spawn is sent back with: product-api focus_qa_get
|
|
3
|
+
* (supabase/functions/product-api/handlers/focus/qa.ts; org-scoped there by
|
|
4
|
+
* the caller's organization, a focus outside it a 404), narrowed to what the
|
|
5
|
+
* coding team's prompt shows (prompt-sections/qa-failure-section.ts).
|
|
6
|
+
*
|
|
7
|
+
* A focus is QA-FAILED when its qa_state is failed AND its current packet
|
|
8
|
+
* (qa_packet_id) carries a failed verdict. Only then is there anything to
|
|
9
|
+
* show: the packet's FAILED and NOT-RUN cases, in packet order, each with the
|
|
10
|
+
* result and the note the tester recorded. A passed case is left out.
|
|
11
|
+
*
|
|
12
|
+
* NEVER THROWS. The read rides the spawn, and a spawn must not fail because
|
|
13
|
+
* QA could not be read: a failed read is returned as `unreadable` with its
|
|
14
|
+
* reason, which the section names to the team instead of guessing either way.
|
|
15
|
+
*/
|
|
16
|
+
import { z } from 'zod';
|
|
17
|
+
import { type QaCaseResult } from '../../types/qa-packet.js';
|
|
18
|
+
declare const FocusQaGetSchema: z.ZodObject<{
|
|
19
|
+
qa: z.ZodObject<{
|
|
20
|
+
state: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
|
|
21
|
+
packet: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
22
|
+
packetId: z.ZodString;
|
|
23
|
+
verdict: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
|
|
24
|
+
cases: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
25
|
+
id: z.ZodString;
|
|
26
|
+
criterion: z.ZodString;
|
|
27
|
+
path: z.ZodString;
|
|
28
|
+
expected: z.ZodString;
|
|
29
|
+
result: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
30
|
+
failed: "failed";
|
|
31
|
+
passed: "passed";
|
|
32
|
+
not_run: "not_run";
|
|
33
|
+
}>>>>;
|
|
34
|
+
note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
35
|
+
}, z.core.$loose>>>>;
|
|
36
|
+
}, z.core.$loose>>>>;
|
|
37
|
+
}, z.core.$loose>;
|
|
38
|
+
}, z.core.$loose>;
|
|
39
|
+
/** One case the tester did not pass: its place in the packet, what it checked, the result and the note. */
|
|
40
|
+
export interface QaUnpassedCase {
|
|
41
|
+
/** 1-based position in the packet's case order. */
|
|
42
|
+
number: number;
|
|
43
|
+
id: string;
|
|
44
|
+
criterion: string;
|
|
45
|
+
path: string;
|
|
46
|
+
expected: string;
|
|
47
|
+
result: Extract<QaCaseResult, 'failed' | 'not_run'>;
|
|
48
|
+
/** The tester's note, verbatim (quoted when rendered); null when they wrote none. */
|
|
49
|
+
note: string | null;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* What a coding spawn knows of its focus's QA: failed (with the unpassed
|
|
53
|
+
* cases), or unreadable (with why). A focus that is not QA-failed reads as null.
|
|
54
|
+
*/
|
|
55
|
+
export type FocusQaFailureRead = {
|
|
56
|
+
kind: 'failed';
|
|
57
|
+
packetId: string;
|
|
58
|
+
cases: QaUnpassedCase[];
|
|
59
|
+
} | {
|
|
60
|
+
kind: 'unreadable';
|
|
61
|
+
reason: string;
|
|
62
|
+
};
|
|
63
|
+
type FocusQaGet = z.infer<typeof FocusQaGetSchema>;
|
|
64
|
+
/** The QA failure focus_qa_get describes, or null when the focus is not QA-failed. Pure. */
|
|
65
|
+
export declare function qaFailureOf(read: FocusQaGet): FocusQaFailureRead | null;
|
|
66
|
+
/** The focus's QA failure, null when it is not QA-failed, or `unreadable` naming why the read failed. Never throws. */
|
|
67
|
+
export declare function readFocusQaFailure(focusId: string): Promise<FocusQaFailureRead | null>;
|
|
68
|
+
export {};
|
|
69
|
+
//# sourceMappingURL=focus-qa-failure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"focus-qa-failure.d.ts","sourceRoot":"","sources":["../../../src/queries/qa-packets/focus-qa-failure.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAmC,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAe9F,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;iBASN,CAAC;AAEjB,2GAA2G;AAC3G,MAAM,WAAW,cAAc;IAC7B,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAC;IACpD,qFAAqF;IACrF,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,cAAc,EAAE,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3C,KAAK,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEnD,4FAA4F;AAC5F,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,kBAAkB,GAAG,IAAI,CAWvE;AAED,uHAAuH;AACvH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAM5F"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
+
// Pinned by: packages/daemon/src/prompt-sections/qa-failure-section.test.ts,
|
|
3
|
+
// packages/daemon/src/queries/qa-packets/focus-qa-failure.test.ts,
|
|
4
|
+
// packages/daemon/src/spawn/qa-failure-spawn.test.ts
|
|
5
|
+
// PINNED-BY-END
|
|
6
|
+
/**
|
|
7
|
+
* The QA failure a coding spawn is sent back with: product-api focus_qa_get
|
|
8
|
+
* (supabase/functions/product-api/handlers/focus/qa.ts; org-scoped there by
|
|
9
|
+
* the caller's organization, a focus outside it a 404), narrowed to what the
|
|
10
|
+
* coding team's prompt shows (prompt-sections/qa-failure-section.ts).
|
|
11
|
+
*
|
|
12
|
+
* A focus is QA-FAILED when its qa_state is failed AND its current packet
|
|
13
|
+
* (qa_packet_id) carries a failed verdict. Only then is there anything to
|
|
14
|
+
* show: the packet's FAILED and NOT-RUN cases, in packet order, each with the
|
|
15
|
+
* result and the note the tester recorded. A passed case is left out.
|
|
16
|
+
*
|
|
17
|
+
* NEVER THROWS. The read rides the spawn, and a spawn must not fail because
|
|
18
|
+
* QA could not be read: a failed read is returned as `unreadable` with its
|
|
19
|
+
* reason, which the section names to the team instead of guessing either way.
|
|
20
|
+
*/
|
|
21
|
+
import { z } from 'zod';
|
|
22
|
+
import { QA_STATE } from '@telora/daemon-core';
|
|
23
|
+
import { callApiValidated } from '../api-client/shared.js';
|
|
24
|
+
import { QA_CASE_RESULT, QA_CASE_RESULTS } from '../../types/qa-packet.js';
|
|
25
|
+
import { QaCaseNoteWireSchema } from './qa-packets.js';
|
|
26
|
+
const nullableString = () => z.string().nullable().optional().default(null);
|
|
27
|
+
/** One case of focus_qa_get's packet view: the fields the section shows, its result and its note. */
|
|
28
|
+
const FocusQaCaseViewSchema = z.object({
|
|
29
|
+
id: z.string(),
|
|
30
|
+
criterion: z.string(),
|
|
31
|
+
path: z.string(),
|
|
32
|
+
expected: z.string(),
|
|
33
|
+
result: z.enum(QA_CASE_RESULTS).nullable().optional().default(null),
|
|
34
|
+
note: QaCaseNoteWireSchema,
|
|
35
|
+
}).passthrough();
|
|
36
|
+
const FocusQaGetSchema = z.object({
|
|
37
|
+
qa: z.object({
|
|
38
|
+
state: nullableString(),
|
|
39
|
+
packet: z.object({
|
|
40
|
+
packetId: z.string(),
|
|
41
|
+
verdict: nullableString(),
|
|
42
|
+
cases: z.array(FocusQaCaseViewSchema).optional().default([]),
|
|
43
|
+
}).passthrough().nullable().optional().default(null),
|
|
44
|
+
}).passthrough(),
|
|
45
|
+
}).passthrough();
|
|
46
|
+
/** The QA failure focus_qa_get describes, or null when the focus is not QA-failed. Pure. */
|
|
47
|
+
export function qaFailureOf(read) {
|
|
48
|
+
const { state, packet } = read.qa;
|
|
49
|
+
if (state !== QA_STATE.FAILED || !packet || packet.verdict !== QA_STATE.FAILED)
|
|
50
|
+
return null;
|
|
51
|
+
const cases = [];
|
|
52
|
+
packet.cases.forEach((c, i) => {
|
|
53
|
+
// A judged packet has a result for every case; one without reads as not run.
|
|
54
|
+
const result = c.result ?? QA_CASE_RESULT.NOT_RUN;
|
|
55
|
+
if (result === QA_CASE_RESULT.PASSED)
|
|
56
|
+
return;
|
|
57
|
+
cases.push({ number: i + 1, id: c.id, criterion: c.criterion, path: c.path, expected: c.expected, result, note: c.note ?? null });
|
|
58
|
+
});
|
|
59
|
+
return { kind: 'failed', packetId: packet.packetId, cases };
|
|
60
|
+
}
|
|
61
|
+
/** The focus's QA failure, null when it is not QA-failed, or `unreadable` naming why the read failed. Never throws. */
|
|
62
|
+
export async function readFocusQaFailure(focusId) {
|
|
63
|
+
try {
|
|
64
|
+
return qaFailureOf(await callApiValidated('focus_qa_get', FocusQaGetSchema, { focusId }));
|
|
65
|
+
}
|
|
66
|
+
catch (err) {
|
|
67
|
+
return { kind: 'unreadable', reason: err instanceof Error ? err.message : String(err) };
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=focus-qa-failure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"focus-qa-failure.js","sourceRoot":"","sources":["../../../src/queries/qa-packets/focus-qa-failure.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
* breaker armed work reads or writes through.
|
|
7
7
|
*
|
|
8
8
|
* A re-entry candidate (its previous QA cycle failed) carries that cycle's
|
|
9
|
-
* cases with the result a person recorded for each
|
|
10
|
-
* way the pass reads them.
|
|
9
|
+
* cases with the result a person recorded for each, and the note they wrote
|
|
10
|
+
* with it; qaPreviousCases is the one way the pass reads them.
|
|
11
11
|
*/
|
|
12
12
|
import { z } from 'zod';
|
|
13
13
|
import { type QaAuthorMode, type QaPacketStatus } from '../../types/qa-packet.js';
|
|
@@ -30,7 +30,13 @@ declare const QaCaseWireSchema: z.ZodObject<{
|
|
|
30
30
|
}, z.core.$loose>;
|
|
31
31
|
/** One stored QA case. */
|
|
32
32
|
export type QaCaseWire = z.infer<typeof QaCaseWireSchema>;
|
|
33
|
-
/**
|
|
33
|
+
/**
|
|
34
|
+
* The note a tester wrote with a case's result (focus_qa_packets.case_notes);
|
|
35
|
+
* null or absent when there is none (an edge that predates notes sends no
|
|
36
|
+
* field). Text only -- a prompt quotes it through prompt-sections/qa-tester-note.ts.
|
|
37
|
+
*/
|
|
38
|
+
export declare const QaCaseNoteWireSchema: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
39
|
+
/** One case of the previous QA cycle's packet, with the result a person recorded for it and their note. */
|
|
34
40
|
declare const QaPreviousCaseWireSchema: z.ZodObject<{
|
|
35
41
|
id: z.ZodString;
|
|
36
42
|
criterion: z.ZodString;
|
|
@@ -51,6 +57,7 @@ declare const QaPreviousCaseWireSchema: z.ZodObject<{
|
|
|
51
57
|
passed: "passed";
|
|
52
58
|
not_run: "not_run";
|
|
53
59
|
}>;
|
|
60
|
+
note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
54
61
|
}, z.core.$loose>;
|
|
55
62
|
/** One previous case and its recorded result. */
|
|
56
63
|
export type QaPreviousCaseWire = z.infer<typeof QaPreviousCaseWireSchema>;
|
|
@@ -116,6 +123,7 @@ declare const QaPacketCandidateSchema: z.ZodObject<{
|
|
|
116
123
|
passed: "passed";
|
|
117
124
|
not_run: "not_run";
|
|
118
125
|
}>;
|
|
126
|
+
note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
119
127
|
}, z.core.$loose>>>>;
|
|
120
128
|
}, z.core.$loose>>>>;
|
|
121
129
|
}, z.core.$loose>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qa-packets.d.ts","sourceRoot":"","sources":["../../../src/queries/qa-packets/qa-packets.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAmC,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAInH,0GAA0G;AAC1G,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;iBAWN,CAAC;AAEjB,0BAA0B;AAC1B,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,
|
|
1
|
+
{"version":3,"file":"qa-packets.d.ts","sourceRoot":"","sources":["../../../src/queries/qa-packets/qa-packets.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAmC,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAInH,0GAA0G;AAC1G,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;iBAWN,CAAC;AAEjB,0BAA0B;AAC1B,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,2CAAmC,CAAC;AAErE,2GAA2G;AAC3G,QAAA,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;iBAG5B,CAAC;AAEH,iDAAiD;AACjD,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAgB1E,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuBb,CAAC;AAEjB,wDAAwD;AACxD,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAMxE;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,GAAG,kBAAkB,EAAE,CAK1G;AAED,0HAA0H;AAC1H,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAG3F;AAED,gGAAgG;AAChG,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,cAAc,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAOD,8FAA8F;AAC9F,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,0EAA0E;AAC1E,wBAAsB,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAGtF"}
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
* breaker armed work reads or writes through.
|
|
13
13
|
*
|
|
14
14
|
* A re-entry candidate (its previous QA cycle failed) carries that cycle's
|
|
15
|
-
* cases with the result a person recorded for each
|
|
16
|
-
* way the pass reads them.
|
|
15
|
+
* cases with the result a person recorded for each, and the note they wrote
|
|
16
|
+
* with it; qaPreviousCases is the one way the pass reads them.
|
|
17
17
|
*/
|
|
18
18
|
import { z } from 'zod';
|
|
19
19
|
import { callApiValidated } from '../api-client/shared.js';
|
|
@@ -32,9 +32,16 @@ const QaCaseWireSchema = z.object({
|
|
|
32
32
|
priorCaseId: z.string().optional(),
|
|
33
33
|
priorResult: z.enum(QA_CASE_RESULTS).optional(),
|
|
34
34
|
}).passthrough();
|
|
35
|
-
/**
|
|
35
|
+
/**
|
|
36
|
+
* The note a tester wrote with a case's result (focus_qa_packets.case_notes);
|
|
37
|
+
* null or absent when there is none (an edge that predates notes sends no
|
|
38
|
+
* field). Text only -- a prompt quotes it through prompt-sections/qa-tester-note.ts.
|
|
39
|
+
*/
|
|
40
|
+
export const QaCaseNoteWireSchema = z.string().nullable().optional();
|
|
41
|
+
/** One case of the previous QA cycle's packet, with the result a person recorded for it and their note. */
|
|
36
42
|
const QaPreviousCaseWireSchema = QaCaseWireSchema.extend({
|
|
37
43
|
result: z.enum(QA_CASE_RESULTS),
|
|
44
|
+
note: QaCaseNoteWireSchema,
|
|
38
45
|
});
|
|
39
46
|
const QaCandidateDeliverySchema = z.object({
|
|
40
47
|
deliveryId: z.string(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qa-packets.js","sourceRoot":"","sources":["../../../src/queries/qa-packets/qa-packets.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,4EAA4E;AAC5E,oGAAoG;AACpG,gEAAgE;AAChE,8DAA8D;AAC9D,gBAAgB;AAEhB;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,eAAe,EAA0C,MAAM,0BAA0B,CAAC;AAEnH,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5E,0GAA0G;AAC1G,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC1B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE;CAChD,CAAC,CAAC,WAAW,EAAE,CAAC;AAKjB,
|
|
1
|
+
{"version":3,"file":"qa-packets.js","sourceRoot":"","sources":["../../../src/queries/qa-packets/qa-packets.ts"],"names":[],"mappings":"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"}
|
|
@@ -500,6 +500,7 @@ export declare const ActiveFocusSchema: z.ZodObject<{
|
|
|
500
500
|
operatorStoppedAt: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
|
|
501
501
|
firstArmedAt: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
|
|
502
502
|
armEndedReason: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
|
|
503
|
+
armEndedDetail: z.ZodDefault<z.ZodOptional<z.ZodUnknown>>;
|
|
503
504
|
armedBaselineDeliveryIds: z.ZodDefault<z.ZodOptional<z.ZodUnknown>>;
|
|
504
505
|
currentWorkflowStageId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
505
506
|
reviewRequestedAt: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
|
|
@@ -583,6 +584,7 @@ export declare const ActiveFocusesResponseSchema: z.ZodObject<{
|
|
|
583
584
|
operatorStoppedAt: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
|
|
584
585
|
firstArmedAt: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
|
|
585
586
|
armEndedReason: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
|
|
587
|
+
armEndedDetail: z.ZodDefault<z.ZodOptional<z.ZodUnknown>>;
|
|
586
588
|
armedBaselineDeliveryIds: z.ZodDefault<z.ZodOptional<z.ZodUnknown>>;
|
|
587
589
|
currentWorkflowStageId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
588
590
|
reviewRequestedAt: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/queries/wire-schemas/schemas.ts"],"names":[],"mappings":"AAeA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AA4B9D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;iBAAmC,CAAC;AAEpE,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;iBAE1B,CAAC;AAEjB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;iBAAgC,CAAC;AAE9D,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;iBAEtB,CAAC;AAIjB,eAAO,MAAM,iBAAiB;;;;;;;;;;;iBAWd,CAAC;AAEjB,eAAO,MAAM,mBAAmB;;;;;;iBAKhB,CAAC;AAEjB,eAAO,MAAM,6BAA6B;;;;;;;;iBAE1B,CAAC;AAIjB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgC/B,CAAC;AAmDH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAU1B,CAAC;AAEjB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAIf,CAAC;AAEjB,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAEzB,CAAC;AAEjB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAyEb,CAAC;AAEjB,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAEvB,CAAC;AAEjB;;;;;;;;GAQG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;iBAkBzC,CAAC;AAEH;;sFAEsF;AACtF,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAE/F,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/queries/wire-schemas/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -313,10 +313,17 @@ export const ActiveFocusSchema = z.object({
|
|
|
313
313
|
firstArmedAt: nullableString.optional().default(null),
|
|
314
314
|
// WHY the arm ended (product_focuses.arm_ended_reason): 'review_budget_spent'
|
|
315
315
|
// => the daemon released the arm because the review loop reached its cycle cap
|
|
316
|
-
// without converging
|
|
317
|
-
//
|
|
318
|
-
//
|
|
316
|
+
// without converging; 'run_finished_recorded_work_waits' => the lifecycle clear
|
|
317
|
+
// released it with the covered work done while recorded new intent waits for
|
|
318
|
+
// the next arm. NULL => no machine end recorded (live arm, never armed, a
|
|
319
|
+
// lifecycle clear that discounted nothing, or operator stop). Absent on
|
|
320
|
+
// backends predating the column -> null, which reads as "no machine end" --
|
|
321
|
+
// the pre-change behaviour. Values: queries/focuses/ended-arm.ts.
|
|
319
322
|
armEndedReason: nullableString.optional().default(null),
|
|
323
|
+
// What the ended arm left outstanding (product_focuses.arm_ended_detail), shape
|
|
324
|
+
// keyed by armEndedReason. JSONB, so typed loosely here and interpreted only by
|
|
325
|
+
// queries/focuses/ended-arm.ts. Absent on backends predating the field -> null.
|
|
326
|
+
armEndedDetail: z.unknown().optional().default(null),
|
|
320
327
|
// The delivery ids the focus HELD when its CURRENT arm was taken
|
|
321
328
|
// (product_focuses.armed_baseline_delivery_ids). This is what lets the daemon
|
|
322
329
|
// tell a delivery the arm COVERS from one RECORDED as new intent under it: a
|