opencode-swarm 7.135.3 → 7.135.5
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/agents/explorer.d.ts +1 -1
- package/dist/cli/{config-doctor-4nznqeca.js → config-doctor-exj26ryt.js} +2 -2
- package/dist/cli/{curation-policy-81m14519.js → curation-policy-mbv3b27c.js} +2 -2
- package/dist/cli/{curator-e0z5gcww.js → curator-7ycd6x29.js} +13 -13
- package/dist/cli/{curator-llm-factory-fem13y9n.js → curator-llm-factory-4d5pzh47.js} +13 -13
- package/dist/cli/{explorer-15gqzxh8.js → explorer-swjc297z.js} +1 -1
- package/dist/cli/{guardrail-explain-wgaj23hd.js → guardrail-explain-2jrqv2zf.js} +14 -14
- package/dist/cli/{guardrail-log-04p1z1vt.js → guardrail-log-c843gxnm.js} +3 -3
- package/dist/cli/{hive-promoter-k345z42k.js → hive-promoter-epnj14q8.js} +13 -13
- package/dist/cli/{index-30pg2rs3.js → index-09w3ezq2.js} +1 -1
- package/dist/cli/{index-36v55ryg.js → index-0csbx1wc.js} +1 -1
- package/dist/cli/{index-dg1njnms.js → index-6mjf4vr1.js} +1 -1
- package/dist/cli/{index-kb7qy7an.js → index-6yk6ezvj.js} +1 -1
- package/dist/cli/{index-yf30m841.js → index-8et4bx6j.js} +3 -3
- package/dist/cli/{index-dwargd10.js → index-9s5b8wrs.js} +54 -42
- package/dist/cli/{index-rv7s2k9y.js → index-bx10dq60.js} +21 -4
- package/dist/cli/{index-a01r818w.js → index-db52969t.js} +1 -1
- package/dist/cli/{index-5436jxnw.js → index-gvfw2y6v.js} +2 -2
- package/dist/cli/{index-p9ngg568.js → index-hw6yt4rs.js} +4 -4
- package/dist/cli/{index-168phrs7.js → index-jnemjn16.js} +2 -2
- package/dist/cli/{index-p5kr35wh.js → index-k8arazbb.js} +1 -1
- package/dist/cli/{index-wygxzvtf.js → index-kjg6vgqs.js} +1 -1
- package/dist/cli/{index-y47crdg9.js → index-kq9zb1cv.js} +15 -15
- package/dist/cli/{index-bcmrg4t4.js → index-qyn0b2jj.js} +1 -1
- package/dist/cli/{index-gxxxmajn.js → index-t1gszcwg.js} +2 -2
- package/dist/cli/{index-f52jt0am.js → index-ym516a9a.js} +5 -5
- package/dist/cli/index.js +13 -13
- package/dist/cli/{knowledge-escalator-42ecv7m3.js → knowledge-escalator-3tjhpwjf.js} +3 -3
- package/dist/cli/{knowledge-events-zhna7v3g.js → knowledge-events-0akk3p15.js} +5 -1
- package/dist/cli/{knowledge-store-56jcfc5k.js → knowledge-store-7nvfh2n3.js} +1 -1
- package/dist/cli/{knowledge-validator-8zk0pnb6.js → knowledge-validator-z618vhda.js} +4 -4
- package/dist/cli/{scan-cursor-h3ndxd41.js → scan-cursor-5zqr3afj.js} +2 -2
- package/dist/cli/{schema-r6wmd7zp.js → schema-n1cj94m0.js} +1 -1
- package/dist/cli/{skill-generator-12cftsx4.js → skill-generator-560ksca8.js} +5 -5
- package/dist/hooks/curator-postmortem.d.ts +8 -0
- package/dist/hooks/delegate-ack-collector.d.ts +21 -0
- package/dist/hooks/knowledge-events.d.ts +33 -1
- package/dist/hooks/pr-workflow-gate.d.ts +5 -5
- package/dist/hooks/pr-workflow-response-gate.d.ts +32 -1
- package/dist/index.js +24 -23
- package/dist/services/knowledge-diagnostics.d.ts +2 -0
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -6,36 +6,36 @@ import {
|
|
|
6
6
|
getPluginConfigDir,
|
|
7
7
|
getPluginLockFilePaths,
|
|
8
8
|
resolveCommand
|
|
9
|
-
} from "./index-
|
|
9
|
+
} from "./index-9s5b8wrs.js";
|
|
10
10
|
import"./index-vm4xw9z3.js";
|
|
11
|
-
import"./index-
|
|
12
|
-
import"./index-
|
|
11
|
+
import"./index-6yk6ezvj.js";
|
|
12
|
+
import"./index-db52969t.js";
|
|
13
13
|
import"./index-cggqh2dz.js";
|
|
14
14
|
import"./index-4905hd2m.js";
|
|
15
15
|
import"./index-134d35c1.js";
|
|
16
|
-
import"./index-
|
|
17
|
-
import"./index-
|
|
18
|
-
import"./index-
|
|
19
|
-
import"./index-
|
|
16
|
+
import"./index-8et4bx6j.js";
|
|
17
|
+
import"./index-ym516a9a.js";
|
|
18
|
+
import"./index-0csbx1wc.js";
|
|
19
|
+
import"./index-6mjf4vr1.js";
|
|
20
20
|
import"./index-c8s9a3zh.js";
|
|
21
21
|
import"./index-9ss2m4rs.js";
|
|
22
22
|
import"./index-y6a7gjtj.js";
|
|
23
23
|
import"./index-mrtms113.js";
|
|
24
|
-
import"./index-
|
|
25
|
-
import"./index-
|
|
24
|
+
import"./index-t1gszcwg.js";
|
|
25
|
+
import"./index-09w3ezq2.js";
|
|
26
26
|
import"./index-rtry5xyf.js";
|
|
27
|
-
import"./index-
|
|
28
|
-
import"./index-
|
|
27
|
+
import"./index-hw6yt4rs.js";
|
|
28
|
+
import"./index-bx10dq60.js";
|
|
29
29
|
import"./index-ae75rja9.js";
|
|
30
30
|
import"./index-dzyjb33e.js";
|
|
31
31
|
import"./index-ey29aap6.js";
|
|
32
|
-
import"./index-
|
|
32
|
+
import"./index-kjg6vgqs.js";
|
|
33
33
|
import"./index-k5jrywpr.js";
|
|
34
34
|
import"./index-n832052r.js";
|
|
35
35
|
import {
|
|
36
36
|
init_package,
|
|
37
37
|
package_default
|
|
38
|
-
} from "./index-
|
|
38
|
+
} from "./index-k8arazbb.js";
|
|
39
39
|
import"./index-bk5tah7q.js";
|
|
40
40
|
import"./index-8fwhhayc.js";
|
|
41
41
|
import"./index-q1exe2b3.js";
|
|
@@ -8,9 +8,9 @@ import {
|
|
|
8
8
|
maybeEscalateOnViolation,
|
|
9
9
|
maybeQuarantineOnContradiction,
|
|
10
10
|
readRecentEscalations
|
|
11
|
-
} from "./index-
|
|
12
|
-
import"./index-
|
|
13
|
-
import"./index-
|
|
11
|
+
} from "./index-ym516a9a.js";
|
|
12
|
+
import"./index-hw6yt4rs.js";
|
|
13
|
+
import"./index-bx10dq60.js";
|
|
14
14
|
import"./index-ae75rja9.js";
|
|
15
15
|
import"./index-dzyjb33e.js";
|
|
16
16
|
import"./index-ey29aap6.js";
|
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
_internals,
|
|
8
8
|
appendHiveKnowledgeEvent,
|
|
9
9
|
appendKnowledgeEvent,
|
|
10
|
+
appendKnowledgeEventsBatch,
|
|
10
11
|
applyKnowledgeVerdictFeedback,
|
|
11
12
|
countEmptyTraceTerminals,
|
|
12
13
|
countEntryContradictionsInWindow,
|
|
@@ -22,11 +23,12 @@ import {
|
|
|
22
23
|
recomputeCounters,
|
|
23
24
|
recordHiveKnowledgeEvent,
|
|
24
25
|
recordKnowledgeEvent,
|
|
26
|
+
recordKnowledgeEventsBatch,
|
|
25
27
|
resolveHiveEventsPath,
|
|
26
28
|
resolveKnowledgeCounterBaselinePath,
|
|
27
29
|
resolveKnowledgeEventsPath,
|
|
28
30
|
resolveLegacyApplicationLogPath
|
|
29
|
-
} from "./index-
|
|
31
|
+
} from "./index-bx10dq60.js";
|
|
30
32
|
import"./index-ae75rja9.js";
|
|
31
33
|
import"./index-dzyjb33e.js";
|
|
32
34
|
import"./index-ey29aap6.js";
|
|
@@ -42,6 +44,7 @@ export {
|
|
|
42
44
|
resolveKnowledgeEventsPath,
|
|
43
45
|
resolveKnowledgeCounterBaselinePath,
|
|
44
46
|
resolveHiveEventsPath,
|
|
47
|
+
recordKnowledgeEventsBatch,
|
|
45
48
|
recordKnowledgeEvent,
|
|
46
49
|
recordHiveKnowledgeEvent,
|
|
47
50
|
recomputeCounters,
|
|
@@ -57,6 +60,7 @@ export {
|
|
|
57
60
|
countEntryContradictionsInWindow,
|
|
58
61
|
countEmptyTraceTerminals,
|
|
59
62
|
applyKnowledgeVerdictFeedback,
|
|
63
|
+
appendKnowledgeEventsBatch,
|
|
60
64
|
appendKnowledgeEvent,
|
|
61
65
|
appendHiveKnowledgeEvent,
|
|
62
66
|
_internals,
|
|
@@ -23,11 +23,11 @@ import {
|
|
|
23
23
|
validateLesson,
|
|
24
24
|
validateSkillCandidatePath,
|
|
25
25
|
validateSkillPath
|
|
26
|
-
} from "./index-
|
|
27
|
-
import"./index-
|
|
26
|
+
} from "./index-t1gszcwg.js";
|
|
27
|
+
import"./index-09w3ezq2.js";
|
|
28
28
|
import"./index-rtry5xyf.js";
|
|
29
|
-
import"./index-
|
|
30
|
-
import"./index-
|
|
29
|
+
import"./index-hw6yt4rs.js";
|
|
30
|
+
import"./index-bx10dq60.js";
|
|
31
31
|
import"./index-ae75rja9.js";
|
|
32
32
|
import"./index-dzyjb33e.js";
|
|
33
33
|
import"./index-ey29aap6.js";
|
|
@@ -4,8 +4,8 @@ import {
|
|
|
4
4
|
alreadyCuratedThisGeneration,
|
|
5
5
|
claimNextScanBatch,
|
|
6
6
|
getScanStatus
|
|
7
|
-
} from "./index-
|
|
8
|
-
import"./index-
|
|
7
|
+
} from "./index-0csbx1wc.js";
|
|
8
|
+
import"./index-hw6yt4rs.js";
|
|
9
9
|
import"./index-ae75rja9.js";
|
|
10
10
|
import"./index-dzyjb33e.js";
|
|
11
11
|
import"./index-ey29aap6.js";
|
|
@@ -33,12 +33,12 @@ import {
|
|
|
33
33
|
sanitizeSlug,
|
|
34
34
|
selectCandidateEntries,
|
|
35
35
|
writeEvalStub
|
|
36
|
-
} from "./index-
|
|
37
|
-
import"./index-
|
|
38
|
-
import"./index-
|
|
36
|
+
} from "./index-8et4bx6j.js";
|
|
37
|
+
import"./index-t1gszcwg.js";
|
|
38
|
+
import"./index-09w3ezq2.js";
|
|
39
39
|
import"./index-rtry5xyf.js";
|
|
40
|
-
import"./index-
|
|
41
|
-
import"./index-
|
|
40
|
+
import"./index-hw6yt4rs.js";
|
|
41
|
+
import"./index-bx10dq60.js";
|
|
42
42
|
import"./index-ae75rja9.js";
|
|
43
43
|
import"./index-dzyjb33e.js";
|
|
44
44
|
import"./index-ey29aap6.js";
|
|
@@ -36,6 +36,14 @@ interface KnowledgeEventSummary {
|
|
|
36
36
|
applied: number;
|
|
37
37
|
violated: number;
|
|
38
38
|
ignored: number;
|
|
39
|
+
/**
|
|
40
|
+
* Shown to a delegate that ended its Task without any ack marker or receipt.
|
|
41
|
+
* Audit-only silence, NOT a verdict — kept strictly separate from
|
|
42
|
+
* applied/violated/ignored so it never enters an application- or
|
|
43
|
+
* violation-rate calculation. Surfaced so a post-mortem can say
|
|
44
|
+
* "entry X: shown N times, unacknowledged M times" instead of nothing.
|
|
45
|
+
*/
|
|
46
|
+
unacknowledged: number;
|
|
39
47
|
confidence: number;
|
|
40
48
|
status: string;
|
|
41
49
|
}
|
|
@@ -12,6 +12,11 @@
|
|
|
12
12
|
* - For every CRITICAL directive that was shown but never acknowledged, emit a
|
|
13
13
|
* `violated` event with reason `unacknowledged` and append an audit line to
|
|
14
14
|
* `.swarm/unacknowledged-criticals.jsonl`.
|
|
15
|
+
* - For every NON-CRITICAL directive that was shown but never acknowledged,
|
|
16
|
+
* emit a neutral, audit-only `unacknowledged` event (reason
|
|
17
|
+
* `no_ack_marker`). Silence is not a violation for non-criticals — it is a
|
|
18
|
+
* visibility signal, so it is never escalated, never audited to the
|
|
19
|
+
* criticals file, and never mutates a counter.
|
|
15
20
|
*
|
|
16
21
|
* Stateless by design: it re-parses the prompt rather than relying on
|
|
17
22
|
* cross-hook mutable state, so it is safe under parallel delegations. Fail-open:
|
|
@@ -31,7 +36,23 @@ export interface CollectDelegateAcksResult {
|
|
|
31
36
|
id: string;
|
|
32
37
|
type: string;
|
|
33
38
|
}>;
|
|
39
|
+
/**
|
|
40
|
+
* CRITICAL directives shown to the delegate that it never acknowledged. Each
|
|
41
|
+
* one is a contract violation: emitted as `violated`/`unacknowledged`, audited
|
|
42
|
+
* to `.swarm/unacknowledged-criticals.jsonl`, and fed to the repeat-mistake
|
|
43
|
+
* escalator.
|
|
44
|
+
*/
|
|
34
45
|
unacknowledgedCriticals: string[];
|
|
46
|
+
/**
|
|
47
|
+
* NON-critical directives shown to the delegate that it never acknowledged.
|
|
48
|
+
* These are NOT contract violations — the ack contract only obliges the
|
|
49
|
+
* delegate to answer for criticals. Each is emitted as a neutral,
|
|
50
|
+
* audit-only `unacknowledged` event so silent non-critical delivery is
|
|
51
|
+
* visible to the curator post-mortem instead of vanishing. They are never
|
|
52
|
+
* escalated, never written to the criticals audit file, and never produce
|
|
53
|
+
* promotion evidence.
|
|
54
|
+
*/
|
|
55
|
+
unacknowledgedNonCritical: string[];
|
|
35
56
|
}
|
|
36
57
|
/**
|
|
37
58
|
* Core reconciliation used by both the runtime hook and tests. Returns a summary
|
|
@@ -74,7 +74,20 @@ export interface ReceiptEvent {
|
|
|
74
74
|
* counter (there is no `knowledge_id` to credit; this is a trace-level
|
|
75
75
|
* tombstone, not application credit).
|
|
76
76
|
*/
|
|
77
|
-
| 'no_relevant'
|
|
77
|
+
| 'no_relevant'
|
|
78
|
+
/**
|
|
79
|
+
* A shown non-critical directive reached the end of a delegate Task with no
|
|
80
|
+
* ack marker and no receipt. Audit-only visibility signal; never penalizes
|
|
81
|
+
* the entry's outcome/violation counters.
|
|
82
|
+
*
|
|
83
|
+
* Motivation: before this event, only CRITICAL silence produced a signal (a
|
|
84
|
+
* `violated`/`unacknowledged` event). Non-critical silence was invisible, so
|
|
85
|
+
* a corpus with 1 critical entry out of 103 reported ~4% receipt compliance
|
|
86
|
+
* with no way to see where the other 96% went. This is the missing
|
|
87
|
+
* observation, NOT a verdict: the delegate filed nothing, so there is no
|
|
88
|
+
* terminal to credit or penalize.
|
|
89
|
+
*/
|
|
90
|
+
| 'unacknowledged';
|
|
78
91
|
schema_version?: number;
|
|
79
92
|
event_id: string;
|
|
80
93
|
trace_id: string;
|
|
@@ -213,11 +226,30 @@ export declare function newEventId(): string;
|
|
|
213
226
|
* {@link recordKnowledgeEvent}, which swallows errors.
|
|
214
227
|
*/
|
|
215
228
|
export declare function appendKnowledgeEvent(directory: string, event: KnowledgeEventInput): Promise<KnowledgeEvent>;
|
|
229
|
+
/**
|
|
230
|
+
* Append several events under ONE lock acquisition and ONE cap-trim pass.
|
|
231
|
+
* Multi-event emitters on awaited paths (e.g. the delegate ack-collector's
|
|
232
|
+
* per-directive `unacknowledged` loop, up to `delegate_max_inject_count`
|
|
233
|
+
* events per delegation) must use this instead of N sequential
|
|
234
|
+
* {@link appendKnowledgeEvent} calls — each of those takes the directory
|
|
235
|
+
* lock and re-reads the whole log for the FIFO trim, which is material on
|
|
236
|
+
* cold filesystems and under parallel delegations.
|
|
237
|
+
*
|
|
238
|
+
* Throws on I/O failure — hot paths should prefer
|
|
239
|
+
* {@link recordKnowledgeEventsBatch}, which swallows errors.
|
|
240
|
+
*/
|
|
241
|
+
export declare function appendKnowledgeEventsBatch(directory: string, events: KnowledgeEventInput[]): Promise<KnowledgeEvent[]>;
|
|
216
242
|
/**
|
|
217
243
|
* Fail-open variant of {@link appendKnowledgeEvent} for hot paths (hooks, tool
|
|
218
244
|
* execution). Never throws; logs a warning and returns null on failure.
|
|
219
245
|
*/
|
|
220
246
|
export declare function recordKnowledgeEvent(directory: string, event: KnowledgeEventInput): Promise<KnowledgeEvent | null>;
|
|
247
|
+
/**
|
|
248
|
+
* Fail-open variant of {@link appendKnowledgeEventsBatch} for hot paths.
|
|
249
|
+
* Never throws; logs a warning and returns null on failure (all-or-nothing:
|
|
250
|
+
* the batch is a single append, so there are no partial writes to report).
|
|
251
|
+
*/
|
|
252
|
+
export declare function recordKnowledgeEventsBatch(directory: string, events: KnowledgeEventInput[]): Promise<KnowledgeEvent[] | null>;
|
|
221
253
|
/**
|
|
222
254
|
* Append one event to the shared, cross-project hive events log. Use for audit
|
|
223
255
|
* tombstones of mutations to the hive store so any project can read why a hive
|
|
@@ -30,10 +30,10 @@ export type PrReviewDepthTier = 'S' | 'M' | 'L';
|
|
|
30
30
|
* always dispatch more lanes than a tier's floor, never fewer.
|
|
31
31
|
*/
|
|
32
32
|
export declare const PR_REVIEW_DEPTH_TIER_THRESHOLDS: {
|
|
33
|
-
readonly smallMaxChangedLines:
|
|
34
|
-
readonly smallMaxChangedFiles:
|
|
35
|
-
readonly mediumMaxChangedLines:
|
|
36
|
-
readonly mediumMaxChangedFiles:
|
|
33
|
+
readonly smallMaxChangedLines: 100;
|
|
34
|
+
readonly smallMaxChangedFiles: 5;
|
|
35
|
+
readonly mediumMaxChangedLines: 1500;
|
|
36
|
+
readonly mediumMaxChangedFiles: 50;
|
|
37
37
|
};
|
|
38
38
|
/**
|
|
39
39
|
* Minimum initial base-wave lane counts per depth tier. Tier L preserves the
|
|
@@ -44,7 +44,7 @@ export declare const PR_REVIEW_BASE_LANE_FLOORS: Record<PrReviewDepthTier, numbe
|
|
|
44
44
|
/**
|
|
45
45
|
* Minimum lane counts for a FULL micro (risk-family) sweep per depth tier. These
|
|
46
46
|
* mirror the base floors' tier *semantics* — not their numbers — scaled to the
|
|
47
|
-
* eleven risk families: S does not bind (a tier-S PR of ≤
|
|
47
|
+
* eleven risk families: S does not bind (a tier-S PR of ≤100 lines/≤5 files may
|
|
48
48
|
* consolidate a full sweep into one lane, exactly as base tier S permits); M
|
|
49
49
|
* requires at least half the families to get independent lanes (ceil(11/2) = 6,
|
|
50
50
|
* the deliberate scale-up from base M's 3 = ceil(6/2)); L requires one lane per
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { claimPrFeedbackMonitorEvents, readPrFeedbackMonitorQueue } from '../background/pr-feedback-event-queue.js';
|
|
2
|
-
import { readPrWorkflowGateState } from './pr-workflow-gate.js';
|
|
2
|
+
import { type PrReviewDepthTier, readPrWorkflowGateState } from './pr-workflow-gate.js';
|
|
3
3
|
export declare const _internals: {
|
|
4
4
|
readPrWorkflowGateState: typeof readPrWorkflowGateState;
|
|
5
5
|
claimPrFeedbackMonitorEvents: typeof claimPrFeedbackMonitorEvents;
|
|
@@ -54,6 +54,24 @@ export declare const DEFAULT_BANNER_COOLDOWN_MS = 20000;
|
|
|
54
54
|
* suppresses one.
|
|
55
55
|
*/
|
|
56
56
|
export declare const MAX_FALLBACK_BANNER_INJECTIONS_PER_SESSION = 20;
|
|
57
|
+
/**
|
|
58
|
+
* Per-tier default total-wake ceilings, derived proportionally from each
|
|
59
|
+
* depth tier's consolidation-floor workload (base lanes + micro lanes).
|
|
60
|
+
*
|
|
61
|
+
* DERIVATION:
|
|
62
|
+
* Tier workloads (base + micro): S = 1+1 = 2, M = 3+6 = 9, L = 6+11 = 17
|
|
63
|
+
* Headroom multiplier: 6 (chosen so that L >= 100 and scales uniformly)
|
|
64
|
+
* Ceilings: S = 2×6 = 12, M = 9×6 = 54, L = 17×6 = 102
|
|
65
|
+
*
|
|
66
|
+
* The tier-L ceiling (102) is comfortably above the observed ~40–55 healthy
|
|
67
|
+
* tier-L wake count, providing generous headroom for real reviews while still
|
|
68
|
+
* bounding pathological loops. Tier-S is tightest because small PRs have the
|
|
69
|
+
* least lane work; tier-M is proportionally in between.
|
|
70
|
+
*
|
|
71
|
+
* When `totalWakeCeiling` is provided to `createPrWorkflowResponseGate`,
|
|
72
|
+
* it overrides these defaults.
|
|
73
|
+
*/
|
|
74
|
+
export declare const DEFAULT_TOTAL_WAKE_CEILINGS: Record<PrReviewDepthTier, number>;
|
|
57
75
|
/**
|
|
58
76
|
* Bounded FIFO map of tracked wake budgets. Invariant 8 (session/global
|
|
59
77
|
* state): module-level state must have an explicit eviction strategy. Three
|
|
@@ -71,6 +89,13 @@ interface WakeBudget {
|
|
|
71
89
|
lastWakeAt: number;
|
|
72
90
|
lastSeenRevision?: number;
|
|
73
91
|
suspended: boolean;
|
|
92
|
+
/** Total number of wake attempts across the session lifetime. Never reset by
|
|
93
|
+
* revision progress — only the consecutive counter resets on progress. */
|
|
94
|
+
totalWakes: number;
|
|
95
|
+
/** Discriminator for WHY the session was suspended: 'consecutive' means
|
|
96
|
+
* the consecutive-unproductive budget was exhausted; 'total' means the
|
|
97
|
+
* absolute per-session total-wake ceiling was reached. */
|
|
98
|
+
suspendedReason: 'consecutive' | 'total';
|
|
74
99
|
}
|
|
75
100
|
/**
|
|
76
101
|
* Prevent an architect from masquerading a premature text output as a terminal
|
|
@@ -99,6 +124,12 @@ export declare function createPrWorkflowResponseGate(options: {
|
|
|
99
124
|
maxConsecutiveUnproductiveWakes?: number;
|
|
100
125
|
wakeCooldownMs?: number;
|
|
101
126
|
bannerCooldownMs?: number;
|
|
127
|
+
/** Override the per-tier default total-wake ceilings. A single number
|
|
128
|
+
* applies uniformly to all tiers; a partial Record allows per-tier
|
|
129
|
+
* overrides with unspecified tiers falling back to the defaults.
|
|
130
|
+
* When omitted, the context-aware defaults (DEFAULT_TOTAL_WAKE_CEILINGS)
|
|
131
|
+
* apply. */
|
|
132
|
+
totalWakeCeiling?: number | Partial<Record<PrReviewDepthTier, number>>;
|
|
102
133
|
}): {
|
|
103
134
|
event: (input: {
|
|
104
135
|
event: unknown;
|