@mmnto/totem 1.74.0 → 1.75.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +6 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/spine/classify.d.ts.map +1 -1
- package/dist/spine/classify.js +3 -0
- package/dist/spine/classify.js.map +1 -1
- package/dist/spine/classify.test.js +14 -2
- package/dist/spine/classify.test.js.map +1 -1
- package/dist/spine/compile.test.js +5 -1
- package/dist/spine/compile.test.js.map +1 -1
- package/dist/spine/extract.d.ts +53 -9
- package/dist/spine/extract.d.ts.map +1 -1
- package/dist/spine/extract.js +120 -45
- package/dist/spine/extract.js.map +1 -1
- package/dist/spine/extract.test.js +112 -55
- package/dist/spine/extract.test.js.map +1 -1
- package/dist/spine/ledgers.d.ts +96 -19
- package/dist/spine/ledgers.d.ts.map +1 -1
- package/dist/spine/ledgers.js +46 -13
- package/dist/spine/ledgers.js.map +1 -1
- package/dist/spine/review-normalize.d.ts +23 -0
- package/dist/spine/review-normalize.d.ts.map +1 -0
- package/dist/spine/review-normalize.js +95 -0
- package/dist/spine/review-normalize.js.map +1 -0
- package/dist/spine/review-normalize.test.d.ts +2 -0
- package/dist/spine/review-normalize.test.d.ts.map +1 -0
- package/dist/spine/review-normalize.test.js +79 -0
- package/dist/spine/review-normalize.test.js.map +1 -0
- package/dist/spine/selection-rule.d.ts +17 -0
- package/dist/spine/selection-rule.d.ts.map +1 -1
- package/dist/spine/selection-rule.js +36 -0
- package/dist/spine/selection-rule.js.map +1 -1
- package/dist/spine/selection-rule.test.js +34 -1
- package/dist/spine/selection-rule.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
// ─── ADR-111 Stage-1 Extract (slice β): review-bot chrome normalization ───────
|
|
2
|
+
//
|
|
3
|
+
// strategy#709 yield-fix β. The Gate-1 cert corpus is a BOT-REVIEWED repo: its
|
|
4
|
+
// highest-signal review comments come from `gemini-code-assist` / `coderabbitai`,
|
|
5
|
+
// whose bodies are wrapped in heavy presentational MARKDOWN CHROME — severity
|
|
6
|
+
// image badges, `<details>` "analysis chain" collapsibles, AI-agent-prompt
|
|
7
|
+
// footers — that dilutes the extractor's signal (the mechanically-checkable
|
|
8
|
+
// invariant the reviewer asserted) with noise the LLM must wade through.
|
|
9
|
+
//
|
|
10
|
+
// `normalizeReviewChrome` is a DETERMINISTIC, AUDIT-PRESERVING strip of that
|
|
11
|
+
// chrome. AUDIT-PRESERVING: the caller KEEPS the raw `body` and ADDS a
|
|
12
|
+
// `normalizedBody` (extract.ts) — the raw text is never destroyed, so a frozen
|
|
13
|
+
// corpus stays fully re-derivable. DETERMINISTIC: pure string→string, no IO / no
|
|
14
|
+
// `Date` / no locale; identical input → identical output, and IDEMPOTENT
|
|
15
|
+
// (`normalize(normalize(x)) === normalize(x)`) so a double-application can never
|
|
16
|
+
// drift the extractorInputKey.
|
|
17
|
+
//
|
|
18
|
+
// PROVENANCE (Tenet-15): `REVIEW_CHROME_NORMALIZER_VERSION` is folded into the
|
|
19
|
+
// replay provenance block (the CLI `buildReplayProvenance`), so a normalizer
|
|
20
|
+
// change flips the whole-artifact integrity hash AND the extractorInputKey
|
|
21
|
+
// (the key digests `normalizedBody`, not the raw body) — EITHER path forces a
|
|
22
|
+
// re-record; a changed normalizer can never silently serve stale frozen outputs.
|
|
23
|
+
//
|
|
24
|
+
// SCOPE (panel OQ-β3 — normalization lives in CORE, not the adapter): the LOGIC
|
|
25
|
+
// + VERSION are single-homed here so the CLI adapter (which only INVOKES this at
|
|
26
|
+
// the mapping boundary) cannot drift the inputKey from the provenance. The strip
|
|
27
|
+
// is intentionally CONSERVATIVE — it removes presentational wrappers (badges,
|
|
28
|
+
// collapsibles, HTML comments) but never code fences or the reviewer's prose, so
|
|
29
|
+
// the asserted invariant survives for the extractor.
|
|
30
|
+
/**
|
|
31
|
+
* Normalizer schema version (mirrors `PROMPT_BUILDER_VERSION`). Bump on ANY change
|
|
32
|
+
* to the strip rules below → the replay provenance hash flips → a re-record is
|
|
33
|
+
* forced (Tenet-15). The version is BOTH a human-readable pin and an integrity
|
|
34
|
+
* lever; never edit a rule without bumping it.
|
|
35
|
+
*/
|
|
36
|
+
export const REVIEW_CHROME_NORMALIZER_VERSION = 'review-chrome-normalizer:v1';
|
|
37
|
+
// Presentational-chrome patterns, applied in order. Each is a GLOBAL replace, so
|
|
38
|
+
// after one pass no match remains → a second pass is a no-op (idempotence). None
|
|
39
|
+
// of these can match a fenced code body's interior in a way that re-triggers, so
|
|
40
|
+
// the pass order is irrelevant to the fixed point.
|
|
41
|
+
/** Markdown image (severity badge): `` — gemini/CR render severity as an SVG badge. */
|
|
42
|
+
const MD_IMAGE_RE = /!\[[^\]]*\]\([^)]*\)/g;
|
|
43
|
+
/** HTML `<img …>` badge (the non-markdown severity-image form). */
|
|
44
|
+
const HTML_IMG_RE = /<img\b[^>]*>/gi;
|
|
45
|
+
/** `<details>…</details>` collapsible (analysis-chain / AI-prompt / tool-dump chrome). Non-greedy. */
|
|
46
|
+
const DETAILS_RE = /<details\b[\s\S]*?<\/details>/gi;
|
|
47
|
+
/** HTML comment `<!-- … -->` (tracking / tool chrome). */
|
|
48
|
+
const HTML_COMMENT_RE = /<!--[\s\S]*?-->/g;
|
|
49
|
+
/** 3+ consecutive blank lines → collapsed to a single blank line (stable whitespace). */
|
|
50
|
+
const EXCESS_BLANKS_RE = /\n{3,}/g;
|
|
51
|
+
/**
|
|
52
|
+
* A triple-backtick fenced code block (non-greedy). Used to PARTITION the body so
|
|
53
|
+
* the chrome strips run ONLY on the prose BETWEEN fences — a fence body may
|
|
54
|
+
* legitimately contain chrome-looking tokens (`<!-- -->`, ``, `<img>`,
|
|
55
|
+
* `<details>`) that are the very invariant the extractor mines, so they must
|
|
56
|
+
* survive verbatim (CR #2242 — the "never touch fenced code blocks" contract).
|
|
57
|
+
*/
|
|
58
|
+
const FENCED_CODE_BLOCK_RE = /```[\s\S]*?```/g;
|
|
59
|
+
/** Apply every chrome strip to ONE prose segment (never a fenced-code segment). */
|
|
60
|
+
function stripChrome(segment) {
|
|
61
|
+
return segment
|
|
62
|
+
.replace(DETAILS_RE, '')
|
|
63
|
+
.replace(HTML_COMMENT_RE, '')
|
|
64
|
+
.replace(MD_IMAGE_RE, '')
|
|
65
|
+
.replace(HTML_IMG_RE, '');
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Strip presentational review-bot chrome from a comment body, returning the
|
|
69
|
+
* de-chromed text. DETERMINISTIC + IDEMPOTENT + AUDIT-PRESERVING (the caller
|
|
70
|
+
* retains the raw body). Removes severity badges (markdown + HTML images),
|
|
71
|
+
* `<details>` collapsibles, and HTML comments, then normalizes line endings and
|
|
72
|
+
* collapses runaway blank runs.
|
|
73
|
+
*
|
|
74
|
+
* FENCED CODE BLOCKS ARE PRESERVED VERBATIM (CR #2242): the body is partitioned on
|
|
75
|
+
* triple-backtick fences and the strips run ONLY on the prose between them, so a
|
|
76
|
+
* chrome-looking token INSIDE a code fence (the reviewer's literal example) is
|
|
77
|
+
* never deleted. It also does not touch the reviewer's prose words — over-stripping
|
|
78
|
+
* would drop the very invariant the extractor mines. A body with no chrome (e.g. a
|
|
79
|
+
* human comment) is returned unchanged apart from CRLF→LF + trim.
|
|
80
|
+
*/
|
|
81
|
+
export function normalizeReviewChrome(body) {
|
|
82
|
+
const lf = body.replace(/\r\n/g, '\n').replace(/\r/g, '\n');
|
|
83
|
+
let out = '';
|
|
84
|
+
let cursor = 0;
|
|
85
|
+
// Strip chrome from each prose run; copy each fenced block through untouched.
|
|
86
|
+
for (const match of lf.matchAll(FENCED_CODE_BLOCK_RE)) {
|
|
87
|
+
const start = match.index ?? 0;
|
|
88
|
+
out += stripChrome(lf.slice(cursor, start));
|
|
89
|
+
out += match[0];
|
|
90
|
+
cursor = start + match[0].length;
|
|
91
|
+
}
|
|
92
|
+
out += stripChrome(lf.slice(cursor));
|
|
93
|
+
return out.replace(EXCESS_BLANKS_RE, '\n\n').trim();
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=review-normalize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-normalize.js","sourceRoot":"","sources":["../../src/spine/review-normalize.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,EAAE;AACF,+EAA+E;AAC/E,kFAAkF;AAClF,8EAA8E;AAC9E,2EAA2E;AAC3E,4EAA4E;AAC5E,yEAAyE;AACzE,EAAE;AACF,6EAA6E;AAC7E,uEAAuE;AACvE,+EAA+E;AAC/E,iFAAiF;AACjF,yEAAyE;AACzE,iFAAiF;AACjF,+BAA+B;AAC/B,EAAE;AACF,+EAA+E;AAC/E,6EAA6E;AAC7E,2EAA2E;AAC3E,8EAA8E;AAC9E,iFAAiF;AACjF,EAAE;AACF,gFAAgF;AAChF,iFAAiF;AACjF,iFAAiF;AACjF,8EAA8E;AAC9E,iFAAiF;AACjF,qDAAqD;AAErD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,6BAA6B,CAAC;AAE9E,iFAAiF;AACjF,iFAAiF;AACjF,iFAAiF;AACjF,mDAAmD;AAEnD,kGAAkG;AAClG,MAAM,WAAW,GAAG,uBAAuB,CAAC;AAC5C,mEAAmE;AACnE,MAAM,WAAW,GAAG,gBAAgB,CAAC;AACrC,sGAAsG;AACtG,MAAM,UAAU,GAAG,iCAAiC,CAAC;AACrD,0DAA0D;AAC1D,MAAM,eAAe,GAAG,kBAAkB,CAAC;AAC3C,yFAAyF;AACzF,MAAM,gBAAgB,GAAG,SAAS,CAAC;AACnC;;;;;;GAMG;AACH,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;AAE/C,mFAAmF;AACnF,SAAS,WAAW,CAAC,OAAe;IAClC,OAAO,OAAO;SACX,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;SAC5B,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;SACxB,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC5D,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,8EAA8E;IAC9E,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACtD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QAC/B,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAC5C,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACnC,CAAC;IACD,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACrC,OAAO,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;AACtD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-normalize.test.d.ts","sourceRoot":"","sources":["../../src/spine/review-normalize.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { normalizeReviewChrome, REVIEW_CHROME_NORMALIZER_VERSION } from './review-normalize.js';
|
|
3
|
+
describe('normalizeReviewChrome — strips presentational chrome', () => {
|
|
4
|
+
it('strips a markdown severity badge image', () => {
|
|
5
|
+
const body = '\nrequire is_finite()';
|
|
6
|
+
expect(normalizeReviewChrome(body)).toBe('require is_finite()');
|
|
7
|
+
});
|
|
8
|
+
it('strips an HTML <img> severity badge', () => {
|
|
9
|
+
const body = '<img src="https://example.com/critical.svg" alt="critical"> guard the divisor';
|
|
10
|
+
expect(normalizeReviewChrome(body)).toBe('guard the divisor');
|
|
11
|
+
});
|
|
12
|
+
it('strips a <details> collapsible (analysis chain / AI-prompt / tool dump)', () => {
|
|
13
|
+
const body = [
|
|
14
|
+
'Potential issue: missing finite guard.',
|
|
15
|
+
'',
|
|
16
|
+
'<details>',
|
|
17
|
+
'<summary>🤖 Prompt for AI Agents</summary>',
|
|
18
|
+
'',
|
|
19
|
+
'In packages/x: add an is_finite() check before dividing.',
|
|
20
|
+
'</details>',
|
|
21
|
+
].join('\n');
|
|
22
|
+
expect(normalizeReviewChrome(body)).toBe('Potential issue: missing finite guard.');
|
|
23
|
+
});
|
|
24
|
+
it('strips HTML comments', () => {
|
|
25
|
+
expect(normalizeReviewChrome('keep this <!-- tracking-id: abc123 --> text')).toBe('keep this text');
|
|
26
|
+
});
|
|
27
|
+
it('collapses runaway blank lines and trims', () => {
|
|
28
|
+
expect(normalizeReviewChrome('line one\n\n\n\n\nline two\n\n')).toBe('line one\n\nline two');
|
|
29
|
+
});
|
|
30
|
+
it('normalizes CRLF to LF', () => {
|
|
31
|
+
expect(normalizeReviewChrome('a\r\nb')).toBe('a\nb');
|
|
32
|
+
});
|
|
33
|
+
it('leaves chrome-free human prose unchanged (apart from trim)', () => {
|
|
34
|
+
const human = 'Please extract this into a helper and add a finite-check.';
|
|
35
|
+
expect(normalizeReviewChrome(` ${human} `)).toBe(human);
|
|
36
|
+
});
|
|
37
|
+
it('preserves fenced code blocks (never over-strips the asserted invariant)', () => {
|
|
38
|
+
const body = ['Use execFile:', '```ts', 'execFile("ls", args)', '```'].join('\n');
|
|
39
|
+
expect(normalizeReviewChrome(body)).toBe(body);
|
|
40
|
+
});
|
|
41
|
+
it('preserves chrome-looking tokens INSIDE a fence; strips them outside (CR #2242)', () => {
|
|
42
|
+
const body = [
|
|
43
|
+
'', // chrome OUTSIDE → stripped
|
|
44
|
+
'Forbid this exact snippet:',
|
|
45
|
+
'```md',
|
|
46
|
+
'<!-- keep -->', // chrome INSIDE fence → preserved (the literal invariant)
|
|
47
|
+
'',
|
|
48
|
+
'```',
|
|
49
|
+
].join('\n');
|
|
50
|
+
const out = normalizeReviewChrome(body);
|
|
51
|
+
expect(out).not.toContain('![high]'); // outside badge stripped
|
|
52
|
+
expect(out).toContain('Forbid this exact snippet:');
|
|
53
|
+
expect(out).toContain('<!-- keep -->'); // inside HTML comment preserved
|
|
54
|
+
expect(out).toContain(''); // inside image preserved
|
|
55
|
+
});
|
|
56
|
+
it('is IDEMPOTENT: normalize(normalize(x)) === normalize(x)', () => {
|
|
57
|
+
const heavy = [
|
|
58
|
+
'',
|
|
59
|
+
'### Critical Bug:',
|
|
60
|
+
'divisor may be zero',
|
|
61
|
+
'',
|
|
62
|
+
'<details><summary>Analysis chain</summary>',
|
|
63
|
+
'long tool dump',
|
|
64
|
+
'</details>',
|
|
65
|
+
'',
|
|
66
|
+
'',
|
|
67
|
+
'',
|
|
68
|
+
'trailing',
|
|
69
|
+
].join('\n');
|
|
70
|
+
const once = normalizeReviewChrome(heavy);
|
|
71
|
+
expect(normalizeReviewChrome(once)).toBe(once);
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
describe('REVIEW_CHROME_NORMALIZER_VERSION', () => {
|
|
75
|
+
it('is a stable, non-empty version pin (folded into replay provenance — Tenet-15)', () => {
|
|
76
|
+
expect(REVIEW_CHROME_NORMALIZER_VERSION).toBe('review-chrome-normalizer:v1');
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
//# sourceMappingURL=review-normalize.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-normalize.test.js","sourceRoot":"","sources":["../../src/spine/review-normalize.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -69,6 +69,23 @@ export declare function isCodeTouching(changedFiles: string[], classifier: CodeP
|
|
|
69
69
|
* a `[bot]@` noreply email; robust to the name-only or name+email forms.
|
|
70
70
|
*/
|
|
71
71
|
export declare function isBotIdentity(author: string): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Recognize an ALLOWLISTED review-finding bot (gemini-code-assist / coderabbitai),
|
|
74
|
+
* with or without a `[bot]` suffix and with or without a trailing ` <email>`.
|
|
75
|
+
*
|
|
76
|
+
* DELIBERATELY SEPARATE from `isBotIdentity` (panel OQ-β1): `isBotIdentity` gates
|
|
77
|
+
* CORPUS MEMBERSHIP (it excludes `[bot]`-AUTHORED PRs) and stays unchanged —
|
|
78
|
+
* coupling review-comment substrate to commit-author exclusion would be the wrong
|
|
79
|
+
* dependency. This predicate is a NEW review-comment classifier used ONLY for
|
|
80
|
+
* `authorKind` tagging, the substantive-comment count, and chrome normalization.
|
|
81
|
+
*
|
|
82
|
+
* ALLOWLIST not denylist (panel OQ-β2): it fails CONSERVATIVE — a not-yet-listed
|
|
83
|
+
* review tool undercounts (drops to "no substrate") rather than laundering every
|
|
84
|
+
* future automation account in as a substantive reviewer. `isBotIdentity('gemini-
|
|
85
|
+
* code-assist')` stays `false` (no `[bot]` suffix); `reviewBotIdentity` returns
|
|
86
|
+
* `true` for it; `reviewBotIdentity('dependabot[bot]')` returns `false`.
|
|
87
|
+
*/
|
|
88
|
+
export declare function reviewBotIdentity(author: string): boolean;
|
|
72
89
|
/** Extract the reverted target SHA from a `This reverts commit <sha>` body line. */
|
|
73
90
|
export declare function parseRevertSha(commitBody: string): string | undefined;
|
|
74
91
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selection-rule.d.ts","sourceRoot":"","sources":["../../src/spine/selection-rule.ts"],"names":[],"mappings":"AAYA;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,0EAA0E;AAC1E,MAAM,WAAW,mBAAmB;IAClC,qEAAqE;IACrE,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,gFAAgF;IAChF,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iEAAiE;IACjE,aAAa,EAAE,OAAO,CAAC;IACvB;;;;;;OAMG;IACH,MAAM,EAAE;QAAE,IAAI,EAAE,KAAK,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1D;AAED,kFAAkF;AAClF,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,WAAW,EAAE,OAAO,CAAC;IACrB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,qFAAqF;AACrF,MAAM,WAAW,SAAS;IACxB,wCAAwC;IACxC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,wCAAwC;IACxC,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,wFAAwF;AACxF,qBAAa,uBAAwB,SAAQ,KAAK;aACpB,OAAO,EAAE,MAAM;gBAAf,OAAO,EAAE,MAAM;CAM5C;AAuED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,kBAAkB,GAAG,OAAO,CAQ9F;AAID;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAIrD;AAID,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGrE;AAOD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAY5D;AAID;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAKzF;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,mBAAmB,GAAG,MAAM,EAAE,CAyB3F;AAID,mFAAmF;AACnF,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAM1E;AAED,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAGzE"}
|
|
1
|
+
{"version":3,"file":"selection-rule.d.ts","sourceRoot":"","sources":["../../src/spine/selection-rule.ts"],"names":[],"mappings":"AAYA;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,0EAA0E;AAC1E,MAAM,WAAW,mBAAmB;IAClC,qEAAqE;IACrE,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,gFAAgF;IAChF,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iEAAiE;IACjE,aAAa,EAAE,OAAO,CAAC;IACvB;;;;;;OAMG;IACH,MAAM,EAAE;QAAE,IAAI,EAAE,KAAK,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1D;AAED,kFAAkF;AAClF,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,WAAW,EAAE,OAAO,CAAC;IACrB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,qFAAqF;AACrF,MAAM,WAAW,SAAS;IACxB,wCAAwC;IACxC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,wCAAwC;IACxC,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,wFAAwF;AACxF,qBAAa,uBAAwB,SAAQ,KAAK;aACpB,OAAO,EAAE,MAAM;gBAAf,OAAO,EAAE,MAAM;CAM5C;AAuED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,kBAAkB,GAAG,OAAO,CAQ9F;AAID;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAIrD;AAYD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAUzD;AAID,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGrE;AAOD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAY5D;AAID;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAKzF;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,mBAAmB,GAAG,MAAM,EAAE,CAyB3F;AAID,mFAAmF;AACnF,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAM1E;AAED,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAGzE"}
|
|
@@ -116,6 +116,42 @@ export function isBotIdentity(author) {
|
|
|
116
116
|
const name = a.replace(/\s*<[^>]*>\s*$/, '');
|
|
117
117
|
return name.endsWith('[bot]') || /\[bot\]@/.test(a);
|
|
118
118
|
}
|
|
119
|
+
/**
|
|
120
|
+
* The ALLOWLIST of recognized review-FINDING bots (strategy#709 yield-fix β). Their
|
|
121
|
+
* inline review comments are legitimate mining SUBSTRATE for a bot-reviewed cert
|
|
122
|
+
* corpus — UNLIKE generic `[bot]` automation accounts (renovate / dependabot),
|
|
123
|
+
* whose PR-level noise must never count as a substantive review comment. Logins are
|
|
124
|
+
* the GitHub `author.login` form (NO `[bot]` suffix for GCA/CR app comments), so a
|
|
125
|
+
* `[bot]`-suffixed variant of the same tool is matched too. Lowercased identities.
|
|
126
|
+
*/
|
|
127
|
+
const REVIEW_FINDING_BOT_LOGINS = new Set(['gemini-code-assist', 'coderabbitai']);
|
|
128
|
+
/**
|
|
129
|
+
* Recognize an ALLOWLISTED review-finding bot (gemini-code-assist / coderabbitai),
|
|
130
|
+
* with or without a `[bot]` suffix and with or without a trailing ` <email>`.
|
|
131
|
+
*
|
|
132
|
+
* DELIBERATELY SEPARATE from `isBotIdentity` (panel OQ-β1): `isBotIdentity` gates
|
|
133
|
+
* CORPUS MEMBERSHIP (it excludes `[bot]`-AUTHORED PRs) and stays unchanged —
|
|
134
|
+
* coupling review-comment substrate to commit-author exclusion would be the wrong
|
|
135
|
+
* dependency. This predicate is a NEW review-comment classifier used ONLY for
|
|
136
|
+
* `authorKind` tagging, the substantive-comment count, and chrome normalization.
|
|
137
|
+
*
|
|
138
|
+
* ALLOWLIST not denylist (panel OQ-β2): it fails CONSERVATIVE — a not-yet-listed
|
|
139
|
+
* review tool undercounts (drops to "no substrate") rather than laundering every
|
|
140
|
+
* future automation account in as a substantive reviewer. `isBotIdentity('gemini-
|
|
141
|
+
* code-assist')` stays `false` (no `[bot]` suffix); `reviewBotIdentity` returns
|
|
142
|
+
* `true` for it; `reviewBotIdentity('dependabot[bot]')` returns `false`.
|
|
143
|
+
*/
|
|
144
|
+
export function reviewBotIdentity(author) {
|
|
145
|
+
const a = author.replace(/\r/g, '').trim().toLowerCase();
|
|
146
|
+
// `.trim()` after the `[bot]` strip mirrors `isBotIdentity`: a `'coderabbitai
|
|
147
|
+
// [bot]'` form (space before the suffix) would otherwise leave a trailing space
|
|
148
|
+
// and miss the allowlist (greptile #2242).
|
|
149
|
+
const name = a
|
|
150
|
+
.replace(/\s*<[^>]*>\s*$/, '')
|
|
151
|
+
.replace(/\[bot\]$/, '')
|
|
152
|
+
.trim();
|
|
153
|
+
return REVIEW_FINDING_BOT_LOGINS.has(name);
|
|
154
|
+
}
|
|
119
155
|
const REVERT_BODY_REGEX = /^This reverts commit ([0-9a-f]{7,40})\b/im;
|
|
120
156
|
/** Extract the reverted target SHA from a `This reverts commit <sha>` body line. */
|
|
121
157
|
export function parseRevertSha(commitBody) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selection-rule.js","sourceRoot":"","sources":["../../src/spine/selection-rule.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"selection-rule.js","sourceRoot":"","sources":["../../src/spine/selection-rule.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { diffPrSets, isBotIdentity, isCodeTouching, parsePrNumber, parseRevertSha, prSetsEqual, resolveSelectionRule, SelectionRuleParseError, selectionRulePredicate, } from './selection-rule.js';
|
|
2
|
+
import { diffPrSets, isBotIdentity, isCodeTouching, parsePrNumber, parseRevertSha, prSetsEqual, resolveSelectionRule, reviewBotIdentity, SelectionRuleParseError, selectionRulePredicate, } from './selection-rule.js';
|
|
3
3
|
// ─── Helpers ─────────────────────────────────────────
|
|
4
4
|
const CLASSIFIER = {
|
|
5
5
|
includeGlobs: ['packages/**/*.ts', 'src/**', '**/*.rs'],
|
|
@@ -79,6 +79,39 @@ describe('isBotIdentity — [bot] suffix only', () => {
|
|
|
79
79
|
expect(isBotIdentity(' dependabot[bot] ')).toBe(true);
|
|
80
80
|
});
|
|
81
81
|
});
|
|
82
|
+
// ─── reviewBotIdentity (slice β allowlist) ───────────
|
|
83
|
+
describe('reviewBotIdentity — recognized review-finding bots only (allowlist)', () => {
|
|
84
|
+
it('recognizes gemini-code-assist / coderabbitai with or without a [bot] suffix or email', () => {
|
|
85
|
+
expect(reviewBotIdentity('gemini-code-assist')).toBe(true); // no [bot] suffix
|
|
86
|
+
expect(reviewBotIdentity('gemini-code-assist[bot]')).toBe(true);
|
|
87
|
+
expect(reviewBotIdentity('coderabbitai')).toBe(true);
|
|
88
|
+
expect(reviewBotIdentity('coderabbitai[bot]')).toBe(true);
|
|
89
|
+
expect(reviewBotIdentity('coderabbitai[bot] <bot@coderabbit.ai>')).toBe(true);
|
|
90
|
+
expect(reviewBotIdentity('coderabbitai [bot]')).toBe(true); // space before suffix → trimmed (greptile #2242)
|
|
91
|
+
expect(reviewBotIdentity('CodeRabbitAI')).toBe(true); // case-insensitive
|
|
92
|
+
});
|
|
93
|
+
it('does NOT recognize generic / noise automation accounts (denylist stays separate)', () => {
|
|
94
|
+
expect(reviewBotIdentity('dependabot[bot]')).toBe(false);
|
|
95
|
+
expect(reviewBotIdentity('renovate[bot]')).toBe(false);
|
|
96
|
+
expect(reviewBotIdentity('some-future-bot[bot]')).toBe(false);
|
|
97
|
+
});
|
|
98
|
+
it('does NOT recognize humans', () => {
|
|
99
|
+
expect(reviewBotIdentity('Jane Doe')).toBe(false);
|
|
100
|
+
expect(reviewBotIdentity('Jane Doe <jane@example.com>')).toBe(false);
|
|
101
|
+
expect(reviewBotIdentity('')).toBe(false);
|
|
102
|
+
});
|
|
103
|
+
it('is DISJOINT from isBotIdentity for the review bots (the OQ-β1 separation)', () => {
|
|
104
|
+
// The whole point: GCA/CR carry NO [bot] suffix, so isBotIdentity misses them
|
|
105
|
+
// (they would have been counted as "human" pre-β) — reviewBotIdentity is the
|
|
106
|
+
// dedicated classifier that admits them as substrate without coupling to the
|
|
107
|
+
// commit-author corpus-membership gate.
|
|
108
|
+
expect(isBotIdentity('gemini-code-assist')).toBe(false);
|
|
109
|
+
expect(reviewBotIdentity('gemini-code-assist')).toBe(true);
|
|
110
|
+
// …and a noise [bot] is the inverse: a bot to isBotIdentity, not a review bot.
|
|
111
|
+
expect(isBotIdentity('dependabot[bot]')).toBe(true);
|
|
112
|
+
expect(reviewBotIdentity('dependabot[bot]')).toBe(false);
|
|
113
|
+
});
|
|
114
|
+
});
|
|
82
115
|
// ─── parseRevertSha ──────────────────────────────────
|
|
83
116
|
describe('parseRevertSha', () => {
|
|
84
117
|
it('extracts the target sha from a revert body', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selection-rule.test.js","sourceRoot":"","sources":["../../src/spine/selection-rule.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAG9C,OAAO,EACL,UAAU,EACV,aAAa,EACb,cAAc,EACd,aAAa,EACb,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAE7B,wDAAwD;AAExD,MAAM,UAAU,GAAuB;IACrC,YAAY,EAAE,CAAC,kBAAkB,EAAE,QAAQ,EAAE,SAAS,CAAC;IACvD,YAAY,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC;CAClD,CAAC;AAEF,SAAS,GAAG,CAAC,SAAwC;IACnD,OAAO;QACL,kBAAkB,EAAE,UAAU;QAC9B,kBAAkB,EAAE,IAAI;QACxB,aAAa,EAAE,IAAI;QACnB,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;QACvB,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,SAAS,IAAI,CAAC,EAAU,EAAE,SAA2B;IACnD,MAAM,MAAM,GAAG,SAAS,EAAE,MAAM,IAAI,6BAA6B,CAAC;IAClE,OAAO;QACL,EAAE;QACF,WAAW,EAAE,SAAS,EAAE,WAAW,IAAI,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;QAChE,MAAM;QACN,WAAW,EAAE,SAAS,EAAE,WAAW,IAAI,aAAa,CAAC,MAAM,CAAC;QAC5D,UAAU,EAAE,SAAS,EAAE,UAAU;QACjC,YAAY,EAAE,SAAS,EAAE,YAAY,IAAI,CAAC,wBAAwB,CAAC;KACpE,CAAC;AACJ,CAAC;AAED,wDAAwD;AAExD,QAAQ,CAAC,iDAAiD,EAAE,GAAG,EAAE;IAC/D,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,cAAc,CAAC,CAAC,wBAAwB,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1E,MAAM,CAAC,cAAc,CAAC,CAAC,mBAAmB,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrE,MAAM,CAAC,cAAc,CAAC,CAAC,mBAAmB,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,MAAM,CAAC,cAAc,CAAC,CAAC,yBAAyB,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,CAAC,cAAc,CAAC,CAAC,qBAAqB,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxE,MAAM,CAAC,cAAc,CAAC,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+EAA+E,EAAE,GAAG,EAAE;QACvF,MAAM,CACJ,cAAc,CAAC,CAAC,yBAAyB,EAAE,4BAA4B,CAAC,EAAE,UAAU,CAAC,CACtF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kFAAkF,EAAE,GAAG,EAAE;QAC1F,2GAA2G;QAC3G,MAAM,CAAC,cAAc,CAAC,CAAC,yBAAyB,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,cAAc,CAAC,CAAC,2BAA2B,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE,YAAY,EAAE,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CACzF,IAAI,CACL,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,CAAC,GAAuB,EAAE,YAAY,EAAE,CAAC,kBAAkB,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;QACvF,MAAM,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,CAAC,cAAc,CAAC,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,MAAM,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,wDAAwD;AAExD,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;IACjD,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY;QACjE,uEAAuE;QACvE,qEAAqE;QACrE,MAAM,CACJ,aAAa,CAAC,qEAAqE,CAAC,CACrF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,CAAC,aAAa,CAAC,kCAAkC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrE,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,wDAAwD;AAExD,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,cAAc,CAAC,+DAA+D,CAAC,CAAC,CAAC,IAAI,CAC1F,0CAA0C,CAC3C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,CAAC,cAAc,CAAC,4BAA4B,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,CAAC,cAAc,CAAC,kEAAkE,CAAC,CAAC,CAAC,IAAI,CAC7F,0CAA0C,CAC3C,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gEAAgE;AAEhE,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,CAAC,aAAa,CAAC,4CAA4C,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9E,MAAM,CAAC,aAAa,CAAC,2CAA2C,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7E,MAAM,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QAChF,MAAM,CAAC,aAAa,CAAC,sCAAsC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACzE,MAAM,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAC/E,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAC9E,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAC9E,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,wDAAwD;AAExD,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,YAAY,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACrD,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChF,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8EAA8E,EAAE,GAAG,EAAE;QACtF,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzD,MAAM,CAAC,sBAAsB,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxF,MAAM,CAAC,sBAAsB,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1F,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,6DAA6D;AAE7D,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YACpF,EAAE,EAAE,EAAE,EAAE,EAAE;SACX,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;QACvB,MAAM,CACJ,oBAAoB,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,CACjF,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qFAAqF,EAAE,GAAG,EAAE;QAC7F,gFAAgF;QAChF,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;QACvB,MAAM,CAAC,oBAAoB,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACxD,MAAM,CAAC,oBAAoB,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACzF,EAAE,EAAE,EAAE;SACP,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,YAAY,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACzD,MAAM,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gFAAgF,EAAE,GAAG,EAAE;QACxF,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;QACnD,MAAM,CAAC,oBAAoB,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+EAA+E,EAAE,GAAG,EAAE;QACvF,yDAAyD;QACzD,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACtF,EAAE,EAAE,EAAE;SACP,CAAC,CAAC;QACH,0BAA0B;QAC1B,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAClG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sFAAsF,EAAE,GAAG,EAAE;QAC9F,+EAA+E;QAC/E,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9E,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACtF,EAAE,EAAE,EAAE;SACP,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,wDAAwD;AAExD,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oFAAoF,EAAE,GAAG,EAAE;QAC5F,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACtC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"selection-rule.test.js","sourceRoot":"","sources":["../../src/spine/selection-rule.test.ts"],"names":[],"mappings":"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"}
|