@dzhechkov/harness-core 0.8.5 → 0.8.10

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.
Files changed (134) hide show
  1. package/.dz-manifest.json +286 -82
  2. package/README.md +54 -2
  3. package/dist/amendment-trace.d.ts.map +1 -1
  4. package/dist/amendment-trace.js +12 -1
  5. package/dist/amendment-trace.js.map +1 -1
  6. package/dist/compounding.d.ts +54 -0
  7. package/dist/compounding.d.ts.map +1 -1
  8. package/dist/compounding.js +221 -1
  9. package/dist/compounding.js.map +1 -1
  10. package/dist/eta.d.ts +92 -0
  11. package/dist/eta.d.ts.map +1 -0
  12. package/dist/eta.js +488 -0
  13. package/dist/eta.js.map +1 -0
  14. package/dist/feature-adr-checkpoints.d.ts +11 -2
  15. package/dist/feature-adr-checkpoints.d.ts.map +1 -1
  16. package/dist/feature-adr-checkpoints.js +38 -3
  17. package/dist/feature-adr-checkpoints.js.map +1 -1
  18. package/dist/feature-adr-decision-recall.d.ts +167 -0
  19. package/dist/feature-adr-decision-recall.d.ts.map +1 -0
  20. package/dist/feature-adr-decision-recall.js +519 -0
  21. package/dist/feature-adr-decision-recall.js.map +1 -0
  22. package/dist/feature-adr-landing.d.ts +37 -0
  23. package/dist/feature-adr-landing.d.ts.map +1 -0
  24. package/dist/feature-adr-landing.js +59 -0
  25. package/dist/feature-adr-landing.js.map +1 -0
  26. package/dist/feature-adr-routing.d.ts +58 -23
  27. package/dist/feature-adr-routing.d.ts.map +1 -1
  28. package/dist/feature-adr-routing.js +194 -69
  29. package/dist/feature-adr-routing.js.map +1 -1
  30. package/dist/guard-promotion.d.ts +41 -0
  31. package/dist/guard-promotion.d.ts.map +1 -1
  32. package/dist/guard-promotion.js +218 -4
  33. package/dist/guard-promotion.js.map +1 -1
  34. package/dist/guard-volume.d.ts +108 -0
  35. package/dist/guard-volume.d.ts.map +1 -0
  36. package/dist/guard-volume.js +536 -0
  37. package/dist/guard-volume.js.map +1 -0
  38. package/dist/guard.d.ts +34 -0
  39. package/dist/guard.d.ts.map +1 -1
  40. package/dist/guard.js +113 -4
  41. package/dist/guard.js.map +1 -1
  42. package/dist/index.d.ts +18 -4
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +12 -2
  45. package/dist/index.js.map +1 -1
  46. package/dist/integration-apply.d.ts +25 -0
  47. package/dist/integration-apply.d.ts.map +1 -0
  48. package/dist/integration-apply.js +299 -0
  49. package/dist/integration-apply.js.map +1 -0
  50. package/dist/integration-evidence.d.ts +46 -0
  51. package/dist/integration-evidence.d.ts.map +1 -0
  52. package/dist/integration-evidence.js +44 -0
  53. package/dist/integration-evidence.js.map +1 -0
  54. package/dist/integration-probe-worker.d.ts +22 -0
  55. package/dist/integration-probe-worker.d.ts.map +1 -0
  56. package/dist/integration-probe-worker.js +334 -0
  57. package/dist/integration-probe-worker.js.map +1 -0
  58. package/dist/integrations-verify.d.ts +60 -0
  59. package/dist/integrations-verify.d.ts.map +1 -0
  60. package/dist/integrations-verify.js +194 -0
  61. package/dist/integrations-verify.js.map +1 -0
  62. package/dist/lesson-generalization.d.ts +29 -0
  63. package/dist/lesson-generalization.d.ts.map +1 -0
  64. package/dist/lesson-generalization.js +84 -0
  65. package/dist/lesson-generalization.js.map +1 -0
  66. package/dist/loop-blobs.generated.js +8 -8
  67. package/dist/loop-blobs.generated.js.map +1 -1
  68. package/dist/loop-plan.d.ts +13 -1
  69. package/dist/loop-plan.d.ts.map +1 -1
  70. package/dist/loop-plan.js +15 -1
  71. package/dist/loop-plan.js.map +1 -1
  72. package/dist/loop-render.d.ts.map +1 -1
  73. package/dist/loop-render.js +51 -6
  74. package/dist/loop-render.js.map +1 -1
  75. package/dist/loop-trace.d.ts +20 -1
  76. package/dist/loop-trace.d.ts.map +1 -1
  77. package/dist/loop-trace.js +83 -1
  78. package/dist/loop-trace.js.map +1 -1
  79. package/dist/model-recommender.d.ts +8 -0
  80. package/dist/model-recommender.d.ts.map +1 -1
  81. package/dist/model-recommender.js +31 -4
  82. package/dist/model-recommender.js.map +1 -1
  83. package/dist/operations.d.ts +27 -0
  84. package/dist/operations.d.ts.map +1 -1
  85. package/dist/operations.js +178 -2
  86. package/dist/operations.js.map +1 -1
  87. package/dist/patterns.d.ts +27 -1
  88. package/dist/patterns.d.ts.map +1 -1
  89. package/dist/patterns.js +211 -45
  90. package/dist/patterns.js.map +1 -1
  91. package/dist/setup.d.ts.map +1 -1
  92. package/dist/setup.js +20 -17
  93. package/dist/setup.js.map +1 -1
  94. package/dist/target-integrations.d.ts +65 -0
  95. package/dist/target-integrations.d.ts.map +1 -0
  96. package/dist/target-integrations.js +152 -0
  97. package/dist/target-integrations.js.map +1 -0
  98. package/dist/vector-tier.d.ts +6 -1
  99. package/dist/vector-tier.d.ts.map +1 -1
  100. package/dist/vector-tier.js +32 -7
  101. package/dist/vector-tier.js.map +1 -1
  102. package/dist/workflow-run.d.ts.map +1 -1
  103. package/dist/workflow-run.js +18 -12
  104. package/dist/workflow-run.js.map +1 -1
  105. package/package.json +19 -15
  106. package/sbom.json +591 -81
  107. package/src/amendment-trace.ts +12 -1
  108. package/src/compounding.ts +300 -1
  109. package/src/eta.ts +590 -0
  110. package/src/feature-adr-checkpoints.ts +39 -3
  111. package/src/feature-adr-decision-recall.ts +652 -0
  112. package/src/feature-adr-landing.ts +109 -0
  113. package/src/feature-adr-routing.ts +224 -65
  114. package/src/guard-promotion.ts +245 -4
  115. package/src/guard-volume.ts +752 -0
  116. package/src/guard.ts +148 -4
  117. package/src/index.ts +65 -3
  118. package/src/integration-apply.ts +332 -0
  119. package/src/integration-evidence.ts +89 -0
  120. package/src/integration-probe-worker.ts +310 -0
  121. package/src/integration-receipts/claude-code/mcp/2.1.235.json +35 -0
  122. package/src/integrations-verify.ts +258 -0
  123. package/src/lesson-generalization.ts +115 -0
  124. package/src/loop-blobs.generated.ts +8 -8
  125. package/src/loop-plan.ts +36 -3
  126. package/src/loop-render.ts +50 -6
  127. package/src/loop-trace.ts +91 -2
  128. package/src/model-recommender.ts +35 -4
  129. package/src/operations.ts +199 -2
  130. package/src/patterns.ts +252 -43
  131. package/src/setup.ts +20 -17
  132. package/src/target-integrations.ts +225 -0
  133. package/src/vector-tier.ts +44 -14
  134. package/src/workflow-run.ts +18 -11
@@ -1 +1 @@
1
- {"version":3,"file":"compounding.js","sourceRoot":"","sources":["../src/compounding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compounding.js","sourceRoot":"","sources":["../src/compounding.ts"],"names":[],"mappings":"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"}
package/dist/eta.d.ts ADDED
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Pure ETA calibration for the live feature-adr statusline.
3
+ *
4
+ * This module deliberately performs no filesystem access and reads no ambient clock. Callers pass
5
+ * parsed JSONL text and `nowMs`; malformed or unstamped observations remain unknown, never zero.
6
+ */
7
+ import { type CheckpointStage } from './feature-adr-checkpoints.js';
8
+ export declare const ETA_MAX_STAGE_MS: number;
9
+ export interface CheckpointObservation {
10
+ readonly runId: string;
11
+ readonly stage: string;
12
+ readonly result: unknown;
13
+ readonly tsMs?: number;
14
+ }
15
+ export interface RunSegment {
16
+ readonly runId: string;
17
+ readonly observations: readonly CheckpointObservation[];
18
+ /** The most recent router in this invocation, retained across resume slices. */
19
+ readonly router?: CheckpointObservation;
20
+ }
21
+ export interface StageDurationSample {
22
+ readonly runId: string;
23
+ readonly tier: string;
24
+ readonly stage: CheckpointStage;
25
+ readonly ms: number;
26
+ readonly fromTsMs: number;
27
+ readonly toTsMs: number;
28
+ readonly codexCoded?: boolean;
29
+ /** Macro stages whose wall time is already included in this sample. */
30
+ readonly coveredStages?: readonly CheckpointStage[];
31
+ }
32
+ export interface IncompleteCoverageSample {
33
+ readonly runId: string;
34
+ readonly tier: string;
35
+ readonly stage: 'code';
36
+ readonly codexCoded: true;
37
+ readonly incompleteCoverage: true;
38
+ readonly fromTsMs: number;
39
+ readonly toTsMs: number;
40
+ }
41
+ export type StageSample = StageDurationSample | IncompleteCoverageSample;
42
+ export type EtaEstimate = {
43
+ readonly kind: 'eta';
44
+ readonly presentation: 'point' | 'range';
45
+ readonly p25Ms: number;
46
+ readonly medianMs: number;
47
+ readonly p75Ms: number;
48
+ readonly runsUsed: number;
49
+ readonly tier: string;
50
+ readonly paceFactor: number;
51
+ readonly stagesCovered: readonly CheckpointStage[];
52
+ readonly windowFrom: string;
53
+ readonly windowTo: string;
54
+ } | {
55
+ readonly kind: 'insufficient-history';
56
+ readonly tier: string;
57
+ readonly runsFound: number;
58
+ readonly thinStage: CheckpointStage;
59
+ readonly windowFrom?: string;
60
+ readonly windowTo?: string;
61
+ } | {
62
+ readonly kind: 'no-tier';
63
+ } | {
64
+ readonly kind: 'no-checkpoints';
65
+ };
66
+ export interface EtaInput {
67
+ readonly samples: readonly StageSample[];
68
+ readonly currentTier: string | undefined;
69
+ readonly currentStage: CheckpointStage;
70
+ readonly remainingStages: readonly CheckpointStage[];
71
+ readonly currentRunSamples: readonly StageSample[];
72
+ readonly nowMs: number;
73
+ readonly lastCheckpointTsMs?: number;
74
+ readonly hasCurrentCheckpoints?: boolean;
75
+ }
76
+ /** Parse JSONL independently per line. A malformed line can never poison its valid neighbours. */
77
+ export declare function parseCheckpointLines(text: string, runId: string): CheckpointObservation[];
78
+ /**
79
+ * Split a slug's append-only history into monotonic timing slices.
80
+ *
81
+ * Distinct `design:*` siblings share one macro stage and may arrive in any order. A repeated sibling,
82
+ * repeated macro stage, or move backwards starts a resume slice. The latest router is carried as
83
+ * metadata into later slices, so their tier still comes from that invocation's router record.
84
+ */
85
+ export declare function segmentRun(observations: readonly CheckpointObservation[]): RunSegment[];
86
+ /** Extract one tier-labelled duration per `(runId, tier, stage)`, summing resumed slices. */
87
+ export declare function extractStageSamples(segments: readonly RunSegment[]): StageSample[];
88
+ /** Estimate the remaining macro stages without consulting the filesystem or an ambient clock. */
89
+ export declare function estimateEta(input: EtaInput): EtaEstimate;
90
+ /** Render the compact Russian statusline fragment, always including its evidence basis. */
91
+ export declare function formatEta(estimate: EtaEstimate): string | undefined;
92
+ //# sourceMappingURL=eta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eta.d.ts","sourceRoot":"","sources":["../src/eta.ts"],"names":[],"mappings":"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"}
package/dist/eta.js ADDED
@@ -0,0 +1,488 @@
1
+ /**
2
+ * Pure ETA calibration for the live feature-adr statusline.
3
+ *
4
+ * This module deliberately performs no filesystem access and reads no ambient clock. Callers pass
5
+ * parsed JSONL text and `nowMs`; malformed or unstamped observations remain unknown, never zero.
6
+ */
7
+ import { CHECKPOINT_STAGES, DESIGN_SUBSTAGES, } from './feature-adr-checkpoints.js';
8
+ export const ETA_MAX_STAGE_MS = 6 * 3_600_000;
9
+ const DESIGN_STAGE_NAMES = new Set([
10
+ 'design',
11
+ ...DESIGN_SUBSTAGES.map((stage) => `design:${stage}`),
12
+ ]);
13
+ function macroStage(stage) {
14
+ if (DESIGN_STAGE_NAMES.has(stage))
15
+ return 'design';
16
+ return CHECKPOINT_STAGES.includes(stage) ? stage : undefined;
17
+ }
18
+ /** Parse JSONL independently per line. A malformed line can never poison its valid neighbours. */
19
+ export function parseCheckpointLines(text, runId) {
20
+ const observations = [];
21
+ for (const raw of String(text ?? '').split('\n')) {
22
+ const line = raw.trim();
23
+ if (line === '')
24
+ continue;
25
+ try {
26
+ const parsed = JSON.parse(line);
27
+ if (parsed === null || typeof parsed !== 'object' || typeof parsed['stage'] !== 'string')
28
+ continue;
29
+ const ts = typeof parsed['ts'] === 'string' ? Date.parse(parsed['ts']) : Number.NaN;
30
+ observations.push({
31
+ runId,
32
+ stage: parsed['stage'],
33
+ result: parsed['result'],
34
+ ...(Number.isFinite(ts) ? { tsMs: ts } : {}),
35
+ });
36
+ }
37
+ catch {
38
+ // One corrupt append is unknown evidence, not a zero-duration sample and not a fatal file.
39
+ }
40
+ }
41
+ return observations;
42
+ }
43
+ /**
44
+ * Split a slug's append-only history into monotonic timing slices.
45
+ *
46
+ * Distinct `design:*` siblings share one macro stage and may arrive in any order. A repeated sibling,
47
+ * repeated macro stage, or move backwards starts a resume slice. The latest router is carried as
48
+ * metadata into later slices, so their tier still comes from that invocation's router record.
49
+ */
50
+ export function segmentRun(observations) {
51
+ const segments = [];
52
+ let entries = [];
53
+ let router;
54
+ let lastIndex = -1;
55
+ let designKeys = new Set();
56
+ let invocation = 0;
57
+ let segmentRunId;
58
+ const flush = () => {
59
+ if (entries.length === 0)
60
+ return;
61
+ segments.push({
62
+ runId: segmentRunId ?? entries[0].runId,
63
+ observations: entries,
64
+ ...(router !== undefined ? { router } : {}),
65
+ });
66
+ entries = [];
67
+ lastIndex = -1;
68
+ designKeys = new Set();
69
+ };
70
+ for (const observation of observations) {
71
+ const macro = macroStage(observation.stage);
72
+ if (macro === undefined)
73
+ continue;
74
+ const index = CHECKPOINT_STAGES.indexOf(macro);
75
+ if (macro === 'router') {
76
+ flush();
77
+ router = observation;
78
+ invocation += 1;
79
+ segmentRunId = invocation === 1 ? observation.runId : `${observation.runId}#${invocation}`;
80
+ entries.push(observation);
81
+ lastIndex = index;
82
+ continue;
83
+ }
84
+ const distinctDesignSibling = macro === 'design'
85
+ && lastIndex === CHECKPOINT_STAGES.indexOf('design')
86
+ && !designKeys.has(observation.stage);
87
+ if (entries.length > 0 && (index < lastIndex || (index === lastIndex && !distinctDesignSibling))) {
88
+ flush();
89
+ }
90
+ segmentRunId ??= observation.runId;
91
+ entries.push(observation);
92
+ lastIndex = index;
93
+ if (macro === 'design')
94
+ designKeys.add(observation.stage);
95
+ }
96
+ flush();
97
+ return segments;
98
+ }
99
+ function tierOf(segment) {
100
+ const result = segment.router?.result;
101
+ if (result === null || typeof result !== 'object')
102
+ return undefined;
103
+ const tier = result['tier'];
104
+ return typeof tier === 'string' && tier.length > 0 ? tier : undefined;
105
+ }
106
+ function coderUsed(observation) {
107
+ const result = observation?.result;
108
+ if (result === null || typeof result !== 'object')
109
+ return undefined;
110
+ const coder = result['coderUsed'];
111
+ return typeof coder === 'string' ? coder : undefined;
112
+ }
113
+ function completionsOf(segment) {
114
+ const completions = new Map();
115
+ for (const observation of segment.observations) {
116
+ const stage = macroStage(observation.stage);
117
+ if (stage === undefined || observation.tsMs === undefined)
118
+ continue;
119
+ const current = completions.get(stage);
120
+ if (current === undefined || observation.tsMs > current.tsMs) {
121
+ completions.set(stage, { observation, tsMs: observation.tsMs });
122
+ }
123
+ }
124
+ return completions;
125
+ }
126
+ function usableDelta(from, to) {
127
+ if (from === undefined || to === undefined)
128
+ return undefined;
129
+ const delta = to.tsMs - from.tsMs;
130
+ return delta < 0 || delta > ETA_MAX_STAGE_MS ? undefined : delta;
131
+ }
132
+ /** Extract one tier-labelled duration per `(runId, tier, stage)`, summing resumed slices. */
133
+ export function extractStageSamples(segments) {
134
+ const raw = [];
135
+ for (const segment of segments) {
136
+ const tier = tierOf(segment);
137
+ if (tier === undefined)
138
+ continue;
139
+ const completions = completionsOf(segment);
140
+ let suppressedStage;
141
+ for (let index = 1; index < CHECKPOINT_STAGES.length; index++) {
142
+ const stage = CHECKPOINT_STAGES[index];
143
+ if (stage === suppressedStage)
144
+ continue;
145
+ const current = completions.get(stage);
146
+ if (current === undefined)
147
+ continue;
148
+ let predecessor = completions.get(CHECKPOINT_STAGES[index - 1]);
149
+ let endpoint = current;
150
+ const codexCoded = stage === 'code' && coderUsed(current.observation) === 'codex';
151
+ if (codexCoded) {
152
+ predecessor = completions.get('plan');
153
+ const nextStage = CHECKPOINT_STAGES[index + 1];
154
+ const candidate = nextStage === undefined ? undefined : completions.get(nextStage);
155
+ if (candidate !== undefined) {
156
+ endpoint = candidate;
157
+ suppressedStage = nextStage;
158
+ }
159
+ // A dispatch without a measurable landing is preserved as typed UNKNOWN evidence. It has
160
+ // no `ms`, so it cannot leak into a percentile, but it can invalidate an otherwise partial
161
+ // resumed run during coverage normalization.
162
+ if (predecessor === undefined || endpoint === current) {
163
+ raw.push({
164
+ runId: segment.runId,
165
+ tier,
166
+ stage: 'code',
167
+ codexCoded: true,
168
+ incompleteCoverage: true,
169
+ fromTsMs: predecessor?.tsMs ?? current.tsMs,
170
+ toTsMs: current.tsMs,
171
+ });
172
+ continue;
173
+ }
174
+ }
175
+ const ms = usableDelta(predecessor, endpoint);
176
+ if (ms === undefined || predecessor === undefined) {
177
+ if (codexCoded) {
178
+ raw.push({
179
+ runId: segment.runId,
180
+ tier,
181
+ stage: 'code',
182
+ codexCoded: true,
183
+ incompleteCoverage: true,
184
+ fromTsMs: predecessor?.tsMs ?? current.tsMs,
185
+ toTsMs: endpoint.tsMs,
186
+ });
187
+ }
188
+ continue;
189
+ }
190
+ raw.push({
191
+ runId: segment.runId,
192
+ tier,
193
+ stage,
194
+ ms,
195
+ fromTsMs: predecessor.tsMs,
196
+ toTsMs: endpoint.tsMs,
197
+ ...(codexCoded ? { codexCoded: true, coveredStages: [stage, suppressedStage] } : {}),
198
+ });
199
+ }
200
+ }
201
+ const aggregated = new Map();
202
+ const coverageSlices = [];
203
+ for (const current of raw) {
204
+ if ('incompleteCoverage' in current) {
205
+ coverageSlices.push(current);
206
+ continue;
207
+ }
208
+ if (current.stage === 'code' || current.stage === 'qe') {
209
+ // Pairing code→qe is a slice-level proof. Aggregating these stages now would erase whether
210
+ // every resumed code slice actually acquired a landing witness.
211
+ coverageSlices.push(current);
212
+ continue;
213
+ }
214
+ // Coverage is part of the unit. A resumed run may switch coder family: merging a raw `code`
215
+ // slice with a folded `code+qe` slice here would erase the standalone QE time before the
216
+ // estimator can normalize both shapes.
217
+ const coverage = (current.coveredStages ?? [current.stage]).join('+');
218
+ const key = `${current.runId}\u0000${current.tier}\u0000${current.stage}\u0000${coverage}`;
219
+ const previous = aggregated.get(key);
220
+ if (previous === undefined) {
221
+ aggregated.set(key, current);
222
+ continue;
223
+ }
224
+ aggregated.set(key, {
225
+ runId: current.runId,
226
+ tier: current.tier,
227
+ stage: current.stage,
228
+ ms: previous.ms + current.ms,
229
+ fromTsMs: Math.min(previous.fromTsMs, current.fromTsMs),
230
+ toTsMs: Math.max(previous.toTsMs, current.toTsMs),
231
+ ...(previous.codexCoded === true || current.codexCoded === true ? { codexCoded: true } : {}),
232
+ ...(previous.coveredStages !== undefined || current.coveredStages !== undefined
233
+ ? { coveredStages: [...new Set([...(previous.coveredStages ?? [previous.stage]), ...(current.coveredStages ?? [current.stage])])] }
234
+ : {}),
235
+ });
236
+ }
237
+ return [...aggregated.values(), ...coverageSlices].sort((left, right) => left.runId.localeCompare(right.runId)
238
+ || left.tier.localeCompare(right.tier)
239
+ || CHECKPOINT_STAGES.indexOf(left.stage) - CHECKPOINT_STAGES.indexOf(right.stage)
240
+ || left.fromTsMs - right.fromTsMs);
241
+ }
242
+ function quantile(sorted, q) {
243
+ if (sorted.length === 0)
244
+ return Number.NaN;
245
+ const position = (sorted.length - 1) * q;
246
+ const lower = Math.floor(position);
247
+ const upper = Math.ceil(position);
248
+ const low = sorted[lower];
249
+ const high = sorted[upper];
250
+ return low + (high - low) * (position - lower);
251
+ }
252
+ function clamp(value, minimum, maximum) {
253
+ return Math.min(maximum, Math.max(minimum, value));
254
+ }
255
+ function isoDay(tsMs) {
256
+ return new Date(tsMs).toISOString().slice(0, 10);
257
+ }
258
+ function evidenceWindow(samples) {
259
+ if (samples.length === 0)
260
+ return {};
261
+ return {
262
+ windowFrom: isoDay(Math.min(...samples.map((sample) => sample.fromTsMs))),
263
+ windowTo: isoDay(Math.max(...samples.map((sample) => sample.toTsMs))),
264
+ };
265
+ }
266
+ function stageBucket(samples, tier, stage) {
267
+ const byRun = new Map();
268
+ for (const entry of samples) {
269
+ if ('incompleteCoverage' in entry)
270
+ continue;
271
+ if (entry.tier !== tier || entry.stage !== stage || !Number.isFinite(entry.ms) || entry.ms < 0)
272
+ continue;
273
+ const previous = byRun.get(entry.runId);
274
+ byRun.set(entry.runId, previous === undefined ? entry : {
275
+ ...entry,
276
+ ms: previous.ms + entry.ms,
277
+ fromTsMs: Math.min(previous.fromTsMs, entry.fromTsMs),
278
+ toTsMs: Math.max(previous.toTsMs, entry.toTsMs),
279
+ ...(previous.codexCoded === true || entry.codexCoded === true ? { codexCoded: true } : {}),
280
+ ...(previous.coveredStages !== undefined || entry.coveredStages !== undefined
281
+ ? { coveredStages: [...new Set([...(previous.coveredStages ?? [previous.stage]), ...(entry.coveredStages ?? [entry.stage])])] }
282
+ : {}),
283
+ });
284
+ }
285
+ return [...byRun.values()];
286
+ }
287
+ function statsFor(samples, tier, stage) {
288
+ const bucket = stageBucket(samples, tier, stage);
289
+ const durations = bucket.map((entry) => entry.ms).sort((a, b) => a - b);
290
+ return {
291
+ stage,
292
+ coveredStages: [stage],
293
+ samples: bucket,
294
+ runs: bucket.length,
295
+ p25: quantile(durations, 0.25),
296
+ median: quantile(durations, 0.5),
297
+ p75: quantile(durations, 0.75),
298
+ };
299
+ }
300
+ /** Normalize Codex's folded code+qe sample and Claude's two ordinary samples to one comparable block. */
301
+ function codeQeBucket(samples, tier) {
302
+ const byRun = new Map();
303
+ for (const sample of samples) {
304
+ if (sample.tier !== tier || (sample.stage !== 'code' && sample.stage !== 'qe'))
305
+ continue;
306
+ const parts = byRun.get(sample.runId) ?? { folded: [], rawCode: [], qe: [], incomplete: false };
307
+ if ('incompleteCoverage' in sample)
308
+ parts.incomplete = true;
309
+ else if (sample.stage === 'qe')
310
+ parts.qe.push(sample);
311
+ else if (sample.coveredStages?.includes('qe') === true)
312
+ parts.folded.push(sample);
313
+ else
314
+ parts.rawCode.push(sample);
315
+ byRun.set(sample.runId, parts);
316
+ }
317
+ const bucket = [];
318
+ for (const [runId, parts] of byRun) {
319
+ if (parts.incomplete)
320
+ continue;
321
+ // Every raw code slice needs its own immediately-linked QE slice. One QE somewhere in the run
322
+ // is not evidence that every resumed attempt landed.
323
+ const availableQe = [...parts.qe];
324
+ const pairedQe = [];
325
+ let incomplete = false;
326
+ for (const codeSample of parts.rawCode) {
327
+ const match = availableQe.findIndex((sample) => sample.fromTsMs === codeSample.toTsMs);
328
+ if (match < 0) {
329
+ incomplete = true;
330
+ break;
331
+ }
332
+ pairedQe.push(availableQe.splice(match, 1)[0]);
333
+ }
334
+ if (incomplete)
335
+ continue;
336
+ if (parts.folded.length === 0 && parts.rawCode.length === 0)
337
+ continue;
338
+ const contributing = [...parts.folded, ...parts.rawCode, ...pairedQe];
339
+ bucket.push({
340
+ runId,
341
+ tier,
342
+ stage: 'code',
343
+ ms: contributing.reduce((sum, sample) => sum + sample.ms, 0),
344
+ fromTsMs: Math.min(...contributing.map((sample) => sample.fromTsMs)),
345
+ toTsMs: Math.max(...contributing.map((sample) => sample.toTsMs)),
346
+ coveredStages: ['code', 'qe'],
347
+ ...(parts.folded.some((sample) => sample.codexCoded === true) ? { codexCoded: true } : {}),
348
+ });
349
+ }
350
+ return bucket;
351
+ }
352
+ function codeQeStats(samples, tier) {
353
+ const bucket = codeQeBucket(samples, tier);
354
+ const durations = bucket.map((entry) => entry.ms).sort((a, b) => a - b);
355
+ return {
356
+ stage: 'code',
357
+ coveredStages: ['code', 'qe'],
358
+ samples: bucket,
359
+ runs: bucket.length,
360
+ p25: quantile(durations, 0.25),
361
+ median: quantile(durations, 0.5),
362
+ p75: quantile(durations, 0.75),
363
+ };
364
+ }
365
+ function normalizeCoverage(samples, tier) {
366
+ const normalized = codeQeBucket(samples, tier);
367
+ for (const stage of CHECKPOINT_STAGES) {
368
+ if (stage === 'router' || stage === 'code' || stage === 'qe')
369
+ continue;
370
+ normalized.push(...stageBucket(samples, tier, stage));
371
+ }
372
+ return normalized;
373
+ }
374
+ /** Estimate the remaining macro stages without consulting the filesystem or an ambient clock. */
375
+ export function estimateEta(input) {
376
+ if (input.hasCurrentCheckpoints === false)
377
+ return { kind: 'no-checkpoints' };
378
+ if (input.currentTier === undefined || input.currentTier.length === 0)
379
+ return { kind: 'no-tier' };
380
+ const remaining = [...new Set(input.remainingStages)].filter((stage) => stage !== 'router');
381
+ if (remaining.length === 0)
382
+ return { kind: 'no-checkpoints' };
383
+ const statistics = [];
384
+ for (let index = 0; index < remaining.length; index++) {
385
+ const stage = remaining[index];
386
+ const stats = stage === 'code' && remaining.includes('qe')
387
+ ? codeQeStats(input.samples, input.currentTier)
388
+ : statsFor(input.samples, input.currentTier, stage);
389
+ if (stats.runs < 3) {
390
+ const window = evidenceWindow(stats.samples);
391
+ return {
392
+ kind: 'insufficient-history',
393
+ tier: input.currentTier,
394
+ runsFound: stats.runs,
395
+ thinStage: stage,
396
+ ...window,
397
+ };
398
+ }
399
+ statistics.push(stats);
400
+ if (stats.coveredStages.includes('qe'))
401
+ index = Math.max(index, remaining.indexOf('qe'));
402
+ }
403
+ const currentIndex = CHECKPOINT_STAGES.indexOf(input.currentStage);
404
+ const normalizedHistory = normalizeCoverage(input.samples, input.currentTier);
405
+ const normalizedCurrent = normalizeCoverage(input.currentRunSamples, input.currentTier);
406
+ let currentTotal = 0;
407
+ let historicalTotal = 0;
408
+ for (const current of normalizedCurrent) {
409
+ if (current.tier !== input.currentTier || CHECKPOINT_STAGES.indexOf(current.stage) >= currentIndex)
410
+ continue;
411
+ const historical = statsFor(normalizedHistory, input.currentTier, current.stage);
412
+ if (historical.runs < 3 || !Number.isFinite(historical.median) || historical.median <= 0)
413
+ continue;
414
+ currentTotal += current.ms;
415
+ historicalTotal += historical.median;
416
+ }
417
+ const paceFactor = historicalTotal > 0
418
+ ? clamp(currentTotal / historicalTotal, 0.5, 2)
419
+ : 1;
420
+ const elapsed = input.lastCheckpointTsMs !== undefined
421
+ && Number.isFinite(input.lastCheckpointTsMs)
422
+ && Number.isFinite(input.nowMs)
423
+ ? Math.max(0, input.nowMs - input.lastCheckpointTsMs)
424
+ : 0;
425
+ const currentStats = statistics.find((stats) => stats.stage === input.currentStage);
426
+ const currentBound = currentStats === undefined
427
+ ? 0
428
+ : (input.currentStage === 'code' ? currentStats.p75 : currentStats.median) * paceFactor;
429
+ const overrunMs = currentBound > 0 ? Math.max(0, elapsed - currentBound) : 0;
430
+ const remainingValue = (stage, value) => {
431
+ const paced = value * paceFactor;
432
+ if (stage !== input.currentStage || elapsed === 0)
433
+ return paced;
434
+ // Once elapsed time outruns the historical bound, restarting the stale prior would ignore the
435
+ // only live evidence we have. Add the measured overrun so the estimate extends monotonically.
436
+ if (overrunMs > 0)
437
+ return paced + overrunMs;
438
+ return Math.max(0, paced - elapsed);
439
+ };
440
+ const contributing = statistics.flatMap((stats) => stats.samples);
441
+ const window = evidenceWindow(contributing);
442
+ const p25Ms = statistics.reduce((sum, stats) => sum + remainingValue(stats.stage, stats.p25), 0);
443
+ const medianMs = statistics.reduce((sum, stats) => sum + remainingValue(stats.stage, stats.median), 0);
444
+ const p75Ms = statistics.reduce((sum, stats) => sum + remainingValue(stats.stage, stats.p75), 0);
445
+ const presentation = p75Ms / p25Ms > 1.5 ? 'range' : 'point';
446
+ return {
447
+ kind: 'eta',
448
+ presentation,
449
+ p25Ms,
450
+ medianMs,
451
+ p75Ms,
452
+ runsUsed: Math.min(...statistics.map((stats) => stats.runs)),
453
+ tier: input.currentTier,
454
+ paceFactor,
455
+ stagesCovered: [...new Set(statistics.flatMap((stats) => stats.coveredStages))],
456
+ windowFrom: window.windowFrom,
457
+ windowTo: window.windowTo,
458
+ };
459
+ }
460
+ function displayMinutes(ms) {
461
+ return Math.max(1, Math.ceil(ms / 60_000));
462
+ }
463
+ /** Render the compact Russian statusline fragment, always including its evidence basis. */
464
+ export function formatEta(estimate) {
465
+ switch (estimate.kind) {
466
+ case 'eta': {
467
+ const basis = `n=${estimate.runsUsed} ранам ${estimate.tier}; окно ${estimate.windowFrom}–${estimate.windowTo}`;
468
+ if (estimate.presentation === 'range') {
469
+ return `⏱ ~${displayMinutes(estimate.p25Ms)}–${displayMinutes(estimate.p75Ms)}м (p25–p75 по ${basis})`;
470
+ }
471
+ return `⏱ ~${displayMinutes(estimate.medianMs)}м (медиана по ${basis})`;
472
+ }
473
+ case 'insufficient-history': {
474
+ const window = estimate.windowFrom !== undefined && estimate.windowTo !== undefined
475
+ ? `${estimate.windowFrom}–${estimate.windowTo}`
476
+ : 'нет данных';
477
+ return `ETA: недостаточно истории (n=${estimate.runsFound} ${estimate.tier}; окно ${window})`;
478
+ }
479
+ case 'no-tier':
480
+ case 'no-checkpoints':
481
+ return undefined;
482
+ default: {
483
+ const exhaustive = estimate;
484
+ return exhaustive;
485
+ }
486
+ }
487
+ }
488
+ //# sourceMappingURL=eta.js.map