wicked-crew 0.9.2 → 0.9.3
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/api/delivery-assurance.d.ts +22 -1
- package/dist/api/delivery-assurance.d.ts.map +1 -1
- package/dist/api/delivery-assurance.js +66 -2
- package/dist/api/delivery-assurance.js.map +1 -1
- package/dist/api/routes.d.ts +148 -8
- package/dist/api/routes.d.ts.map +1 -1
- package/dist/api/routes.js +54 -16
- package/dist/api/routes.js.map +1 -1
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +31 -31
- package/dist/api/server.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +32 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/service.js +1 -1
- package/dist/cli/service.js.map +1 -1
- package/dist/core/adapter.d.ts +6 -3
- package/dist/core/adapter.d.ts.map +1 -1
- package/dist/core/adapter.js +36 -17
- package/dist/core/adapter.js.map +1 -1
- package/dist/core/ado-deliver-helper.d.ts +5 -0
- package/dist/core/ado-deliver-helper.d.ts.map +1 -1
- package/dist/core/ado-deliver-helper.js +50 -2
- package/dist/core/ado-deliver-helper.js.map +1 -1
- package/dist/core/deliver-credentials.d.ts +8 -4
- package/dist/core/deliver-credentials.d.ts.map +1 -1
- package/dist/core/deliver-credentials.js +25 -7
- package/dist/core/deliver-credentials.js.map +1 -1
- package/dist/core/deliver-text.d.ts +8 -0
- package/dist/core/deliver-text.d.ts.map +1 -1
- package/dist/core/deliver-text.js +16 -0
- package/dist/core/deliver-text.js.map +1 -1
- package/dist/core/deliver.d.ts +22 -18
- package/dist/core/deliver.d.ts.map +1 -1
- package/dist/core/deliver.js +168 -79
- package/dist/core/deliver.js.map +1 -1
- package/dist/core/types.d.ts +7 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/interactive/chat-events.d.ts +11 -20
- package/dist/interactive/chat-events.d.ts.map +1 -1
- package/dist/interactive/chat-events.js +69 -108
- package/dist/interactive/chat-events.js.map +1 -1
- package/dist/interactive/draft-events.d.ts +13 -46
- package/dist/interactive/draft-events.d.ts.map +1 -1
- package/dist/interactive/draft-events.js +81 -130
- package/dist/interactive/draft-events.js.map +1 -1
- package/dist/interactive/draft-skill.d.ts +11 -19
- package/dist/interactive/draft-skill.d.ts.map +1 -1
- package/dist/interactive/draft-skill.js +16 -31
- package/dist/interactive/draft-skill.js.map +1 -1
- package/dist/interactive/edit-events.d.ts +11 -21
- package/dist/interactive/edit-events.d.ts.map +1 -1
- package/dist/interactive/edit-events.js +70 -83
- package/dist/interactive/edit-events.js.map +1 -1
- package/dist/interactive/run-units.d.ts +91 -0
- package/dist/interactive/run-units.d.ts.map +1 -0
- package/dist/interactive/run-units.js +149 -0
- package/dist/interactive/run-units.js.map +1 -0
- package/dist/skills/core-closure.d.ts +26 -0
- package/dist/skills/core-closure.d.ts.map +1 -1
- package/dist/skills/core-closure.js +45 -0
- package/dist/skills/core-closure.js.map +1 -1
- package/dist/skills/phase-skill-gaps.d.ts +16 -71
- package/dist/skills/phase-skill-gaps.d.ts.map +1 -1
- package/dist/skills/phase-skill-gaps.js +16 -145
- package/dist/skills/phase-skill-gaps.js.map +1 -1
- package/dist/studio/assets/{index-BLYKfepE.css → index-BGfFmWw4.css} +1 -1
- package/dist/studio/assets/{index-BbXtfDnB.js → index-BMRUMU4X.js} +112 -112
- package/dist/studio/editors/wicked-page/editor.json +1 -1
- package/dist/studio/editors/wicked-page/index.html +1 -1
- package/dist/studio/index.html +2 -2
- package/dist/studio/testid-inventory.json +83 -5
- package/endpoint-manifest.json +1 -1
- package/package.json +3 -3
|
@@ -9,20 +9,41 @@
|
|
|
9
9
|
* delivery — at the deliver gate's approve, at a gated resume, and at a post-hoc lift. Nothing is
|
|
10
10
|
* pushed, and a deliver gate stays open for the approve to be retried once the PASS is recorded.
|
|
11
11
|
*
|
|
12
|
+
* QE-IN-APP-WORKFLOWS (wicked-core-ts >= 0.7.49): the contract also carries the run's DECISION
|
|
13
|
+
* (`assurance.qe`): `required`, `waived` (the run's diff scored in the lowest band on every
|
|
14
|
+
* dimension) or `skipped` (the operator's explicit word at launch, with a reason). Only `required`
|
|
15
|
+
* reads the ledger; a waived or skipped delivery is not refused, and its check says which and why.
|
|
16
|
+
* A contract with no decision (an older engine) that requires `qe_acceptance` is `required`.
|
|
17
|
+
*
|
|
12
18
|
* EX-04: a post-hoc lift (`POST /runs/:id/deliver`) has no engine verification behind the tree it
|
|
13
19
|
* pushes, so it is labelled UNVERIFIED with the run's tree before and after the lift — in the PR
|
|
14
20
|
* body (the deliver script, `DELIVER_UNVERIFIED_MARKER`) and in the run record
|
|
15
21
|
* (`AgentSession.delivery_assurance`, rehydrated from the `run.delivered` audit entry).
|
|
16
22
|
*/
|
|
17
|
-
import type { AssuranceReceipt, DeliveryAssurance, QeAcceptanceCheck, QeAcceptanceRefusal, SessionView, WorkUnit } from '../core/types.js';
|
|
23
|
+
import type { QeAcceptanceDecision, AssuranceReceipt, DeliveryAssurance, QeAcceptanceCheck, QeAcceptanceRefusal, SessionView, WorkUnit } from '../core/types.js';
|
|
18
24
|
import type { AcceptanceView } from '../qe/acceptance.js';
|
|
19
25
|
/** The contract token whose enforcement the engine leaves to the launcher. */
|
|
20
26
|
export declare const QE_ACCEPTANCE = "qe_acceptance";
|
|
27
|
+
/** The engine's BUILT-IN presets that require `qe_acceptance` — the mirror of wicked-core's
|
|
28
|
+
* `catalog::builtin_preset_instruments` (QE-IN-APP-WORKFLOWS). A launch naming one of these runs the
|
|
29
|
+
* preset, whatever def of the same name crew holds. */
|
|
30
|
+
export declare const QE_PRESETS: ReadonlySet<string>;
|
|
21
31
|
/** `QeAcceptanceRefusal.code`. */
|
|
22
32
|
export declare const QE_ACCEPTANCE_REQUIRED_CODE: "qe_acceptance_required";
|
|
23
33
|
/** Whether the run's persisted contract requires a QE acceptance PASS before delivery. A run from an
|
|
24
34
|
* engine without the contract carries none and requires nothing here (its gate is the old one). */
|
|
25
35
|
export declare function requiresQeAcceptance(view: SessionView): boolean;
|
|
36
|
+
/** The run's QE decision when its contract requires `qe_acceptance` (else `null`): the engine's
|
|
37
|
+
* `assurance.qe`, or — on an engine that records no decision — a plain `required`. */
|
|
38
|
+
export declare function qeDecisionOf(view: SessionView): QeAcceptanceDecision | null;
|
|
39
|
+
/** Whether a decision lets a delivery go WITHOUT a ledger PASS: only a waiver the engine made from
|
|
40
|
+
* the run's diff (`waived` + `basis: 'diff'`) or the operator's explicit skip (`skipped` + `basis:
|
|
41
|
+
* 'operator'`, with a reason). Anything else — `required`, an unknown status, a mismatched basis, a
|
|
42
|
+
* malformed record — reads the ledger (codex r1 on the crew PR: fail closed). */
|
|
43
|
+
export declare function qeDecisionBypasses(decision: QeAcceptanceDecision): boolean;
|
|
44
|
+
/** A delivery's check when the decision is NOT `required`: satisfied, no verdict read, and it says
|
|
45
|
+
* which (`waived` by the score, `skipped` by the operator) in the decision's own words. */
|
|
46
|
+
export declare function qeAcceptanceNotRequired(decision: QeAcceptanceDecision): QeAcceptanceCheck;
|
|
26
47
|
/** The check a delivery ran, from the acceptance view resolved with the requirement FORCED on (a
|
|
27
48
|
* contract that requires QE acceptance owes a verdict even when no phase raises `verified_evidence`). */
|
|
28
49
|
export declare function qeAcceptanceFromView(view: AcceptanceView): QeAcceptanceCheck;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery-assurance.d.ts","sourceRoot":"","sources":["../../src/api/delivery-assurance.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"delivery-assurance.d.ts","sourceRoot":"","sources":["../../src/api/delivery-assurance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EACV,oBAAoB,EAEpB,gBAAgB,EAEhB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,QAAQ,EACT,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,8EAA8E;AAC9E,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAE7C;;wDAEwD;AACxD,eAAO,MAAM,UAAU,EAAE,WAAW,CAAC,MAAM,CAAqC,CAAC;AAEjF,kCAAkC;AAClC,eAAO,MAAM,2BAA2B,EAAG,wBAAiC,CAAC;AAE7E;oGACoG;AACpG,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAE/D;AAED;uFACuF;AACvF,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,oBAAoB,GAAG,IAAI,CAe3E;AAED;;;kFAGkF;AAClF,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAI1E;AAED;4FAC4F;AAC5F,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,iBAAiB,CAQzF;AAED;0GAC0G;AAC1G,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,GAAG,iBAAiB,CAgB5E;AAED,uFAAuF;AACvF,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,iBAAiB,CAQtE;AAED,wEAAwE;AACxE,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,iBAAiB,EACxB,SAAS,EAAE,gBAAgB,GAAG,IAAI,EAClC,KAAK,EAAE,MAAM,GAAG,UAAU,GACzB,mBAAmB,CAWrB;AAED,oEAAoE;AACpE,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,gBAAgB,GAAG,IAAI,CAE7E;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,gBAAgB,GAAG,IAAI,CAuChG;AAED,mFAAmF;AACnF,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE;IAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,EACrE,YAAY,EAAE,iBAAiB,GAAG,IAAI,GACrC,iBAAiB,CAUnB"}
|
|
@@ -9,6 +9,12 @@
|
|
|
9
9
|
* delivery — at the deliver gate's approve, at a gated resume, and at a post-hoc lift. Nothing is
|
|
10
10
|
* pushed, and a deliver gate stays open for the approve to be retried once the PASS is recorded.
|
|
11
11
|
*
|
|
12
|
+
* QE-IN-APP-WORKFLOWS (wicked-core-ts >= 0.7.49): the contract also carries the run's DECISION
|
|
13
|
+
* (`assurance.qe`): `required`, `waived` (the run's diff scored in the lowest band on every
|
|
14
|
+
* dimension) or `skipped` (the operator's explicit word at launch, with a reason). Only `required`
|
|
15
|
+
* reads the ledger; a waived or skipped delivery is not refused, and its check says which and why.
|
|
16
|
+
* A contract with no decision (an older engine) that requires `qe_acceptance` is `required`.
|
|
17
|
+
*
|
|
12
18
|
* EX-04: a post-hoc lift (`POST /runs/:id/deliver`) has no engine verification behind the tree it
|
|
13
19
|
* pushes, so it is labelled UNVERIFIED with the run's tree before and after the lift — in the PR
|
|
14
20
|
* body (the deliver script, `DELIVER_UNVERIFIED_MARKER`) and in the run record
|
|
@@ -16,12 +22,54 @@
|
|
|
16
22
|
*/
|
|
17
23
|
/** The contract token whose enforcement the engine leaves to the launcher. */
|
|
18
24
|
export const QE_ACCEPTANCE = 'qe_acceptance';
|
|
25
|
+
/** The engine's BUILT-IN presets that require `qe_acceptance` — the mirror of wicked-core's
|
|
26
|
+
* `catalog::builtin_preset_instruments` (QE-IN-APP-WORKFLOWS). A launch naming one of these runs the
|
|
27
|
+
* preset, whatever def of the same name crew holds. */
|
|
28
|
+
export const QE_PRESETS = new Set(['feature', 'migration']);
|
|
19
29
|
/** `QeAcceptanceRefusal.code`. */
|
|
20
30
|
export const QE_ACCEPTANCE_REQUIRED_CODE = 'qe_acceptance_required';
|
|
21
31
|
/** Whether the run's persisted contract requires a QE acceptance PASS before delivery. A run from an
|
|
22
32
|
* engine without the contract carries none and requires nothing here (its gate is the old one). */
|
|
23
33
|
export function requiresQeAcceptance(view) {
|
|
24
|
-
return (view
|
|
34
|
+
return qeDecisionOf(view) !== null;
|
|
35
|
+
}
|
|
36
|
+
/** The run's QE decision when its contract requires `qe_acceptance` (else `null`): the engine's
|
|
37
|
+
* `assurance.qe`, or — on an engine that records no decision — a plain `required`. */
|
|
38
|
+
export function qeDecisionOf(view) {
|
|
39
|
+
const a = view.session.assurance;
|
|
40
|
+
if (a === undefined || a === null || !(a.required ?? []).includes(QE_ACCEPTANCE))
|
|
41
|
+
return null;
|
|
42
|
+
return (a.qe ?? {
|
|
43
|
+
status: 'required',
|
|
44
|
+
basis: 'plan',
|
|
45
|
+
score: null,
|
|
46
|
+
threshold: 0,
|
|
47
|
+
reason: 'required: this engine records no QE decision',
|
|
48
|
+
reasons: [],
|
|
49
|
+
ord: null,
|
|
50
|
+
tree: null,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
/** Whether a decision lets a delivery go WITHOUT a ledger PASS: only a waiver the engine made from
|
|
54
|
+
* the run's diff (`waived` + `basis: 'diff'`) or the operator's explicit skip (`skipped` + `basis:
|
|
55
|
+
* 'operator'`, with a reason). Anything else — `required`, an unknown status, a mismatched basis, a
|
|
56
|
+
* malformed record — reads the ledger (codex r1 on the crew PR: fail closed). */
|
|
57
|
+
export function qeDecisionBypasses(decision) {
|
|
58
|
+
if (typeof decision.reason !== 'string' || decision.reason.trim() === '')
|
|
59
|
+
return false;
|
|
60
|
+
return (decision.status === 'waived' && decision.basis === 'diff')
|
|
61
|
+
|| (decision.status === 'skipped' && decision.basis === 'operator');
|
|
62
|
+
}
|
|
63
|
+
/** A delivery's check when the decision is NOT `required`: satisfied, no verdict read, and it says
|
|
64
|
+
* which (`waived` by the score, `skipped` by the operator) in the decision's own words. */
|
|
65
|
+
export function qeAcceptanceNotRequired(decision) {
|
|
66
|
+
return {
|
|
67
|
+
status: decision.status,
|
|
68
|
+
satisfied: true,
|
|
69
|
+
reason: decision.reason,
|
|
70
|
+
verdictId: null,
|
|
71
|
+
reviewer: null,
|
|
72
|
+
};
|
|
25
73
|
}
|
|
26
74
|
/** The check a delivery ran, from the acceptance view resolved with the requirement FORCED on (a
|
|
27
75
|
* contract that requires QE acceptance owes a verdict even when no phase raises `verified_evidence`). */
|
|
@@ -32,6 +80,7 @@ export function qeAcceptanceFromView(view) {
|
|
|
32
80
|
// hold AND that verdict must be a PASS (codex r1 on the EX-03 PR).
|
|
33
81
|
const ledgerPass = verdict?.verdict === 'PASS';
|
|
34
82
|
return {
|
|
83
|
+
status: 'required',
|
|
35
84
|
satisfied: view.gate.satisfied && ledgerPass,
|
|
36
85
|
reason: view.gate.satisfied && !ledgerPass
|
|
37
86
|
? `the QE ledger holds no PASS attributed to this run (${view.gate.reason}); walkthrough evidence alone does not satisfy qe_acceptance`
|
|
@@ -43,6 +92,7 @@ export function qeAcceptanceFromView(view) {
|
|
|
43
92
|
/** A check that could not be read at all is a refusal, naming why (deny-dominates). */
|
|
44
93
|
export function unreadableQeAcceptance(err) {
|
|
45
94
|
return {
|
|
95
|
+
status: 'required',
|
|
46
96
|
satisfied: false,
|
|
47
97
|
reason: `the QE acceptance answer could not be read: ${err instanceof Error ? err.message : String(err)} (unreadable ⇒ deny)`,
|
|
48
98
|
verdictId: null,
|
|
@@ -83,13 +133,26 @@ export function aggregateReceipt(view, tree) {
|
|
|
83
133
|
return null;
|
|
84
134
|
const ran = [];
|
|
85
135
|
const skipped = [];
|
|
136
|
+
// The run's CURRENT QE decision speaks for the delivery: a gate receipt cut while a since-revoked
|
|
137
|
+
// waiver stood must not carry its skip here (the engine's delivery receipt does the same).
|
|
138
|
+
const qe = view.session.assurance?.qe;
|
|
139
|
+
if (qe !== undefined && qe.status !== 'required') {
|
|
140
|
+
skipped.push({
|
|
141
|
+
instrument: QE_ACCEPTANCE,
|
|
142
|
+
reason: qe.status === 'waived' ? 'qe_waived_by_score' : 'qe_skipped_by_operator',
|
|
143
|
+
detail: qe.reason,
|
|
144
|
+
});
|
|
145
|
+
}
|
|
86
146
|
for (const r of receipts) {
|
|
87
147
|
for (const i of r.ran)
|
|
88
148
|
if (!ran.includes(i))
|
|
89
149
|
ran.push(i);
|
|
90
|
-
for (const s of r.skipped)
|
|
150
|
+
for (const s of r.skipped) {
|
|
151
|
+
if (s.instrument === QE_ACCEPTANCE)
|
|
152
|
+
continue;
|
|
91
153
|
if (!skipped.some((k) => k.instrument === s.instrument))
|
|
92
154
|
skipped.push(s);
|
|
155
|
+
}
|
|
93
156
|
}
|
|
94
157
|
return {
|
|
95
158
|
mode: contract.mode,
|
|
@@ -101,6 +164,7 @@ export function aggregateReceipt(view, tree) {
|
|
|
101
164
|
judge: null,
|
|
102
165
|
tree,
|
|
103
166
|
attempt: 0,
|
|
167
|
+
...(qe !== undefined ? { qe } : {}),
|
|
104
168
|
};
|
|
105
169
|
}
|
|
106
170
|
/** The post-hoc delivery's assurance (EX-04): never verified, both trees named. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery-assurance.js","sourceRoot":"","sources":["../../src/api/delivery-assurance.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"delivery-assurance.js","sourceRoot":"","sources":["../../src/api/delivery-assurance.ts"],"names":[],"mappings":"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"}
|
package/dist/api/routes.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ import type { McpBroker } from '../mcp/broker.js';
|
|
|
22
22
|
import type { McpCallRecordSource } from '../mcp/call-records.js';
|
|
23
23
|
import type { McpRegistry } from '../mcp/registry.js';
|
|
24
24
|
import { type SkillsRuntime } from '../skills/runtime.js';
|
|
25
|
-
import { type
|
|
25
|
+
import { type RunSkillGapIndex } from '../skills/phase-skill-gaps.js';
|
|
26
26
|
import { type StateHomeWatch } from '../projects/state-home-preflight.js';
|
|
27
27
|
import type { EvalRunStore } from './eval-store.js';
|
|
28
28
|
import type { WatchRegistry } from '../watch/registry.js';
|
|
@@ -103,7 +103,7 @@ export { policyProposalToRule } from './policy-landing.js';
|
|
|
103
103
|
* unworkflowed run reported as `201`.
|
|
104
104
|
*/
|
|
105
105
|
export { PlanSchema };
|
|
106
|
-
export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodObject<{
|
|
106
|
+
export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodObject<{
|
|
107
107
|
problem: z.ZodString;
|
|
108
108
|
sessionId: z.ZodOptional<z.ZodString>;
|
|
109
109
|
clisJson: z.ZodOptional<z.ZodString>;
|
|
@@ -230,6 +230,18 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodE
|
|
|
230
230
|
* "full assurance", the same as omitting it: the launcher never chooses for the caller, and a
|
|
231
231
|
* full-assurance launch on a one-CLI roster is answered with `assuranceNotice` (`core/assurance.ts`). */
|
|
232
232
|
reducedAssurance: z.ZodOptional<z.ZodBoolean>;
|
|
233
|
+
/** QE-IN-APP-WORKFLOWS (api-types 0.106.0) — the operator's EXPLICIT skip of a required QE
|
|
234
|
+
* acceptance, with a reason (labelled on the run, every gate and the delivery), or its explicit
|
|
235
|
+
* force (no score waiver). Forwarded only when sent; crew never decides either for the caller,
|
|
236
|
+
* and the engine refuses either on a run whose workflow does not require QE acceptance. */
|
|
237
|
+
skipQeAcceptance: z.ZodOptional<z.ZodObject<{
|
|
238
|
+
reason: z.ZodString;
|
|
239
|
+
}, "strict", z.ZodTypeAny, {
|
|
240
|
+
reason: string;
|
|
241
|
+
}, {
|
|
242
|
+
reason: string;
|
|
243
|
+
}>>;
|
|
244
|
+
forceQeAcceptance: z.ZodOptional<z.ZodBoolean>;
|
|
233
245
|
}, "strict", z.ZodTypeAny, {
|
|
234
246
|
problem: string;
|
|
235
247
|
workflow?: string | undefined;
|
|
@@ -264,6 +276,10 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodE
|
|
|
264
276
|
entityMode?: "shared" | "isolated" | undefined;
|
|
265
277
|
deliverGate?: "auto" | "human" | undefined;
|
|
266
278
|
excludeLinkedIssues?: string[] | undefined;
|
|
279
|
+
skipQeAcceptance?: {
|
|
280
|
+
reason: string;
|
|
281
|
+
} | undefined;
|
|
282
|
+
forceQeAcceptance?: boolean | undefined;
|
|
267
283
|
}, {
|
|
268
284
|
problem: string;
|
|
269
285
|
workflow?: string | undefined;
|
|
@@ -298,6 +314,10 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodE
|
|
|
298
314
|
entityMode?: "shared" | "isolated" | undefined;
|
|
299
315
|
deliverGate?: "auto" | "human" | undefined;
|
|
300
316
|
excludeLinkedIssues?: string[] | undefined;
|
|
317
|
+
skipQeAcceptance?: {
|
|
318
|
+
reason: string;
|
|
319
|
+
} | undefined;
|
|
320
|
+
forceQeAcceptance?: boolean | undefined;
|
|
301
321
|
}>, {
|
|
302
322
|
problem: string;
|
|
303
323
|
workflow?: string | undefined;
|
|
@@ -332,6 +352,10 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodE
|
|
|
332
352
|
entityMode?: "shared" | "isolated" | undefined;
|
|
333
353
|
deliverGate?: "auto" | "human" | undefined;
|
|
334
354
|
excludeLinkedIssues?: string[] | undefined;
|
|
355
|
+
skipQeAcceptance?: {
|
|
356
|
+
reason: string;
|
|
357
|
+
} | undefined;
|
|
358
|
+
forceQeAcceptance?: boolean | undefined;
|
|
335
359
|
}, {
|
|
336
360
|
problem: string;
|
|
337
361
|
workflow?: string | undefined;
|
|
@@ -366,6 +390,10 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodE
|
|
|
366
390
|
entityMode?: "shared" | "isolated" | undefined;
|
|
367
391
|
deliverGate?: "auto" | "human" | undefined;
|
|
368
392
|
excludeLinkedIssues?: string[] | undefined;
|
|
393
|
+
skipQeAcceptance?: {
|
|
394
|
+
reason: string;
|
|
395
|
+
} | undefined;
|
|
396
|
+
forceQeAcceptance?: boolean | undefined;
|
|
369
397
|
}>, {
|
|
370
398
|
problem: string;
|
|
371
399
|
workflow?: string | undefined;
|
|
@@ -400,6 +428,10 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodE
|
|
|
400
428
|
entityMode?: "shared" | "isolated" | undefined;
|
|
401
429
|
deliverGate?: "auto" | "human" | undefined;
|
|
402
430
|
excludeLinkedIssues?: string[] | undefined;
|
|
431
|
+
skipQeAcceptance?: {
|
|
432
|
+
reason: string;
|
|
433
|
+
} | undefined;
|
|
434
|
+
forceQeAcceptance?: boolean | undefined;
|
|
403
435
|
}, {
|
|
404
436
|
problem: string;
|
|
405
437
|
workflow?: string | undefined;
|
|
@@ -434,6 +466,10 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodE
|
|
|
434
466
|
entityMode?: "shared" | "isolated" | undefined;
|
|
435
467
|
deliverGate?: "auto" | "human" | undefined;
|
|
436
468
|
excludeLinkedIssues?: string[] | undefined;
|
|
469
|
+
skipQeAcceptance?: {
|
|
470
|
+
reason: string;
|
|
471
|
+
} | undefined;
|
|
472
|
+
forceQeAcceptance?: boolean | undefined;
|
|
437
473
|
}>, {
|
|
438
474
|
problem: string;
|
|
439
475
|
workflow?: string | undefined;
|
|
@@ -468,6 +504,10 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodE
|
|
|
468
504
|
entityMode?: "shared" | "isolated" | undefined;
|
|
469
505
|
deliverGate?: "auto" | "human" | undefined;
|
|
470
506
|
excludeLinkedIssues?: string[] | undefined;
|
|
507
|
+
skipQeAcceptance?: {
|
|
508
|
+
reason: string;
|
|
509
|
+
} | undefined;
|
|
510
|
+
forceQeAcceptance?: boolean | undefined;
|
|
471
511
|
}, {
|
|
472
512
|
problem: string;
|
|
473
513
|
workflow?: string | undefined;
|
|
@@ -502,6 +542,10 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodE
|
|
|
502
542
|
entityMode?: "shared" | "isolated" | undefined;
|
|
503
543
|
deliverGate?: "auto" | "human" | undefined;
|
|
504
544
|
excludeLinkedIssues?: string[] | undefined;
|
|
545
|
+
skipQeAcceptance?: {
|
|
546
|
+
reason: string;
|
|
547
|
+
} | undefined;
|
|
548
|
+
forceQeAcceptance?: boolean | undefined;
|
|
505
549
|
}>, {
|
|
506
550
|
problem: string;
|
|
507
551
|
workflow?: string | undefined;
|
|
@@ -536,6 +580,10 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodE
|
|
|
536
580
|
entityMode?: "shared" | "isolated" | undefined;
|
|
537
581
|
deliverGate?: "auto" | "human" | undefined;
|
|
538
582
|
excludeLinkedIssues?: string[] | undefined;
|
|
583
|
+
skipQeAcceptance?: {
|
|
584
|
+
reason: string;
|
|
585
|
+
} | undefined;
|
|
586
|
+
forceQeAcceptance?: boolean | undefined;
|
|
539
587
|
}, {
|
|
540
588
|
problem: string;
|
|
541
589
|
workflow?: string | undefined;
|
|
@@ -570,6 +618,10 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodE
|
|
|
570
618
|
entityMode?: "shared" | "isolated" | undefined;
|
|
571
619
|
deliverGate?: "auto" | "human" | undefined;
|
|
572
620
|
excludeLinkedIssues?: string[] | undefined;
|
|
621
|
+
skipQeAcceptance?: {
|
|
622
|
+
reason: string;
|
|
623
|
+
} | undefined;
|
|
624
|
+
forceQeAcceptance?: boolean | undefined;
|
|
573
625
|
}>, {
|
|
574
626
|
problem: string;
|
|
575
627
|
workflow?: string | undefined;
|
|
@@ -604,6 +656,10 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodE
|
|
|
604
656
|
entityMode?: "shared" | "isolated" | undefined;
|
|
605
657
|
deliverGate?: "auto" | "human" | undefined;
|
|
606
658
|
excludeLinkedIssues?: string[] | undefined;
|
|
659
|
+
skipQeAcceptance?: {
|
|
660
|
+
reason: string;
|
|
661
|
+
} | undefined;
|
|
662
|
+
forceQeAcceptance?: boolean | undefined;
|
|
607
663
|
}, {
|
|
608
664
|
problem: string;
|
|
609
665
|
workflow?: string | undefined;
|
|
@@ -638,6 +694,10 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodE
|
|
|
638
694
|
entityMode?: "shared" | "isolated" | undefined;
|
|
639
695
|
deliverGate?: "auto" | "human" | undefined;
|
|
640
696
|
excludeLinkedIssues?: string[] | undefined;
|
|
697
|
+
skipQeAcceptance?: {
|
|
698
|
+
reason: string;
|
|
699
|
+
} | undefined;
|
|
700
|
+
forceQeAcceptance?: boolean | undefined;
|
|
641
701
|
}>, {
|
|
642
702
|
problem: string;
|
|
643
703
|
workflow?: string | undefined;
|
|
@@ -672,6 +732,10 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodE
|
|
|
672
732
|
entityMode?: "shared" | "isolated" | undefined;
|
|
673
733
|
deliverGate?: "auto" | "human" | undefined;
|
|
674
734
|
excludeLinkedIssues?: string[] | undefined;
|
|
735
|
+
skipQeAcceptance?: {
|
|
736
|
+
reason: string;
|
|
737
|
+
} | undefined;
|
|
738
|
+
forceQeAcceptance?: boolean | undefined;
|
|
675
739
|
}, {
|
|
676
740
|
problem: string;
|
|
677
741
|
workflow?: string | undefined;
|
|
@@ -706,6 +770,86 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodE
|
|
|
706
770
|
entityMode?: "shared" | "isolated" | undefined;
|
|
707
771
|
deliverGate?: "auto" | "human" | undefined;
|
|
708
772
|
excludeLinkedIssues?: string[] | undefined;
|
|
773
|
+
skipQeAcceptance?: {
|
|
774
|
+
reason: string;
|
|
775
|
+
} | undefined;
|
|
776
|
+
forceQeAcceptance?: boolean | undefined;
|
|
777
|
+
}>, {
|
|
778
|
+
problem: string;
|
|
779
|
+
workflow?: string | undefined;
|
|
780
|
+
deliver?: "none" | "pr" | undefined;
|
|
781
|
+
revisesPr?: number | undefined;
|
|
782
|
+
plan?: {
|
|
783
|
+
steps: z.objectOutputType<{
|
|
784
|
+
catalog: z.ZodString;
|
|
785
|
+
id: z.ZodOptional<z.ZodString>;
|
|
786
|
+
}, z.ZodTypeAny, "passthrough">[];
|
|
787
|
+
override?: {
|
|
788
|
+
reason: string;
|
|
789
|
+
remove: string[];
|
|
790
|
+
} | undefined;
|
|
791
|
+
touch?: string[] | undefined;
|
|
792
|
+
monitors?: {
|
|
793
|
+
asked: number;
|
|
794
|
+
} | undefined;
|
|
795
|
+
} | undefined;
|
|
796
|
+
projectId?: string | undefined;
|
|
797
|
+
repoRef?: string | undefined;
|
|
798
|
+
chatId?: string | undefined;
|
|
799
|
+
actor?: string | undefined;
|
|
800
|
+
reducedAssurance?: boolean | undefined;
|
|
801
|
+
sessionId?: string | undefined;
|
|
802
|
+
channel?: "cli" | "studio" | "api" | undefined;
|
|
803
|
+
humanConfirm?: string | undefined;
|
|
804
|
+
campaignId?: string | undefined;
|
|
805
|
+
groupLabel?: string | undefined;
|
|
806
|
+
clisJson?: string | undefined;
|
|
807
|
+
retryOf?: string | undefined;
|
|
808
|
+
entityMode?: "shared" | "isolated" | undefined;
|
|
809
|
+
deliverGate?: "auto" | "human" | undefined;
|
|
810
|
+
excludeLinkedIssues?: string[] | undefined;
|
|
811
|
+
skipQeAcceptance?: {
|
|
812
|
+
reason: string;
|
|
813
|
+
} | undefined;
|
|
814
|
+
forceQeAcceptance?: boolean | undefined;
|
|
815
|
+
}, {
|
|
816
|
+
problem: string;
|
|
817
|
+
workflow?: string | undefined;
|
|
818
|
+
deliver?: "none" | "pr" | undefined;
|
|
819
|
+
revisesPr?: number | undefined;
|
|
820
|
+
plan?: {
|
|
821
|
+
steps: z.objectInputType<{
|
|
822
|
+
catalog: z.ZodString;
|
|
823
|
+
id: z.ZodOptional<z.ZodString>;
|
|
824
|
+
}, z.ZodTypeAny, "passthrough">[];
|
|
825
|
+
override?: {
|
|
826
|
+
reason: string;
|
|
827
|
+
remove: string[];
|
|
828
|
+
} | undefined;
|
|
829
|
+
touch?: string[] | undefined;
|
|
830
|
+
monitors?: {
|
|
831
|
+
asked: number;
|
|
832
|
+
} | undefined;
|
|
833
|
+
} | undefined;
|
|
834
|
+
projectId?: string | undefined;
|
|
835
|
+
repoRef?: string | undefined;
|
|
836
|
+
chatId?: string | undefined;
|
|
837
|
+
actor?: string | undefined;
|
|
838
|
+
reducedAssurance?: boolean | undefined;
|
|
839
|
+
sessionId?: string | undefined;
|
|
840
|
+
channel?: "cli" | "studio" | "api" | undefined;
|
|
841
|
+
humanConfirm?: string | undefined;
|
|
842
|
+
campaignId?: string | undefined;
|
|
843
|
+
groupLabel?: string | undefined;
|
|
844
|
+
clisJson?: string | undefined;
|
|
845
|
+
retryOf?: string | undefined;
|
|
846
|
+
entityMode?: "shared" | "isolated" | undefined;
|
|
847
|
+
deliverGate?: "auto" | "human" | undefined;
|
|
848
|
+
excludeLinkedIssues?: string[] | undefined;
|
|
849
|
+
skipQeAcceptance?: {
|
|
850
|
+
reason: string;
|
|
851
|
+
} | undefined;
|
|
852
|
+
forceQeAcceptance?: boolean | undefined;
|
|
709
853
|
}>;
|
|
710
854
|
/** The escalation arms (wicked-core#469 / #467): approve-shaped, no `amend` / `amendScope`.
|
|
711
855
|
* `extend` | `targeted` | `accept_partial` answer the gate of a repo-checks floor that did not
|
|
@@ -1382,12 +1526,8 @@ export interface RuntimeDeps {
|
|
|
1382
1526
|
mcpBroker?: McpBroker;
|
|
1383
1527
|
/** The broker's call records (DES-MCP-TOOLS-001 S7), the ones `GET /mcp/usage` folds; absent → 503. */
|
|
1384
1528
|
mcpCalls?: McpCallRecordSource;
|
|
1385
|
-
/** crew#661 —
|
|
1386
|
-
*
|
|
1387
|
-
* `/health.warnings`). Absent = nothing armed here (a directly-driven route set): no gaps. */
|
|
1388
|
-
phaseSkills?: PhaseSkillArming;
|
|
1389
|
-
/** crew#661 — the runs launched with such a gap (`AgentSession.skill_gaps`), hydrated from the
|
|
1390
|
-
* trail. Absent = no run carries the field. */
|
|
1529
|
+
/** crew#661 — the runs that launched with a skill gap before crew#935 (`AgentSession.skill_gaps`),
|
|
1530
|
+
* hydrated from the trail. Absent = no run carries the field. */
|
|
1391
1531
|
runSkillGaps?: RunSkillGapIndex;
|
|
1392
1532
|
/** The live state-home classification (wicked-core#411 / crew#497) — `createServer` surveys the
|
|
1393
1533
|
* daemon state home at boot and hands the watch here; the routes re-survey on demand, report it
|
package/dist/api/routes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/api/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAC;AAE7E,OAAO,EAAE,UAAU,EAAgB,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,OAAO,EAAmD,WAAW,
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/api/routes.ts"],"names":[],"mappings":"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"}
|