@dzhechkov/harness-core 0.8.6 → 0.8.11
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 +361 -97
- package/README.md +48 -1
- package/dist/amendment-trace.d.ts.map +1 -1
- package/dist/amendment-trace.js +12 -1
- package/dist/amendment-trace.js.map +1 -1
- package/dist/codex-invoke.d.ts +73 -0
- package/dist/codex-invoke.d.ts.map +1 -0
- package/dist/codex-invoke.js +80 -0
- package/dist/codex-invoke.js.map +1 -0
- package/dist/compounding.d.ts +54 -0
- package/dist/compounding.d.ts.map +1 -1
- package/dist/compounding.js +221 -1
- package/dist/compounding.js.map +1 -1
- package/dist/discrimination-gate.d.ts +63 -3
- package/dist/discrimination-gate.d.ts.map +1 -1
- package/dist/discrimination-gate.js +113 -16
- package/dist/discrimination-gate.js.map +1 -1
- package/dist/eta.d.ts +92 -0
- package/dist/eta.d.ts.map +1 -0
- package/dist/eta.js +488 -0
- package/dist/eta.js.map +1 -0
- package/dist/event-chain.d.ts +30 -0
- package/dist/event-chain.d.ts.map +1 -1
- package/dist/event-chain.js +24 -0
- package/dist/event-chain.js.map +1 -1
- package/dist/feature-adr-checkpoints.js +1 -1
- package/dist/feature-adr-decision-recall.d.ts +167 -0
- package/dist/feature-adr-decision-recall.d.ts.map +1 -0
- package/dist/feature-adr-decision-recall.js +519 -0
- package/dist/feature-adr-decision-recall.js.map +1 -0
- package/dist/feature-adr-landing.d.ts +37 -0
- package/dist/feature-adr-landing.d.ts.map +1 -0
- package/dist/feature-adr-landing.js +59 -0
- package/dist/feature-adr-landing.js.map +1 -0
- package/dist/feature-adr-routing.d.ts +2 -2
- package/dist/feature-adr-routing.d.ts.map +1 -1
- package/dist/feature-adr-routing.js +7 -11
- package/dist/feature-adr-routing.js.map +1 -1
- package/dist/guard-promotion.d.ts +41 -0
- package/dist/guard-promotion.d.ts.map +1 -1
- package/dist/guard-promotion.js +218 -4
- package/dist/guard-promotion.js.map +1 -1
- package/dist/guard-volume.d.ts +108 -0
- package/dist/guard-volume.d.ts.map +1 -0
- package/dist/guard-volume.js +536 -0
- package/dist/guard-volume.js.map +1 -0
- package/dist/guard.d.ts +17 -0
- package/dist/guard.d.ts.map +1 -1
- package/dist/guard.js +92 -4
- package/dist/guard.js.map +1 -1
- package/dist/index.d.ts +24 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -5
- package/dist/index.js.map +1 -1
- package/dist/integration-apply.d.ts +25 -0
- package/dist/integration-apply.d.ts.map +1 -0
- package/dist/integration-apply.js +299 -0
- package/dist/integration-apply.js.map +1 -0
- package/dist/integration-evidence.d.ts +46 -0
- package/dist/integration-evidence.d.ts.map +1 -0
- package/dist/integration-evidence.js +44 -0
- package/dist/integration-evidence.js.map +1 -0
- package/dist/integration-probe-worker.d.ts +22 -0
- package/dist/integration-probe-worker.d.ts.map +1 -0
- package/dist/integration-probe-worker.js +334 -0
- package/dist/integration-probe-worker.js.map +1 -0
- package/dist/integrations-verify.d.ts +60 -0
- package/dist/integrations-verify.d.ts.map +1 -0
- package/dist/integrations-verify.js +194 -0
- package/dist/integrations-verify.js.map +1 -0
- package/dist/lesson-generalization.d.ts +29 -0
- package/dist/lesson-generalization.d.ts.map +1 -0
- package/dist/lesson-generalization.js +84 -0
- package/dist/lesson-generalization.js.map +1 -0
- package/dist/mutation-gate.d.ts +39 -36
- package/dist/mutation-gate.d.ts.map +1 -1
- package/dist/mutation-gate.js +111 -5
- package/dist/mutation-gate.js.map +1 -1
- package/dist/operations.d.ts +27 -0
- package/dist/operations.d.ts.map +1 -1
- package/dist/operations.js +186 -7
- package/dist/operations.js.map +1 -1
- package/dist/patterns.d.ts +27 -1
- package/dist/patterns.d.ts.map +1 -1
- package/dist/patterns.js +211 -45
- package/dist/patterns.js.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +27 -5
- package/dist/plugin.js.map +1 -1
- package/dist/recommend.d.ts +4 -5
- package/dist/recommend.d.ts.map +1 -1
- package/dist/recommend.js +110 -45
- package/dist/recommend.js.map +1 -1
- package/dist/registry.d.ts +32 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +165 -9
- package/dist/registry.js.map +1 -1
- package/dist/run-records.d.ts +3 -0
- package/dist/run-records.d.ts.map +1 -1
- package/dist/run-records.js +18 -0
- package/dist/run-records.js.map +1 -1
- package/dist/score.d.ts +95 -0
- package/dist/score.d.ts.map +1 -1
- package/dist/score.js +274 -2
- package/dist/score.js.map +1 -1
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +20 -17
- package/dist/setup.js.map +1 -1
- package/dist/skill-selection.d.ts +72 -0
- package/dist/skill-selection.d.ts.map +1 -0
- package/dist/skill-selection.js +76 -0
- package/dist/skill-selection.js.map +1 -0
- package/dist/stem.d.ts +12 -0
- package/dist/stem.d.ts.map +1 -0
- package/dist/stem.js +89 -0
- package/dist/stem.js.map +1 -0
- package/dist/target-integrations.d.ts +65 -0
- package/dist/target-integrations.d.ts.map +1 -0
- package/dist/target-integrations.js +152 -0
- package/dist/target-integrations.js.map +1 -0
- package/dist/telemetry-vocabulary.d.ts +7 -0
- package/dist/telemetry-vocabulary.d.ts.map +1 -1
- package/dist/telemetry-vocabulary.js +29 -0
- package/dist/telemetry-vocabulary.js.map +1 -1
- package/dist/vector-tier.d.ts +6 -1
- package/dist/vector-tier.d.ts.map +1 -1
- package/dist/vector-tier.js +32 -7
- package/dist/vector-tier.js.map +1 -1
- package/package.json +7 -6
- package/sbom.json +772 -112
- package/src/amendment-trace.ts +12 -1
- package/src/codex-invoke.ts +138 -0
- package/src/compounding.ts +300 -1
- package/src/discrimination-gate.ts +183 -19
- package/src/eta.ts +590 -0
- package/src/event-chain.ts +41 -0
- package/src/feature-adr-checkpoints.ts +1 -1
- package/src/feature-adr-decision-recall.ts +652 -0
- package/src/feature-adr-landing.ts +109 -0
- package/src/feature-adr-routing.ts +7 -11
- package/src/guard-promotion.ts +245 -4
- package/src/guard-volume.ts +752 -0
- package/src/guard.ts +110 -4
- package/src/index.ts +73 -6
- package/src/integration-apply.ts +332 -0
- package/src/integration-evidence.ts +89 -0
- package/src/integration-probe-worker.ts +310 -0
- package/src/integration-receipts/claude-code/mcp/2.1.235.json +35 -0
- package/src/integrations-verify.ts +258 -0
- package/src/lesson-generalization.ts +115 -0
- package/src/mutation-gate.ts +165 -5
- package/src/operations.ts +207 -7
- package/src/patterns.ts +252 -43
- package/src/plugin.ts +27 -5
- package/src/recommend.ts +116 -46
- package/src/registry.ts +144 -11
- package/src/run-records.ts +23 -0
- package/src/score.ts +361 -3
- package/src/setup.ts +20 -17
- package/src/skill-selection.ts +111 -0
- package/src/stem.ts +87 -0
- package/src/target-integrations.ts +225 -0
- package/src/telemetry-vocabulary.ts +36 -0
- package/src/vector-tier.ts +44 -14
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `--select` resolution: one provider per requested skill, decided ONCE (backlog 9d15b9b6, PR-A).
|
|
3
|
+
*
|
|
4
|
+
* THE DEFECT THIS REPLACES. `installSkills` looped the installer once PER ROOT, handing each root
|
|
5
|
+
* the same select list. Asking each root independently produces two failures that look like
|
|
6
|
+
* opposites but share one cause — the REQUEST was never resolved, only re-asked:
|
|
7
|
+
*
|
|
8
|
+
* - a skill present in two roots was installed TWICE and counted twice. The field report's
|
|
9
|
+
* observed `2 skill(s)` was ONE skill installed twice, read by everyone as an orchestrator plus
|
|
10
|
+
* its stage skill (features/digitize-book-codex-init-research/00_research/00-root-cause.md);
|
|
11
|
+
* - a skill present in NO root produced a warning and exit 0. `0 skill(s)` read as success, which
|
|
12
|
+
* is the same class as a health check reporting clean because it could not look.
|
|
13
|
+
*
|
|
14
|
+
* WHY A PURE MODULE. The decision must happen BEFORE anything is written — an exit 1 that arrives
|
|
15
|
+
* after hooks and memory are installed leaves a half-configured project, which is worse than either
|
|
16
|
+
* outcome. A pure resolver can be called at the top of the seam and interrogated without side
|
|
17
|
+
* effects; a resolver tangled with the filesystem cannot.
|
|
18
|
+
*
|
|
19
|
+
* DELIBERATELY NOT HERE: dependency closure (an orchestrator pulling its stage skills). That is
|
|
20
|
+
* PR-B. Mixing the two would put a correctness fix and a semantic change in one unreviewable
|
|
21
|
+
* change, and the exit-contract fix is what unblocks the rest.
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* PRECEDENCE IS ROOT ORDER, and that is a promise, not an implementation detail: the first root in
|
|
25
|
+
* `roots` that offers an id provides it. Callers pass roots in discovery order, so the rule the
|
|
26
|
+
* operator can state ("the earlier root wins") is the rule that runs. The previous behaviour
|
|
27
|
+
* depended on `readdir` order inside each root and on the loop visiting roots — an order nobody
|
|
28
|
+
* documented and nobody could rely on.
|
|
29
|
+
*
|
|
30
|
+
* Asking for the same id twice is asking once: a request is a SET of skills, and duplicating a name
|
|
31
|
+
* in the argument does not duplicate an installation.
|
|
32
|
+
*/
|
|
33
|
+
export function resolveSelection(select, roots) {
|
|
34
|
+
const chosen = [];
|
|
35
|
+
const missing = [];
|
|
36
|
+
const shadowed = [];
|
|
37
|
+
const seen = new Set();
|
|
38
|
+
for (const id of select) {
|
|
39
|
+
if (seen.has(id))
|
|
40
|
+
continue;
|
|
41
|
+
seen.add(id);
|
|
42
|
+
const providers = roots.filter((root) => root.ids.includes(id)).map((root) => root.dir);
|
|
43
|
+
const first = providers[0];
|
|
44
|
+
if (first === undefined) {
|
|
45
|
+
missing.push(id);
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
chosen.push({ id, dir: first });
|
|
49
|
+
// EVERY losing root is listed, not just the second: with three providers, naming one of the two
|
|
50
|
+
// losers would send the reader to fix the wrong copy.
|
|
51
|
+
if (providers.length > 1)
|
|
52
|
+
shadowed.push({ id, chosen: first, alsoIn: providers.slice(1) });
|
|
53
|
+
}
|
|
54
|
+
return { chosen, missing, shadowed, ok: missing.length === 0 };
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* The refusal an explicit `--select` owes its caller. Returns null when there is nothing to refuse.
|
|
58
|
+
*
|
|
59
|
+
* Shaped as text rather than an exception so the seam can print it and return a code without a
|
|
60
|
+
* try/catch that a later edit might swallow — the failure mode this whole change exists to remove
|
|
61
|
+
* is a problem that produced a warning and kept going.
|
|
62
|
+
*/
|
|
63
|
+
export function formatSelectRefusal(resolution, roots) {
|
|
64
|
+
if (resolution.ok)
|
|
65
|
+
return null;
|
|
66
|
+
const lines = [
|
|
67
|
+
`dz: --select refused — ${resolution.missing.length} requested skill(s) exist in none of the ${roots.length} skill root(s):`,
|
|
68
|
+
];
|
|
69
|
+
for (const id of resolution.missing)
|
|
70
|
+
lines.push(` missing: ${id}`);
|
|
71
|
+
for (const root of roots)
|
|
72
|
+
lines.push(` searched: ${root.dir} (${root.ids.length} skill(s))`);
|
|
73
|
+
lines.push('Nothing was written. Fix the id, or install the pack that provides it, then re-run.');
|
|
74
|
+
return lines.join('\n');
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=skill-selection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-selection.js","sourceRoot":"","sources":["../src/skill-selection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAoCH;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAyB,EACzB,KAA2B;IAE3B,MAAM,MAAM,GAAqB,EAAE,CAAC;IACpC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAuB,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS;QAC3B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACb,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxF,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjB,SAAS;QACX,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QAChC,gGAAgG;QAChG,sDAAsD;QACtD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;AACjE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAA4B,EAAE,KAA2B;IAC3F,IAAI,UAAU,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,KAAK,GAAG;QACZ,0BAA0B,UAAU,CAAC,OAAO,CAAC,MAAM,4CAA4C,KAAK,CAAC,MAAM,iBAAiB;KAC7H,CAAC;IACF,KAAK,MAAM,EAAE,IAAI,UAAU,CAAC,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACpE,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM,YAAY,CAAC,CAAC;IAC9F,KAAK,CAAC,IAAI,CAAC,qFAAqF,CAAC,CAAC;IAClG,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
package/dist/stem.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dependency-free lexical normalization shared by registry search and recommend.
|
|
3
|
+
* It deliberately handles only the measured RU/EN inflection cases; semantic
|
|
4
|
+
* similarity and paraphrases belong to the separate recall/advisor tier.
|
|
5
|
+
*/
|
|
6
|
+
/** Unicode-aware word split without JavaScript's ASCII-only word-boundary escape. */
|
|
7
|
+
export declare function tokenize(text: string): string[];
|
|
8
|
+
/** Lowercase one token and remove at most one conservative inflectional suffix. */
|
|
9
|
+
export declare function stemToken(token: string): string;
|
|
10
|
+
/** Tokenize and stem a text with the shared RU/EN rules. */
|
|
11
|
+
export declare function stems(text: string): string[];
|
|
12
|
+
//# sourceMappingURL=stem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stem.d.ts","sourceRoot":"","sources":["../src/stem.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiBH,qFAAqF;AACrF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAE/C;AAmDD,mFAAmF;AACnF,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAK/C;AAED,4DAA4D;AAC5D,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAE5C"}
|
package/dist/stem.js
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dependency-free lexical normalization shared by registry search and recommend.
|
|
3
|
+
* It deliberately handles only the measured RU/EN inflection cases; semantic
|
|
4
|
+
* similarity and paraphrases belong to the separate recall/advisor tier.
|
|
5
|
+
*/
|
|
6
|
+
const CYRILLIC_TOKEN = /^\p{Script=Cyrillic}+$/u;
|
|
7
|
+
const LATIN_TOKEN = /^\p{Script=Latin}+$/u;
|
|
8
|
+
const CYRILLIC_SUFFIXES = [
|
|
9
|
+
'иями',
|
|
10
|
+
'иях', 'иям', 'ией', 'ями', 'ами', 'ого', 'его', 'ому', 'ему', 'ыми', 'ими',
|
|
11
|
+
'ях', 'ах', 'ой', 'ей', 'ий', 'ый', 'ая', 'яя', 'ое', 'ее', 'ие', 'ые',
|
|
12
|
+
'ом', 'ем', 'ам', 'ям', 'ов', 'ев', 'ью', 'ья', 'ье', 'ия', 'ии',
|
|
13
|
+
'и', 'ы', 'а', 'я', 'о', 'е', 'у', 'ю', 'ь',
|
|
14
|
+
];
|
|
15
|
+
function canonicalize(text) {
|
|
16
|
+
return text.normalize('NFC').toLowerCase().replaceAll('ё', 'е');
|
|
17
|
+
}
|
|
18
|
+
/** Unicode-aware word split without JavaScript's ASCII-only word-boundary escape. */
|
|
19
|
+
export function tokenize(text) {
|
|
20
|
+
return canonicalize(text).split(/[^\p{L}\p{N}]+/u).filter(Boolean);
|
|
21
|
+
}
|
|
22
|
+
function stemCyrillic(token) {
|
|
23
|
+
for (const suffix of CYRILLIC_SUFFIXES) {
|
|
24
|
+
if (!token.endsWith(suffix))
|
|
25
|
+
continue;
|
|
26
|
+
const candidate = token.slice(0, -suffix.length);
|
|
27
|
+
if (candidate.length < 3)
|
|
28
|
+
continue;
|
|
29
|
+
// Short nouns ending in a base vowel are the precision trap behind тест/тесто
|
|
30
|
+
// and права/правка. Plural и/ы still normalize тесты→тест, while a one-letter
|
|
31
|
+
// case/gender tail is stripped only from a longer lexical base.
|
|
32
|
+
if (suffix.length === 1 && suffix !== 'и' && suffix !== 'ы' && suffix !== 'ь'
|
|
33
|
+
&& candidate.length < 5)
|
|
34
|
+
continue;
|
|
35
|
+
return candidate;
|
|
36
|
+
}
|
|
37
|
+
return token;
|
|
38
|
+
}
|
|
39
|
+
function replaceSuffix(token, suffix, replacement) {
|
|
40
|
+
if (!token.endsWith(suffix))
|
|
41
|
+
return undefined;
|
|
42
|
+
const candidate = token.slice(0, -suffix.length) + replacement;
|
|
43
|
+
return candidate.length >= 3 ? candidate : undefined;
|
|
44
|
+
}
|
|
45
|
+
function stemLatin(token) {
|
|
46
|
+
const ies = replaceSuffix(token, 'ies', 'y');
|
|
47
|
+
if (ies !== undefined)
|
|
48
|
+
return ies;
|
|
49
|
+
const sses = replaceSuffix(token, 'sses', 'ss');
|
|
50
|
+
if (sses !== undefined)
|
|
51
|
+
return sses;
|
|
52
|
+
const sis = replaceSuffix(token, 'sis', 's');
|
|
53
|
+
if (sis !== undefined)
|
|
54
|
+
return sis;
|
|
55
|
+
const ses = replaceSuffix(token, 'ses', 's');
|
|
56
|
+
if (ses !== undefined)
|
|
57
|
+
return ses;
|
|
58
|
+
if (token.endsWith('es')) {
|
|
59
|
+
const preceding = token.at(-3);
|
|
60
|
+
if (preceding !== 'i' && preceding !== 's') {
|
|
61
|
+
const es = replaceSuffix(token, 'es', '');
|
|
62
|
+
if (es !== undefined)
|
|
63
|
+
return es;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (token.endsWith('s')) {
|
|
67
|
+
const preceding = token.at(-2);
|
|
68
|
+
if (preceding !== 's' && preceding !== 'u' && preceding !== 'i' && preceding !== 'y') {
|
|
69
|
+
const s = replaceSuffix(token, 's', '');
|
|
70
|
+
if (s !== undefined)
|
|
71
|
+
return s;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return token;
|
|
75
|
+
}
|
|
76
|
+
/** Lowercase one token and remove at most one conservative inflectional suffix. */
|
|
77
|
+
export function stemToken(token) {
|
|
78
|
+
const normalized = canonicalize(token);
|
|
79
|
+
if (CYRILLIC_TOKEN.test(normalized))
|
|
80
|
+
return stemCyrillic(normalized);
|
|
81
|
+
if (LATIN_TOKEN.test(normalized))
|
|
82
|
+
return stemLatin(normalized);
|
|
83
|
+
return normalized;
|
|
84
|
+
}
|
|
85
|
+
/** Tokenize and stem a text with the shared RU/EN rules. */
|
|
86
|
+
export function stems(text) {
|
|
87
|
+
return tokenize(text).map(stemToken);
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=stem.js.map
|
package/dist/stem.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stem.js","sourceRoot":"","sources":["../src/stem.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,cAAc,GAAG,yBAAyB,CAAC;AACjD,MAAM,WAAW,GAAG,sBAAsB,CAAC;AAE3C,MAAM,iBAAiB,GAAG;IACxB,MAAM;IACN,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;IAC3E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAChE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;CACnC,CAAC;AAEX,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAClE,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,KAAK,MAAM,MAAM,IAAI,iBAAiB,EAAE,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,SAAS;QACtC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAEnC,8EAA8E;QAC9E,8EAA8E;QAC9E,gEAAgE;QAChE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;eACxE,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QACpC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,KAAa,EAAE,MAAc,EAAE,WAAmB;IACvE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9C,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC;IAC/D,OAAO,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAC7C,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IAClC,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAChD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAC7C,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IAClC,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAC7C,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IAElC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,SAAS,KAAK,GAAG,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YAC3C,MAAM,EAAE,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YAC1C,IAAI,EAAE,KAAK,SAAS;gBAAE,OAAO,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,SAAS,KAAK,GAAG,IAAI,SAAS,KAAK,GAAG,IAAI,SAAS,KAAK,GAAG,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACrF,MAAM,CAAC,GAAG,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YACxC,IAAI,CAAC,KAAK,SAAS;gBAAE,OAAO,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,YAAY,CAAC,UAAU,CAAC,CAAC;IACrE,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,SAAS,CAAC,UAAU,CAAC,CAAC;IAC/D,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,KAAK,CAAC,IAAY;IAChC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/** Exhaustive target companion policy and once-per-install manifest aggregation. */
|
|
2
|
+
import { type HarnessIntegrationManifestV1, type IntegrationComponent, type IntegrationReasonCode, type IntegrationStatus, type TargetIntegrationAdapter } from '@dzhechkov/core';
|
|
3
|
+
import { type TargetName } from './targets.js';
|
|
4
|
+
export interface RegistrationObservation {
|
|
5
|
+
readonly id: string;
|
|
6
|
+
readonly scope: 'project' | 'user' | 'plugin';
|
|
7
|
+
readonly registered: boolean;
|
|
8
|
+
readonly approval?: 'pending' | 'approved' | 'unknown';
|
|
9
|
+
readonly ready?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface IntegrationOutcome {
|
|
12
|
+
readonly target: TargetName;
|
|
13
|
+
readonly component: IntegrationComponent;
|
|
14
|
+
readonly status: IntegrationStatus;
|
|
15
|
+
readonly registrations: readonly RegistrationObservation[];
|
|
16
|
+
readonly carrier?: {
|
|
17
|
+
readonly scope: 'project' | 'user' | 'plugin';
|
|
18
|
+
readonly path: string;
|
|
19
|
+
};
|
|
20
|
+
readonly runtimeVersion?: string;
|
|
21
|
+
readonly evidenceVersion?: string;
|
|
22
|
+
readonly reasonCode?: IntegrationReasonCode;
|
|
23
|
+
readonly remediation?: string;
|
|
24
|
+
/** True when carrier bytes may precede a failed live check or ownership-journal commit. */
|
|
25
|
+
readonly applied?: boolean;
|
|
26
|
+
}
|
|
27
|
+
export type IntegrationPolicyCell = {
|
|
28
|
+
readonly disposition: 'receipt';
|
|
29
|
+
readonly reasonCode?: never;
|
|
30
|
+
readonly receiptVersion: string;
|
|
31
|
+
} | {
|
|
32
|
+
readonly disposition: 'legacy-post-write';
|
|
33
|
+
readonly reasonCode: 'CURRENT_LIVE_CHECK_FAILED';
|
|
34
|
+
} | {
|
|
35
|
+
readonly disposition: 'refused';
|
|
36
|
+
readonly reasonCode: IntegrationReasonCode;
|
|
37
|
+
};
|
|
38
|
+
export interface TargetIntegrationPolicy {
|
|
39
|
+
readonly mcp: IntegrationPolicyCell;
|
|
40
|
+
readonly hooks: IntegrationPolicyCell;
|
|
41
|
+
}
|
|
42
|
+
/** Closed 10×2 policy. No fallback/default is permitted. */
|
|
43
|
+
export declare const TARGET_INTEGRATION_POLICY: Record<TargetName, TargetIntegrationPolicy>;
|
|
44
|
+
export declare const TARGET_INTEGRATIONS: Record<TargetName, TargetIntegrationAdapter>;
|
|
45
|
+
export interface IntegrationManifestSource {
|
|
46
|
+
readonly skillId: string;
|
|
47
|
+
readonly skillDir: string;
|
|
48
|
+
}
|
|
49
|
+
export interface IntegrationManifestAggregate {
|
|
50
|
+
readonly manifest: HarnessIntegrationManifestV1 | undefined;
|
|
51
|
+
readonly digest: string | undefined;
|
|
52
|
+
readonly sourcePaths: readonly string[];
|
|
53
|
+
}
|
|
54
|
+
export declare class IntegrationManifestError extends Error {
|
|
55
|
+
readonly manifestPath: string;
|
|
56
|
+
readonly code = "MANIFEST_INVALID";
|
|
57
|
+
constructor(manifestPath: string, message: string);
|
|
58
|
+
}
|
|
59
|
+
/** Load, validate and aggregate every adjacent manifest before target effects. */
|
|
60
|
+
export declare function aggregateIntegrationManifests(sources: readonly IntegrationManifestSource[]): IntegrationManifestAggregate;
|
|
61
|
+
export declare function notRequestedOutcomes(target: TargetName): readonly [IntegrationOutcome, IntegrationOutcome];
|
|
62
|
+
export declare function refusedOutcome(target: TargetName, component: IntegrationComponent, reasonCode: IntegrationReasonCode, remediation: string): IntegrationOutcome;
|
|
63
|
+
/** Static synchronous outcomes for Gemini/agents-md and other refusal-only seams. */
|
|
64
|
+
export declare function staticPolicyOutcomes(target: TargetName, manifest: HarnessIntegrationManifestV1 | undefined, noHooks?: boolean): readonly [IntegrationOutcome, IntegrationOutcome];
|
|
65
|
+
//# sourceMappingURL=target-integrations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"target-integrations.d.ts","sourceRoot":"","sources":["../src/target-integrations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/** Exhaustive target companion policy and once-per-install manifest aggregation. */
|
|
2
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
import { claudeIntegrationAdapter } from '@dzhechkov/adapter-claude';
|
|
5
|
+
import { INTEGRATION_MANIFEST_MAX_BYTES, INTEGRATION_REGISTRATION_MAX_COUNT, canonicalIntegrationJson, integrationManifestDigest, parseHarnessIntegrationManifestJson, } from '@dzhechkov/core';
|
|
6
|
+
import { TARGET_NAMES } from './targets.js';
|
|
7
|
+
const refusedAdapter = (target) => ({
|
|
8
|
+
target,
|
|
9
|
+
plan(manifest) {
|
|
10
|
+
const refusals = [];
|
|
11
|
+
if (Object.keys(manifest.mcpServers ?? {}).length > 0) {
|
|
12
|
+
refusals.push({ component: 'mcp', reasonCode: TARGET_INTEGRATION_POLICY[target].mcp.reasonCode ?? 'NO_QUALIFYING_LIVE_RECEIPT', remediation: 'run dz integrations-verify for this exact target product and version' });
|
|
13
|
+
}
|
|
14
|
+
if ((manifest.hooks?.length ?? 0) > 0) {
|
|
15
|
+
refusals.push({ component: 'hooks', reasonCode: TARGET_INTEGRATION_POLICY[target].hooks.reasonCode ?? 'NO_QUALIFYING_LIVE_RECEIPT', remediation: 'run dz integrations-verify with a hook canary and negative control' });
|
|
16
|
+
}
|
|
17
|
+
return { fragments: [], refusals };
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
/** Closed 10×2 policy. No fallback/default is permitted. */
|
|
21
|
+
export const TARGET_INTEGRATION_POLICY = {
|
|
22
|
+
'claude-code': {
|
|
23
|
+
mcp: { disposition: 'receipt', receiptVersion: '2.1.235' },
|
|
24
|
+
hooks: { disposition: 'refused', reasonCode: 'NO_ACTIVATION_RECEIPT' },
|
|
25
|
+
},
|
|
26
|
+
codex: {
|
|
27
|
+
mcp: { disposition: 'refused', reasonCode: 'PROJECT_CARRIER_NOT_OBSERVED' },
|
|
28
|
+
hooks: { disposition: 'legacy-post-write', reasonCode: 'CURRENT_LIVE_CHECK_FAILED' },
|
|
29
|
+
},
|
|
30
|
+
cursor: {
|
|
31
|
+
mcp: { disposition: 'refused', reasonCode: 'TARGET_BINARY_UNAVAILABLE' },
|
|
32
|
+
hooks: { disposition: 'refused', reasonCode: 'TARGET_BINARY_UNAVAILABLE' },
|
|
33
|
+
},
|
|
34
|
+
copilot: {
|
|
35
|
+
mcp: { disposition: 'refused', reasonCode: 'TARGET_BINARY_UNAVAILABLE' },
|
|
36
|
+
hooks: { disposition: 'refused', reasonCode: 'TARGET_BINARY_UNAVAILABLE' },
|
|
37
|
+
},
|
|
38
|
+
windsurf: {
|
|
39
|
+
mcp: { disposition: 'refused', reasonCode: 'PRODUCT_SURFACE_AMBIGUOUS' },
|
|
40
|
+
hooks: { disposition: 'refused', reasonCode: 'TARGET_BINARY_UNAVAILABLE' },
|
|
41
|
+
},
|
|
42
|
+
gemini: {
|
|
43
|
+
mcp: { disposition: 'refused', reasonCode: 'NO_QUALIFYING_LIVE_RECEIPT' },
|
|
44
|
+
hooks: { disposition: 'refused', reasonCode: 'NO_QUALIFYING_LIVE_RECEIPT' },
|
|
45
|
+
},
|
|
46
|
+
opencode: {
|
|
47
|
+
mcp: { disposition: 'refused', reasonCode: 'TARGET_BINARY_UNAVAILABLE' },
|
|
48
|
+
hooks: { disposition: 'refused', reasonCode: 'TARGET_BINARY_UNAVAILABLE' },
|
|
49
|
+
},
|
|
50
|
+
openclaude: {
|
|
51
|
+
mcp: { disposition: 'refused', reasonCode: 'PROJECT_CARRIER_NOT_DOCUMENTED' },
|
|
52
|
+
hooks: { disposition: 'refused', reasonCode: 'TARGET_BINARY_UNAVAILABLE' },
|
|
53
|
+
},
|
|
54
|
+
hermes: {
|
|
55
|
+
mcp: { disposition: 'refused', reasonCode: 'LIVE_PROBE_TIMEOUT' },
|
|
56
|
+
hooks: { disposition: 'refused', reasonCode: 'NO_ACTIVATION_RECEIPT' },
|
|
57
|
+
},
|
|
58
|
+
'agents-md': {
|
|
59
|
+
mcp: { disposition: 'refused', reasonCode: 'NO_RUNTIME_SURFACE' },
|
|
60
|
+
hooks: { disposition: 'refused', reasonCode: 'NO_RUNTIME_SURFACE' },
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
export const TARGET_INTEGRATIONS = Object.fromEntries(TARGET_NAMES.map((target) => [target, target === 'claude-code' ? claudeIntegrationAdapter : refusedAdapter(target)]));
|
|
64
|
+
export class IntegrationManifestError extends Error {
|
|
65
|
+
manifestPath;
|
|
66
|
+
code = 'MANIFEST_INVALID';
|
|
67
|
+
constructor(manifestPath, message) {
|
|
68
|
+
super(`${manifestPath}: ${message}`);
|
|
69
|
+
this.manifestPath = manifestPath;
|
|
70
|
+
this.name = 'IntegrationManifestError';
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/** Load, validate and aggregate every adjacent manifest before target effects. */
|
|
74
|
+
export function aggregateIntegrationManifests(sources) {
|
|
75
|
+
const manifests = [];
|
|
76
|
+
for (const source of sources) {
|
|
77
|
+
const path = join(source.skillDir, source.skillId, 'INTEGRATIONS.json');
|
|
78
|
+
if (!existsSync(path))
|
|
79
|
+
continue;
|
|
80
|
+
try {
|
|
81
|
+
manifests.push({ path, value: parseHarnessIntegrationManifestJson(readFileSync(path, 'utf8')) });
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
throw new IntegrationManifestError(path, error instanceof Error ? error.message : String(error));
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if (manifests.length === 0)
|
|
88
|
+
return { manifest: undefined, digest: undefined, sourcePaths: [] };
|
|
89
|
+
const mcp = Object.create(null);
|
|
90
|
+
const hooks = new Map();
|
|
91
|
+
for (const source of manifests) {
|
|
92
|
+
for (const [id, intent] of Object.entries(source.value.mcpServers ?? {})) {
|
|
93
|
+
const previous = mcp[id];
|
|
94
|
+
if (previous !== undefined && canonicalIntegrationJson(previous) !== canonicalIntegrationJson(intent)) {
|
|
95
|
+
throw new IntegrationManifestError(source.path, `conflicting MCP registration id ${JSON.stringify(id)}`);
|
|
96
|
+
}
|
|
97
|
+
mcp[id] = intent;
|
|
98
|
+
}
|
|
99
|
+
for (const hook of source.value.hooks ?? []) {
|
|
100
|
+
const previous = hooks.get(hook.id);
|
|
101
|
+
if (previous !== undefined && canonicalIntegrationJson(previous) !== canonicalIntegrationJson(hook)) {
|
|
102
|
+
throw new IntegrationManifestError(source.path, `conflicting hook registration id ${JSON.stringify(hook.id)}`);
|
|
103
|
+
}
|
|
104
|
+
hooks.set(hook.id, hook);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
const aggregate = {
|
|
108
|
+
version: 1,
|
|
109
|
+
...(Object.keys(mcp).length > 0 ? { mcpServers: Object.fromEntries(Object.entries(mcp).sort(([a], [b]) => a.localeCompare(b))) } : {}),
|
|
110
|
+
...(hooks.size > 0 ? { hooks: [...hooks.values()].sort((a, b) => a.id.localeCompare(b.id)) } : {}),
|
|
111
|
+
};
|
|
112
|
+
const count = Object.keys(aggregate.mcpServers ?? {}).length + (aggregate.hooks?.length ?? 0);
|
|
113
|
+
if (count > INTEGRATION_REGISTRATION_MAX_COUNT) {
|
|
114
|
+
throw new IntegrationManifestError('<aggregate>', `final aggregate has ${count} registrations; maximum is ${INTEGRATION_REGISTRATION_MAX_COUNT}`);
|
|
115
|
+
}
|
|
116
|
+
const aggregateBytes = Buffer.byteLength(canonicalIntegrationJson(aggregate), 'utf8');
|
|
117
|
+
if (aggregateBytes > INTEGRATION_MANIFEST_MAX_BYTES) {
|
|
118
|
+
throw new IntegrationManifestError('<aggregate>', `final aggregate exceeds ${INTEGRATION_MANIFEST_MAX_BYTES} UTF-8 bytes`);
|
|
119
|
+
}
|
|
120
|
+
return {
|
|
121
|
+
manifest: aggregate,
|
|
122
|
+
digest: integrationManifestDigest([aggregate]),
|
|
123
|
+
sourcePaths: manifests.map((source) => source.path),
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
export function notRequestedOutcomes(target) {
|
|
127
|
+
return [
|
|
128
|
+
{ target, component: 'mcp', status: 'not-requested', registrations: [] },
|
|
129
|
+
{ target, component: 'hooks', status: 'not-requested', registrations: [] },
|
|
130
|
+
];
|
|
131
|
+
}
|
|
132
|
+
export function refusedOutcome(target, component, reasonCode, remediation) {
|
|
133
|
+
return { target, component, status: 'refused', registrations: [], reasonCode, remediation };
|
|
134
|
+
}
|
|
135
|
+
/** Static synchronous outcomes for Gemini/agents-md and other refusal-only seams. */
|
|
136
|
+
export function staticPolicyOutcomes(target, manifest, noHooks = false) {
|
|
137
|
+
if (manifest === undefined)
|
|
138
|
+
return notRequestedOutcomes(target);
|
|
139
|
+
const mcpRequested = Object.keys(manifest.mcpServers ?? {}).length > 0;
|
|
140
|
+
const hooksRequested = (manifest.hooks?.length ?? 0) > 0 && !noHooks;
|
|
141
|
+
const mcpCell = TARGET_INTEGRATION_POLICY[target].mcp;
|
|
142
|
+
const hookCell = TARGET_INTEGRATION_POLICY[target].hooks;
|
|
143
|
+
return [
|
|
144
|
+
mcpRequested
|
|
145
|
+
? refusedOutcome(target, 'mcp', mcpCell.reasonCode ?? 'NO_QUALIFYING_LIVE_RECEIPT', 'run dz integrations-verify for an exact-version receipt')
|
|
146
|
+
: { target, component: 'mcp', status: 'not-requested', registrations: [] },
|
|
147
|
+
hooksRequested
|
|
148
|
+
? refusedOutcome(target, 'hooks', hookCell.reasonCode ?? 'NO_ACTIVATION_RECEIPT', 'run dz integrations-verify with a hook canary and negative control')
|
|
149
|
+
: { target, component: 'hooks', status: 'not-requested', registrations: [] },
|
|
150
|
+
];
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=target-integrations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"target-integrations.js","sourceRoot":"","sources":["../src/target-integrations.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAEpF,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EACL,8BAA8B,EAC9B,kCAAkC,EAClC,wBAAwB,EACxB,yBAAyB,EACzB,mCAAmC,GAOpC,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAmB,MAAM,cAAc,CAAC;AAkC7D,MAAM,cAAc,GAAG,CAAC,MAAkB,EAA4B,EAAE,CAAC,CAAC;IACxE,MAAM;IACN,IAAI,CAAC,QAAQ;QACX,MAAM,QAAQ,GAA0C,EAAE,CAAC;QAC3D,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,4BAA4B,EAAE,WAAW,EAAE,sEAAsE,EAAE,CAAC,CAAC;QACzN,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,4BAA4B,EAAE,WAAW,EAAE,oEAAoE,EAAE,CAAC,CAAC;QAC3N,CAAC;QACD,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;IACrC,CAAC;CACF,CAAC,CAAC;AAEH,4DAA4D;AAC5D,MAAM,CAAC,MAAM,yBAAyB,GAAgD;IACpF,aAAa,EAAE;QACb,GAAG,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE;QAC1D,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,uBAAuB,EAAE;KACvE;IACD,KAAK,EAAE;QACL,GAAG,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,8BAA8B,EAAE;QAC3E,KAAK,EAAE,EAAE,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,2BAA2B,EAAE;KACrF;IACD,MAAM,EAAE;QACN,GAAG,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,2BAA2B,EAAE;QACxE,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,2BAA2B,EAAE;KAC3E;IACD,OAAO,EAAE;QACP,GAAG,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,2BAA2B,EAAE;QACxE,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,2BAA2B,EAAE;KAC3E;IACD,QAAQ,EAAE;QACR,GAAG,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,2BAA2B,EAAE;QACxE,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,2BAA2B,EAAE;KAC3E;IACD,MAAM,EAAE;QACN,GAAG,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,4BAA4B,EAAE;QACzE,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,4BAA4B,EAAE;KAC5E;IACD,QAAQ,EAAE;QACR,GAAG,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,2BAA2B,EAAE;QACxE,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,2BAA2B,EAAE;KAC3E;IACD,UAAU,EAAE;QACV,GAAG,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,gCAAgC,EAAE;QAC7E,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,2BAA2B,EAAE;KAC3E;IACD,MAAM,EAAE;QACN,GAAG,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,oBAAoB,EAAE;QACjE,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,uBAAuB,EAAE;KACvE;IACD,WAAW,EAAE;QACX,GAAG,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,oBAAoB,EAAE;QACjE,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,oBAAoB,EAAE;KACpE;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAiD,MAAM,CAAC,WAAW,CACjG,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CACrE,CAAC;AAalD,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IAE5B;IADZ,IAAI,GAAG,kBAAkB,CAAC;IACnC,YAAqB,YAAoB,EAAE,OAAe;QACxD,KAAK,CAAC,GAAG,YAAY,KAAK,OAAO,EAAE,CAAC,CAAC;QADlB,iBAAY,GAAZ,YAAY,CAAQ;QAEvC,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AAED,kFAAkF;AAClF,MAAM,UAAU,6BAA6B,CAC3C,OAA6C;IAE7C,MAAM,SAAS,GAA4D,EAAE,CAAC;IAC9E,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;QACxE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,SAAS;QAChC,IAAI,CAAC;YACH,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,mCAAmC,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;QACnG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,wBAAwB,CAAC,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACnG,CAAC;IACH,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IAE/F,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAoF,CAAC;IACnH,MAAM,KAAK,GAAG,IAAI,GAAG,EAAsE,CAAC;IAC5F,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;QAC/B,KAAK,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;YACzE,MAAM,QAAQ,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,QAAQ,KAAK,SAAS,IAAI,wBAAwB,CAAC,QAAQ,CAAC,KAAK,wBAAwB,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtG,MAAM,IAAI,wBAAwB,CAAC,MAAM,CAAC,IAAI,EAAE,mCAAmC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC3G,CAAC;YACD,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;QACnB,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpC,IAAI,QAAQ,KAAK,SAAS,IAAI,wBAAwB,CAAC,QAAQ,CAAC,KAAK,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpG,MAAM,IAAI,wBAAwB,CAAC,MAAM,CAAC,IAAI,EAAE,oCAAoC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACjH,CAAC;YACD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG;QAChB,OAAO,EAAE,CAAU;QACnB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtI,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5D,CAAC;IACzC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;IAC9F,IAAI,KAAK,GAAG,kCAAkC,EAAE,CAAC;QAC/C,MAAM,IAAI,wBAAwB,CAAC,aAAa,EAAE,uBAAuB,KAAK,8BAA8B,kCAAkC,EAAE,CAAC,CAAC;IACpJ,CAAC;IACD,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,wBAAwB,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;IACtF,IAAI,cAAc,GAAG,8BAA8B,EAAE,CAAC;QACpD,MAAM,IAAI,wBAAwB,CAAC,aAAa,EAAE,2BAA2B,8BAA8B,cAAc,CAAC,CAAC;IAC7H,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,yBAAyB,CAAC,CAAC,SAAS,CAAC,CAAC;QAC9C,WAAW,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;KACpD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAkB;IACrD,OAAO;QACL,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,EAAE,EAAE;QACxE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,EAAE,EAAE;KAC3E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,MAAkB,EAClB,SAA+B,EAC/B,UAAiC,EACjC,WAAmB;IAEnB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;AAC9F,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,oBAAoB,CAClC,MAAkB,EAClB,QAAkD,EAClD,OAAO,GAAG,KAAK;IAEf,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAChE,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACvE,MAAM,cAAc,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;IACrE,MAAM,OAAO,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC;IACtD,MAAM,QAAQ,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;IACzD,OAAO;QACL,YAAY;YACV,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,IAAI,4BAA4B,EAAE,yDAAyD,CAAC;YAC9I,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,EAAE,EAAE;QAC5E,cAAc;YACZ,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,UAAU,IAAI,uBAAuB,EAAE,oEAAoE,CAAC;YACvJ,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,EAAE,EAAE;KAC/E,CAAC;AACJ,CAAC"}
|
|
@@ -54,6 +54,13 @@ export interface TelemetryField {
|
|
|
54
54
|
*/
|
|
55
55
|
readonly unit: 'ms' | 'tokens' | null;
|
|
56
56
|
}
|
|
57
|
+
export type RunOutcome = 'completed' | 'completed-unverified' | 'refused-repo-root' | 'refused-design' | 'refused-plan' | 'paused-checkpoint' | 'crashed' | 'unclassified';
|
|
58
|
+
/** Every member of the closed set, as data for reachability checks. */
|
|
59
|
+
export declare const RUN_OUTCOMES: readonly ["completed", "completed-unverified", "refused-repo-root", "refused-design", "refused-plan", "paused-checkpoint", "crashed", "unclassified"];
|
|
60
|
+
export declare function runOutcomeOf(input: {
|
|
61
|
+
phase: string | null | undefined;
|
|
62
|
+
gates: Record<string, unknown> | null | undefined;
|
|
63
|
+
}): RunOutcome;
|
|
57
64
|
/**
|
|
58
65
|
* The vocabulary. Keys are stable identifiers for OUR code to reference; `field` is what goes on
|
|
59
66
|
* disk, so an upstream rename touches the value and never the call sites.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry-vocabulary.d.ts","sourceRoot":"","sources":["../src/telemetry-vocabulary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH;;;GAGG;AACH,eAAO,MAAM,uBAAuB,yBAAyB,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3C,MAAM,WAAW,cAAc;IAC7B,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,kCAAkC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC;CACvC;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"telemetry-vocabulary.d.ts","sourceRoot":"","sources":["../src/telemetry-vocabulary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH;;;GAGG;AACH,eAAO,MAAM,uBAAuB,yBAAyB,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3C,MAAM,WAAW,cAAc;IAC7B,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,kCAAkC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC;CACvC;AAED,MAAM,MAAM,UAAU,GAClB,WAAW,GAAG,sBAAsB,GAAG,mBAAmB,GAAG,gBAAgB,GAC7E,cAAc,GAAG,mBAAmB,GAAG,SAAS,GAAG,cAAc,CAAC;AAEtE,uEAAuE;AACvE,eAAO,MAAM,YAAY,uJAGiB,CAAC;AAE3C,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAClC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;CACnD,GAAG,UAAU,CAmBb;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAqBrE,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAIjF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAkBhE,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAI/E"}
|
|
@@ -30,6 +30,33 @@
|
|
|
30
30
|
* against a versioned file — which is the whole point of copying rather than depending.
|
|
31
31
|
*/
|
|
32
32
|
export const TELEMETRY_VOCAB_VERSION = 'dz-telemetry-vocab-1';
|
|
33
|
+
/** Every member of the closed set, as data for reachability checks. */
|
|
34
|
+
export const RUN_OUTCOMES = [
|
|
35
|
+
'completed', 'completed-unverified', 'refused-repo-root', 'refused-design',
|
|
36
|
+
'refused-plan', 'paused-checkpoint', 'crashed', 'unclassified',
|
|
37
|
+
];
|
|
38
|
+
export function runOutcomeOf(input) {
|
|
39
|
+
if (input.phase === 'repo-root-mismatch')
|
|
40
|
+
return 'refused-repo-root';
|
|
41
|
+
if (input.phase === 'design-incomplete')
|
|
42
|
+
return 'refused-design';
|
|
43
|
+
if (input.phase === 'plan-gate-failed')
|
|
44
|
+
return 'refused-plan';
|
|
45
|
+
if (input.phase === 'checkpoint-after-plan')
|
|
46
|
+
return 'paused-checkpoint';
|
|
47
|
+
const gates = input.gates;
|
|
48
|
+
if ((input.phase === null || input.phase === undefined || input.phase === '')
|
|
49
|
+
&& gates !== null && typeof gates === 'object') {
|
|
50
|
+
const codeCompleted = gates.code === 'produced' || gates.code === 'landed';
|
|
51
|
+
const qe = gates.qe;
|
|
52
|
+
if (codeCompleted && typeof qe === 'string' && qe !== 'not-run' && qe !== 'ran' && qe !== '') {
|
|
53
|
+
return 'completed';
|
|
54
|
+
}
|
|
55
|
+
return 'completed-unverified';
|
|
56
|
+
}
|
|
57
|
+
// A crashed run cannot classify itself; an external consumer assigns that outcome later.
|
|
58
|
+
return 'unclassified';
|
|
59
|
+
}
|
|
33
60
|
/**
|
|
34
61
|
* The vocabulary. Keys are stable identifiers for OUR code to reference; `field` is what goes on
|
|
35
62
|
* disk, so an upstream rename touches the value and never the call sites.
|
|
@@ -47,6 +74,7 @@ export const TELEMETRY_FIELDS = {
|
|
|
47
74
|
// OpenTelemetry carries elapsed time as span structure, not as an attribute, so there is no
|
|
48
75
|
// upstream name to copy for a JSONL row. Ours, and said so.
|
|
49
76
|
durationMs: { field: 'dz.duration_ms', source: 'local', means: 'elapsed wall time of a stage or run', unit: 'ms' },
|
|
77
|
+
runOutcome: { field: 'dz.run_outcome', source: 'local', means: 'terminal outcome of one feature-adr pipeline run', unit: null },
|
|
50
78
|
// Upstream splits usage into input and output and has no TOTAL. Ours are totals, and folding them
|
|
51
79
|
// into input_tokens would silently change the measured quantity (cross-family review).
|
|
52
80
|
totalTokens: { field: 'dz.total_tokens', source: 'local', means: 'input + output for a run or stage', unit: 'tokens' },
|
|
@@ -92,6 +120,7 @@ export const LOCAL_FIELD_ALIASES = {
|
|
|
92
120
|
grade: 'evaluationLabel',
|
|
93
121
|
runId: 'runId',
|
|
94
122
|
stage: 'stage',
|
|
123
|
+
outcome: 'runOutcome',
|
|
95
124
|
};
|
|
96
125
|
/**
|
|
97
126
|
* The vocabulary field a local name means, or `undefined` when we do not know.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry-vocabulary.js","sourceRoot":"","sources":["../src/telemetry-vocabulary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"telemetry-vocabulary.js","sourceRoot":"","sources":["../src/telemetry-vocabulary.ts"],"names":[],"mappings":"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"}
|
package/dist/vector-tier.d.ts
CHANGED
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
* @packageDocumentation
|
|
33
33
|
*/
|
|
34
34
|
import type { DreamPattern, MemoryRecord } from '@dzhechkov/memory';
|
|
35
|
-
import { type PatternRecord, type RecallHit } from './patterns.js';
|
|
35
|
+
import { type PatternRecord, type RecallHit, type RecallPatternsOptions } from './patterns.js';
|
|
36
36
|
import { type BanditRecallReport } from './lesson-payoff.js';
|
|
37
37
|
/** Which adapter sits behind the port. */
|
|
38
38
|
export type VectorEngineKind = 'agentdb' | 'rvf';
|
|
@@ -147,6 +147,8 @@ export interface HybridHit {
|
|
|
147
147
|
readonly score: number;
|
|
148
148
|
/** lesson-quarantine: set only for a quarantined hit — display marks ⚠q, ranking was damped. */
|
|
149
149
|
readonly quarantined?: boolean;
|
|
150
|
+
/** Form provenance from the lexical pair merge; semantic ranking never invents it. */
|
|
151
|
+
readonly matchedForm?: NonNullable<RecallHit['matchedForm']>;
|
|
150
152
|
/**
|
|
151
153
|
* Raw closeness from the semantic leg, when the engine reports a genuine cosine. ABSENT for a
|
|
152
154
|
* lexical-only hit and for an engine whose score is not a cosine — the honest display there is a
|
|
@@ -477,6 +479,7 @@ export interface RankedPattern {
|
|
|
477
479
|
readonly id: string;
|
|
478
480
|
readonly pattern: PatternRecord;
|
|
479
481
|
readonly backend: RecallHit['backend'];
|
|
482
|
+
readonly matchedForm?: NonNullable<RecallHit['matchedForm']>;
|
|
480
483
|
/**
|
|
481
484
|
* The semantic leg's raw closeness, when the engine reports a real cosine. Rides ALONGSIDE the RRF
|
|
482
485
|
* score and never enters the ranking maths — four things depend on RRF magnitude (the reinforce
|
|
@@ -520,6 +523,8 @@ export declare function recallHybrid(projectRoot: string, query: string, opts?:
|
|
|
520
523
|
* sitting at `pulls === 0` forever. Absent ⇒ `general`; it changes nothing while disarmed.
|
|
521
524
|
*/
|
|
522
525
|
readonly domain?: string | undefined;
|
|
526
|
+
readonly onClassDegraded?: RecallPatternsOptions['onClassDegraded'];
|
|
527
|
+
readonly classMatcher?: RecallPatternsOptions['classMatcher'];
|
|
523
528
|
}): Promise<HybridRecall>;
|
|
524
529
|
export declare function teachGuard(projectRoot: string, text: string, opts?: VectorServiceOptions & {
|
|
525
530
|
readonly reward?: number | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector-tier.d.ts","sourceRoot":"","sources":["../src/vector-tier.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vector-tier.d.ts","sourceRoot":"","sources":["../src/vector-tier.ts"],"names":[],"mappings":"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"}
|