@dzhechkov/harness-core 0.4.2 → 0.4.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/.dz-manifest.json +104 -28
- package/README.md +3 -2
- package/dist/backlog.d.ts +35 -0
- package/dist/backlog.d.ts.map +1 -1
- package/dist/backlog.js +167 -3
- package/dist/backlog.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/loop-plan-graph.d.ts +49 -0
- package/dist/loop-plan-graph.d.ts.map +1 -0
- package/dist/loop-plan-graph.js +128 -0
- package/dist/loop-plan-graph.js.map +1 -0
- package/dist/loop-plan.d.ts.map +1 -1
- package/dist/loop-plan.js +13 -15
- package/dist/loop-plan.js.map +1 -1
- package/dist/model-recommender.d.ts +91 -0
- package/dist/model-recommender.d.ts.map +1 -0
- package/dist/model-recommender.js +186 -0
- package/dist/model-recommender.js.map +1 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +4 -1
- package/dist/registry.js.map +1 -1
- package/dist/trace-bundle.d.ts +209 -0
- package/dist/trace-bundle.d.ts.map +1 -0
- package/dist/trace-bundle.js +601 -0
- package/dist/trace-bundle.js.map +1 -0
- package/dist/usage.d.ts +7 -0
- package/dist/usage.d.ts.map +1 -1
- package/dist/usage.js +30 -2
- package/dist/usage.js.map +1 -1
- package/package.json +3 -3
- package/sbom.json +217 -27
- package/src/backlog.ts +176 -3
- package/src/index.ts +3 -0
- package/src/loop-plan-graph.ts +132 -0
- package/src/loop-plan.ts +13 -15
- package/src/model-recommender.ts +228 -0
- package/src/registry.ts +4 -1
- package/src/trace-bundle.ts +743 -0
- package/src/usage.ts +42 -2
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* model-recommender (backlog a9c3dd5c, function 3) — the PURE half of `dz routing recommend`.
|
|
3
|
+
*
|
|
4
|
+
* NOT a fifth analyzer (ADR-001 D1): this module HARVESTS per-stage (model → success) samples out of
|
|
5
|
+
* the harness's own workflow records (and imported run-meta sidecars) and hands them to the EXISTING
|
|
6
|
+
* `selectAutoCost` brain in routing-outcomes.ts — the same brain the `auto-cost` plan spec reads. The
|
|
7
|
+
* store that brain trusts (`.dz/routing-outcomes.json`) had never been fed before this feature.
|
|
8
|
+
*
|
|
9
|
+
* Honesty rules, load-bearing:
|
|
10
|
+
* - The ONLY grade a record carries is RUN-level. Attributing it to every stage's model is an
|
|
11
|
+
* INFERENCE, and the printed basis states the rule rather than implying it (ADR-001 D2).
|
|
12
|
+
* - Cross-family QE is UNREPRESENTABLE, not filtered: the qe pick is computed with the family
|
|
13
|
+
* parameter forced to the cross of the code pick's family (ADR-001 D3).
|
|
14
|
+
* - `--apply` idempotency lives here as a pure plan (`planFeed`): double-feeding the same runs
|
|
15
|
+
* would manufacture confidence the data does not contain (ADR-001 D4).
|
|
16
|
+
*
|
|
17
|
+
* No fs, no clock, no randomness — the CLI reads records and does the I/O.
|
|
18
|
+
*/
|
|
19
|
+
import { COST_LADDER, selectAutoCost } from './routing-outcomes.js';
|
|
20
|
+
/** success ⇔ grade ≥ this floor. DATA, exported, and printed in every basis (FR-4). */
|
|
21
|
+
export const GRADE_SUCCESS_FLOOR = 'B';
|
|
22
|
+
const SUCCESS_GRADES = new Set(['A+', 'A', 'A-', 'B+', 'B']);
|
|
23
|
+
export function gradeIsSuccess(grade) {
|
|
24
|
+
return SUCCESS_GRADES.has(grade.trim().toUpperCase());
|
|
25
|
+
}
|
|
26
|
+
const RULE_TEXT = `success ⇔ QE grade ≥ ${GRADE_SUCCESS_FLOOR} (run-level); the run's ONE grade is attributed to every ` +
|
|
27
|
+
`stage's model of that run — an inference, stated here because a hidden basis is an opinion in uniform`;
|
|
28
|
+
/** `codex:gpt-5.5:xhigh (usage-switched)` → `gpt-5.5`; claude ids pass through; unknown → null. */
|
|
29
|
+
export function normalizeModelId(raw) {
|
|
30
|
+
if (typeof raw !== 'string' || raw === '')
|
|
31
|
+
return null;
|
|
32
|
+
let id = raw.replace(/ \(usage-switched\)$/, '').trim();
|
|
33
|
+
const codex = /^codex:([^:]+)(?::[a-z]+)?$/.exec(id);
|
|
34
|
+
if (codex !== null)
|
|
35
|
+
id = codex[1];
|
|
36
|
+
return COST_LADDER.some((r) => r.id === id) ? id : null;
|
|
37
|
+
}
|
|
38
|
+
function isRecord(v) {
|
|
39
|
+
return typeof v === 'object' && v !== null && !Array.isArray(v);
|
|
40
|
+
}
|
|
41
|
+
/** The run-level grade, wherever this record's era put it (`result.qeGrade`, `result.grade`,
|
|
42
|
+
* `result.qe.grade`). A string that does not look like a grade is not one. */
|
|
43
|
+
function extractGrade(result) {
|
|
44
|
+
const looksLikeGrade = (v) => typeof v === 'string' && /^[A-F][+-]?$/.test(v.trim().toUpperCase());
|
|
45
|
+
if (looksLikeGrade(result['qeGrade']))
|
|
46
|
+
return result['qeGrade'].trim().toUpperCase();
|
|
47
|
+
if (looksLikeGrade(result['grade']))
|
|
48
|
+
return result['grade'].trim().toUpperCase();
|
|
49
|
+
const qe = result['qe'];
|
|
50
|
+
if (isRecord(qe) && looksLikeGrade(qe['grade']))
|
|
51
|
+
return qe['grade'].trim().toUpperCase();
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
/** Harvest per-stage samples from already-read records (live harness records AND the `runMeta.records`
|
|
55
|
+
* of imported run-meta sidecars — they are the same shape by construction). */
|
|
56
|
+
export function harvestStageOutcomes(records) {
|
|
57
|
+
const samples = [];
|
|
58
|
+
const skipped = { noResult: 0, noModels: 0, noGrade: 0, unknownModel: 0 };
|
|
59
|
+
const runs = new Set();
|
|
60
|
+
let min = null;
|
|
61
|
+
let max = null;
|
|
62
|
+
for (const source of records) {
|
|
63
|
+
if (!isRecord(source)) {
|
|
64
|
+
skipped.noResult += 1;
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
const result = source['result'];
|
|
68
|
+
if (!isRecord(result)) {
|
|
69
|
+
skipped.noResult += 1;
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
const modelsUsed = result['modelsUsed'];
|
|
73
|
+
if (!isRecord(modelsUsed)) {
|
|
74
|
+
skipped.noModels += 1;
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
const grade = extractGrade(result);
|
|
78
|
+
if (grade === null) {
|
|
79
|
+
skipped.noGrade += 1;
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
const runId = typeof source['runId'] === 'string' ? source['runId'] : JSON.stringify(modelsUsed).slice(0, 40);
|
|
83
|
+
const ts = typeof source['timestamp'] === 'string' ? source['timestamp'] : null;
|
|
84
|
+
const tier = typeof result['tier'] === 'string' && result['tier'] !== '' ? result['tier'] : 'unknown';
|
|
85
|
+
let contributed = false;
|
|
86
|
+
for (const [stage, rawModel] of Object.entries(modelsUsed)) {
|
|
87
|
+
const model = normalizeModelId(rawModel);
|
|
88
|
+
if (model === null) {
|
|
89
|
+
skipped.unknownModel += 1;
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
contributed = true;
|
|
93
|
+
samples.push({ runId, ts, tier, stage, model, success: gradeIsSuccess(grade), grade });
|
|
94
|
+
}
|
|
95
|
+
if (contributed) {
|
|
96
|
+
runs.add(runId);
|
|
97
|
+
if (ts !== null) {
|
|
98
|
+
if (min === null || ts < min)
|
|
99
|
+
min = ts;
|
|
100
|
+
if (max === null || ts > max)
|
|
101
|
+
max = ts;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return {
|
|
106
|
+
samples,
|
|
107
|
+
runsUsed: runs.size,
|
|
108
|
+
window: min !== null && max !== null ? { min, max } : null,
|
|
109
|
+
skipped,
|
|
110
|
+
rule: RULE_TEXT,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
function rungFamily(id) {
|
|
114
|
+
const rung = COST_LADDER.find((r) => r.id === id);
|
|
115
|
+
return rung !== undefined ? rung.family : 'claude';
|
|
116
|
+
}
|
|
117
|
+
function toSpec(id) {
|
|
118
|
+
return rungFamily(id) === 'openai' ? `codex:${id}:high` : id;
|
|
119
|
+
}
|
|
120
|
+
const CROSS_NOTE = 'the qe pick is computed with the family FORCED to the cross of the code pick — a same-family qe recommendation is unrepresentable (ADR-001 D3)';
|
|
121
|
+
/** Recommend per stage over the harvested samples (optionally one tier's slice). */
|
|
122
|
+
export function recommendModels(harvest, opts = {}) {
|
|
123
|
+
const slice = opts.tier === undefined ? harvest.samples : harvest.samples.filter((s) => s.tier === opts.tier);
|
|
124
|
+
const tierLabel = opts.tier ?? 'all';
|
|
125
|
+
const byStage = new Map();
|
|
126
|
+
for (const s of slice) {
|
|
127
|
+
const bucket = byStage.get(s.stage) ?? [];
|
|
128
|
+
bucket.push(s);
|
|
129
|
+
byStage.set(s.stage, bucket);
|
|
130
|
+
}
|
|
131
|
+
const statsFor = (stage) => (model) => {
|
|
132
|
+
const rows = (byStage.get(stage) ?? []).filter((s) => s.model === model);
|
|
133
|
+
const successes = rows.filter((s) => s.success).length;
|
|
134
|
+
return { attempts: rows.length, successes, successRate: rows.length === 0 ? 0 : successes / rows.length };
|
|
135
|
+
};
|
|
136
|
+
const pickFor = (stage, family) => {
|
|
137
|
+
const pick = selectAutoCost(stage, tierLabel, statsFor(stage), {
|
|
138
|
+
...(opts.qualityBar !== undefined ? { qualityBar: opts.qualityBar } : {}),
|
|
139
|
+
...(opts.minSamples !== undefined ? { minSamples: opts.minSamples } : {}),
|
|
140
|
+
...(family !== undefined ? { family } : {}),
|
|
141
|
+
});
|
|
142
|
+
return {
|
|
143
|
+
stage,
|
|
144
|
+
spec: toSpec(pick.model),
|
|
145
|
+
pick,
|
|
146
|
+
family: rungFamily(pick.model),
|
|
147
|
+
samples: (byStage.get(stage) ?? []).length,
|
|
148
|
+
insufficientData: !pick.metBar,
|
|
149
|
+
};
|
|
150
|
+
};
|
|
151
|
+
const stages = [...byStage.keys()].sort();
|
|
152
|
+
const perStage = [];
|
|
153
|
+
// code first — the qe family depends on it (D3).
|
|
154
|
+
const code = pickFor('code');
|
|
155
|
+
for (const stage of stages) {
|
|
156
|
+
if (stage === 'qe') {
|
|
157
|
+
const cross = code.family === 'claude' ? 'openai' : 'claude';
|
|
158
|
+
perStage.push(pickFor('qe', cross));
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
perStage.push(pickFor(stage));
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
if (!stages.includes('code'))
|
|
165
|
+
perStage.unshift(code);
|
|
166
|
+
return {
|
|
167
|
+
perStage,
|
|
168
|
+
basis: { runsUsed: harvest.runsUsed, window: harvest.window, rule: harvest.rule, skipped: harvest.skipped, crossFamilyNote: CROSS_NOTE },
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
/** A run feeds ONCE. Double-feeding the same telemetry manufactures confidence the data does not
|
|
172
|
+
* contain — the second `--apply` must feed 0 and say which runs it skipped. */
|
|
173
|
+
export function planFeed(samples, alreadyFed) {
|
|
174
|
+
const fed = new Set(alreadyFed);
|
|
175
|
+
const toFeed = [];
|
|
176
|
+
const skippedRuns = new Set();
|
|
177
|
+
for (const s of samples) {
|
|
178
|
+
if (fed.has(s.runId))
|
|
179
|
+
skippedRuns.add(s.runId);
|
|
180
|
+
else
|
|
181
|
+
toFeed.push(s);
|
|
182
|
+
}
|
|
183
|
+
const fedAfter = [...new Set([...alreadyFed, ...toFeed.map((s) => s.runId)])].sort();
|
|
184
|
+
return { toFeed, skippedRuns: [...skippedRuns].sort(), fedAfter };
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=model-recommender.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-recommender.js","sourceRoot":"","sources":["../src/model-recommender.ts"],"names":[],"mappings":"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"}
|
package/dist/registry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAoCvD;AAeD,sGAAsG;AACtG,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,CAmBlF;AAED,sCAAsC;AACtC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,yBAAyB;AACzB,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAoCvD;AAeD,sGAAsG;AACtG,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,CAmBlF;AAED,sCAAsC;AACtC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,yBAAyB;AACzB,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAmFD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAmCnD;AAED,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,aAAa,EAAE,CAK1F;AAED,mCAAmC;AACnC,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,aAAa,EAAE,CAE/F"}
|
package/dist/registry.js
CHANGED
|
@@ -173,7 +173,10 @@ function categoryFromPack(pack) {
|
|
|
173
173
|
if (pack.includes('pm') ||
|
|
174
174
|
pack.includes('idea2prd') ||
|
|
175
175
|
pack.includes('reverse-engineering') ||
|
|
176
|
-
pack.includes('presentation')
|
|
176
|
+
pack.includes('presentation') ||
|
|
177
|
+
// decision-mockups: an owner-facing decision page is stakeholder communication, the same
|
|
178
|
+
// cluster as PRDs and presentations — not design, and not a QE artifact.
|
|
179
|
+
pack.includes('decision-mockups'))
|
|
177
180
|
return 'product';
|
|
178
181
|
// Digitized-book knowledge packs (ADR-001 book-knowledge-digitizer) — `skills-book-*` and named
|
|
179
182
|
// digitizer outputs like `skills-12factor` (The Twelve-Factor App). Future digitized public packs
|
package/dist/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Portable workflow trace bundles — the PURE half.
|
|
3
|
+
*
|
|
4
|
+
* The caller owns every external read and write. This module owns the decisions that must be
|
|
5
|
+
* replayable in a test: which ledger rows belong to a run, whether the harness-record layout is
|
|
6
|
+
* recognised, whether an import may touch a destination, and the exact relative writes it permits.
|
|
7
|
+
* Keeping those decisions independent of the host makes a refusal a value rather than a partially
|
|
8
|
+
* completed mutation.
|
|
9
|
+
*/
|
|
10
|
+
/** The version is part of the wire contract: readers refuse versions they do not understand. */
|
|
11
|
+
export declare const TRACE_BUNDLE_SCHEMA = "trace-bundle/1";
|
|
12
|
+
/** Native shelves used by both local runs and imported runs. */
|
|
13
|
+
export declare const TRACE_BUNDLE_LEDGER_PATH = ".dz/feature-adr/run-cost-ledger.jsonl";
|
|
14
|
+
export declare const TRACE_BUNDLE_RUN_META_FILE = "run-meta.json";
|
|
15
|
+
export interface BundleMember {
|
|
16
|
+
/** path relative to the run directory, or the well-known source for non-run members */
|
|
17
|
+
readonly origin: string;
|
|
18
|
+
/** raw file content, verbatim — never re-serialised, never re-ordered */
|
|
19
|
+
readonly content: string;
|
|
20
|
+
}
|
|
21
|
+
/** Absence is data: a portable bundle must explain every source it could not carry. */
|
|
22
|
+
export type MemberSlot = {
|
|
23
|
+
readonly present: true;
|
|
24
|
+
readonly member: BundleMember;
|
|
25
|
+
} | {
|
|
26
|
+
readonly present: false;
|
|
27
|
+
readonly reason: string;
|
|
28
|
+
};
|
|
29
|
+
export interface HarnessRecordResult {
|
|
30
|
+
readonly modelsUsed: Record<string, string>;
|
|
31
|
+
readonly usageEvents?: unknown[];
|
|
32
|
+
readonly [key: string]: unknown;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* The harness record is kept whole so a consumer can recompute attribution from the transported
|
|
36
|
+
* facts. These are only the fields this adapter recognises; extra persisted fields remain intact.
|
|
37
|
+
*/
|
|
38
|
+
export interface HarnessRecord {
|
|
39
|
+
readonly runId: string;
|
|
40
|
+
readonly timestamp: string;
|
|
41
|
+
readonly agentCount: number;
|
|
42
|
+
readonly args: unknown;
|
|
43
|
+
readonly result: HarnessRecordResult;
|
|
44
|
+
readonly [key: string]: unknown;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Closed degradation vocabulary: callers can make strict-mode policy exhaustive.
|
|
48
|
+
* Only `layout-unrecognised` is ACTIONABLE; `records-absent`, `no-match`, `unreadable`, and
|
|
49
|
+
* `predates-model-routing` are not. The historical split follows a real-store measurement where
|
|
50
|
+
* 3 of 32 distinct slugs were valid older feature-ADR runs without per-stage model routing.
|
|
51
|
+
*/
|
|
52
|
+
export type RunMetaReason = 'records-absent' | 'no-match' | 'unreadable' | 'predates-model-routing' | 'layout-unrecognised';
|
|
53
|
+
export type RunMeta = {
|
|
54
|
+
resolved: true;
|
|
55
|
+
records: HarnessRecord[];
|
|
56
|
+
/** Joined records that were NOT usable, so attribution can never silently fold fewer
|
|
57
|
+
* records than the run actually had. */
|
|
58
|
+
skipped: {
|
|
59
|
+
count: number;
|
|
60
|
+
historical: number;
|
|
61
|
+
unrecognised: number;
|
|
62
|
+
};
|
|
63
|
+
} | {
|
|
64
|
+
resolved: false;
|
|
65
|
+
reason: RunMetaReason;
|
|
66
|
+
};
|
|
67
|
+
export type Attribution = {
|
|
68
|
+
derived: true;
|
|
69
|
+
rule: string;
|
|
70
|
+
fromRecordIds: string[];
|
|
71
|
+
byStage: Record<string, string>;
|
|
72
|
+
} | {
|
|
73
|
+
derived: false;
|
|
74
|
+
reason: string;
|
|
75
|
+
};
|
|
76
|
+
export interface TraceBundle {
|
|
77
|
+
schema: string;
|
|
78
|
+
provenance: {
|
|
79
|
+
sourceRoot: string;
|
|
80
|
+
runAddress: string;
|
|
81
|
+
slug: string | null;
|
|
82
|
+
runId: string | null;
|
|
83
|
+
toolVersion: string;
|
|
84
|
+
createdAt: string | null;
|
|
85
|
+
};
|
|
86
|
+
trace: MemberSlot;
|
|
87
|
+
checkpoints: MemberSlot;
|
|
88
|
+
ledger: {
|
|
89
|
+
present: boolean;
|
|
90
|
+
scanned: number;
|
|
91
|
+
matched: number;
|
|
92
|
+
malformed: number;
|
|
93
|
+
lines: string[];
|
|
94
|
+
reason?: string;
|
|
95
|
+
};
|
|
96
|
+
pairs: {
|
|
97
|
+
included: false;
|
|
98
|
+
reason: 'not-requested' | 'no-pairs-found';
|
|
99
|
+
} | {
|
|
100
|
+
included: true;
|
|
101
|
+
files: BundleMember[];
|
|
102
|
+
};
|
|
103
|
+
runMeta: RunMeta;
|
|
104
|
+
attribution: Attribution;
|
|
105
|
+
}
|
|
106
|
+
/** Counts make an honestly empty slice distinguishable from an unread ledger. */
|
|
107
|
+
export interface LedgerSelection {
|
|
108
|
+
lines: string[];
|
|
109
|
+
scanned: number;
|
|
110
|
+
matched: number;
|
|
111
|
+
malformed: number;
|
|
112
|
+
}
|
|
113
|
+
/** All external facts needed to build a bundle; optional values degrade to named absence. */
|
|
114
|
+
export interface BuildBundleInput {
|
|
115
|
+
readonly sourceRoot: string;
|
|
116
|
+
readonly runAddress: string;
|
|
117
|
+
readonly slug?: string | null;
|
|
118
|
+
readonly runId?: string | null;
|
|
119
|
+
readonly toolVersion: string;
|
|
120
|
+
readonly createdAt?: string | null;
|
|
121
|
+
readonly trace?: MemberSlot | BundleMember | null;
|
|
122
|
+
readonly checkpoints?: MemberSlot | BundleMember | null;
|
|
123
|
+
/** null means the ledger itself was absent; each array item is one raw JSONL row. */
|
|
124
|
+
readonly ledgerLines?: readonly string[] | null;
|
|
125
|
+
readonly ledgerReason?: string;
|
|
126
|
+
readonly includePairs?: boolean;
|
|
127
|
+
readonly pairFiles?: readonly BundleMember[] | null;
|
|
128
|
+
/** Each item is an already-read record file body, or an already-parsed record. */
|
|
129
|
+
readonly records?: readonly unknown[] | null;
|
|
130
|
+
}
|
|
131
|
+
/** Refusals are deliberately small and discriminated so an importer cannot accidentally continue. */
|
|
132
|
+
export type ParseResult = {
|
|
133
|
+
ok: true;
|
|
134
|
+
bundle: TraceBundle;
|
|
135
|
+
} | {
|
|
136
|
+
ok: false;
|
|
137
|
+
reason: 'unparseable';
|
|
138
|
+
} | {
|
|
139
|
+
ok: false;
|
|
140
|
+
reason: 'unknown-schema';
|
|
141
|
+
found: string;
|
|
142
|
+
} | {
|
|
143
|
+
ok: false;
|
|
144
|
+
reason: 'member-shape';
|
|
145
|
+
member: string;
|
|
146
|
+
};
|
|
147
|
+
/** The two identities used by the existing run-addressing schemes. */
|
|
148
|
+
export interface RunIdentity {
|
|
149
|
+
readonly slug: string | null;
|
|
150
|
+
readonly runId: string | null;
|
|
151
|
+
}
|
|
152
|
+
/** Facts observed by the I/O caller; no path in the resulting plan is absolute. */
|
|
153
|
+
export interface ImportDestinationFacts {
|
|
154
|
+
/** Target run directory relative to the explicitly supplied destination root. */
|
|
155
|
+
readonly runDir?: string;
|
|
156
|
+
readonly existingPaths?: readonly string[] | ReadonlySet<string>;
|
|
157
|
+
readonly runDirHasContent: boolean;
|
|
158
|
+
/** Identity read from the target run, or null when a fresh target has none. */
|
|
159
|
+
readonly runIdentity: RunIdentity | null;
|
|
160
|
+
readonly force?: boolean;
|
|
161
|
+
readonly withPairs?: boolean;
|
|
162
|
+
/** File name/address of the imported bundle, persisted in the run-meta sidecar. */
|
|
163
|
+
readonly bundleName: string;
|
|
164
|
+
}
|
|
165
|
+
/** A caller executes writes only when ok is true; fatal refusals therefore produce no writes. */
|
|
166
|
+
export interface ImportPlan {
|
|
167
|
+
writes: {
|
|
168
|
+
path: string;
|
|
169
|
+
content: string;
|
|
170
|
+
}[];
|
|
171
|
+
refusals: {
|
|
172
|
+
path: string;
|
|
173
|
+
reason: string;
|
|
174
|
+
}[];
|
|
175
|
+
ok: boolean;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Select only rows attributable to this logical run. Slug fallback is deliberately disabled when
|
|
179
|
+
* a row carries any run id: otherwise a foreign loop run sharing a slug leaks into the slice.
|
|
180
|
+
*/
|
|
181
|
+
export declare function selectLedgerRows(lines: readonly string[] | null | undefined, identity: {
|
|
182
|
+
readonly runId: string | null;
|
|
183
|
+
readonly slug: string | null;
|
|
184
|
+
} | null | undefined): LedgerSelection;
|
|
185
|
+
/**
|
|
186
|
+
* Join persisted harness records without guessing through an unfamiliar layout. Returning no
|
|
187
|
+
* records on a joined shape failure prevents a model-blind record from appearing model-aware.
|
|
188
|
+
*/
|
|
189
|
+
export declare function resolveRunMeta(records: readonly unknown[] | null | undefined, slug: string | null): RunMeta;
|
|
190
|
+
/**
|
|
191
|
+
* Fold the labelled convenience view alongside its source records. Last-writer-wins is explicitly
|
|
192
|
+
* a policy choice, and the source ids let a later consumer choose and audit a different policy.
|
|
193
|
+
*/
|
|
194
|
+
export declare function foldAttribution(records: readonly HarnessRecord[] | null | undefined): Attribution;
|
|
195
|
+
/** Assemble a bundle solely from facts the caller has already read. Malformed facts degrade safely. */
|
|
196
|
+
export declare function buildBundle(input: BuildBundleInput): TraceBundle;
|
|
197
|
+
/** JSON escaping changes only the container representation; member content round-trips verbatim. */
|
|
198
|
+
export declare function serializeBundle(bundle: TraceBundle): string;
|
|
199
|
+
/**
|
|
200
|
+
* Recognise the complete current format or refuse it. Validation finishes before the bundle is
|
|
201
|
+
* returned, so an importer can never receive a valid-looking subset of a corrupt artifact.
|
|
202
|
+
*/
|
|
203
|
+
export declare function parseBundle(text: string): ParseResult;
|
|
204
|
+
/**
|
|
205
|
+
* Plan native-layout reconstruction without touching the destination. Every fatal check is
|
|
206
|
+
* completed before writes are returned, preserving the all-or-nothing refusal boundary.
|
|
207
|
+
*/
|
|
208
|
+
export declare function planImport(bundle: TraceBundle, destFacts: ImportDestinationFacts): ImportPlan;
|
|
209
|
+
//# sourceMappingURL=trace-bundle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-bundle.d.ts","sourceRoot":"","sources":["../src/trace-bundle.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,gGAAgG;AAChG,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AAEpD,gEAAgE;AAChE,eAAO,MAAM,wBAAwB,0CAA0C,CAAC;AAChF,eAAO,MAAM,0BAA0B,kBAAkB,CAAC;AAE1D,MAAM,WAAW,YAAY;IAC3B,uFAAuF;IACvF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,yEAAyE;IACzE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,uFAAuF;AACvF,MAAM,MAAM,UAAU,GAClB;IAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACzD;IAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC;IACjC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GACrB,gBAAgB,GAChB,UAAU,GACV,YAAY,GACZ,wBAAwB,GACxB,qBAAqB,CAAC;AAE1B,MAAM,MAAM,OAAO,GACf;IACE,QAAQ,EAAE,IAAI,CAAC;IACf,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB;4CACwC;IACxC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;CACtE,GACD;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,CAAC;AAE/C,MAAM,MAAM,WAAW,GACnB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GACzF;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvC,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE;QACV,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,CAAC;IACF,KAAK,EAAE,UAAU,CAAC;IAClB,WAAW,EAAE,UAAU,CAAC;IACxB,MAAM,EAAE;QACN,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,KAAK,EACD;QAAE,QAAQ,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,eAAe,GAAG,gBAAgB,CAAA;KAAE,GAC/D;QAAE,QAAQ,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,YAAY,EAAE,CAAA;KAAE,CAAC;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,iFAAiF;AACjF,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,6FAA6F;AAC7F,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,IAAI,CAAC;IAClD,QAAQ,CAAC,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,IAAI,CAAC;IACxD,qFAAqF;IACrF,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAChD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,IAAI,CAAC;IACpD,kFAAkF;IAClF,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;CAC9C;AAED,qGAAqG;AACrG,MAAM,MAAM,WAAW,GACnB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,GACjC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,GACpC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D,sEAAsE;AACtE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,mFAAmF;AACnF,MAAM,WAAW,sBAAsB;IACrC,iFAAiF;IACjF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACjE,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,+EAA+E;IAC/E,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,mFAAmF;IACnF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,iGAAiG;AACjG,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7C,EAAE,EAAE,OAAO,CAAC;CACb;AA6CD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,EAC3C,QAAQ,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,GAC3F,eAAe,CA+BjB;AAsED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAmD3G;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,CAgCjG;AA6BD,uGAAuG;AACvG,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,WAAW,CAqDhE;AAED,oGAAoG;AACpG,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAO3D;AAmGD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAyBrD;AAgDD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,sBAAsB,GAAG,UAAU,CA4D7F"}
|