From 9e785fcf939963b8df41be849b79fd47b195f6d2 Mon Sep 17 00:00:00 2001 From: SteveBot <1153461+unbraind@users.noreply.github.com> Date: Mon, 28 Sep 2026 16:59:17 +0200 Subject: [PATCH 1/7] Fix TSX coverage in pm-ops quality gates Scan authored TSX in the docstring walker and both supported jscpd engines. Verify the jscpd 5 source count with a one-token pass so an incomplete scan fails closed. Add real jscpd 4/5 and TSX docstring regressions, update consumer guidance and generated package output, and pin the package CLI/SDK to 2026.9.28. Track source issue #128 and release evidence in ops-zq8c. --- .agents/pm/history/ops-zq8c.jsonl | 1 + .agents/pm/issues/ops-zq8c.toon | 25 ++++++++ README.md | 12 ++-- dist/docstrings.js | 6 +- dist/docstrings.js.map | 2 +- dist/duplication.d.ts | 1 + dist/duplication.d.ts.map | 2 +- dist/duplication.js | 75 ++++++++++++---------- dist/duplication.js.map | 2 +- docstrings.ts | 6 +- duplication.ts | 83 ++++++++++++++----------- package-lock.json | 8 +-- package.json | 2 +- test/compatibility-floor.test.ts | 2 +- test/docstrings.test.ts | 18 ++++++ test/lint-and-duplication-gates.test.ts | 48 +++++++++++++- 16 files changed, 200 insertions(+), 93 deletions(-) create mode 100644 .agents/pm/history/ops-zq8c.jsonl create mode 100644 .agents/pm/issues/ops-zq8c.toon diff --git a/.agents/pm/history/ops-zq8c.jsonl b/.agents/pm/history/ops-zq8c.jsonl new file mode 100644 index 0000000..27452c2 --- /dev/null +++ b/.agents/pm/history/ops-zq8c.jsonl @@ -0,0 +1 @@ +{"hash_algorithm":"sha256","ts":"2026-09-28T15:05:31.893Z","author":"codex","author_source":"asserted","agent_harness":"codex","agent_model":"gpt-6-sol","agent_model_source":"probe","agent_instance":"381a892fadca8b4d12a512f7","agent_provenance":{"model":{"value":"gpt-6-sol","source":"probe"},"effort":{"value":"high","source":"probe"},"role":{"value":"implementer","source":"argv"},"topic":null},"op":"create","patch":[{"op":"add","path":"/metadata/id","value":"ops-zq8c"},{"op":"add","path":"/metadata/title","value":"Include TSX in docstring and duplication gates with verified source counts"},{"op":"add","path":"/metadata/description","value":"GitHub #128: pm-ops docstring and duplication gates silently omit TSX sources. Make both engines scan TSX, prove source-count completeness, and certify the exact package head."},{"op":"add","path":"/metadata/type","value":"Issue"},{"op":"add","path":"/metadata/status","value":"in_progress"},{"op":"add","path":"/metadata/priority","value":1},{"op":"add","path":"/metadata/tags","value":["area:quality","docstrings","duplication","tsx"]},{"op":"add","path":"/metadata/created_at","value":"2026-09-28T15:05:31.893Z"},{"op":"add","path":"/metadata/updated_at","value":"2026-09-28T15:05:31.893Z"},{"op":"add","path":"/metadata/author","value":"codex"},{"op":"add","path":"/metadata/estimated_minutes","value":180},{"op":"add","path":"/metadata/acceptance_criteria","value":"Directory and single-file docstring analysis find undocumented TSX exports; jscpd 4 and 5 detect TSX clones with the real engines; mismatched scan counts fail closed; release gate passes; companion records exact limitations."},{"op":"add","path":"/metadata/notes","value":[{"created_at":"2026-09-28T15:05:31.893Z","author":"codex","text":"TDD: TSX docstring and real jscpd 4 tests failed before the source fix. The candidate passes 449/451 tests with two existing opt-in skips, c8 100/100/100/100, 221/221 documented declarations, zero duplication across 43 sources, zero production audit findings, and real packed npm/Node and Bun TSX acceptance. The local PM CLI SDK pin is 2026.9.28."}]},{"op":"add","path":"/metadata/files","value":[{"path":"docstrings.ts","scope":"project","note":"TSX source walker"},{"path":"duplication.ts","scope":"project","note":"Both jscpd engines and source-count verification"},{"path":"test/docstrings.test.ts","scope":"project","note":"TSX docstring regression"},{"path":"test/lint-and-duplication-gates.test.ts","scope":"project","note":"Real jscpd 4 and 5 TSX acceptance"},{"path":"README.md","scope":"project","note":"Updated consumer guidance"}]},{"op":"add","path":"/metadata/tests","value":[{"command":"npm run release:check","path":"package.json","scope":"project","timeout_seconds":900,"provenance":{"author":"codex","created_at":"2026-09-28T15:05:31.893Z","source_kind":"local_mutation","source_ref":"fix/pm-ops-tsx-quality-gates-2026-09-28"}}]},{"op":"add","path":"/metadata/docs","value":[{"path":"https://github.com/unbraind/pm-ops/issues/128","scope":"global","note":"Source issue and reproduction"}]}],"before_hash":"3cc22dff72be7b14824654a7a64ea62b04799939b2fee54c1b5f52ca60bf6df0","after_hash":"002a8fc48215b8475e29caa889121edc0a796db26f0b8eed34828e78ebd4e653","item_hash_version":3,"message":"","context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"effort":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"version":{"status":"unavailable","reason":"harness_unavailable","resolver":"ai_agent_version","rule_version":"v1"}}},"event_class":"substantive","record_hash_version":1,"record_hash":"b4f0b71f8a06c7beab5d36dd2adec36ebffefe6ec9f2a06f904de7fe73d59df5"} diff --git a/.agents/pm/issues/ops-zq8c.toon b/.agents/pm/issues/ops-zq8c.toon new file mode 100644 index 0000000..918c2c3 --- /dev/null +++ b/.agents/pm/issues/ops-zq8c.toon @@ -0,0 +1,25 @@ +id: ops-zq8c +title: Include TSX in docstring and duplication gates with verified source counts +description: "GitHub #128: pm-ops docstring and duplication gates silently omit TSX sources. Make both engines scan TSX, prove source-count completeness, and certify the exact package head." +type: Issue +status: in_progress +priority: 1 +tags[4]: "area:quality",docstrings,duplication,tsx +created_at: "2026-09-28T15:05:31.893Z" +updated_at: "2026-09-28T15:05:31.893Z" +author: codex +estimated_minutes: 180 +acceptance_criteria: Directory and single-file docstring analysis find undocumented TSX exports; jscpd 4 and 5 detect TSX clones with the real engines; mismatched scan counts fail closed; release gate passes; companion records exact limitations. +notes[1]{created_at,author,text}: + "2026-09-28T15:05:31.893Z",codex,"TDD: TSX docstring and real jscpd 4 tests failed before the source fix. The candidate passes 449/451 tests with two existing opt-in skips, c8 100/100/100/100, 221/221 documented declarations, zero duplication across 43 sources, zero production audit findings, and real packed npm/Node and Bun TSX acceptance. The local PM CLI SDK pin is 2026.9.28." +files[5]{path,scope,note}: + docstrings.ts,project,TSX source walker + duplication.ts,project,Both jscpd engines and source-count verification + test/docstrings.test.ts,project,TSX docstring regression + test/lint-and-duplication-gates.test.ts,project,Real jscpd 4 and 5 TSX acceptance + README.md,project,Updated consumer guidance +tests[1]{command,path,scope,timeout_seconds,provenance{author,created_at,source_kind,source_ref}}: + "npm run release:check",package.json,project,900,codex,"2026-09-28T15:05:31.893Z",local_mutation,fix/pm-ops-tsx-quality-gates-2026-09-28 +docs[1]{path,scope,note}: + "https://github.com/unbraind/pm-ops/issues/128",global,Source issue and reproduction +body: "" diff --git a/README.md b/README.md index 03508d8..252bfbe 100644 --- a/README.md +++ b/README.md @@ -342,10 +342,12 @@ process.exitCode = await runLintGate(); `runLintGate` uses the canonical policy, prints stylish diagnostics to stderr, and returns `0` or `1` for use as the process exit code. -The duplication export reads `package.json`, scans `**/*.ts` by default (including -root sources, `scripts/`, and tests), reports every clone pair with both file -line ranges, and fails when the measured percentage is above the configured -threshold. `globs` and `minTokens` can be overridden for direct analysis; +The duplication export reads `package.json`, scans `**/*.{ts,tsx}` by default +(including root sources, `scripts/`, UI components, and tests), reports every +clone pair with both file line ranges, and fails when the measured percentage +is above the configured threshold. Both jscpd 4 and 5 scan TS and TSX; the +jscpd 5 gate checks its source count with a one-token pass and refuses an +incomplete scan. `globs` and `minTokens` can be overridden for direct analysis; the gate uses `minTokens: 50` when the field is omitted. ### Consumers @@ -362,7 +364,7 @@ exports adds all five packages, using the version ranges shown in ```ts import { analyzeDuplication, runDuplicationGate } from "pm-ops/duplication"; -const report = await analyzeDuplication({ globs: ["src/**/*.ts", "test/**/*.ts"] }); +const report = await analyzeDuplication({ globs: ["src/**/*.{ts,tsx}", "test/**/*.{ts,tsx}"] }); await runDuplicationGate(); ``` diff --git a/dist/docstrings.js b/dist/docstrings.js index 98c1dc0..d91d267 100644 --- a/dist/docstrings.js +++ b/dist/docstrings.js @@ -346,7 +346,7 @@ function cleanComment(raw) { return text.replace(/\s+/g, " ").trim(); } /** - * Recursively collect every authored `.ts` file (excluding `.d.ts`) beneath the + * Recursively collect every authored `.ts` or `.tsx` file (excluding `.d.ts`) beneath the * given roots, skipping the structural non-source directories in * {@link SKIP_DIRS}. A root may itself be a single file. */ @@ -371,7 +371,7 @@ function collectSourceFiles(roots) { if (!SKIP_DIRS.has(name)) walk(full); } - else if (info.isFile() && name.endsWith(".ts") && !name.endsWith(".d.ts")) { + else if (info.isFile() && (name.endsWith(".ts") || name.endsWith(".tsx")) && !name.endsWith(".d.ts")) { out.push(full); } } @@ -389,7 +389,7 @@ function collectSourceFiles(roots) { if (info.isDirectory()) { walk(root); } - else if (info.isFile() && root.endsWith(".ts") && !root.endsWith(".d.ts")) { + else if (info.isFile() && (root.endsWith(".ts") || root.endsWith(".tsx")) && !root.endsWith(".d.ts")) { out.push(root); } } diff --git a/dist/docstrings.js.map b/dist/docstrings.js.map index d8e6de2..df13165 100644 --- a/dist/docstrings.js.map +++ b/dist/docstrings.js.map @@ -1 +1 @@ -{"version":3,"file":"docstrings.js","sourceRoot":"","sources":["../docstrings.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"docstrings.js","sourceRoot":"","sources":["../docstrings.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/duplication.d.ts b/dist/duplication.d.ts index e543604..e618097 100644 --- a/dist/duplication.d.ts +++ b/dist/duplication.d.ts @@ -79,6 +79,7 @@ interface ReportedAnalysis { readonly total: { readonly lines: number; readonly duplicatedLines: number; + readonly sources: number; }; }; } diff --git a/dist/duplication.d.ts.map b/dist/duplication.d.ts.map index a7f9ee7..4e291ea 100644 --- a/dist/duplication.d.ts.map +++ b/dist/duplication.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"duplication.d.ts","sourceRoot":"","sources":["../duplication.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"duplication.d.ts","sourceRoot":"","sources":["../duplication.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/duplication.js b/dist/duplication.js index 254a107..4eec9bc 100644 --- a/dist/duplication.js +++ b/dist/duplication.js @@ -16,7 +16,7 @@ import { tmpdir } from "node:os"; import { dirname, join, relative, resolve, sep } from "node:path"; import { spawnSync } from "node:child_process"; /** Default TypeScript glob scanned by the duplication gate. */ -export const DEFAULT_DUPLICATION_GLOBS = ["**/*.ts"]; +export const DEFAULT_DUPLICATION_GLOBS = ["**/*.{ts,tsx}"]; const defaultRepoRoot = process.cwd(); const MAX_DUPLICATION_LINES = Number.MAX_SAFE_INTEGER; const MAX_DUPLICATION_SIZE = `${Number.MAX_SAFE_INTEGER}b`; @@ -89,15 +89,17 @@ export function parseJscpdReport(report) { const total = expectRecord(statistics.total, "statistics.total"); const lines = expectNumber(total, "lines", "statistics.total.lines"); const duplicatedLines = expectNumber(total, "duplicatedLines", "statistics.total.duplicatedLines"); - // An impossible count (negative, fractional, or more duplicated than total lines) - // would compute a passing percentage, so it fails closed like a missing field. + const sources = expectNumber(total, "sources", "statistics.total.sources"); + // Impossible counts could compute a passing percentage or false completeness. if (!Number.isInteger(lines) || !Number.isInteger(duplicatedLines) || duplicatedLines < 0 || - duplicatedLines > lines) { - throw new Error("duplication: jscpd report statistics.total contains impossible line counts"); + duplicatedLines > lines || + !Number.isInteger(sources) || + sources < 0) { + throw new Error("duplication: jscpd report statistics.total contains impossible counts"); } - return { duplicates: clones, statistics: { total: { lines, duplicatedLines } } }; + return { duplicates: clones, statistics: { total: { lines, duplicatedLines, sources } } }; } /** Parse and validate the package-level duplication gate contract. */ function readDuplicationConfig(manifest) { @@ -154,7 +156,7 @@ function globMatchedSources(repoRoot, pattern) { ignore: [...DUPLICATION_IGNORES], onlyFiles: true, }) - .filter((source) => source.endsWith(".ts") && !source.endsWith(".d.ts")) + .filter((source) => (source.endsWith(".ts") || source.endsWith(".tsx")) && !source.endsWith(".d.ts")) .map((source) => relativeSource(repoRoot, source)) .sort(); } @@ -167,7 +169,7 @@ function duplicationOptions(repoRoot, pattern, minTokens) { minLines: 1, maxLines: MAX_DUPLICATION_LINES, maxSize: MAX_DUPLICATION_SIZE, - format: ["typescript"], + format: ["typescript", "tsx"], ignore: [...DUPLICATION_IGNORES], absolute: true, gitignore: false, @@ -223,7 +225,7 @@ function packageDirOf(entryPath) { async function analyzeWithProgrammatic(installation, repoRoot, pattern, minTokens, matchedSources) { const api = require(installation.entryPath); const result = await api.detectClonesAndStatistic(duplicationOptions(repoRoot, pattern, minTokens)); - const analyzedSources = Object.keys(result.statistic.formats.typescript?.sources ?? {}) + const analyzedSources = ["typescript", "tsx"].flatMap((format) => Object.keys(result.statistic.formats[format]?.sources ?? {})) .map((source) => relativeSource(repoRoot, source)) .sort(); const analyzed = new Set(analyzedSources); @@ -241,36 +243,41 @@ async function analyzeWithProgrammatic(installation, repoRoot, pattern, minToken * Analyze with jscpd 5's binary through its JSON reporter. * * jscpd 5 is a self-contained Rust binary driven by `run-jscpd.js`, and its - * JSON report carries no per-file analysis record. The only files it drops - * from `statistics.total.sources` are those below the token floor, which - * cannot hold a clone of `minTokens` tokens, so the in-scope file set is the - * analyzed set and nothing in scope can be silently skipped. + * JSON report carries only aggregate source counts. A second one-token scan + * proves that its format filter read every in-scope file, including short ones. */ function analyzeWithBinary(installation, repoRoot, pattern, minTokens, matchedSources) { const outputDir = mkdtempSync(join(tmpdir(), "pm-ops-jscpd-")); try { - const result = spawnSync(process.execPath, [ - join(installation.packageDir, "run-jscpd.js"), - repoRoot, - "--pattern", pattern, - "--format", "typescript", - "--min-tokens", String(minTokens), - "--min-lines", "1", - "--max-lines", String(MAX_DUPLICATION_LINES), - "--max-size", MAX_DUPLICATION_SIZE, - "--ignore", DUPLICATION_IGNORES.join(","), - "--reporters", "json", - "--output", outputDir, - "--silent", - "--no-colors", - "--absolute", - "--no-gitignore", - ], { encoding: "utf8" }); - if (result.status !== 0) { - throw new Error(`duplication: jscpd exited with status ${String(result.status)}: ${String(result.stderr)}`); + const run = (tokens) => { + const result = spawnSync(process.execPath, [ + join(installation.packageDir, "run-jscpd.js"), + repoRoot, + "--pattern", pattern, + "--format", "typescript,tsx", + "--min-tokens", String(tokens), + "--min-lines", "1", + "--max-lines", String(MAX_DUPLICATION_LINES), + "--max-size", MAX_DUPLICATION_SIZE, + "--ignore", DUPLICATION_IGNORES.join(","), + "--reporters", "json", + "--output", outputDir, + "--silent", + "--no-colors", + "--absolute", + "--no-gitignore", + ], { encoding: "utf8" }); + if (result.status !== 0) { + throw new Error(`duplication: jscpd exited with status ${String(result.status)}: ${String(result.stderr)}`); + } + const rawReport = JSON.parse(readFileSync(join(outputDir, "jscpd-report.json"), "utf8")); + return parseJscpdReport(rawReport); + }; + const reported = run(minTokens); + const verifiedSources = minTokens === 1 ? reported.statistics.total.sources : run(1).statistics.total.sources; + if (verifiedSources !== matchedSources.length) { + throw new Error(`duplication: jscpd scanned ${verifiedSources} of ${matchedSources.length} in-scope TypeScript sources at the one-token floor`); } - const rawReport = JSON.parse(readFileSync(join(outputDir, "jscpd-report.json"), "utf8")); - const reported = parseJscpdReport(rawReport); return { percentage: percentageOf(reported.statistics.total.duplicatedLines, reported.statistics.total.lines), totalLines: reported.statistics.total.lines, diff --git a/dist/duplication.js.map b/dist/duplication.js.map index 1c6c81b..7d4ee33 100644 --- a/dist/duplication.js.map +++ b/dist/duplication.js.map @@ -1 +1 @@ -{"version":3,"file":"duplication.js","sourceRoot":"","sources":["../duplication.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,+DAA+D;AAC/D,MAAM,CAAC,MAAM,yBAAyB,GAAsB,CAAC,SAAS,CAAC,CAAC;AAwHxE,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AACtC,MAAM,qBAAqB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACtD,MAAM,oBAAoB,GAAG,GAAG,MAAM,CAAC,gBAAgB,GAAG,CAAC;AAC3D,MAAM,mBAAmB,GAAG;IAC1B,oBAAoB;IACpB,YAAY;IACZ,iBAAiB;IACjB,gBAAgB;IAChB,YAAY;IACZ,6BAA6B;IAC7B,WAAW;CACH,CAAC;AACX,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,yEAAyE;AACzE,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,wFAAwF;AACxF,SAAS,YAAY,CAAC,KAAc,EAAE,OAAe;IACnD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,OAAO,mBAAmB,CAAC,CAAC;IAC/F,OAAO,KAAK,CAAC;AACf,CAAC;AAED,wFAAwF;AACxF,SAAS,YAAY,CAAC,MAA+B,EAAE,GAAW,EAAE,OAAe;IACjF,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,6BAA6B,OAAO,kBAAkB,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,iFAAiF;AACjF,SAAS,YAAY,CAAC,MAA+B,EAAE,GAAW,EAAE,OAAe;IACjF,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,OAAO,kBAAkB,CAAC,CAAC;IACvG,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8DAA8D;AAC9D,SAAS,cAAc,CAAC,KAAc,EAAE,OAAe;IACrD,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC5C,OAAO;QACL,IAAI,EAAE,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,OAAO,CAAC;QACrD,KAAK,EAAE,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,QAAQ,CAAC;QACxD,GAAG,EAAE,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,MAAM,CAAC;KACnD,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAe;IAC9C,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IACxG,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACtC,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO;YACL,SAAS,EAAE,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,iBAAiB,CAAC;YAC9D,UAAU,EAAE,cAAc,CAAC,MAAM,CAAC,UAAU,EAAE,kBAAkB,CAAC;SAClE,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,YAAY,CAAC,UAAU,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IACjE,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,wBAAwB,CAAC,CAAC;IACrE,MAAM,eAAe,GAAG,YAAY,CAAC,KAAK,EAAE,iBAAiB,EAAE,kCAAkC,CAAC,CAAC;IACnG,kFAAkF;IAClF,+EAA+E;IAC/E,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;QACxB,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC;QAClC,eAAe,GAAG,CAAC;QACnB,eAAe,GAAG,KAAK,EACvB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;IAChG,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;AACnF,CAAC;AAED,sEAAsE;AACtE,SAAS,qBAAqB,CAAC,QAAiC;IAC9D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1D,MAAM,KAAK,GAAG,QAAQ,CAAC,eAAe,CAAC;IACvC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAClC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAClC,IACE,OAAO,SAAS,KAAK,QAAQ;QAC7B,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC3B,SAAS,GAAG,CAAC;QACb,SAAS,GAAG,GAAG;QACf,OAAO,SAAS,CAAC;IACnB,IACE,SAAS,KAAK,SAAS;QACvB,CAAC,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC;QAChF,OAAO,SAAS,CAAC;IACnB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,IAAI,EAAE,EAAE,CAAC;AACnD,CAAC;AAED,gFAAgF;AAChF,SAAS,cAAc,CAAC,QAAgB,EAAE,QAAgB;IACxD,OAAO,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9E,CAAC;AAED,sFAAsF;AACtF,SAAS,QAAQ,CAAC,QAAgB,EAAE,QAAgB,EAAE,SAAiB,EAAE,OAAe;IACtF,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AAC1E,CAAC;AAED,2EAA2E;AAC3E,SAAS,oBAAoB,CAC3B,QAAgB,EAChB,KAAmG;IAEnG,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;QAClH,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;KACpH,CAAC;AACJ,CAAC;AAED,2EAA2E;AAC3E,SAAS,gBAAgB,CAAC,QAAgB,EAAE,KAAoB;IAC9D,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC;QAC3F,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;KAChG,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,SAAS,YAAY,CAAC,KAAwB;IAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAClG,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACjE,CAAC;AAED,oFAAoF;AACpF,SAAS,kBAAkB,CAAC,QAAgB,EAAE,OAAe;IAC3D,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE;QAC5B,QAAQ,EAAE,IAAI;QACd,GAAG,EAAE,QAAQ;QACb,GAAG,EAAE,IAAI;QACT,mBAAmB,EAAE,IAAI;QACzB,MAAM,EAAE,CAAC,GAAG,mBAAmB,CAAC;QAChC,SAAS,EAAE,IAAI;KAChB,CAAC;SACC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SACvE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;SACjD,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,gFAAgF;AAChF,SAAS,kBAAkB,CAAC,QAAgB,EAAE,OAAe,EAAE,SAAiB;IAC9E,OAAO;QACL,IAAI,EAAE,CAAC,QAAQ,CAAC;QAChB,OAAO;QACP,SAAS;QACT,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,qBAAqB;QAC/B,OAAO,EAAE,oBAAoB;QAC7B,MAAM,EAAE,CAAC,YAAY,CAAC;QACtB,MAAM,EAAE,CAAC,GAAG,mBAAmB,CAAC;QAChC,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,KAAK;QAChB,SAAS,EAAE,EAAE;QACb,MAAM,EAAE,IAAI;KACb,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,SAAS,YAAY,CAAC,eAAuB,EAAE,UAAkB;IAC/D,OAAO,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,iBAAiB,CAAC,QAAgB;IACzC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACvF,MAAM,UAAU,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;QAC3C,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,uEAAuE;QACvE,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACvG,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;QACzC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;IAC7E,CAAC;AACH,CAAC;AAED,kEAAkE;AAClE,SAAS,OAAO,CAAC,UAAkB;IACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAA0B,CAAC;IAC7G,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,4EAA4E;AAC5E,SAAS,YAAY,CAAC,SAAiB;IACrC,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACnC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACpF,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,uBAAuB,CACpC,YAA+B,EAC/B,QAAgB,EAChB,OAAe,EACf,SAAiB,EACjB,cAAiC;IAEjC,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAoB,CAAC;IAC/D,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,wBAAwB,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IACpG,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CACjC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,IAAI,EAAE,CACnD;SACE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;SACjD,IAAI,EAAE,CAAC;IACV,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC;IAC1C,OAAO;QACL,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,eAAe,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;QAC9F,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK;QACxC,eAAe,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,eAAe;QACvD,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO;QACvC,cAAc,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;QAChC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;KAC5E,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,iBAAiB,CACxB,YAA+B,EAC/B,QAAgB,EAChB,OAAe,EACf,SAAiB,EACjB,cAAiC;IAEjC,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;IAC/D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE;YACzC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,cAAc,CAAC;YAC7C,QAAQ;YACR,WAAW,EAAE,OAAO;YACpB,UAAU,EAAE,YAAY;YACxB,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC;YACjC,aAAa,EAAE,GAAG;YAClB,aAAa,EAAE,MAAM,CAAC,qBAAqB,CAAC;YAC5C,YAAY,EAAE,oBAAoB;YAClC,UAAU,EAAE,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC;YACzC,aAAa,EAAE,MAAM;YACrB,UAAU,EAAE,SAAS;YACrB,UAAU;YACV,aAAa;YACb,YAAY;YACZ,gBAAgB;SACjB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QACzB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,yCAAyC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9G,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,EAAE,MAAM,CAAC,CAAY,CAAC;QACpG,MAAM,QAAQ,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC7C,OAAO;YACL,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,eAAe,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;YACpG,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK;YAC3C,eAAe,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,eAAe;YAC1D,OAAO,EAAE,cAAc,CAAC,MAAM;YAC9B,cAAc,EAAE,EAAE;YAClB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM;YACtC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;SAC9E,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,yBAAyB,CACvC,MAA6D;IAE7D,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC;QAAE,OAAO,sFAAsF,CAAC;IACxH,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,OAAO,mCAAmC,MAAM,CAAC,cAAc,CAAC,MAAM,sBAAsB;cACxF,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAO,GAAqE,EAAE;IAE9E,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,eAAe,CAAC;IACrD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,IAAI,yBAAyB,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;IAC1C,MAAM,cAAc,GAAG,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC7D,MAAM,YAAY,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,YAAY,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;QAC5B,OAAO,iBAAiB,CAAC,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,uBAAuB,CAAC,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;AAC7F,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAO,GAA2B,EAAE;IAEpC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,eAAe,CAAC;IACrD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACvC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;IAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAC1C,IAAI,QAAiB,CAAC;IACtB,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAY,CAAC;IAC5F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,KAAK,CAAC,kDAAkD,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,iBAAiB,IAAI,QAAQ,CAAC,EAAE,CAAC;QAC5D,KAAK,CAAC,sHAAsH,CAAC,CAAC;QAC9H,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IACD,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,KAAK,CAAC,iIAAiI,CAAC,CAAC;QACzI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IACD,IAAI,MAAyB,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,kBAAkB,CAAC;YAChC,QAAQ;YACR,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,KAAK,CAAC,4CAA4C,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IACD,GAAG,CACD,qBAAqB,MAAM,CAAC,UAAU,uBAAuB,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,UAAU,MAAM,MAAM,CAAC,OAAO,eAAe,MAAM,CAAC,UAAU,6BAA6B,MAAM,CAAC,SAAS,GAAG,CAC7M,CAAC;IACF,MAAM,eAAe,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAC1D,IAAI,eAAe,EAAE,CAAC;QACpB,KAAK,CAAC,eAAe,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,GAAG,CACD,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,QAAQ,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CACnJ,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QACzC,KAAK,CACH,qBAAqB,MAAM,CAAC,UAAU,4BAA4B,MAAM,CAAC,SAAS,wGAAwG,CAC3L,CAAC;QACF,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACH,CAAC"} \ No newline at end of file +{"version":3,"file":"duplication.js","sourceRoot":"","sources":["../duplication.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/docstrings.ts b/docstrings.ts index 301606e..7ada053 100644 --- a/docstrings.ts +++ b/docstrings.ts @@ -397,7 +397,7 @@ function cleanComment(raw: string): string { } /** - * Recursively collect every authored `.ts` file (excluding `.d.ts`) beneath the + * Recursively collect every authored `.ts` or `.tsx` file (excluding `.d.ts`) beneath the * given roots, skipping the structural non-source directories in * {@link SKIP_DIRS}. A root may itself be a single file. */ @@ -418,7 +418,7 @@ function collectSourceFiles(roots: readonly string[]): string[] { } if (info.isDirectory()) { if (!SKIP_DIRS.has(name)) walk(full); - } else if (info.isFile() && name.endsWith(".ts") && !name.endsWith(".d.ts")) { + } else if (info.isFile() && (name.endsWith(".ts") || name.endsWith(".tsx")) && !name.endsWith(".d.ts")) { out.push(full); } } @@ -433,7 +433,7 @@ function collectSourceFiles(roots: readonly string[]): string[] { } if (info.isDirectory()) { walk(root); - } else if (info.isFile() && root.endsWith(".ts") && !root.endsWith(".d.ts")) { + } else if (info.isFile() && (root.endsWith(".ts") || root.endsWith(".tsx")) && !root.endsWith(".d.ts")) { out.push(root); } } diff --git a/duplication.ts b/duplication.ts index 7fb479e..22e2ef9 100644 --- a/duplication.ts +++ b/duplication.ts @@ -18,7 +18,7 @@ import { dirname, join, relative, resolve, sep } from "node:path"; import { spawnSync } from "node:child_process"; /** Default TypeScript glob scanned by the duplication gate. */ -export const DEFAULT_DUPLICATION_GLOBS: readonly string[] = ["**/*.ts"]; +export const DEFAULT_DUPLICATION_GLOBS: readonly string[] = ["**/*.{ts,tsx}"]; /** A clone pair with repository-relative file names and inclusive line ranges. */ export interface DuplicationClone { @@ -87,7 +87,7 @@ interface ReportedClone { interface ReportedAnalysis { readonly duplicates: readonly ReportedClone[]; readonly statistics: { - readonly total: { readonly lines: number; readonly duplicatedLines: number }; + readonly total: { readonly lines: number; readonly duplicatedLines: number; readonly sources: number }; }; } @@ -104,7 +104,7 @@ interface ProgrammaticApi { clones: readonly { readonly duplicationA: ProgrammaticCloneEnd; readonly duplicationB: ProgrammaticCloneEnd }[]; statistic: { readonly total: { readonly lines: number; readonly duplicatedLines: number; readonly sources: number }; - readonly formats: { readonly typescript?: { readonly sources: Readonly> } }; + readonly formats: Readonly> } | undefined>>; }; }>; } @@ -213,17 +213,19 @@ export function parseJscpdReport(report: unknown): ReportedAnalysis { const total = expectRecord(statistics.total, "statistics.total"); const lines = expectNumber(total, "lines", "statistics.total.lines"); const duplicatedLines = expectNumber(total, "duplicatedLines", "statistics.total.duplicatedLines"); - // An impossible count (negative, fractional, or more duplicated than total lines) - // would compute a passing percentage, so it fails closed like a missing field. + const sources = expectNumber(total, "sources", "statistics.total.sources"); + // Impossible counts could compute a passing percentage or false completeness. if ( !Number.isInteger(lines) || !Number.isInteger(duplicatedLines) || duplicatedLines < 0 || - duplicatedLines > lines + duplicatedLines > lines || + !Number.isInteger(sources) || + sources < 0 ) { - throw new Error("duplication: jscpd report statistics.total contains impossible line counts"); + throw new Error("duplication: jscpd report statistics.total contains impossible counts"); } - return { duplicates: clones, statistics: { total: { lines, duplicatedLines } } }; + return { duplicates: clones, statistics: { total: { lines, duplicatedLines, sources } } }; } /** Parse and validate the package-level duplication gate contract. */ @@ -290,7 +292,7 @@ function globMatchedSources(repoRoot: string, pattern: string): string[] { ignore: [...DUPLICATION_IGNORES], onlyFiles: true, }) - .filter((source) => source.endsWith(".ts") && !source.endsWith(".d.ts")) + .filter((source) => (source.endsWith(".ts") || source.endsWith(".tsx")) && !source.endsWith(".d.ts")) .map((source) => relativeSource(repoRoot, source)) .sort(); } @@ -304,7 +306,7 @@ function duplicationOptions(repoRoot: string, pattern: string, minTokens: number minLines: 1, maxLines: MAX_DUPLICATION_LINES, maxSize: MAX_DUPLICATION_SIZE, - format: ["typescript"], + format: ["typescript", "tsx"], ignore: [...DUPLICATION_IGNORES], absolute: true, gitignore: false, @@ -369,9 +371,9 @@ async function analyzeWithProgrammatic( ): Promise { const api = require(installation.entryPath) as ProgrammaticApi; const result = await api.detectClonesAndStatistic(duplicationOptions(repoRoot, pattern, minTokens)); - const analyzedSources = Object.keys( - result.statistic.formats.typescript?.sources ?? {}, - ) + const analyzedSources = ["typescript", "tsx"].flatMap((format) => Object.keys( + result.statistic.formats[format]?.sources ?? {}, + )) .map((source) => relativeSource(repoRoot, source)) .sort(); const analyzed = new Set(analyzedSources); @@ -390,10 +392,8 @@ async function analyzeWithProgrammatic( * Analyze with jscpd 5's binary through its JSON reporter. * * jscpd 5 is a self-contained Rust binary driven by `run-jscpd.js`, and its - * JSON report carries no per-file analysis record. The only files it drops - * from `statistics.total.sources` are those below the token floor, which - * cannot hold a clone of `minTokens` tokens, so the in-scope file set is the - * analyzed set and nothing in scope can be silently skipped. + * JSON report carries only aggregate source counts. A second one-token scan + * proves that its format filter read every in-scope file, including short ones. */ function analyzeWithBinary( installation: JscpdInstallation, @@ -404,28 +404,35 @@ function analyzeWithBinary( ): DuplicationReport { const outputDir = mkdtempSync(join(tmpdir(), "pm-ops-jscpd-")); try { - const result = spawnSync(process.execPath, [ - join(installation.packageDir, "run-jscpd.js"), - repoRoot, - "--pattern", pattern, - "--format", "typescript", - "--min-tokens", String(minTokens), - "--min-lines", "1", - "--max-lines", String(MAX_DUPLICATION_LINES), - "--max-size", MAX_DUPLICATION_SIZE, - "--ignore", DUPLICATION_IGNORES.join(","), - "--reporters", "json", - "--output", outputDir, - "--silent", - "--no-colors", - "--absolute", - "--no-gitignore", - ], { encoding: "utf8" }); - if (result.status !== 0) { - throw new Error(`duplication: jscpd exited with status ${String(result.status)}: ${String(result.stderr)}`); + const run = (tokens: number): ReportedAnalysis => { + const result = spawnSync(process.execPath, [ + join(installation.packageDir, "run-jscpd.js"), + repoRoot, + "--pattern", pattern, + "--format", "typescript,tsx", + "--min-tokens", String(tokens), + "--min-lines", "1", + "--max-lines", String(MAX_DUPLICATION_LINES), + "--max-size", MAX_DUPLICATION_SIZE, + "--ignore", DUPLICATION_IGNORES.join(","), + "--reporters", "json", + "--output", outputDir, + "--silent", + "--no-colors", + "--absolute", + "--no-gitignore", + ], { encoding: "utf8" }); + if (result.status !== 0) { + throw new Error(`duplication: jscpd exited with status ${String(result.status)}: ${String(result.stderr)}`); + } + const rawReport = JSON.parse(readFileSync(join(outputDir, "jscpd-report.json"), "utf8")) as unknown; + return parseJscpdReport(rawReport); + }; + const reported = run(minTokens); + const verifiedSources = minTokens === 1 ? reported.statistics.total.sources : run(1).statistics.total.sources; + if (verifiedSources !== matchedSources.length) { + throw new Error(`duplication: jscpd scanned ${verifiedSources} of ${matchedSources.length} in-scope TypeScript sources at the one-token floor`); } - const rawReport = JSON.parse(readFileSync(join(outputDir, "jscpd-report.json"), "utf8")) as unknown; - const reported = parseJscpdReport(rawReport); return { percentage: percentageOf(reported.statistics.total.duplicatedLines, reported.statistics.total.lines), totalLines: reported.statistics.total.lines, diff --git a/package-lock.json b/package-lock.json index d0b88ea..91f3bfb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "@babel/eslint-parser": "^8.0.5", "@babel/plugin-syntax-typescript": "^8.0.3", "@types/node": "^26.2.0", - "@unbrained/pm-cli": "2026.9.27", + "@unbrained/pm-cli": "2026.9.28", "c8": "^12.0.0", "eslint": "^10.10.0", "fast-glob": "^3.3.3", @@ -1357,9 +1357,9 @@ } }, "node_modules/@unbrained/pm-cli": { - "version": "2026.9.27", - "resolved": "https://registry.npmjs.org/@unbrained/pm-cli/-/pm-cli-2026.9.27.tgz", - "integrity": "sha512-l7m3GIm50oMecjXYnzA+RuzHgFD/uAOZko3eRJXfT+pYV9pceh4xvJ9dbD+35p2mY/zvUNiZjggCOOrWVuswSA==", + "version": "2026.9.28", + "resolved": "https://registry.npmjs.org/@unbrained/pm-cli/-/pm-cli-2026.9.28.tgz", + "integrity": "sha512-bbyq/FIKMUxnGKJTieG3AVL96tS4l9JUuTgzgAiZTqI7lYyLXytmQFVD1a+2neVQT9+6sVNF8ko2u7DcqztxjQ==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 5f33052..56c4a4a 100644 --- a/package.json +++ b/package.json @@ -121,7 +121,7 @@ "@babel/eslint-parser": "^8.0.5", "@babel/plugin-syntax-typescript": "^8.0.3", "@types/node": "^26.2.0", - "@unbrained/pm-cli": "2026.9.27", + "@unbrained/pm-cli": "2026.9.28", "c8": "^12.0.0", "eslint": "^10.10.0", "fast-glob": "^3.3.3", diff --git a/test/compatibility-floor.test.ts b/test/compatibility-floor.test.ts index 5bd3ac2..7fd1bff 100644 --- a/test/compatibility-floor.test.ts +++ b/test/compatibility-floor.test.ts @@ -34,7 +34,7 @@ const releaseWorkflow = readFileSync(resolve(repoRoot, ".github", "workflows", " const CLI = "@unbrained/pm-cli"; const EXACT_VERSION = /^\d+\.\d+\.\d+$/; -const REQUIRED_DEVELOPMENT_VERSION = "2026.9.27"; +const REQUIRED_DEVELOPMENT_VERSION = "2026.9.28"; /** * Two independent systems enforce the pm CLI compatibility floor, and each reads diff --git a/test/docstrings.test.ts b/test/docstrings.test.ts index 37ed3cb..ffe7241 100644 --- a/test/docstrings.test.ts +++ b/test/docstrings.test.ts @@ -495,6 +495,24 @@ test("walks a tree, skipping test/, dist/, and .d.ts files", () => { } }); +test("directory and single-file scans include undocumented TSX exports", () => { + const root = mkdtempSync(join(tmpdir(), "docstrings-tsx-")); + try { + mkdirSync(join(root, "src")); + const component = join(root, "src", "Widget.tsx"); + writeFileSync(component, "export function Widget() { return
; }\n"); + const directory = analyzeDocstringCoverage({ root }); + const singleFile = analyzeDocstringCoverage({ root, sourceDirs: ["src/Widget.tsx"] }); + assert.equal(directory.files_scanned, 1); + assert.equal(singleFile.files_scanned, 1); + assert.equal(directory.violations.length, 1); + assert.equal(singleFile.violations.length, 1); + assert.equal(directory.violations[0]?.symbol, "Widget"); + } finally { + rmSync(root, { recursive: true, force: true }); + } +}); + test("sourceDirs scopes the walk to listed subdirectories", () => { const root = mkdtempSync(join(tmpdir(), "docstrings-dirs-")); try { diff --git a/test/lint-and-duplication-gates.test.ts b/test/lint-and-duplication-gates.test.ts index 0cab579..529ac50 100644 --- a/test/lint-and-duplication-gates.test.ts +++ b/test/lint-and-duplication-gates.test.ts @@ -301,6 +301,50 @@ test("duplication analyzer reports the same clone pairs through the real jscpd 4 assert.match(gate.errors, /exceeds the configured 0% threshold/); }); +test("both real jscpd engines include TSX clones in mixed TypeScript globs", async () => { + const source = [ + "export function Widget() {", + " const firstValue = 1;", + " const secondValue = 2;", + " const thirdValue = 3;", + " const fourthValue = 4;", + " const fifthValue = 5;", + " const sixthValue = 6;", + " const seventhValue = 7;", + " const eighthValue = 8;", + " return
{firstValue + secondValue + thirdValue + fourthValue + fifthValue + sixthValue + seventhValue + eighthValue}
;", + "}", + ].join("\n") + "\n"; + for (const [version, fixture] of [ + ["jscpd4", jscpd4Fixture("tsx-clones-v4", { threshold: 0, minTokens: 20 })], + ["jscpd5", packageFixture("tsx-clones-v5", { threshold: 0, minTokens: 20 })], + ] as const) { + writeFileSync(join(fixture, "src", "First.tsx"), source); + writeFileSync(join(fixture, "src", "Second.tsx"), source); + const report = await analyzeDuplication({ repoRoot: fixture, globs: ["src/**/*.{ts,tsx}"], minTokens: 20 }); + assert.equal(report.sources, 2, version); + assert.equal(report.cloneCount, 1, version); + assert.deepEqual(report.skippedSources, [], version); + assert.match(report.clones[0]?.first.file ?? "", /\.tsx$/, version); + const defaultReport = await analyzeDuplication({ repoRoot: fixture, minTokens: 1 }); + assert.equal(defaultReport.sources, 2, `${version} default scope`); + assert.ok(defaultReport.cloneCount >= 1, `${version} default scope`); + const gate = await gateFailureOutput(fixture, { globs: ["src/**/*.{ts,tsx}"] }); + assert.match(gate.errors, /exceeds the configured 0% threshold/, version); + } +}); + +test("jscpd 5 refuses a TSX file omitted even by the one-token source probe", async () => { + const fixture = packageFixture("tsx-source-count-mismatch", { threshold: 0 }); + writeFileSync(join(fixture, "src", "Empty.tsx"), ""); + await assert.rejects( + analyzeDuplication({ repoRoot: fixture, globs: ["src/**/*.{ts,tsx}"] }), + /jscpd scanned 0 of 1 in-scope TypeScript sources/, + ); + const gate = await gateFailureOutput(fixture, { globs: ["src/**/*.{ts,tsx}"] }); + assert.match(gate.errors, /jscpd scanned 0 of 1 in-scope TypeScript sources/); +}); + test("duplication gate fails closed when the real jscpd 5 binary package is missing", async () => { const broken = packageFixture("jscpd5-missing-platform", { threshold: 0 }); mkdirSync(join(broken, "node_modules"), { recursive: true }); @@ -320,11 +364,12 @@ test("jscpd 5 report parsing accepts a real report shape and fails closed for ma firstFile: { name: "/repo/src/first.ts", start: 1, end: 11 }, secondFile: { name: "/repo/test/second.ts", start: 1, end: 11 }, }; - const statistics = { total: { lines: 22, duplicatedLines: 11 } }; + const statistics = { total: { lines: 22, duplicatedLines: 11, sources: 2 } }; const parsed = parseJscpdReport({ duplicates: [clone], statistics }); assert.equal(parsed.duplicates.length, 1); assert.equal(parsed.duplicates[0]?.firstFile.name, "/repo/src/first.ts"); assert.equal(parsed.statistics.total.lines, 22); + assert.equal(parsed.statistics.total.sources, 2); const malformed: unknown[] = [ null, "report", @@ -342,6 +387,7 @@ test("jscpd 5 report parsing accepts a real report shape and fails closed for ma { duplicates: [clone], statistics: { total: { lines: 22, duplicatedLines: -1 } } }, { duplicates: [clone], statistics: { total: { lines: 22.5, duplicatedLines: 11 } } }, { duplicates: [clone], statistics: { total: { lines: 22, duplicatedLines: 1.5 } } }, + { duplicates: [clone], statistics: { total: { lines: 22, duplicatedLines: 11, sources: -1 } } }, ]; for (const report of malformed) assert.throws(() => parseJscpdReport(report), /jscpd report/); }); From cba3d2426e3b715273b17a2717799b88c563b143 Mon Sep 17 00:00:00 2001 From: SteveBot <1153461+unbraind@users.noreply.github.com> Date: Mon, 28 Sep 2026 17:18:45 +0200 Subject: [PATCH 2/7] Honor JSX tokens and symlink scope in quality gates Address Greptile and CodeRabbit findings on pm-ops PR #132. Use the TypeScript JSX scanner for TSX so closing tags cannot consume later exports, and align fast-glob and jscpd 4 with jscpd 5 no-symlink source counting. Add real regressions for both findings and link their review evidence in ops-zq8c. --- .agents/pm/history/ops-zq8c.jsonl | 2 ++ .agents/pm/issues/ops-zq8c.toon | 9 ++++++--- dist/docstrings.d.ts | 4 ++-- dist/docstrings.d.ts.map | 2 +- dist/docstrings.js | 12 +++++++----- dist/docstrings.js.map | 2 +- dist/duplication.d.ts.map | 2 +- dist/duplication.js | 3 ++- dist/duplication.js.map | 2 +- docstrings.ts | 14 ++++++++------ duplication.ts | 4 +++- test/docstrings.test.ts | 12 +++++++++--- test/lint-and-duplication-gates.test.ts | 14 ++++++++++++++ 13 files changed, 57 insertions(+), 25 deletions(-) diff --git a/.agents/pm/history/ops-zq8c.jsonl b/.agents/pm/history/ops-zq8c.jsonl index 27452c2..e863d52 100644 --- a/.agents/pm/history/ops-zq8c.jsonl +++ b/.agents/pm/history/ops-zq8c.jsonl @@ -1 +1,3 @@ {"hash_algorithm":"sha256","ts":"2026-09-28T15:05:31.893Z","author":"codex","author_source":"asserted","agent_harness":"codex","agent_model":"gpt-6-sol","agent_model_source":"probe","agent_instance":"381a892fadca8b4d12a512f7","agent_provenance":{"model":{"value":"gpt-6-sol","source":"probe"},"effort":{"value":"high","source":"probe"},"role":{"value":"implementer","source":"argv"},"topic":null},"op":"create","patch":[{"op":"add","path":"/metadata/id","value":"ops-zq8c"},{"op":"add","path":"/metadata/title","value":"Include TSX in docstring and duplication gates with verified source counts"},{"op":"add","path":"/metadata/description","value":"GitHub #128: pm-ops docstring and duplication gates silently omit TSX sources. Make both engines scan TSX, prove source-count completeness, and certify the exact package head."},{"op":"add","path":"/metadata/type","value":"Issue"},{"op":"add","path":"/metadata/status","value":"in_progress"},{"op":"add","path":"/metadata/priority","value":1},{"op":"add","path":"/metadata/tags","value":["area:quality","docstrings","duplication","tsx"]},{"op":"add","path":"/metadata/created_at","value":"2026-09-28T15:05:31.893Z"},{"op":"add","path":"/metadata/updated_at","value":"2026-09-28T15:05:31.893Z"},{"op":"add","path":"/metadata/author","value":"codex"},{"op":"add","path":"/metadata/estimated_minutes","value":180},{"op":"add","path":"/metadata/acceptance_criteria","value":"Directory and single-file docstring analysis find undocumented TSX exports; jscpd 4 and 5 detect TSX clones with the real engines; mismatched scan counts fail closed; release gate passes; companion records exact limitations."},{"op":"add","path":"/metadata/notes","value":[{"created_at":"2026-09-28T15:05:31.893Z","author":"codex","text":"TDD: TSX docstring and real jscpd 4 tests failed before the source fix. The candidate passes 449/451 tests with two existing opt-in skips, c8 100/100/100/100, 221/221 documented declarations, zero duplication across 43 sources, zero production audit findings, and real packed npm/Node and Bun TSX acceptance. The local PM CLI SDK pin is 2026.9.28."}]},{"op":"add","path":"/metadata/files","value":[{"path":"docstrings.ts","scope":"project","note":"TSX source walker"},{"path":"duplication.ts","scope":"project","note":"Both jscpd engines and source-count verification"},{"path":"test/docstrings.test.ts","scope":"project","note":"TSX docstring regression"},{"path":"test/lint-and-duplication-gates.test.ts","scope":"project","note":"Real jscpd 4 and 5 TSX acceptance"},{"path":"README.md","scope":"project","note":"Updated consumer guidance"}]},{"op":"add","path":"/metadata/tests","value":[{"command":"npm run release:check","path":"package.json","scope":"project","timeout_seconds":900,"provenance":{"author":"codex","created_at":"2026-09-28T15:05:31.893Z","source_kind":"local_mutation","source_ref":"fix/pm-ops-tsx-quality-gates-2026-09-28"}}]},{"op":"add","path":"/metadata/docs","value":[{"path":"https://github.com/unbraind/pm-ops/issues/128","scope":"global","note":"Source issue and reproduction"}]}],"before_hash":"3cc22dff72be7b14824654a7a64ea62b04799939b2fee54c1b5f52ca60bf6df0","after_hash":"002a8fc48215b8475e29caa889121edc0a796db26f0b8eed34828e78ebd4e653","item_hash_version":3,"message":"","context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"effort":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"version":{"status":"unavailable","reason":"harness_unavailable","resolver":"ai_agent_version","rule_version":"v1"}}},"event_class":"substantive","record_hash_version":1,"record_hash":"b4f0b71f8a06c7beab5d36dd2adec36ebffefe6ec9f2a06f904de7fe73d59df5"} +{"hash_algorithm":"sha256","ts":"2026-09-28T15:18:38.191Z","author":"codex","author_source":"asserted","agent_harness":"codex","agent_model":"gpt-6-sol","agent_model_source":"probe","agent_instance":"381a892fadca8b4d12a512f7","agent_provenance":{"model":{"value":"gpt-6-sol","source":"probe"},"effort":{"value":"high","source":"probe"},"role":null,"topic":null},"op":"docs_add","patch":[{"op":"add","path":"/metadata/docs/1","value":{"path":"https://github.com/unbraind/pm-ops/pull/132#discussion_r4123846054","scope":"global","note":"Greptile JSX closing-tag finding"}},{"op":"add","path":"/metadata/docs/2","value":{"path":"https://github.com/unbraind/pm-ops/pull/132#discussion_r4123865252","scope":"global","note":"CodeRabbit symlink scope finding"}},{"op":"replace","path":"/metadata/updated_at","value":"2026-09-28T15:18:38.191Z"}],"before_hash":"002a8fc48215b8475e29caa889121edc0a796db26f0b8eed34828e78ebd4e653","after_hash":"768176789e166a7338dd081ddf9a616056ae0350fc0232cfe29662f0d5be2710","item_hash_version":3,"message":"Link exact-head reviewer findings","context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"effort":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"version":{"status":"unavailable","reason":"harness_unavailable","resolver":"ai_agent_version","rule_version":"v1"}}},"event_class":"maintenance","record_hash_version":1,"record_hash":"796c940fbb3271fc48fffec10c1070c599eb1a249dbfe9467f32337ee6f3a89f"} +{"hash_algorithm":"sha256","ts":"2026-09-28T15:18:38.784Z","author":"codex","author_source":"asserted","agent_harness":"codex","agent_model":"gpt-6-sol","agent_model_source":"probe","agent_instance":"381a892fadca8b4d12a512f7","agent_provenance":{"model":{"value":"gpt-6-sol","source":"probe"},"effort":{"value":"high","source":"probe"},"role":null,"topic":null},"op":"note_add","patch":[{"op":"add","path":"/metadata/notes/1","value":{"created_at":"2026-09-28T15:18:38.784Z","author":"codex","text":"PR #132 first-head review found two valid regressions. Greptile P1 reproduced: a JSX closing tag let the tokenizer hide a later export; the TSX scanner now uses LanguageVariant.JSX and focused tests cover both direct analysis and directory walking. CodeRabbit major reproduced: fast-glob followed symlinked paths while jscpd 5 did not; fast-glob and jscpd 4 now share the no-symlink policy with jscpd 5, with real 4/5 symlink fixtures. Focused tests, build, typecheck, lint, and docstrings pass; full exact-head gate and packed acceptance remain pending."}},{"op":"replace","path":"/metadata/updated_at","value":"2026-09-28T15:18:38.784Z"}],"before_hash":"768176789e166a7338dd081ddf9a616056ae0350fc0232cfe29662f0d5be2710","after_hash":"8938eead80f924c6e1bbb0f10b824f248ce0b72e80d489d79b76b696d2002f22","item_hash_version":3,"message":"Record bot findings and review fixes","context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"effort":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"version":{"status":"unavailable","reason":"harness_unavailable","resolver":"ai_agent_version","rule_version":"v1"}}},"event_class":"substantive","record_hash_version":1,"record_hash":"eef9248f198521529b798dee119eb49b2af26da81cea487e96eb0e38510ef202"} diff --git a/.agents/pm/issues/ops-zq8c.toon b/.agents/pm/issues/ops-zq8c.toon index 918c2c3..0a83775 100644 --- a/.agents/pm/issues/ops-zq8c.toon +++ b/.agents/pm/issues/ops-zq8c.toon @@ -6,12 +6,13 @@ status: in_progress priority: 1 tags[4]: "area:quality",docstrings,duplication,tsx created_at: "2026-09-28T15:05:31.893Z" -updated_at: "2026-09-28T15:05:31.893Z" +updated_at: "2026-09-28T15:18:38.784Z" author: codex estimated_minutes: 180 acceptance_criteria: Directory and single-file docstring analysis find undocumented TSX exports; jscpd 4 and 5 detect TSX clones with the real engines; mismatched scan counts fail closed; release gate passes; companion records exact limitations. -notes[1]{created_at,author,text}: +notes[2]{created_at,author,text}: "2026-09-28T15:05:31.893Z",codex,"TDD: TSX docstring and real jscpd 4 tests failed before the source fix. The candidate passes 449/451 tests with two existing opt-in skips, c8 100/100/100/100, 221/221 documented declarations, zero duplication across 43 sources, zero production audit findings, and real packed npm/Node and Bun TSX acceptance. The local PM CLI SDK pin is 2026.9.28." + "2026-09-28T15:18:38.784Z",codex,"PR #132 first-head review found two valid regressions. Greptile P1 reproduced: a JSX closing tag let the tokenizer hide a later export; the TSX scanner now uses LanguageVariant.JSX and focused tests cover both direct analysis and directory walking. CodeRabbit major reproduced: fast-glob followed symlinked paths while jscpd 5 did not; fast-glob and jscpd 4 now share the no-symlink policy with jscpd 5, with real 4/5 symlink fixtures. Focused tests, build, typecheck, lint, and docstrings pass; full exact-head gate and packed acceptance remain pending." files[5]{path,scope,note}: docstrings.ts,project,TSX source walker duplication.ts,project,Both jscpd engines and source-count verification @@ -20,6 +21,8 @@ files[5]{path,scope,note}: README.md,project,Updated consumer guidance tests[1]{command,path,scope,timeout_seconds,provenance{author,created_at,source_kind,source_ref}}: "npm run release:check",package.json,project,900,codex,"2026-09-28T15:05:31.893Z",local_mutation,fix/pm-ops-tsx-quality-gates-2026-09-28 -docs[1]{path,scope,note}: +docs[3]{path,scope,note}: "https://github.com/unbraind/pm-ops/issues/128",global,Source issue and reproduction + "https://github.com/unbraind/pm-ops/pull/132#discussion_r4123846054",global,Greptile JSX closing-tag finding + "https://github.com/unbraind/pm-ops/pull/132#discussion_r4123865252",global,CodeRabbit symlink scope finding body: "" diff --git a/dist/docstrings.d.ts b/dist/docstrings.d.ts index 392b455..3cffb0d 100644 --- a/dist/docstrings.d.ts +++ b/dist/docstrings.d.ts @@ -114,7 +114,7 @@ export interface DocstringViolation { } /** Aggregate result of scanning one tree. */ export interface DocstringReport { - /** Number of `.ts` files analyzed. */ + /** Number of `.ts` and `.tsx` files analyzed. */ readonly files_scanned: number; /** Number of declarations evaluated against the rules. */ readonly declarations_checked: number; @@ -137,7 +137,7 @@ export interface SourceAnalysis { */ export declare function analyzeSource(text: string, file: string): SourceAnalysis; /** - * Walk a directory tree and analyze every authored `.ts` source beneath it, + * Walk a directory tree and analyze every authored `.ts` or `.tsx` source beneath it, * skipping `.d.ts` files and the structural non-source directories. Scanning * zero files fails by throwing rather than passing vacuously. */ diff --git a/dist/docstrings.d.ts.map b/dist/docstrings.d.ts.map index 60bfcbc..54c23b1 100644 --- a/dist/docstrings.d.ts.map +++ b/dist/docstrings.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"docstrings.d.ts","sourceRoot":"","sources":["../docstrings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqFG;AAOH;;;GAGG;AACH,eAAO,MAAM,aAAa,IAAI,CAAC;AAE/B;;;;GAIG;AACH,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,iEAAiE;AACjE,MAAM,WAAW,kBAAkB;IACjC,sDAAsD;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qDAAqD;IACrD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,6CAA6C;AAC7C,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,0DAA0D;IAC1D,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,wCAAwC;IACxC,QAAQ,CAAC,UAAU,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACpD;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,QAAQ,CAAC,UAAU,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACnD,gDAAgD;IAChD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAkkCD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAKxE;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAAG,eAAe,CAoBnH"} \ No newline at end of file +{"version":3,"file":"docstrings.d.ts","sourceRoot":"","sources":["../docstrings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqFG;AAOH;;;GAGG;AACH,eAAO,MAAM,aAAa,IAAI,CAAC;AAE/B;;;;GAIG;AACH,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,iEAAiE;AACjE,MAAM,WAAW,kBAAkB;IACjC,sDAAsD;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qDAAqD;IACrD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,6CAA6C;AAC7C,MAAM,WAAW,eAAe;IAC9B,iDAAiD;IACjD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,0DAA0D;IAC1D,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,wCAAwC;IACxC,QAAQ,CAAC,UAAU,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACpD;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,QAAQ,CAAC,UAAU,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACnD,gDAAgD;IAChD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAokCD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAKxE;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAAG,eAAe,CAoBnH"} \ No newline at end of file diff --git a/dist/docstrings.js b/dist/docstrings.js index d91d267..f0c6761 100644 --- a/dist/docstrings.js +++ b/dist/docstrings.js @@ -249,12 +249,14 @@ function isKeyword(kind) { * Convert a token stream into a clean array of braces. Runs the unstable * scanner with trivia skipped and applies the two corrections documented at the * top of this file: template-substitution `}` is rescanned into a template - * continuation, and `/` is rescanned as a regex only in regex context. The + * continuation, and `/` is rescanned as a regex only in regex context. TSX + * uses the scanner's JSX variant so `` is one closing-tag token rather + * than a slash that could consume later declarations as a regex. The * returned array never contains a brace that does not correspond to a real * `{` / `}` in the source. */ -function tokenize(text) { - const scanner = createScanner(true, LanguageVariant.Standard, text); +function tokenize(text, file) { + const scanner = createScanner(true, file.endsWith(".tsx") ? LanguageVariant.JSX : LanguageVariant.Standard, text); const tokens = []; const group = []; let prev; @@ -1209,13 +1211,13 @@ class SourceAnalyzer { * violations it contains plus how many declarations were evaluated. */ export function analyzeSource(text, file) { - const tokens = tokenize(text); + const tokens = tokenize(text, file); const analyzer = new SourceAnalyzer(text, file, tokens, buildLineMap(text)); analyzer.run(); return { violations: analyzer.violations, declarations: analyzer.declarationsChecked }; } /** - * Walk a directory tree and analyze every authored `.ts` source beneath it, + * Walk a directory tree and analyze every authored `.ts` or `.tsx` source beneath it, * skipping `.d.ts` files and the structural non-source directories. Scanning * zero files fails by throwing rather than passing vacuously. */ diff --git a/dist/docstrings.js.map b/dist/docstrings.js.map index df13165..9eedc3f 100644 --- a/dist/docstrings.js.map +++ b/dist/docstrings.js.map @@ -1 +1 @@ -{"version":3,"file":"docstrings.js","sourceRoot":"","sources":["../docstrings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqFG;AAEH,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAEpD;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;AAE/B;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AAEjC;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAmCrC;;;;GAIG;AACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAS;IAC7B,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM;IAC3E,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAC/E,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU;IAChF,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;IAC/E,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI;IAC7E,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO;IAC3C,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK;IAC1D,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS;IAC9E,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW;IACvE,cAAc,EAAE,IAAI,EAAE,IAAI;CAC3B,CAAC,CAAC;AAEH;;;;;;;;;;;;;;GAcG;AACH,MAAM,SAAS,GAAG,IAAI,GAAG,CAAS;IAChC,cAAc;IACd,MAAM;IACN,WAAW;IACX,UAAU;IACV,MAAM;IACN,MAAM;IACN,SAAS;CACV,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAa;IAC5C,UAAU,CAAC,UAAU;IACrB,UAAU,CAAC,cAAc;IACzB,UAAU,CAAC,aAAa;IACxB,UAAU,CAAC,6BAA6B;IACxC,UAAU,CAAC,YAAY;IACvB,UAAU,CAAC,wBAAwB;IACnC,UAAU,CAAC,aAAa;IACxB,UAAU,CAAC,WAAW;IACtB,UAAU,CAAC,YAAY;IACvB,UAAU,CAAC,WAAW;IACtB,UAAU,CAAC,WAAW;IACtB,UAAU,CAAC,YAAY;IACvB,UAAU,CAAC,eAAe;IAC1B,UAAU,CAAC,iBAAiB;IAC5B,UAAU,CAAC,eAAe;CAC3B,CAAC,CAAC;AAEH,gFAAgF;AAChF,MAAM,aAAa,GAAG,IAAI,GAAG,CAAa;IACxC,UAAU,CAAC,UAAU;IACrB,UAAU,CAAC,iBAAiB;IAC5B,UAAU,CAAC,aAAa;IACxB,UAAU,CAAC,cAAc;IACzB,UAAU,CAAC,OAAO;IAClB,UAAU,CAAC,gBAAgB;IAC3B,UAAU,CAAC,aAAa;IACxB,UAAU,CAAC,aAAa;IACxB,UAAU,CAAC,cAAc;IACzB,UAAU,CAAC,gBAAgB;IAC3B,UAAU,CAAC,aAAa;IACxB,UAAU,CAAC,eAAe;IAC1B,UAAU,CAAC,eAAe;IAC1B,UAAU,CAAC,eAAe;IAC1B,UAAU,CAAC,cAAc;IACzB,UAAU,CAAC,YAAY;IACvB,UAAU,CAAC,UAAU;IACrB,UAAU,CAAC,UAAU;IACrB,UAAU,CAAC,kBAAkB;CAC9B,CAAC,CAAC;AAEH,4EAA4E;AAC5E,MAAM,cAAc,GAAG,IAAI,GAAG,CAAa;IACzC,GAAG,iBAAiB;IACpB,UAAU,CAAC,aAAa;IACxB,UAAU,CAAC,eAAe;IAC1B,UAAU,CAAC,gBAAgB;CAC5B,CAAC,CAAC;AAEH,sFAAsF;AACtF,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAa;IAC7C,UAAU,CAAC,aAAa;IACxB,UAAU,CAAC,aAAa;IACxB,UAAU,CAAC,eAAe;IAC1B,UAAU,CAAC,YAAY;IACvB,UAAU,CAAC,gBAAgB;IAC3B,UAAU,CAAC,WAAW;IACtB,UAAU,CAAC,WAAW;IACtB,UAAU,CAAC,gBAAgB;IAC3B,UAAU,CAAC,aAAa;IACxB,UAAU,CAAC,YAAY;IACvB,UAAU,CAAC,UAAU;IACrB,UAAU,CAAC,UAAU;IACrB,UAAU,CAAC,cAAc;CAC1B,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAa;IACzC,UAAU,CAAC,UAAU;IACrB,UAAU,CAAC,QAAQ;IACnB,UAAU,CAAC,cAAc;IACzB,UAAU,CAAC,sBAAsB;IACjC,UAAU,CAAC,UAAU;IACrB,UAAU,CAAC,aAAa;IACxB,UAAU,CAAC,QAAQ;IACnB,UAAU,CAAC,cAAc;IACzB,UAAU,CAAC,SAAS;IACpB,UAAU,CAAC,YAAY;IACvB,UAAU,CAAC,aAAa;IACxB,UAAU,CAAC,YAAY;IACvB,UAAU,CAAC,eAAe;IAC1B,UAAU,CAAC,UAAU;IACrB,UAAU,CAAC,SAAS;IACpB,UAAU,CAAC,gBAAgB;IAC3B,UAAU,CAAC,SAAS;CACrB,CAAC,CAAC;AAcH,qHAAqH;AACrH,MAAM,SAAS,GAAU,EAAE,IAAI,EAAE,UAAU,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,gBAAgB,EAAE,SAAS,EAAE,MAAM,CAAC,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AAEtI,oFAAoF;AACpF,SAAS,SAAS,CAAC,IAAgB;IACjC,OAAO,IAAI,IAAI,UAAU,CAAC,YAAY,IAAI,IAAI,IAAI,UAAU,CAAC,WAAW,CAAC;AAC3E,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,QAAQ,CAAC,IAAY;IAC5B,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACpE,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAiD,EAAE,CAAC;IAC/D,IAAI,IAA4B,CAAC;IACjC,SAAS,CAAC;QACR,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,IAAI,KAAK,UAAU,CAAC,SAAS;YAAE,MAAM;QACzC,IAAI,IAAI,KAAK,UAAU,CAAC,UAAU,IAAI,IAAI,KAAK,UAAU,CAAC,gBAAgB,EAAE,CAAC;YAC3E,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvD,IAAI,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;YACpC,CAAC;QACH,CAAC;QACD,IAAI,IAAI,KAAK,UAAU,CAAC,YAAY,IAAI,IAAI,KAAK,UAAU,CAAC,cAAc,EAAE,CAAC;YAC3E,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;aAAM,IAAI,IAAI,KAAK,UAAU,CAAC,cAAc,EAAE,CAAC;YAC9C,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;aAAM,IAAI,IAAI,KAAK,UAAU,CAAC,cAAc,EAAE,CAAC;YAC9C,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;aAAM,IAAI,IAAI,KAAK,UAAU,CAAC,gBAAgB,EAAE,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxB,CAAC;aAAM,IAAI,IAAI,KAAK,UAAU,CAAC,eAAe,EAAE,CAAC;YAC/C,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACpC,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;gBAClB,IAAI,GAAG,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBAC1C,KAAK,CAAC,GAAG,EAAE,CAAC;gBACZ,IAAI,IAAI,KAAK,UAAU,CAAC,cAAc;oBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5D,CAAC;iBAAM,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;gBAC3B,KAAK,CAAC,GAAG,EAAE,CAAC;YACd,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,KAAK,UAAU,CAAC,eAAe,EAAE,CAAC;YAC/C,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,OAAO;gBAAE,KAAK,CAAC,GAAG,EAAE,CAAC;QACvD,CAAC;aAAM,IAAI,IAAI,KAAK,UAAU,CAAC,iBAAiB,EAAE,CAAC;YACjD,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,SAAS;gBAAE,KAAK,CAAC,GAAG,EAAE,CAAC;QACzD,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAC5H,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/C,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QAChB,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE;YAAE,IAAI,EAAE,CAAC;IACxC,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAC1B,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,IAAI;SACR,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;SACtC,OAAO,CAAC,uBAAuB,EAAE,OAAO,CAAC;SACzC,KAAK,CAAC,eAAe,CAAC;SACtB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;SACjC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,GAAW;IAC/B,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACrF,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IAC1C,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;IACrD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC1C,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,KAAwB;IAClD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,IAAI,GAAG,CAAC,GAAW,EAAQ,EAAE;QACjC,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO;QACnC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvB,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC7B,IAAI,IAAI,CAAC;YACT,IAAI,CAAC;gBACH,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC/E,CAAC;YACD,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACvB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACvC,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC;QACT,IAAI,CAAC;YACH,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBAAE,SAAS;YACjE,MAAM,IAAI,KAAK,CAAC,wCAAwC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACvG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,cAAc;IACT,UAAU,GAAyB,EAAE,CAAC;IAC/C,mBAAmB,GAAG,CAAC,CAAC;IAChB,CAAC,GAAG,CAAC,CAAC;IACG,IAAI,CAAS;IACb,IAAI,CAAS;IACb,MAAM,CAAmB;IACzB,MAAM,CAAc;IAErC,YAAY,IAAY,EAAE,IAAY,EAAE,MAAwB,EAAE,MAAmB;QACnF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,+CAA+C;IAC/C,GAAG;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAEO,GAAG;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;IAC1C,CAAC;IAEO,QAAQ,CAAC,CAAS;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC;IACvC,CAAC;IAEO,EAAE,CAAC,IAAgB;QACzB,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;IAClC,CAAC;IAED,4FAA4F;IACpF,aAAa,CAAC,OAAe;QACnC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC;YAC/B,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,IAAI,CAAC,KAAK,UAAU,CAAC,gBAAgB,EAAE,CAAC;gBAC5G,KAAK,EAAE,CAAC;YACV,CAAC;iBAAM,IAAI,CAAC,KAAK,UAAU,CAAC,eAAe,IAAI,CAAC,KAAK,UAAU,CAAC,eAAe,IAAI,CAAC,KAAK,UAAU,CAAC,iBAAiB,EAAE,CAAC;gBACtH,KAAK,EAAE,CAAC;gBACR,IAAI,KAAK,KAAK,CAAC;oBAAE,OAAO,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,yEAAyE;IACjE,SAAS;QACf,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,4FAA4F;IACpF,YAAY,CAAC,OAAe;QAClC,IAAI,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC;YAAE,IAAI,CAAC,CAAC,EAAE,CAAC;IACnF,CAAC;IAED,8DAA8D;IACtD,eAAe;QACrB,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YAC1B,IAAI,CAAC,KAAK,UAAU,CAAC,eAAe;gBAAE,OAAO;YAC7C,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED,0EAA0E;IAClE,cAAc;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QACpB,QAAQ,CAAC,EAAE,CAAC;YACV,KAAK,UAAU,CAAC,aAAa;gBAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,OAAO;YACT,KAAK,UAAU,CAAC,aAAa;gBAC3B,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC1B,OAAO;YACT,KAAK,UAAU,CAAC,eAAe;gBAC7B,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9C,OAAO;YACT,KAAK,UAAU,CAAC,YAAY;gBAC1B,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3C,OAAO;YACT,KAAK,UAAU,CAAC,YAAY;gBAC1B,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,eAAe,EAAE,CAAC;oBACpD,IAAI,CAAC,CAAC,EAAE,CAAC;oBACT,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBACjC,CAAC;gBACD,OAAO;YACT,KAAK,UAAU,CAAC,eAAe;gBAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,YAAY,EAAE,CAAC;oBACjD,IAAI,CAAC,CAAC,EAAE,CAAC;oBACT,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC7C,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBACjC,CAAC;gBACD,OAAO;YACT,KAAK,UAAU,CAAC,cAAc;gBAC5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC1B,OAAO;YACT,KAAK,UAAU,CAAC,gBAAgB;gBAC9B,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAChC,OAAO;YACT,KAAK,UAAU,CAAC,WAAW;gBACzB,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAChC,OAAO;YACT,KAAK,UAAU,CAAC,YAAY,CAAC;YAC7B,KAAK,UAAU,CAAC,UAAU,CAAC;YAC3B,KAAK,UAAU,CAAC,UAAU;gBACxB,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAC/B,OAAO;YACT,KAAK,UAAU,CAAC,WAAW,CAAC;YAC5B,KAAK,UAAU,CAAC,gBAAgB;gBAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,+BAA+B,CAAC,CAAC;gBACvD,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC1B,OAAO;YACT,KAAK,UAAU,CAAC,cAAc;gBAC5B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC1B,OAAO;YACT,KAAK,UAAU,CAAC,cAAc;gBAC5B,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,OAAO;YACT,KAAK,UAAU,CAAC,OAAO;gBACrB,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,OAAO;YACT,KAAK,UAAU,CAAC,SAAS;gBACvB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,OAAO;YACT,KAAK,UAAU,CAAC,UAAU;gBACxB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,OAAO;YACT,KAAK,UAAU,CAAC,YAAY;gBAC1B,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC7B,OAAO;YACT,KAAK,UAAU,CAAC,SAAS;gBACvB,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,OAAO;YACT,KAAK,UAAU,CAAC,aAAa;gBAC3B,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;oBAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClE,OAAO;YACT,KAAK,UAAU,CAAC,UAAU;gBACxB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,OAAO;YACT,KAAK,UAAU,CAAC,WAAW;gBACzB,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,OAAO;YACT,KAAK,UAAU,CAAC,cAAc;gBAC5B,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;oBAAE,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC7C,OAAO;YACT,KAAK,UAAU,CAAC,aAAa,CAAC;YAC9B,KAAK,UAAU,CAAC,YAAY,CAAC;YAC7B,KAAK,UAAU,CAAC,YAAY,CAAC;YAC7B,KAAK,UAAU,CAAC,eAAe;gBAC7B,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAC/B,OAAO;YACT;gBACE,IAAI,CAAC,KAAK,UAAU,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,UAAU,EAAE,CAAC;oBAC9E,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,IAAI,CAAC,cAAc,EAAE,CAAC;oBACtB,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAC/B,OAAO;QACX,CAAC;IACH,CAAC;IAED,mFAAmF;IAC3E,WAAW;QACjB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS;QACnB,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU;YACpB,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,eAAe,EAAE,CAAC;gBACxF,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC/E,OAAO;YACT,CAAC;YACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC/E,OAAO;YACT,CAAC;YACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,YAAY,EAAE,CAAC;gBACxF,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC5E,OAAO;YACT,CAAC;YACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBACrC,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC5E,OAAO;YACT,CAAC;YACD,yDAAyD;YACzD,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,cAAc,EAAE,CAAC;YACtF,IAAI,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;YAC1D,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,eAAe,EAAE,CAAC;YACxF,IAAI,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;YAC1D,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;YAC1D,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,YAAY,EAAE,CAAC;YACxF,IAAI,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;YAC1D,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACzG,IAAI,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,+BAA+B,CAAC,CAAC;QAC7D,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,kFAAkF;IAC1E,qBAAqB;QAC3B,IAAI,IAAwB,CAAC;QAC7B,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YACvB,IAAI,CAAC,CAAC,EAAE,CAAC;QACX,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;YAAE,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACK,gBAAgB;QAEtB,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;YAAE,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7D,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;YAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QACzD,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACjC,CAAC;IAED,yEAAyE;IACjE,aAAa,CAAC,IAAiE;QACrF,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW;QACrB,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;YAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY;QAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAE,CAAC;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtF,IAAI,IAAI,CAAC,QAAQ,IAAI,SAAS,GAAG,mBAAmB,EAAE,CAAC;gBACrD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;YAClF,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QACD,gFAAgF;IAClF,CAAC;IAED,sEAAsE;IAC9D,UAAU,CAAC,IAAiE;QAClF,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,SAAS,CAAC,CAAC;QAC5D,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACpD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC;gBAAE,IAAI,CAAC,CAAC,EAAE,CAAC;QACpD,CAAC;IACH,CAAC;IAED,6DAA6D;IACrD,YAAY,CAAC,SAAiB,EAAE,aAAsB;QAC5D,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YAC1B,IAAI,CAAC,KAAK,UAAU,CAAC,eAAe;gBAAE,OAAO;YAC7C,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,mFAAmF;IAC3E,WAAW,CAAC,SAAiB,EAAE,aAAsB;QAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,IAAI,CAAC,aAAa,EAAE,CAAC;QACzD,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,SAAS,CAAC;YACR,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YAC1B,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,IAAI,CAAC,KAAK,UAAU,CAAC,gBAAgB,EAAE,CAAC;gBACzE,SAAS,GAAG,IAAI,CAAC;gBACjB,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,SAAS;YACX,CAAC;YACD,IACE,CAAC,KAAK,UAAU,CAAC,aAAa;gBAC9B,CAAC,KAAK,UAAU,CAAC,aAAa;gBAC9B,CAAC,KAAK,UAAU,CAAC,eAAe;gBAChC,CAAC,KAAK,UAAU,CAAC,eAAe;gBAChC,CAAC,KAAK,UAAU,CAAC,eAAe;gBAChC,CAAC,KAAK,UAAU,CAAC,cAAc;gBAC/B,CAAC,KAAK,UAAU,CAAC,YAAY,EAC7B,CAAC;gBACD,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,SAAS;YACX,CAAC;YACD,IAAI,CAAC,CAAC,KAAK,UAAU,CAAC,UAAU,IAAI,CAAC,KAAK,UAAU,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,UAAU,EAAE,CAAC;gBAC/G,QAAQ,GAAG,CAAC,KAAK,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;gBACvD,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,SAAS;YACX,CAAC;YACD,MAAM;QACR,CAAC;QACD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,KAAK,UAAU,CAAC,SAAS,IAAI,CAAC,KAAK,UAAU,CAAC,iBAAiB,EAAE,CAAC;YACrE,IAAI,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;gBAAE,IAAI,CAAC,YAAY,EAAE,CAAC;;gBAC5F,IAAI,CAAC,cAAc,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,EAAE,CAAC;YACpC,IAAI,CAAC,CAAC,EAAE,CAAC;YACT,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,UAAU,CAAC,gBAAgB,EAAE,CAAC;YACtC,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,EAAE,CAAC;YACpC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,UAAU,CAAC,aAAa;YAAE,IAAI,CAAC,CAAC,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;QACjC,IAAI,QAAQ,KAAK,UAAU,CAAC,kBAAkB,EAAE,CAAC;YAC/C,IAAI,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QACD,IAAI,QAAQ,KAAK,UAAU,CAAC,UAAU,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YAC7B,IAAI,CAAC,CAAC,EAAE,CAAC;YACT,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YAC7B,IAAI,IAAI,KAAK,UAAU,CAAC,cAAc,IAAI,IAAI,KAAK,UAAU,CAAC,aAAa,EAAE,CAAC;gBAC5E,IAAI,IAAI,KAAK,UAAU,CAAC,aAAa;oBAAE,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC7D,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;oBAAE,IAAI,CAAC,SAAS,EAAE,CAAC;gBACzD,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACrC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACzB,IAAI,aAAa,IAAI,CAAC,SAAS;wBAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,SAAS,IAAI,UAAU,EAAE,CAAC,CAAC;oBAChF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,aAAa,IAAI,CAAC,SAAS;oBAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC;gBAC1E,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,CAAC,CAAC,EAAE,CAAC;IACX,CAAC;IAED,6DAA6D;IACrD,cAAc;QACpB,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,IAAI,CAAC,aAAa,EAAE,CAAC;IAC3D,CAAC;IAED,6FAA6F;IACrF,aAAa;QACnB,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI;QACd,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,EAAE,CAAC;YAC9C,IAAI,CAAC,CAAC,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,CAAC,EAAE,CAAC;YACxF,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;YAAE,IAAI,CAAC,SAAS,EAAE,CAAC;IAC3D,CAAC;IAED,8DAA8D;IACtD,cAAc;QACpB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YAC1B,IAAI,CAAC,KAAK,UAAU,CAAC,aAAa,EAAE,CAAC;gBACnC,KAAK,EAAE,CAAC;gBACR,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,SAAS;YACX,CAAC;YACD,IAAI,CAAC,KAAK,UAAU,CAAC,gBAAgB,EAAE,CAAC;gBACtC,KAAK,EAAE,CAAC;gBACR,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,IAAI,KAAK,IAAI,CAAC;oBAAE,OAAO;gBACvB,SAAS;YACX,CAAC;YACD,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,IAAI,CAAC,KAAK,UAAU,CAAC,gBAAgB,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc;gBAAE,OAAO;YACvJ,IAAI,CAAC,CAAC,EAAE,CAAC;QACX,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,gBAAgB;QACtB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YAC1B,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;YAC3G,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBACnD,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;YAC/B,CAAC;YACD,IAAI,CAAC,KAAK,UAAU,CAAC,eAAe,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YAC7E,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,IAAI,CAAC,KAAK,UAAU,CAAC,gBAAgB,IAAI,CAAC,KAAK,UAAU,CAAC,aAAa,EAAE,CAAC;gBAC9I,KAAK,EAAE,CAAC;gBACR,SAAS,GAAG,KAAK,CAAC;YACpB,CAAC;iBAAM,IAAI,CAAC,KAAK,UAAU,CAAC,eAAe,IAAI,CAAC,KAAK,UAAU,CAAC,eAAe,IAAI,CAAC,KAAK,UAAU,CAAC,iBAAiB,IAAI,CAAC,KAAK,UAAU,CAAC,gBAAgB,EAAE,CAAC;gBAC3J,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBAC/B,SAAS,GAAG,KAAK,CAAC;YACpB,CAAC;iBAAM,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjC,SAAS,GAAG,IAAI,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,SAAS,GAAG,KAAK,CAAC;YACpB,CAAC;YACD,IAAI,CAAC,CAAC,EAAE,CAAC;QACX,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1B,CAAC;IAED,kGAAkG;IAC1F,aAAa;QACnB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YAC1B,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBACnD,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,OAAO,CAAC,CAAC,CAAC;YACZ,CAAC;YACD,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,IAAI,CAAC,KAAK,UAAU,CAAC,gBAAgB,IAAI,CAAC,KAAK,UAAU,CAAC,aAAa,EAAE,CAAC;gBAC9I,KAAK,EAAE,CAAC;YACV,CAAC;iBAAM,IAAI,CAAC,KAAK,UAAU,CAAC,eAAe,IAAI,CAAC,KAAK,UAAU,CAAC,eAAe,IAAI,CAAC,KAAK,UAAU,CAAC,iBAAiB,IAAI,CAAC,KAAK,UAAU,CAAC,gBAAgB,EAAE,CAAC;gBAC3J,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACjC,CAAC;YACD,IAAI,CAAC,CAAC,EAAE,CAAC;QACX,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAED,4EAA4E;IACpE,wBAAwB;QAC9B,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY;QACtB,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,IAAI,CAAC,CAAC,EAAE,CAAC;QAC7C,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;YAAE,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACrC,IAAI,OAAO,IAAI,CAAC;YAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3D,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;YAAE,IAAI,CAAC,CAAC,EAAE,CAAC;IACnD,CAAC;IAED,+DAA+D;IACvD,wBAAwB;QAC9B,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO;QACjB,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,IAAI,CAAC,CAAC,EAAE,CAAC;QAC7C,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;YAAE,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7D,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,yEAAyE;IACjE,aAAa,CAAC,IAAwC;QAC5D,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,IAAI,CAAC,CAAC,EAAE,CAAC;QAC7C,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;YAAE,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7D,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,8EAA8E;IACtE,gBAAgB,CAAC,IAAqB;QAC5C,SAAS,CAAC;YACR,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAI,CAAC,CAAC,EAAE,CAAC;YACX,CAAC;iBAAM,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACtF,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;gBACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAE,CAAC;gBACnC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAE,CAAC;gBACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;gBACzG,IAAI,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,+BAA+B,CAAC,CAAC;gBAC7D,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAC/B,OAAO;YACT,CAAC;YAED,IAAI,cAAc,GAAG,KAAK,CAAC;YAC3B,IAAI,iBAAiB,GAAG,KAAK,CAAC;YAC9B,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACnC,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,cAAc,CAAC;oBAAE,OAAO;gBACxD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC;oBAAE,OAAO;gBAChD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;gBAC1B,IAAI,CAAC,KAAK,UAAU,CAAC,UAAU,EAAE,CAAC;oBAChC,IAAI,CAAC,CAAC,EAAE,CAAC;oBACT,iBAAiB,GAAG,IAAI,CAAC;oBACzB,MAAM;gBACR,CAAC;gBACD,IAAI,CAAC,KAAK,UAAU,CAAC,WAAW,EAAE,CAAC;oBACjC,cAAc,GAAG,IAAI,CAAC;oBACtB,IAAI,CAAC,CAAC,EAAE,CAAC;oBACT,SAAS;gBACX,CAAC;gBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzC,IACE,QAAQ;oBACR,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAC3D,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACjC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EACzB,CAAC;oBACD,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,UAAU,CAAC,aAAa,EAAE,CAAC;oBACtD,IAAI,CAAC,cAAc,EAAE,CAAC;oBACtB,SAAS;gBACX,CAAC;gBACD,IAAI,IAAI,CAAC,eAAe,EAAE;oBAAE,SAAS;gBACrC,IAAI,CAAC,CAAC,EAAE,CAAC;YACX,CAAC;YACD,IAAI,CAAC,iBAAiB;gBAAE,OAAO;QACjC,CAAC;IACH,CAAC;IAED,4EAA4E;IACpE,YAAY;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;YAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,2EAA2E;IACnE,cAAc;QACpB,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,cAAc,CAAC;gBAAE,OAAO;YACxD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC;gBAAE,OAAO;YAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzC,IACE,QAAQ;gBACR,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC3D,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACpC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAClC,CAAC;gBACD,OAAO;YACT,CAAC;YACD,IAAI,IAAI,CAAC,eAAe,EAAE;gBAAE,SAAS;YACrC,IAAI,CAAC,CAAC,EAAE,CAAC;QACX,CAAC;IACH,CAAC;IAED,yFAAyF;IACjF,WAAW,CAAC,IAAgB;QAClC,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,CAAC,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,sFAAsF;IAC9E,eAAe;QACrB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,IAAI,CAAC,KAAK,UAAU,CAAC,gBAAgB,EAAE,CAAC;YAC5G,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gFAAgF;IACxE,kBAAkB;QACxB,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IACjD,CAAC;IAED,wEAAwE;IAChE,cAAc;QACpB,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC;IAED,gFAAgF;IACxE,cAAc,CAAC,UAAsB;QAC3C,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;gBAAE,OAAO;YACzC,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC;gBAAE,OAAO;YAChD,IAAI,IAAI,CAAC,eAAe,EAAE;gBAAE,SAAS;YACrC,IAAI,CAAC,CAAC,EAAE,CAAC;QACX,CAAC;IACH,CAAC;IAED,yDAAyD;IACjD,eAAe;QACrB,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;YAAE,IAAI,CAAC,SAAS,EAAE,CAAC;IAC3D,CAAC;IAED,wCAAwC;IAChC,OAAO;QACb,IAAI,CAAC,CAAC,EAAE,CAAC;QACT,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,gDAAgD;IACxC,QAAQ;QACd,IAAI,CAAC,CAAC,EAAE,CAAC;QACT,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC;YAAE,IAAI,CAAC,CAAC,EAAE,CAAC;QAC/C,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAED,oCAAoC;IAC5B,YAAY;QAClB,IAAI,CAAC,CAAC,EAAE,CAAC;QACT,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;gBAAE,IAAI,CAAC,CAAC,EAAE,CAAC;QACnD,CAAC;IACH,CAAC;IAED,mDAAmD;IAC3C,QAAQ;QACd,IAAI,CAAC,CAAC,EAAE,CAAC;QACT,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;YAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;gBAAE,IAAI,CAAC,SAAS,EAAE,CAAC;YACzD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;gBAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;gBAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,iFAAiF;IACzE,qBAAqB;QAC3B,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;YAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;YAC7D,IAAI,CAAC,cAAc,EAAE,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACK,uBAAuB;QAC7B,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,cAAc,CAAC;gBAAE,OAAO;YACxD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC;gBAAE,OAAO;YAChD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;gBACvC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC;gBAC3C,IAAI,IAAI,KAAK,UAAU,CAAC,eAAe,IAAI,IAAI,KAAK,UAAU,CAAC,sBAAsB,EAAE,CAAC;oBACtF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC5B,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,CAAC;gBACD,SAAS;YACX,CAAC;YACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC/E,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,SAAS;YACX,CAAC;YACD,IAAI,CAAC,CAAC,EAAE,CAAC;QACX,CAAC;IACH,CAAC;IAED,mFAAmF;IAC3E,UAAU,CAAC,KAAY,EAAE,MAAc;QAC7C,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACxG,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,IAAW,EAAE,MAAc;QACvC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;YAChF,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,KAAK,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;YACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,4BAA4B,aAAa,0BAA0B,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;YACpJ,OAAO;QACT,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,IAAI,KAAK,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;YACnC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,4CAA4C,eAAe,0BAA0B,EAAE,CAAC,CAAC;QACzJ,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,YAAY,CAAC,IAAW;QAC9B,MAAM,MAAM,GAAG,uBAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAC9C,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC;QACd,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YACnD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAE,CAAC;YAC7B,IACE,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,sBAAsB;gBAChD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI;gBACxC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI;gBAC5C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,EAC5C,CAAC;gBACD,IAAI,GAAG,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,IAAI,IAAI,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAE,CAAC;QAC5B,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,IAAY;IACtD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5E,QAAQ,CAAC,GAAG,EAAE,CAAC;IACf,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,CAAC,mBAAmB,EAAE,CAAC;AACzF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAyD;IAChG,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;QAC/D,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,8DAA8D,OAAO,CAAC,IAAI,8CAA8C,CACzH,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAC1G,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,MAAM,UAAU,GAAyB,EAAE,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;QAC/D,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC;QACpC,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,MAAM,EAAE,oBAAoB,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AACzF,CAAC"} \ No newline at end of file +{"version":3,"file":"docstrings.js","sourceRoot":"","sources":["../docstrings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqFG;AAEH,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAEpD;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;AAE/B;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AAEjC;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAmCrC;;;;GAIG;AACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAS;IAC7B,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM;IAC3E,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAC/E,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU;IAChF,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;IAC/E,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI;IAC7E,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO;IAC3C,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK;IAC1D,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS;IAC9E,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW;IACvE,cAAc,EAAE,IAAI,EAAE,IAAI;CAC3B,CAAC,CAAC;AAEH;;;;;;;;;;;;;;GAcG;AACH,MAAM,SAAS,GAAG,IAAI,GAAG,CAAS;IAChC,cAAc;IACd,MAAM;IACN,WAAW;IACX,UAAU;IACV,MAAM;IACN,MAAM;IACN,SAAS;CACV,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAa;IAC5C,UAAU,CAAC,UAAU;IACrB,UAAU,CAAC,cAAc;IACzB,UAAU,CAAC,aAAa;IACxB,UAAU,CAAC,6BAA6B;IACxC,UAAU,CAAC,YAAY;IACvB,UAAU,CAAC,wBAAwB;IACnC,UAAU,CAAC,aAAa;IACxB,UAAU,CAAC,WAAW;IACtB,UAAU,CAAC,YAAY;IACvB,UAAU,CAAC,WAAW;IACtB,UAAU,CAAC,WAAW;IACtB,UAAU,CAAC,YAAY;IACvB,UAAU,CAAC,eAAe;IAC1B,UAAU,CAAC,iBAAiB;IAC5B,UAAU,CAAC,eAAe;CAC3B,CAAC,CAAC;AAEH,gFAAgF;AAChF,MAAM,aAAa,GAAG,IAAI,GAAG,CAAa;IACxC,UAAU,CAAC,UAAU;IACrB,UAAU,CAAC,iBAAiB;IAC5B,UAAU,CAAC,aAAa;IACxB,UAAU,CAAC,cAAc;IACzB,UAAU,CAAC,OAAO;IAClB,UAAU,CAAC,gBAAgB;IAC3B,UAAU,CAAC,aAAa;IACxB,UAAU,CAAC,aAAa;IACxB,UAAU,CAAC,cAAc;IACzB,UAAU,CAAC,gBAAgB;IAC3B,UAAU,CAAC,aAAa;IACxB,UAAU,CAAC,eAAe;IAC1B,UAAU,CAAC,eAAe;IAC1B,UAAU,CAAC,eAAe;IAC1B,UAAU,CAAC,cAAc;IACzB,UAAU,CAAC,YAAY;IACvB,UAAU,CAAC,UAAU;IACrB,UAAU,CAAC,UAAU;IACrB,UAAU,CAAC,kBAAkB;CAC9B,CAAC,CAAC;AAEH,4EAA4E;AAC5E,MAAM,cAAc,GAAG,IAAI,GAAG,CAAa;IACzC,GAAG,iBAAiB;IACpB,UAAU,CAAC,aAAa;IACxB,UAAU,CAAC,eAAe;IAC1B,UAAU,CAAC,gBAAgB;CAC5B,CAAC,CAAC;AAEH,sFAAsF;AACtF,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAa;IAC7C,UAAU,CAAC,aAAa;IACxB,UAAU,CAAC,aAAa;IACxB,UAAU,CAAC,eAAe;IAC1B,UAAU,CAAC,YAAY;IACvB,UAAU,CAAC,gBAAgB;IAC3B,UAAU,CAAC,WAAW;IACtB,UAAU,CAAC,WAAW;IACtB,UAAU,CAAC,gBAAgB;IAC3B,UAAU,CAAC,aAAa;IACxB,UAAU,CAAC,YAAY;IACvB,UAAU,CAAC,UAAU;IACrB,UAAU,CAAC,UAAU;IACrB,UAAU,CAAC,cAAc;CAC1B,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAa;IACzC,UAAU,CAAC,UAAU;IACrB,UAAU,CAAC,QAAQ;IACnB,UAAU,CAAC,cAAc;IACzB,UAAU,CAAC,sBAAsB;IACjC,UAAU,CAAC,UAAU;IACrB,UAAU,CAAC,aAAa;IACxB,UAAU,CAAC,QAAQ;IACnB,UAAU,CAAC,cAAc;IACzB,UAAU,CAAC,SAAS;IACpB,UAAU,CAAC,YAAY;IACvB,UAAU,CAAC,aAAa;IACxB,UAAU,CAAC,YAAY;IACvB,UAAU,CAAC,eAAe;IAC1B,UAAU,CAAC,UAAU;IACrB,UAAU,CAAC,SAAS;IACpB,UAAU,CAAC,gBAAgB;IAC3B,UAAU,CAAC,SAAS;CACrB,CAAC,CAAC;AAcH,qHAAqH;AACrH,MAAM,SAAS,GAAU,EAAE,IAAI,EAAE,UAAU,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,gBAAgB,EAAE,SAAS,EAAE,MAAM,CAAC,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AAEtI,oFAAoF;AACpF,SAAS,SAAS,CAAC,IAAgB;IACjC,OAAO,IAAI,IAAI,UAAU,CAAC,YAAY,IAAI,IAAI,IAAI,UAAU,CAAC,WAAW,CAAC;AAC3E,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,QAAQ,CAAC,IAAY,EAAE,IAAY;IAC1C,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAClH,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAiD,EAAE,CAAC;IAC/D,IAAI,IAA4B,CAAC;IACjC,SAAS,CAAC;QACR,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,IAAI,KAAK,UAAU,CAAC,SAAS;YAAE,MAAM;QACzC,IAAI,IAAI,KAAK,UAAU,CAAC,UAAU,IAAI,IAAI,KAAK,UAAU,CAAC,gBAAgB,EAAE,CAAC;YAC3E,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvD,IAAI,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;YACpC,CAAC;QACH,CAAC;QACD,IAAI,IAAI,KAAK,UAAU,CAAC,YAAY,IAAI,IAAI,KAAK,UAAU,CAAC,cAAc,EAAE,CAAC;YAC3E,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;aAAM,IAAI,IAAI,KAAK,UAAU,CAAC,cAAc,EAAE,CAAC;YAC9C,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;aAAM,IAAI,IAAI,KAAK,UAAU,CAAC,cAAc,EAAE,CAAC;YAC9C,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;aAAM,IAAI,IAAI,KAAK,UAAU,CAAC,gBAAgB,EAAE,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxB,CAAC;aAAM,IAAI,IAAI,KAAK,UAAU,CAAC,eAAe,EAAE,CAAC;YAC/C,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACpC,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;gBAClB,IAAI,GAAG,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBAC1C,KAAK,CAAC,GAAG,EAAE,CAAC;gBACZ,IAAI,IAAI,KAAK,UAAU,CAAC,cAAc;oBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5D,CAAC;iBAAM,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;gBAC3B,KAAK,CAAC,GAAG,EAAE,CAAC;YACd,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,KAAK,UAAU,CAAC,eAAe,EAAE,CAAC;YAC/C,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,OAAO;gBAAE,KAAK,CAAC,GAAG,EAAE,CAAC;QACvD,CAAC;aAAM,IAAI,IAAI,KAAK,UAAU,CAAC,iBAAiB,EAAE,CAAC;YACjD,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,SAAS;gBAAE,KAAK,CAAC,GAAG,EAAE,CAAC;QACzD,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAC5H,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/C,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QAChB,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE;YAAE,IAAI,EAAE,CAAC;IACxC,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAC1B,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,IAAI;SACR,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;SACtC,OAAO,CAAC,uBAAuB,EAAE,OAAO,CAAC;SACzC,KAAK,CAAC,eAAe,CAAC;SACtB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;SACjC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,GAAW;IAC/B,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACrF,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IAC1C,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;IACrD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC1C,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,KAAwB;IAClD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,IAAI,GAAG,CAAC,GAAW,EAAQ,EAAE;QACjC,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO;QACnC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvB,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC7B,IAAI,IAAI,CAAC;YACT,IAAI,CAAC;gBACH,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC/E,CAAC;YACD,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACvB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACvC,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC;QACT,IAAI,CAAC;YACH,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBAAE,SAAS;YACjE,MAAM,IAAI,KAAK,CAAC,wCAAwC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACvG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,cAAc;IACT,UAAU,GAAyB,EAAE,CAAC;IAC/C,mBAAmB,GAAG,CAAC,CAAC;IAChB,CAAC,GAAG,CAAC,CAAC;IACG,IAAI,CAAS;IACb,IAAI,CAAS;IACb,MAAM,CAAmB;IACzB,MAAM,CAAc;IAErC,YAAY,IAAY,EAAE,IAAY,EAAE,MAAwB,EAAE,MAAmB;QACnF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,+CAA+C;IAC/C,GAAG;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAEO,GAAG;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;IAC1C,CAAC;IAEO,QAAQ,CAAC,CAAS;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC;IACvC,CAAC;IAEO,EAAE,CAAC,IAAgB;QACzB,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;IAClC,CAAC;IAED,4FAA4F;IACpF,aAAa,CAAC,OAAe;QACnC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC;YAC/B,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,IAAI,CAAC,KAAK,UAAU,CAAC,gBAAgB,EAAE,CAAC;gBAC5G,KAAK,EAAE,CAAC;YACV,CAAC;iBAAM,IAAI,CAAC,KAAK,UAAU,CAAC,eAAe,IAAI,CAAC,KAAK,UAAU,CAAC,eAAe,IAAI,CAAC,KAAK,UAAU,CAAC,iBAAiB,EAAE,CAAC;gBACtH,KAAK,EAAE,CAAC;gBACR,IAAI,KAAK,KAAK,CAAC;oBAAE,OAAO,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,yEAAyE;IACjE,SAAS;QACf,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,4FAA4F;IACpF,YAAY,CAAC,OAAe;QAClC,IAAI,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC;YAAE,IAAI,CAAC,CAAC,EAAE,CAAC;IACnF,CAAC;IAED,8DAA8D;IACtD,eAAe;QACrB,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YAC1B,IAAI,CAAC,KAAK,UAAU,CAAC,eAAe;gBAAE,OAAO;YAC7C,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED,0EAA0E;IAClE,cAAc;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QACpB,QAAQ,CAAC,EAAE,CAAC;YACV,KAAK,UAAU,CAAC,aAAa;gBAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,OAAO;YACT,KAAK,UAAU,CAAC,aAAa;gBAC3B,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC1B,OAAO;YACT,KAAK,UAAU,CAAC,eAAe;gBAC7B,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9C,OAAO;YACT,KAAK,UAAU,CAAC,YAAY;gBAC1B,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3C,OAAO;YACT,KAAK,UAAU,CAAC,YAAY;gBAC1B,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,eAAe,EAAE,CAAC;oBACpD,IAAI,CAAC,CAAC,EAAE,CAAC;oBACT,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBACjC,CAAC;gBACD,OAAO;YACT,KAAK,UAAU,CAAC,eAAe;gBAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,YAAY,EAAE,CAAC;oBACjD,IAAI,CAAC,CAAC,EAAE,CAAC;oBACT,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC7C,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBACjC,CAAC;gBACD,OAAO;YACT,KAAK,UAAU,CAAC,cAAc;gBAC5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC1B,OAAO;YACT,KAAK,UAAU,CAAC,gBAAgB;gBAC9B,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAChC,OAAO;YACT,KAAK,UAAU,CAAC,WAAW;gBACzB,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAChC,OAAO;YACT,KAAK,UAAU,CAAC,YAAY,CAAC;YAC7B,KAAK,UAAU,CAAC,UAAU,CAAC;YAC3B,KAAK,UAAU,CAAC,UAAU;gBACxB,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAC/B,OAAO;YACT,KAAK,UAAU,CAAC,WAAW,CAAC;YAC5B,KAAK,UAAU,CAAC,gBAAgB;gBAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,+BAA+B,CAAC,CAAC;gBACvD,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC1B,OAAO;YACT,KAAK,UAAU,CAAC,cAAc;gBAC5B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC1B,OAAO;YACT,KAAK,UAAU,CAAC,cAAc;gBAC5B,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,OAAO;YACT,KAAK,UAAU,CAAC,OAAO;gBACrB,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,OAAO;YACT,KAAK,UAAU,CAAC,SAAS;gBACvB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,OAAO;YACT,KAAK,UAAU,CAAC,UAAU;gBACxB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,OAAO;YACT,KAAK,UAAU,CAAC,YAAY;gBAC1B,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC7B,OAAO;YACT,KAAK,UAAU,CAAC,SAAS;gBACvB,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,OAAO;YACT,KAAK,UAAU,CAAC,aAAa;gBAC3B,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;oBAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClE,OAAO;YACT,KAAK,UAAU,CAAC,UAAU;gBACxB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,OAAO;YACT,KAAK,UAAU,CAAC,WAAW;gBACzB,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,OAAO;YACT,KAAK,UAAU,CAAC,cAAc;gBAC5B,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;oBAAE,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC7C,OAAO;YACT,KAAK,UAAU,CAAC,aAAa,CAAC;YAC9B,KAAK,UAAU,CAAC,YAAY,CAAC;YAC7B,KAAK,UAAU,CAAC,YAAY,CAAC;YAC7B,KAAK,UAAU,CAAC,eAAe;gBAC7B,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAC/B,OAAO;YACT;gBACE,IAAI,CAAC,KAAK,UAAU,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,UAAU,EAAE,CAAC;oBAC9E,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,IAAI,CAAC,cAAc,EAAE,CAAC;oBACtB,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAC/B,OAAO;QACX,CAAC;IACH,CAAC;IAED,mFAAmF;IAC3E,WAAW;QACjB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS;QACnB,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU;YACpB,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,eAAe,EAAE,CAAC;gBACxF,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC/E,OAAO;YACT,CAAC;YACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC/E,OAAO;YACT,CAAC;YACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,YAAY,EAAE,CAAC;gBACxF,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC5E,OAAO;YACT,CAAC;YACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBACrC,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC5E,OAAO;YACT,CAAC;YACD,yDAAyD;YACzD,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,cAAc,EAAE,CAAC;YACtF,IAAI,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;YAC1D,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,eAAe,EAAE,CAAC;YACxF,IAAI,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;YAC1D,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;YAC1D,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,YAAY,EAAE,CAAC;YACxF,IAAI,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;YAC1D,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACzG,IAAI,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,+BAA+B,CAAC,CAAC;QAC7D,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,kFAAkF;IAC1E,qBAAqB;QAC3B,IAAI,IAAwB,CAAC;QAC7B,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YACvB,IAAI,CAAC,CAAC,EAAE,CAAC;QACX,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;YAAE,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACK,gBAAgB;QAEtB,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;YAAE,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7D,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;YAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QACzD,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACjC,CAAC;IAED,yEAAyE;IACjE,aAAa,CAAC,IAAiE;QACrF,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW;QACrB,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;YAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY;QAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAE,CAAC;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtF,IAAI,IAAI,CAAC,QAAQ,IAAI,SAAS,GAAG,mBAAmB,EAAE,CAAC;gBACrD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;YAClF,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QACD,gFAAgF;IAClF,CAAC;IAED,sEAAsE;IAC9D,UAAU,CAAC,IAAiE;QAClF,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,SAAS,CAAC,CAAC;QAC5D,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACpD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC;gBAAE,IAAI,CAAC,CAAC,EAAE,CAAC;QACpD,CAAC;IACH,CAAC;IAED,6DAA6D;IACrD,YAAY,CAAC,SAAiB,EAAE,aAAsB;QAC5D,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YAC1B,IAAI,CAAC,KAAK,UAAU,CAAC,eAAe;gBAAE,OAAO;YAC7C,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,mFAAmF;IAC3E,WAAW,CAAC,SAAiB,EAAE,aAAsB;QAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,IAAI,CAAC,aAAa,EAAE,CAAC;QACzD,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,SAAS,CAAC;YACR,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YAC1B,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,IAAI,CAAC,KAAK,UAAU,CAAC,gBAAgB,EAAE,CAAC;gBACzE,SAAS,GAAG,IAAI,CAAC;gBACjB,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,SAAS;YACX,CAAC;YACD,IACE,CAAC,KAAK,UAAU,CAAC,aAAa;gBAC9B,CAAC,KAAK,UAAU,CAAC,aAAa;gBAC9B,CAAC,KAAK,UAAU,CAAC,eAAe;gBAChC,CAAC,KAAK,UAAU,CAAC,eAAe;gBAChC,CAAC,KAAK,UAAU,CAAC,eAAe;gBAChC,CAAC,KAAK,UAAU,CAAC,cAAc;gBAC/B,CAAC,KAAK,UAAU,CAAC,YAAY,EAC7B,CAAC;gBACD,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,SAAS;YACX,CAAC;YACD,IAAI,CAAC,CAAC,KAAK,UAAU,CAAC,UAAU,IAAI,CAAC,KAAK,UAAU,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,UAAU,EAAE,CAAC;gBAC/G,QAAQ,GAAG,CAAC,KAAK,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;gBACvD,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,SAAS;YACX,CAAC;YACD,MAAM;QACR,CAAC;QACD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,KAAK,UAAU,CAAC,SAAS,IAAI,CAAC,KAAK,UAAU,CAAC,iBAAiB,EAAE,CAAC;YACrE,IAAI,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;gBAAE,IAAI,CAAC,YAAY,EAAE,CAAC;;gBAC5F,IAAI,CAAC,cAAc,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,EAAE,CAAC;YACpC,IAAI,CAAC,CAAC,EAAE,CAAC;YACT,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,UAAU,CAAC,gBAAgB,EAAE,CAAC;YACtC,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,EAAE,CAAC;YACpC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,UAAU,CAAC,aAAa;YAAE,IAAI,CAAC,CAAC,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;QACjC,IAAI,QAAQ,KAAK,UAAU,CAAC,kBAAkB,EAAE,CAAC;YAC/C,IAAI,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QACD,IAAI,QAAQ,KAAK,UAAU,CAAC,UAAU,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YAC7B,IAAI,CAAC,CAAC,EAAE,CAAC;YACT,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YAC7B,IAAI,IAAI,KAAK,UAAU,CAAC,cAAc,IAAI,IAAI,KAAK,UAAU,CAAC,aAAa,EAAE,CAAC;gBAC5E,IAAI,IAAI,KAAK,UAAU,CAAC,aAAa;oBAAE,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC7D,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;oBAAE,IAAI,CAAC,SAAS,EAAE,CAAC;gBACzD,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACrC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACzB,IAAI,aAAa,IAAI,CAAC,SAAS;wBAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,SAAS,IAAI,UAAU,EAAE,CAAC,CAAC;oBAChF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,aAAa,IAAI,CAAC,SAAS;oBAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC;gBAC1E,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,CAAC,CAAC,EAAE,CAAC;IACX,CAAC;IAED,6DAA6D;IACrD,cAAc;QACpB,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,IAAI,CAAC,aAAa,EAAE,CAAC;IAC3D,CAAC;IAED,6FAA6F;IACrF,aAAa;QACnB,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI;QACd,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,EAAE,CAAC;YAC9C,IAAI,CAAC,CAAC,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,CAAC,EAAE,CAAC;YACxF,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;YAAE,IAAI,CAAC,SAAS,EAAE,CAAC;IAC3D,CAAC;IAED,8DAA8D;IACtD,cAAc;QACpB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YAC1B,IAAI,CAAC,KAAK,UAAU,CAAC,aAAa,EAAE,CAAC;gBACnC,KAAK,EAAE,CAAC;gBACR,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,SAAS;YACX,CAAC;YACD,IAAI,CAAC,KAAK,UAAU,CAAC,gBAAgB,EAAE,CAAC;gBACtC,KAAK,EAAE,CAAC;gBACR,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,IAAI,KAAK,IAAI,CAAC;oBAAE,OAAO;gBACvB,SAAS;YACX,CAAC;YACD,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,IAAI,CAAC,KAAK,UAAU,CAAC,gBAAgB,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc;gBAAE,OAAO;YACvJ,IAAI,CAAC,CAAC,EAAE,CAAC;QACX,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,gBAAgB;QACtB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YAC1B,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;YAC3G,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBACnD,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;YAC/B,CAAC;YACD,IAAI,CAAC,KAAK,UAAU,CAAC,eAAe,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YAC7E,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,IAAI,CAAC,KAAK,UAAU,CAAC,gBAAgB,IAAI,CAAC,KAAK,UAAU,CAAC,aAAa,EAAE,CAAC;gBAC9I,KAAK,EAAE,CAAC;gBACR,SAAS,GAAG,KAAK,CAAC;YACpB,CAAC;iBAAM,IAAI,CAAC,KAAK,UAAU,CAAC,eAAe,IAAI,CAAC,KAAK,UAAU,CAAC,eAAe,IAAI,CAAC,KAAK,UAAU,CAAC,iBAAiB,IAAI,CAAC,KAAK,UAAU,CAAC,gBAAgB,EAAE,CAAC;gBAC3J,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBAC/B,SAAS,GAAG,KAAK,CAAC;YACpB,CAAC;iBAAM,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjC,SAAS,GAAG,IAAI,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,SAAS,GAAG,KAAK,CAAC;YACpB,CAAC;YACD,IAAI,CAAC,CAAC,EAAE,CAAC;QACX,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1B,CAAC;IAED,kGAAkG;IAC1F,aAAa;QACnB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YAC1B,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBACnD,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,OAAO,CAAC,CAAC,CAAC;YACZ,CAAC;YACD,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,IAAI,CAAC,KAAK,UAAU,CAAC,gBAAgB,IAAI,CAAC,KAAK,UAAU,CAAC,aAAa,EAAE,CAAC;gBAC9I,KAAK,EAAE,CAAC;YACV,CAAC;iBAAM,IAAI,CAAC,KAAK,UAAU,CAAC,eAAe,IAAI,CAAC,KAAK,UAAU,CAAC,eAAe,IAAI,CAAC,KAAK,UAAU,CAAC,iBAAiB,IAAI,CAAC,KAAK,UAAU,CAAC,gBAAgB,EAAE,CAAC;gBAC3J,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACjC,CAAC;YACD,IAAI,CAAC,CAAC,EAAE,CAAC;QACX,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAED,4EAA4E;IACpE,wBAAwB;QAC9B,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY;QACtB,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,IAAI,CAAC,CAAC,EAAE,CAAC;QAC7C,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;YAAE,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACrC,IAAI,OAAO,IAAI,CAAC;YAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3D,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;YAAE,IAAI,CAAC,CAAC,EAAE,CAAC;IACnD,CAAC;IAED,+DAA+D;IACvD,wBAAwB;QAC9B,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO;QACjB,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,IAAI,CAAC,CAAC,EAAE,CAAC;QAC7C,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;YAAE,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7D,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,yEAAyE;IACjE,aAAa,CAAC,IAAwC;QAC5D,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,IAAI,CAAC,CAAC,EAAE,CAAC;QAC7C,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;YAAE,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7D,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,8EAA8E;IACtE,gBAAgB,CAAC,IAAqB;QAC5C,SAAS,CAAC;YACR,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAI,CAAC,CAAC,EAAE,CAAC;YACX,CAAC;iBAAM,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACtF,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;gBACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAE,CAAC;gBACnC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAE,CAAC;gBACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;gBACzG,IAAI,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,+BAA+B,CAAC,CAAC;gBAC7D,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAC/B,OAAO;YACT,CAAC;YAED,IAAI,cAAc,GAAG,KAAK,CAAC;YAC3B,IAAI,iBAAiB,GAAG,KAAK,CAAC;YAC9B,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACnC,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,cAAc,CAAC;oBAAE,OAAO;gBACxD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC;oBAAE,OAAO;gBAChD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;gBAC1B,IAAI,CAAC,KAAK,UAAU,CAAC,UAAU,EAAE,CAAC;oBAChC,IAAI,CAAC,CAAC,EAAE,CAAC;oBACT,iBAAiB,GAAG,IAAI,CAAC;oBACzB,MAAM;gBACR,CAAC;gBACD,IAAI,CAAC,KAAK,UAAU,CAAC,WAAW,EAAE,CAAC;oBACjC,cAAc,GAAG,IAAI,CAAC;oBACtB,IAAI,CAAC,CAAC,EAAE,CAAC;oBACT,SAAS;gBACX,CAAC;gBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzC,IACE,QAAQ;oBACR,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAC3D,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACjC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EACzB,CAAC;oBACD,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,UAAU,CAAC,aAAa,EAAE,CAAC;oBACtD,IAAI,CAAC,cAAc,EAAE,CAAC;oBACtB,SAAS;gBACX,CAAC;gBACD,IAAI,IAAI,CAAC,eAAe,EAAE;oBAAE,SAAS;gBACrC,IAAI,CAAC,CAAC,EAAE,CAAC;YACX,CAAC;YACD,IAAI,CAAC,iBAAiB;gBAAE,OAAO;QACjC,CAAC;IACH,CAAC;IAED,4EAA4E;IACpE,YAAY;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;YAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,2EAA2E;IACnE,cAAc;QACpB,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,cAAc,CAAC;gBAAE,OAAO;YACxD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC;gBAAE,OAAO;YAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzC,IACE,QAAQ;gBACR,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC3D,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACpC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAClC,CAAC;gBACD,OAAO;YACT,CAAC;YACD,IAAI,IAAI,CAAC,eAAe,EAAE;gBAAE,SAAS;YACrC,IAAI,CAAC,CAAC,EAAE,CAAC;QACX,CAAC;IACH,CAAC;IAED,yFAAyF;IACjF,WAAW,CAAC,IAAgB;QAClC,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,CAAC,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,sFAAsF;IAC9E,eAAe;QACrB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,IAAI,CAAC,KAAK,UAAU,CAAC,cAAc,IAAI,CAAC,KAAK,UAAU,CAAC,gBAAgB,EAAE,CAAC;YAC5G,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gFAAgF;IACxE,kBAAkB;QACxB,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IACjD,CAAC;IAED,wEAAwE;IAChE,cAAc;QACpB,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC;IAED,gFAAgF;IACxE,cAAc,CAAC,UAAsB;QAC3C,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;gBAAE,OAAO;YACzC,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC;gBAAE,OAAO;YAChD,IAAI,IAAI,CAAC,eAAe,EAAE;gBAAE,SAAS;YACrC,IAAI,CAAC,CAAC,EAAE,CAAC;QACX,CAAC;IACH,CAAC;IAED,yDAAyD;IACjD,eAAe;QACrB,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;YAAE,IAAI,CAAC,SAAS,EAAE,CAAC;IAC3D,CAAC;IAED,wCAAwC;IAChC,OAAO;QACb,IAAI,CAAC,CAAC,EAAE,CAAC;QACT,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,gDAAgD;IACxC,QAAQ;QACd,IAAI,CAAC,CAAC,EAAE,CAAC;QACT,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC;YAAE,IAAI,CAAC,CAAC,EAAE,CAAC;QAC/C,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAED,oCAAoC;IAC5B,YAAY;QAClB,IAAI,CAAC,CAAC,EAAE,CAAC;QACT,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;gBAAE,IAAI,CAAC,CAAC,EAAE,CAAC;QACnD,CAAC;IACH,CAAC;IAED,mDAAmD;IAC3C,QAAQ;QACd,IAAI,CAAC,CAAC,EAAE,CAAC;QACT,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;YAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;gBAAE,IAAI,CAAC,SAAS,EAAE,CAAC;YACzD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;gBAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;gBAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,iFAAiF;IACzE,qBAAqB;QAC3B,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;YAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;YAC7D,IAAI,CAAC,cAAc,EAAE,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACK,uBAAuB;QAC7B,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,cAAc,CAAC;gBAAE,OAAO;YACxD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC;gBAAE,OAAO;YAChD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;gBACvC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC;gBAC3C,IAAI,IAAI,KAAK,UAAU,CAAC,eAAe,IAAI,IAAI,KAAK,UAAU,CAAC,sBAAsB,EAAE,CAAC;oBACtF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC5B,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,CAAC;gBACD,SAAS;YACX,CAAC;YACD,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC/E,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,SAAS;YACX,CAAC;YACD,IAAI,CAAC,CAAC,EAAE,CAAC;QACX,CAAC;IACH,CAAC;IAED,mFAAmF;IAC3E,UAAU,CAAC,KAAY,EAAE,MAAc;QAC7C,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACxG,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,IAAW,EAAE,MAAc;QACvC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;YAChF,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,KAAK,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;YACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,4BAA4B,aAAa,0BAA0B,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;YACpJ,OAAO;QACT,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,IAAI,KAAK,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;YACnC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,4CAA4C,eAAe,0BAA0B,EAAE,CAAC,CAAC;QACzJ,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,YAAY,CAAC,IAAW;QAC9B,MAAM,MAAM,GAAG,uBAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAC9C,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC;QACd,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YACnD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAE,CAAC;YAC7B,IACE,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,sBAAsB;gBAChD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI;gBACxC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI;gBAC5C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,EAC5C,CAAC;gBACD,IAAI,GAAG,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,IAAI,IAAI,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAE,CAAC;QAC5B,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,IAAY;IACtD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5E,QAAQ,CAAC,GAAG,EAAE,CAAC;IACf,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,CAAC,mBAAmB,EAAE,CAAC;AACzF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAyD;IAChG,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;QAC/D,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,8DAA8D,OAAO,CAAC,IAAI,8CAA8C,CACzH,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAC1G,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,MAAM,UAAU,GAAyB,EAAE,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;QAC/D,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC;QACpC,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,MAAM,EAAE,oBAAoB,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AACzF,CAAC"} \ No newline at end of file diff --git a/dist/duplication.d.ts.map b/dist/duplication.d.ts.map index 4e291ea..1e0b140 100644 --- a/dist/duplication.d.ts.map +++ b/dist/duplication.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"duplication.d.ts","sourceRoot":"","sources":["../duplication.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"duplication.d.ts","sourceRoot":"","sources":["../duplication.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/duplication.js b/dist/duplication.js index 4eec9bc..b2e02a1 100644 --- a/dist/duplication.js +++ b/dist/duplication.js @@ -152,7 +152,7 @@ function globMatchedSources(repoRoot, pattern) { absolute: true, cwd: repoRoot, dot: true, - followSymbolicLinks: true, + followSymbolicLinks: false, ignore: [...DUPLICATION_IGNORES], onlyFiles: true, }) @@ -173,6 +173,7 @@ function duplicationOptions(repoRoot, pattern, minTokens) { ignore: [...DUPLICATION_IGNORES], absolute: true, gitignore: false, + noSymlinks: true, reporters: [], silent: true, }; diff --git a/dist/duplication.js.map b/dist/duplication.js.map index 7d4ee33..124a43d 100644 --- a/dist/duplication.js.map +++ b/dist/duplication.js.map @@ -1 +1 @@ -{"version":3,"file":"duplication.js","sourceRoot":"","sources":["../duplication.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"duplication.js","sourceRoot":"","sources":["../duplication.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/docstrings.ts b/docstrings.ts index 7ada053..f02c8b9 100644 --- a/docstrings.ts +++ b/docstrings.ts @@ -124,7 +124,7 @@ export interface DocstringViolation { /** Aggregate result of scanning one tree. */ export interface DocstringReport { - /** Number of `.ts` files analyzed. */ + /** Number of `.ts` and `.tsx` files analyzed. */ readonly files_scanned: number; /** Number of declarations evaluated against the rules. */ readonly declarations_checked: number; @@ -308,12 +308,14 @@ function isKeyword(kind: SyntaxKind): boolean { * Convert a token stream into a clean array of braces. Runs the unstable * scanner with trivia skipped and applies the two corrections documented at the * top of this file: template-substitution `}` is rescanned into a template - * continuation, and `/` is rescanned as a regex only in regex context. The + * continuation, and `/` is rescanned as a regex only in regex context. TSX + * uses the scanner's JSX variant so `` is one closing-tag token rather + * than a slash that could consume later declarations as a regex. The * returned array never contains a brace that does not correspond to a real * `{` / `}` in the source. */ -function tokenize(text: string): Token[] { - const scanner = createScanner(true, LanguageVariant.Standard, text); +function tokenize(text: string, file: string): Token[] { + const scanner = createScanner(true, file.endsWith(".tsx") ? LanguageVariant.JSX : LanguageVariant.Standard, text); const tokens: Token[] = []; const group: Array<"brace" | "paren" | "bracket" | "sub"> = []; let prev: SyntaxKind | undefined; @@ -1236,14 +1238,14 @@ class SourceAnalyzer { * violations it contains plus how many declarations were evaluated. */ export function analyzeSource(text: string, file: string): SourceAnalysis { - const tokens = tokenize(text); + const tokens = tokenize(text, file); const analyzer = new SourceAnalyzer(text, file, tokens, buildLineMap(text)); analyzer.run(); return { violations: analyzer.violations, declarations: analyzer.declarationsChecked }; } /** - * Walk a directory tree and analyze every authored `.ts` source beneath it, + * Walk a directory tree and analyze every authored `.ts` or `.tsx` source beneath it, * skipping `.d.ts` files and the structural non-source directories. Scanning * zero files fails by throwing rather than passing vacuously. */ diff --git a/duplication.ts b/duplication.ts index 22e2ef9..d28fdac 100644 --- a/duplication.ts +++ b/duplication.ts @@ -121,6 +121,7 @@ interface ProgrammaticOptions { readonly ignore: readonly string[]; readonly absolute: boolean; readonly gitignore: boolean; + readonly noSymlinks: boolean; readonly reporters: readonly string[]; readonly silent: boolean; } @@ -288,7 +289,7 @@ function globMatchedSources(repoRoot: string, pattern: string): string[] { absolute: true, cwd: repoRoot, dot: true, - followSymbolicLinks: true, + followSymbolicLinks: false, ignore: [...DUPLICATION_IGNORES], onlyFiles: true, }) @@ -310,6 +311,7 @@ function duplicationOptions(repoRoot: string, pattern: string, minTokens: number ignore: [...DUPLICATION_IGNORES], absolute: true, gitignore: false, + noSymlinks: true, reporters: [], silent: true, }; diff --git a/test/docstrings.test.ts b/test/docstrings.test.ts index ffe7241..3d2d4dc 100644 --- a/test/docstrings.test.ts +++ b/test/docstrings.test.ts @@ -500,19 +500,25 @@ test("directory and single-file scans include undocumented TSX exports", () => { try { mkdirSync(join(root, "src")); const component = join(root, "src", "Widget.tsx"); - writeFileSync(component, "export function Widget() { return
; }\n"); + writeFileSync(component, "export function Widget() { return
; }\nexport const Hidden = 1;\n"); const directory = analyzeDocstringCoverage({ root }); const singleFile = analyzeDocstringCoverage({ root, sourceDirs: ["src/Widget.tsx"] }); assert.equal(directory.files_scanned, 1); assert.equal(singleFile.files_scanned, 1); - assert.equal(directory.violations.length, 1); - assert.equal(singleFile.violations.length, 1); + assert.equal(directory.violations.length, 2); + assert.equal(singleFile.violations.length, 2); assert.equal(directory.violations[0]?.symbol, "Widget"); + assert.equal(directory.violations[1]?.symbol, "Hidden"); } finally { rmSync(root, { recursive: true, force: true }); } }); +test("JSX closing tags do not hide later undocumented TSX exports", () => { + const source = "export const A =
; export const B = 1;\n"; + assert.deepEqual(analyzeSource(source, "widget.tsx").violations.map(({ symbol }) => symbol), ["A", "B"]); +}); + test("sourceDirs scopes the walk to listed subdirectories", () => { const root = mkdtempSync(join(tmpdir(), "docstrings-dirs-")); try { diff --git a/test/lint-and-duplication-gates.test.ts b/test/lint-and-duplication-gates.test.ts index 529ac50..12c5064 100644 --- a/test/lint-and-duplication-gates.test.ts +++ b/test/lint-and-duplication-gates.test.ts @@ -345,6 +345,20 @@ test("jscpd 5 refuses a TSX file omitted even by the one-token source probe", as assert.match(gate.errors, /jscpd scanned 0 of 1 in-scope TypeScript sources/); }); +test("both engines count canonical TSX sources once across symlinked paths", async () => { + for (const [version, fixture] of [ + ["jscpd4", jscpd4Fixture("tsx-symlink-v4", { threshold: 0 })], + ["jscpd5", packageFixture("tsx-symlink-v5", { threshold: 0 })], + ] as const) { + writeFileSync(join(fixture, "src", "Widget.tsx"), "export const Widget =
real source
;\n"); + symlinkSync(join(fixture, "src", "Widget.tsx"), join(fixture, "src", "Alias.tsx"), "file"); + symlinkSync(join(fixture, "src"), join(fixture, "alias"), "dir"); + const report = await analyzeDuplication({ repoRoot: fixture, minTokens: 1 }); + assert.equal(report.sources, 1, version); + assert.deepEqual(report.skippedSources, [], version); + } +}); + test("duplication gate fails closed when the real jscpd 5 binary package is missing", async () => { const broken = packageFixture("jscpd5-missing-platform", { threshold: 0 }); mkdirSync(join(broken, "node_modules"), { recursive: true }); From f3e66c3c85366706f3ea44f8eadc4e406e7d3183 Mon Sep 17 00:00:00 2001 From: SteveBot <1153461+unbraind@users.noreply.github.com> Date: Mon, 28 Sep 2026 18:48:19 +0200 Subject: [PATCH 3/7] Isolate jscpd scans from consumer threshold config Reproduce CodeRabbit's jscpd 5 finding with a real consumer .jscpd.json and a red launcher test. Run both canonical scans from an isolated working directory while passing the absolute repository path, so an ambient threshold cannot terminate source-count verification or the primary gate. Preserve relative repoRoot callers. The exact-head release gate passes at 100/100/100/100 measured coverage, and freshly packed npm/Node and Bun imports pass the threshold fixture. --- .agents/pm/history/ops-zq8c.jsonl | 1 + .agents/pm/issues/ops-zq8c.toon | 5 +++-- dist/duplication.d.ts.map | 2 +- dist/duplication.js | 6 ++++-- dist/duplication.js.map | 2 +- duplication.ts | 6 ++++-- test/lint-and-duplication-gates.test.ts | 17 ++++++++++++++++- 7 files changed, 30 insertions(+), 9 deletions(-) diff --git a/.agents/pm/history/ops-zq8c.jsonl b/.agents/pm/history/ops-zq8c.jsonl index e863d52..b3840f7 100644 --- a/.agents/pm/history/ops-zq8c.jsonl +++ b/.agents/pm/history/ops-zq8c.jsonl @@ -1,3 +1,4 @@ {"hash_algorithm":"sha256","ts":"2026-09-28T15:05:31.893Z","author":"codex","author_source":"asserted","agent_harness":"codex","agent_model":"gpt-6-sol","agent_model_source":"probe","agent_instance":"381a892fadca8b4d12a512f7","agent_provenance":{"model":{"value":"gpt-6-sol","source":"probe"},"effort":{"value":"high","source":"probe"},"role":{"value":"implementer","source":"argv"},"topic":null},"op":"create","patch":[{"op":"add","path":"/metadata/id","value":"ops-zq8c"},{"op":"add","path":"/metadata/title","value":"Include TSX in docstring and duplication gates with verified source counts"},{"op":"add","path":"/metadata/description","value":"GitHub #128: pm-ops docstring and duplication gates silently omit TSX sources. Make both engines scan TSX, prove source-count completeness, and certify the exact package head."},{"op":"add","path":"/metadata/type","value":"Issue"},{"op":"add","path":"/metadata/status","value":"in_progress"},{"op":"add","path":"/metadata/priority","value":1},{"op":"add","path":"/metadata/tags","value":["area:quality","docstrings","duplication","tsx"]},{"op":"add","path":"/metadata/created_at","value":"2026-09-28T15:05:31.893Z"},{"op":"add","path":"/metadata/updated_at","value":"2026-09-28T15:05:31.893Z"},{"op":"add","path":"/metadata/author","value":"codex"},{"op":"add","path":"/metadata/estimated_minutes","value":180},{"op":"add","path":"/metadata/acceptance_criteria","value":"Directory and single-file docstring analysis find undocumented TSX exports; jscpd 4 and 5 detect TSX clones with the real engines; mismatched scan counts fail closed; release gate passes; companion records exact limitations."},{"op":"add","path":"/metadata/notes","value":[{"created_at":"2026-09-28T15:05:31.893Z","author":"codex","text":"TDD: TSX docstring and real jscpd 4 tests failed before the source fix. The candidate passes 449/451 tests with two existing opt-in skips, c8 100/100/100/100, 221/221 documented declarations, zero duplication across 43 sources, zero production audit findings, and real packed npm/Node and Bun TSX acceptance. The local PM CLI SDK pin is 2026.9.28."}]},{"op":"add","path":"/metadata/files","value":[{"path":"docstrings.ts","scope":"project","note":"TSX source walker"},{"path":"duplication.ts","scope":"project","note":"Both jscpd engines and source-count verification"},{"path":"test/docstrings.test.ts","scope":"project","note":"TSX docstring regression"},{"path":"test/lint-and-duplication-gates.test.ts","scope":"project","note":"Real jscpd 4 and 5 TSX acceptance"},{"path":"README.md","scope":"project","note":"Updated consumer guidance"}]},{"op":"add","path":"/metadata/tests","value":[{"command":"npm run release:check","path":"package.json","scope":"project","timeout_seconds":900,"provenance":{"author":"codex","created_at":"2026-09-28T15:05:31.893Z","source_kind":"local_mutation","source_ref":"fix/pm-ops-tsx-quality-gates-2026-09-28"}}]},{"op":"add","path":"/metadata/docs","value":[{"path":"https://github.com/unbraind/pm-ops/issues/128","scope":"global","note":"Source issue and reproduction"}]}],"before_hash":"3cc22dff72be7b14824654a7a64ea62b04799939b2fee54c1b5f52ca60bf6df0","after_hash":"002a8fc48215b8475e29caa889121edc0a796db26f0b8eed34828e78ebd4e653","item_hash_version":3,"message":"","context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"effort":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"version":{"status":"unavailable","reason":"harness_unavailable","resolver":"ai_agent_version","rule_version":"v1"}}},"event_class":"substantive","record_hash_version":1,"record_hash":"b4f0b71f8a06c7beab5d36dd2adec36ebffefe6ec9f2a06f904de7fe73d59df5"} {"hash_algorithm":"sha256","ts":"2026-09-28T15:18:38.191Z","author":"codex","author_source":"asserted","agent_harness":"codex","agent_model":"gpt-6-sol","agent_model_source":"probe","agent_instance":"381a892fadca8b4d12a512f7","agent_provenance":{"model":{"value":"gpt-6-sol","source":"probe"},"effort":{"value":"high","source":"probe"},"role":null,"topic":null},"op":"docs_add","patch":[{"op":"add","path":"/metadata/docs/1","value":{"path":"https://github.com/unbraind/pm-ops/pull/132#discussion_r4123846054","scope":"global","note":"Greptile JSX closing-tag finding"}},{"op":"add","path":"/metadata/docs/2","value":{"path":"https://github.com/unbraind/pm-ops/pull/132#discussion_r4123865252","scope":"global","note":"CodeRabbit symlink scope finding"}},{"op":"replace","path":"/metadata/updated_at","value":"2026-09-28T15:18:38.191Z"}],"before_hash":"002a8fc48215b8475e29caa889121edc0a796db26f0b8eed34828e78ebd4e653","after_hash":"768176789e166a7338dd081ddf9a616056ae0350fc0232cfe29662f0d5be2710","item_hash_version":3,"message":"Link exact-head reviewer findings","context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"effort":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"version":{"status":"unavailable","reason":"harness_unavailable","resolver":"ai_agent_version","rule_version":"v1"}}},"event_class":"maintenance","record_hash_version":1,"record_hash":"796c940fbb3271fc48fffec10c1070c599eb1a249dbfe9467f32337ee6f3a89f"} {"hash_algorithm":"sha256","ts":"2026-09-28T15:18:38.784Z","author":"codex","author_source":"asserted","agent_harness":"codex","agent_model":"gpt-6-sol","agent_model_source":"probe","agent_instance":"381a892fadca8b4d12a512f7","agent_provenance":{"model":{"value":"gpt-6-sol","source":"probe"},"effort":{"value":"high","source":"probe"},"role":null,"topic":null},"op":"note_add","patch":[{"op":"add","path":"/metadata/notes/1","value":{"created_at":"2026-09-28T15:18:38.784Z","author":"codex","text":"PR #132 first-head review found two valid regressions. Greptile P1 reproduced: a JSX closing tag let the tokenizer hide a later export; the TSX scanner now uses LanguageVariant.JSX and focused tests cover both direct analysis and directory walking. CodeRabbit major reproduced: fast-glob followed symlinked paths while jscpd 5 did not; fast-glob and jscpd 4 now share the no-symlink policy with jscpd 5, with real 4/5 symlink fixtures. Focused tests, build, typecheck, lint, and docstrings pass; full exact-head gate and packed acceptance remain pending."}},{"op":"replace","path":"/metadata/updated_at","value":"2026-09-28T15:18:38.784Z"}],"before_hash":"768176789e166a7338dd081ddf9a616056ae0350fc0232cfe29662f0d5be2710","after_hash":"8938eead80f924c6e1bbb0f10b824f248ce0b72e80d489d79b76b696d2002f22","item_hash_version":3,"message":"Record bot findings and review fixes","context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"effort":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"version":{"status":"unavailable","reason":"harness_unavailable","resolver":"ai_agent_version","rule_version":"v1"}}},"event_class":"substantive","record_hash_version":1,"record_hash":"eef9248f198521529b798dee119eb49b2af26da81cea487e96eb0e38510ef202"} +{"hash_algorithm":"sha256","ts":"2026-09-28T16:48:08.785Z","author":"harness:codex","author_source":"detected","agent_harness":"codex","agent_model":"gpt-6-sol","agent_model_source":"probe","agent_instance":"f52fb7ec165c75a203d40f61","agent_provenance":{"model":{"value":"gpt-6-sol","source":"probe"},"effort":{"value":"high","source":"probe"},"role":{"value":"implementer","source":"argv"},"topic":null},"op":"update","patch":[{"op":"add","path":"/metadata/notes/2","value":{"created_at":"2026-09-28T16:48:08.764Z","author":"harness:codex","text":"author=codex,text=CodeRabbit review comment 4124694533 reproduced a jscpd 5.2.1 ambient .jscpd.json threshold failure: primary 200-token scan passed, one-token source probe detected 81.2% duplication and exited 1 before reading its count. A real-binary regression failed first. The fix resolves the repo root before launching jscpd and runs both canonical scans from an isolated output directory, so package duplicationGate remains authoritative. Focused test now passes, full release:check exits 0 with 100% on all four measured coverage dimensions, zero prod audit findings, and fresh packed npm/Node and Bun imports both report two complete sources and zero primary clones."}},{"op":"replace","path":"/metadata/updated_at","value":"2026-09-28T16:48:08.785Z"}],"before_hash":"8938eead80f924c6e1bbb0f10b824f248ce0b72e80d489d79b76b696d2002f22","after_hash":"8dff3b2d5a12bae162270e10f4bc6f9a8ce59c7e9c6da88eae35bfc471ac853a","item_hash_version":3,"message":"Record red-green review fix and packed acceptance for jscpd config isolation","context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"effort":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"version":{"status":"unavailable","reason":"harness_unavailable","resolver":"ai_agent_version","rule_version":"v1"}}},"event_class":"maintenance","record_hash_version":1,"record_hash":"9e5b43e4e41463f62953fdaa04acad67cca3ccc397fd140aded801ca1a841e74"} diff --git a/.agents/pm/issues/ops-zq8c.toon b/.agents/pm/issues/ops-zq8c.toon index 0a83775..67a1938 100644 --- a/.agents/pm/issues/ops-zq8c.toon +++ b/.agents/pm/issues/ops-zq8c.toon @@ -6,13 +6,14 @@ status: in_progress priority: 1 tags[4]: "area:quality",docstrings,duplication,tsx created_at: "2026-09-28T15:05:31.893Z" -updated_at: "2026-09-28T15:18:38.784Z" +updated_at: "2026-09-28T16:48:08.785Z" author: codex estimated_minutes: 180 acceptance_criteria: Directory and single-file docstring analysis find undocumented TSX exports; jscpd 4 and 5 detect TSX clones with the real engines; mismatched scan counts fail closed; release gate passes; companion records exact limitations. -notes[2]{created_at,author,text}: +notes[3]{created_at,author,text}: "2026-09-28T15:05:31.893Z",codex,"TDD: TSX docstring and real jscpd 4 tests failed before the source fix. The candidate passes 449/451 tests with two existing opt-in skips, c8 100/100/100/100, 221/221 documented declarations, zero duplication across 43 sources, zero production audit findings, and real packed npm/Node and Bun TSX acceptance. The local PM CLI SDK pin is 2026.9.28." "2026-09-28T15:18:38.784Z",codex,"PR #132 first-head review found two valid regressions. Greptile P1 reproduced: a JSX closing tag let the tokenizer hide a later export; the TSX scanner now uses LanguageVariant.JSX and focused tests cover both direct analysis and directory walking. CodeRabbit major reproduced: fast-glob followed symlinked paths while jscpd 5 did not; fast-glob and jscpd 4 now share the no-symlink policy with jscpd 5, with real 4/5 symlink fixtures. Focused tests, build, typecheck, lint, and docstrings pass; full exact-head gate and packed acceptance remain pending." + "2026-09-28T16:48:08.764Z","harness:codex","author=codex,text=CodeRabbit review comment 4124694533 reproduced a jscpd 5.2.1 ambient .jscpd.json threshold failure: primary 200-token scan passed, one-token source probe detected 81.2% duplication and exited 1 before reading its count. A real-binary regression failed first. The fix resolves the repo root before launching jscpd and runs both canonical scans from an isolated output directory, so package duplicationGate remains authoritative. Focused test now passes, full release:check exits 0 with 100% on all four measured coverage dimensions, zero prod audit findings, and fresh packed npm/Node and Bun imports both report two complete sources and zero primary clones." files[5]{path,scope,note}: docstrings.ts,project,TSX source walker duplication.ts,project,Both jscpd engines and source-count verification diff --git a/dist/duplication.d.ts.map b/dist/duplication.d.ts.map index 1e0b140..8e6cdd3 100644 --- a/dist/duplication.d.ts.map +++ b/dist/duplication.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"duplication.d.ts","sourceRoot":"","sources":["../duplication.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"duplication.d.ts","sourceRoot":"","sources":["../duplication.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/duplication.js b/dist/duplication.js index b2e02a1..a693b49 100644 --- a/dist/duplication.js +++ b/dist/duplication.js @@ -251,6 +251,8 @@ function analyzeWithBinary(installation, repoRoot, pattern, minTokens, matchedSo const outputDir = mkdtempSync(join(tmpdir(), "pm-ops-jscpd-")); try { const run = (tokens) => { + // The package gate owns its threshold; an ambient .jscpd.json must not + // make either scan exit before its JSON source-count receipt is read. const result = spawnSync(process.execPath, [ join(installation.packageDir, "run-jscpd.js"), repoRoot, @@ -267,7 +269,7 @@ function analyzeWithBinary(installation, repoRoot, pattern, minTokens, matchedSo "--no-colors", "--absolute", "--no-gitignore", - ], { encoding: "utf8" }); + ], { cwd: outputDir, encoding: "utf8" }); if (result.status !== 0) { throw new Error(`duplication: jscpd exited with status ${String(result.status)}: ${String(result.stderr)}`); } @@ -314,7 +316,7 @@ export function duplicationGateDiagnostic(report) { * @returns Aggregate percentage and every clone pair found by jscpd. */ export async function analyzeDuplication(options = {}) { - const repoRoot = options.repoRoot ?? defaultRepoRoot; + const repoRoot = resolve(options.repoRoot ?? defaultRepoRoot); const pattern = combineGlobs(options.globs ?? DEFAULT_DUPLICATION_GLOBS); const minTokens = options.minTokens ?? 50; const matchedSources = globMatchedSources(repoRoot, pattern); diff --git a/dist/duplication.js.map b/dist/duplication.js.map index 124a43d..ba62b80 100644 --- a/dist/duplication.js.map +++ b/dist/duplication.js.map @@ -1 +1 @@ -{"version":3,"file":"duplication.js","sourceRoot":"","sources":["../duplication.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"duplication.js","sourceRoot":"","sources":["../duplication.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/duplication.ts b/duplication.ts index d28fdac..f0149f8 100644 --- a/duplication.ts +++ b/duplication.ts @@ -407,6 +407,8 @@ function analyzeWithBinary( const outputDir = mkdtempSync(join(tmpdir(), "pm-ops-jscpd-")); try { const run = (tokens: number): ReportedAnalysis => { + // The package gate owns its threshold; an ambient .jscpd.json must not + // make either scan exit before its JSON source-count receipt is read. const result = spawnSync(process.execPath, [ join(installation.packageDir, "run-jscpd.js"), repoRoot, @@ -423,7 +425,7 @@ function analyzeWithBinary( "--no-colors", "--absolute", "--no-gitignore", - ], { encoding: "utf8" }); + ], { cwd: outputDir, encoding: "utf8" }); if (result.status !== 0) { throw new Error(`duplication: jscpd exited with status ${String(result.status)}: ${String(result.stderr)}`); } @@ -474,7 +476,7 @@ export function duplicationGateDiagnostic( export async function analyzeDuplication( options: Pick = {}, ): Promise { - const repoRoot = options.repoRoot ?? defaultRepoRoot; + const repoRoot = resolve(options.repoRoot ?? defaultRepoRoot); const pattern = combineGlobs(options.globs ?? DEFAULT_DUPLICATION_GLOBS); const minTokens = options.minTokens ?? 50; const matchedSources = globMatchedSources(repoRoot, pattern); diff --git a/test/lint-and-duplication-gates.test.ts b/test/lint-and-duplication-gates.test.ts index 12c5064..41ab866 100644 --- a/test/lint-and-duplication-gates.test.ts +++ b/test/lint-and-duplication-gates.test.ts @@ -2,7 +2,7 @@ import assert from "node:assert/strict"; import { spawnSync } from "node:child_process"; import { cpSync, mkdirSync, mkdtempSync, rmSync, symlinkSync, writeFileSync } from "node:fs"; import { tmpdir } from "node:os"; -import { join, resolve } from "node:path"; +import { join, relative, resolve } from "node:path"; import test, { after, before } from "node:test"; import { ESLint } from "eslint"; @@ -345,6 +345,21 @@ test("jscpd 5 refuses a TSX file omitted even by the one-token source probe", as assert.match(gate.errors, /jscpd scanned 0 of 1 in-scope TypeScript sources/); }); +test("jscpd 5 completeness probe ignores a consumer threshold without losing source count", async () => { + const fixture = packageFixture("consumer-jscpd-threshold", { threshold: 0, minTokens: 200 }); + const source = Array.from({ length: 8 }, (_, index) => `export const repeated${index} = ${index};`).join("\n") + "\n"; + writeFileSync(join(fixture, "src", "first.ts"), source); + writeFileSync(join(fixture, "src", "second.ts"), source); + writeFileSync(join(fixture, ".jscpd.json"), `${JSON.stringify({ threshold: 0 })}\n`); + + const launcher = resolve(import.meta.dirname, "../scripts/duplication-gate.ts"); + const result = spawnSync(process.execPath, [launcher], { cwd: fixture, encoding: "utf8" }); + assert.equal(result.status, 0, result.stderr); + assert.match(result.stdout, /0% duplicated lines .*2 source\(s\)/); + const relativeReport = await analyzeDuplication({ repoRoot: relative(process.cwd(), fixture), minTokens: 200 }); + assert.equal(relativeReport.sources, 2); +}); + test("both engines count canonical TSX sources once across symlinked paths", async () => { for (const [version, fixture] of [ ["jscpd4", jscpd4Fixture("tsx-symlink-v4", { threshold: 0 })], From b15bf932fe970851ebcbab344f43e765c37de4db Mon Sep 17 00:00:00 2001 From: SteveBot <1153461+unbraind@users.noreply.github.com> Date: Fri, 2 Oct 2026 20:41:52 +0200 Subject: [PATCH 4/7] Record the main rebase and exact-head review readback on ops-zq8c --- .agents/pm/history/ops-zq8c.jsonl | 1 + .agents/pm/issues/ops-zq8c.toon | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.agents/pm/history/ops-zq8c.jsonl b/.agents/pm/history/ops-zq8c.jsonl index b3840f7..31ae77b 100644 --- a/.agents/pm/history/ops-zq8c.jsonl +++ b/.agents/pm/history/ops-zq8c.jsonl @@ -2,3 +2,4 @@ {"hash_algorithm":"sha256","ts":"2026-09-28T15:18:38.191Z","author":"codex","author_source":"asserted","agent_harness":"codex","agent_model":"gpt-6-sol","agent_model_source":"probe","agent_instance":"381a892fadca8b4d12a512f7","agent_provenance":{"model":{"value":"gpt-6-sol","source":"probe"},"effort":{"value":"high","source":"probe"},"role":null,"topic":null},"op":"docs_add","patch":[{"op":"add","path":"/metadata/docs/1","value":{"path":"https://github.com/unbraind/pm-ops/pull/132#discussion_r4123846054","scope":"global","note":"Greptile JSX closing-tag finding"}},{"op":"add","path":"/metadata/docs/2","value":{"path":"https://github.com/unbraind/pm-ops/pull/132#discussion_r4123865252","scope":"global","note":"CodeRabbit symlink scope finding"}},{"op":"replace","path":"/metadata/updated_at","value":"2026-09-28T15:18:38.191Z"}],"before_hash":"002a8fc48215b8475e29caa889121edc0a796db26f0b8eed34828e78ebd4e653","after_hash":"768176789e166a7338dd081ddf9a616056ae0350fc0232cfe29662f0d5be2710","item_hash_version":3,"message":"Link exact-head reviewer findings","context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"effort":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"version":{"status":"unavailable","reason":"harness_unavailable","resolver":"ai_agent_version","rule_version":"v1"}}},"event_class":"maintenance","record_hash_version":1,"record_hash":"796c940fbb3271fc48fffec10c1070c599eb1a249dbfe9467f32337ee6f3a89f"} {"hash_algorithm":"sha256","ts":"2026-09-28T15:18:38.784Z","author":"codex","author_source":"asserted","agent_harness":"codex","agent_model":"gpt-6-sol","agent_model_source":"probe","agent_instance":"381a892fadca8b4d12a512f7","agent_provenance":{"model":{"value":"gpt-6-sol","source":"probe"},"effort":{"value":"high","source":"probe"},"role":null,"topic":null},"op":"note_add","patch":[{"op":"add","path":"/metadata/notes/1","value":{"created_at":"2026-09-28T15:18:38.784Z","author":"codex","text":"PR #132 first-head review found two valid regressions. Greptile P1 reproduced: a JSX closing tag let the tokenizer hide a later export; the TSX scanner now uses LanguageVariant.JSX and focused tests cover both direct analysis and directory walking. CodeRabbit major reproduced: fast-glob followed symlinked paths while jscpd 5 did not; fast-glob and jscpd 4 now share the no-symlink policy with jscpd 5, with real 4/5 symlink fixtures. Focused tests, build, typecheck, lint, and docstrings pass; full exact-head gate and packed acceptance remain pending."}},{"op":"replace","path":"/metadata/updated_at","value":"2026-09-28T15:18:38.784Z"}],"before_hash":"768176789e166a7338dd081ddf9a616056ae0350fc0232cfe29662f0d5be2710","after_hash":"8938eead80f924c6e1bbb0f10b824f248ce0b72e80d489d79b76b696d2002f22","item_hash_version":3,"message":"Record bot findings and review fixes","context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"effort":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"version":{"status":"unavailable","reason":"harness_unavailable","resolver":"ai_agent_version","rule_version":"v1"}}},"event_class":"substantive","record_hash_version":1,"record_hash":"eef9248f198521529b798dee119eb49b2af26da81cea487e96eb0e38510ef202"} {"hash_algorithm":"sha256","ts":"2026-09-28T16:48:08.785Z","author":"harness:codex","author_source":"detected","agent_harness":"codex","agent_model":"gpt-6-sol","agent_model_source":"probe","agent_instance":"f52fb7ec165c75a203d40f61","agent_provenance":{"model":{"value":"gpt-6-sol","source":"probe"},"effort":{"value":"high","source":"probe"},"role":{"value":"implementer","source":"argv"},"topic":null},"op":"update","patch":[{"op":"add","path":"/metadata/notes/2","value":{"created_at":"2026-09-28T16:48:08.764Z","author":"harness:codex","text":"author=codex,text=CodeRabbit review comment 4124694533 reproduced a jscpd 5.2.1 ambient .jscpd.json threshold failure: primary 200-token scan passed, one-token source probe detected 81.2% duplication and exited 1 before reading its count. A real-binary regression failed first. The fix resolves the repo root before launching jscpd and runs both canonical scans from an isolated output directory, so package duplicationGate remains authoritative. Focused test now passes, full release:check exits 0 with 100% on all four measured coverage dimensions, zero prod audit findings, and fresh packed npm/Node and Bun imports both report two complete sources and zero primary clones."}},{"op":"replace","path":"/metadata/updated_at","value":"2026-09-28T16:48:08.785Z"}],"before_hash":"8938eead80f924c6e1bbb0f10b824f248ce0b72e80d489d79b76b696d2002f22","after_hash":"8dff3b2d5a12bae162270e10f4bc6f9a8ce59c7e9c6da88eae35bfc471ac853a","item_hash_version":3,"message":"Record red-green review fix and packed acceptance for jscpd config isolation","context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"effort":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"version":{"status":"unavailable","reason":"harness_unavailable","resolver":"ai_agent_version","rule_version":"v1"}}},"event_class":"maintenance","record_hash_version":1,"record_hash":"9e5b43e4e41463f62953fdaa04acad67cca3ccc397fd140aded801ca1a841e74"} +{"hash_algorithm":"sha256","ts":"2026-10-02T18:27:05.767Z","author":"pi-glm","author_source":"asserted","agent_harness":"pi","agent_model":"glm-5.3:cloud","agent_model_source":"environment","agent_instance":"40ed70d22eaf6c89f6cbbe67","agent_provenance":{"model":{"value":"glm-5.3:cloud","source":"environment"},"effort":null,"role":null,"topic":null},"op":"comment_add","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-10-02T18:27:05.767Z"},{"op":"add","path":"/metadata/comments","value":[{"created_at":"2026-10-02T18:27:05.767Z","author":"pi-glm","text":"Rebase to current main (pi-glm, orchestrator land pass): PR #132 rebased onto origin/main 5ea8406 (releases 2026.9.28-1 and 2026.9.29 merged in cleanly, no conflicts). New head f3e66c3; same three commits. Full gate re-verified on the rebased head: npm run release:check passes (typecheck, lint, duplication, docstrings, coverage 100/100/100/100 across 23 sources, prod audit 0 findings, pack dry run, changelog:check, release-changelog-date, publish-attestation, lifecycle-policy), and pm health --strict-exit --json exits 0 with only stale-in-progress advisories. Re-review requested from CodeRabbit/Greptile/Gemini."}]}],"before_hash":"8dff3b2d5a12bae162270e10f4bc6f9a8ce59c7e9c6da88eae35bfc471ac853a","after_hash":"70fe0f6f506a12cb2b1a933e8490747ee338481bc46a9cc97e3a713c0dbe64d3","item_hash_version":3,"event_class":"substantive","record_hash_version":1,"record_hash":"60d679c9d5e9eae6a8829d97e4e263d0c405ac8581b1f90c3f9cbbb261c6ecb7"} diff --git a/.agents/pm/issues/ops-zq8c.toon b/.agents/pm/issues/ops-zq8c.toon index 67a1938..2df5655 100644 --- a/.agents/pm/issues/ops-zq8c.toon +++ b/.agents/pm/issues/ops-zq8c.toon @@ -6,10 +6,12 @@ status: in_progress priority: 1 tags[4]: "area:quality",docstrings,duplication,tsx created_at: "2026-09-28T15:05:31.893Z" -updated_at: "2026-09-28T16:48:08.785Z" +updated_at: "2026-10-02T18:27:05.767Z" author: codex estimated_minutes: 180 acceptance_criteria: Directory and single-file docstring analysis find undocumented TSX exports; jscpd 4 and 5 detect TSX clones with the real engines; mismatched scan counts fail closed; release gate passes; companion records exact limitations. +comments[1]{created_at,author,text}: + "2026-10-02T18:27:05.767Z",pi-glm,"Rebase to current main (pi-glm, orchestrator land pass): PR #132 rebased onto origin/main 5ea8406 (releases 2026.9.28-1 and 2026.9.29 merged in cleanly, no conflicts). New head f3e66c3; same three commits. Full gate re-verified on the rebased head: npm run release:check passes (typecheck, lint, duplication, docstrings, coverage 100/100/100/100 across 23 sources, prod audit 0 findings, pack dry run, changelog:check, release-changelog-date, publish-attestation, lifecycle-policy), and pm health --strict-exit --json exits 0 with only stale-in-progress advisories. Re-review requested from CodeRabbit/Greptile/Gemini." notes[3]{created_at,author,text}: "2026-09-28T15:05:31.893Z",codex,"TDD: TSX docstring and real jscpd 4 tests failed before the source fix. The candidate passes 449/451 tests with two existing opt-in skips, c8 100/100/100/100, 221/221 documented declarations, zero duplication across 43 sources, zero production audit findings, and real packed npm/Node and Bun TSX acceptance. The local PM CLI SDK pin is 2026.9.28." "2026-09-28T15:18:38.784Z",codex,"PR #132 first-head review found two valid regressions. Greptile P1 reproduced: a JSX closing tag let the tokenizer hide a later export; the TSX scanner now uses LanguageVariant.JSX and focused tests cover both direct analysis and directory walking. CodeRabbit major reproduced: fast-glob followed symlinked paths while jscpd 5 did not; fast-glob and jscpd 4 now share the no-symlink policy with jscpd 5, with real 4/5 symlink fixtures. Focused tests, build, typecheck, lint, and docstrings pass; full exact-head gate and packed acceptance remain pending." From 78155d1af6dfdced0c9effb64655185248c8b18a Mon Sep 17 00:00:00 2001 From: SteveBot <1153461+unbraind@users.noreply.github.com> Date: Fri, 2 Oct 2026 23:03:30 +0200 Subject: [PATCH 5/7] Strip the pasted author label from the ops-zq8c jscpd note Cubic 4168776167: the note text started with author=codex,text=. The edit keeps the original history line and records a new note edit. --- .agents/pm/history/ops-zq8c.jsonl | 3 +++ .agents/pm/issues/ops-zq8c.toon | 22 ++++++++++++++++------ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/.agents/pm/history/ops-zq8c.jsonl b/.agents/pm/history/ops-zq8c.jsonl index 31ae77b..275024e 100644 --- a/.agents/pm/history/ops-zq8c.jsonl +++ b/.agents/pm/history/ops-zq8c.jsonl @@ -3,3 +3,6 @@ {"hash_algorithm":"sha256","ts":"2026-09-28T15:18:38.784Z","author":"codex","author_source":"asserted","agent_harness":"codex","agent_model":"gpt-6-sol","agent_model_source":"probe","agent_instance":"381a892fadca8b4d12a512f7","agent_provenance":{"model":{"value":"gpt-6-sol","source":"probe"},"effort":{"value":"high","source":"probe"},"role":null,"topic":null},"op":"note_add","patch":[{"op":"add","path":"/metadata/notes/1","value":{"created_at":"2026-09-28T15:18:38.784Z","author":"codex","text":"PR #132 first-head review found two valid regressions. Greptile P1 reproduced: a JSX closing tag let the tokenizer hide a later export; the TSX scanner now uses LanguageVariant.JSX and focused tests cover both direct analysis and directory walking. CodeRabbit major reproduced: fast-glob followed symlinked paths while jscpd 5 did not; fast-glob and jscpd 4 now share the no-symlink policy with jscpd 5, with real 4/5 symlink fixtures. Focused tests, build, typecheck, lint, and docstrings pass; full exact-head gate and packed acceptance remain pending."}},{"op":"replace","path":"/metadata/updated_at","value":"2026-09-28T15:18:38.784Z"}],"before_hash":"768176789e166a7338dd081ddf9a616056ae0350fc0232cfe29662f0d5be2710","after_hash":"8938eead80f924c6e1bbb0f10b824f248ce0b72e80d489d79b76b696d2002f22","item_hash_version":3,"message":"Record bot findings and review fixes","context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"effort":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"version":{"status":"unavailable","reason":"harness_unavailable","resolver":"ai_agent_version","rule_version":"v1"}}},"event_class":"substantive","record_hash_version":1,"record_hash":"eef9248f198521529b798dee119eb49b2af26da81cea487e96eb0e38510ef202"} {"hash_algorithm":"sha256","ts":"2026-09-28T16:48:08.785Z","author":"harness:codex","author_source":"detected","agent_harness":"codex","agent_model":"gpt-6-sol","agent_model_source":"probe","agent_instance":"f52fb7ec165c75a203d40f61","agent_provenance":{"model":{"value":"gpt-6-sol","source":"probe"},"effort":{"value":"high","source":"probe"},"role":{"value":"implementer","source":"argv"},"topic":null},"op":"update","patch":[{"op":"add","path":"/metadata/notes/2","value":{"created_at":"2026-09-28T16:48:08.764Z","author":"harness:codex","text":"author=codex,text=CodeRabbit review comment 4124694533 reproduced a jscpd 5.2.1 ambient .jscpd.json threshold failure: primary 200-token scan passed, one-token source probe detected 81.2% duplication and exited 1 before reading its count. A real-binary regression failed first. The fix resolves the repo root before launching jscpd and runs both canonical scans from an isolated output directory, so package duplicationGate remains authoritative. Focused test now passes, full release:check exits 0 with 100% on all four measured coverage dimensions, zero prod audit findings, and fresh packed npm/Node and Bun imports both report two complete sources and zero primary clones."}},{"op":"replace","path":"/metadata/updated_at","value":"2026-09-28T16:48:08.785Z"}],"before_hash":"8938eead80f924c6e1bbb0f10b824f248ce0b72e80d489d79b76b696d2002f22","after_hash":"8dff3b2d5a12bae162270e10f4bc6f9a8ce59c7e9c6da88eae35bfc471ac853a","item_hash_version":3,"message":"Record red-green review fix and packed acceptance for jscpd config isolation","context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"effort":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"version":{"status":"unavailable","reason":"harness_unavailable","resolver":"ai_agent_version","rule_version":"v1"}}},"event_class":"maintenance","record_hash_version":1,"record_hash":"9e5b43e4e41463f62953fdaa04acad67cca3ccc397fd140aded801ca1a841e74"} {"hash_algorithm":"sha256","ts":"2026-10-02T18:27:05.767Z","author":"pi-glm","author_source":"asserted","agent_harness":"pi","agent_model":"glm-5.3:cloud","agent_model_source":"environment","agent_instance":"40ed70d22eaf6c89f6cbbe67","agent_provenance":{"model":{"value":"glm-5.3:cloud","source":"environment"},"effort":null,"role":null,"topic":null},"op":"comment_add","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-10-02T18:27:05.767Z"},{"op":"add","path":"/metadata/comments","value":[{"created_at":"2026-10-02T18:27:05.767Z","author":"pi-glm","text":"Rebase to current main (pi-glm, orchestrator land pass): PR #132 rebased onto origin/main 5ea8406 (releases 2026.9.28-1 and 2026.9.29 merged in cleanly, no conflicts). New head f3e66c3; same three commits. Full gate re-verified on the rebased head: npm run release:check passes (typecheck, lint, duplication, docstrings, coverage 100/100/100/100 across 23 sources, prod audit 0 findings, pack dry run, changelog:check, release-changelog-date, publish-attestation, lifecycle-policy), and pm health --strict-exit --json exits 0 with only stale-in-progress advisories. Re-review requested from CodeRabbit/Greptile/Gemini."}]}],"before_hash":"8dff3b2d5a12bae162270e10f4bc6f9a8ce59c7e9c6da88eae35bfc471ac853a","after_hash":"70fe0f6f506a12cb2b1a933e8490747ee338481bc46a9cc97e3a713c0dbe64d3","item_hash_version":3,"event_class":"substantive","record_hash_version":1,"record_hash":"60d679c9d5e9eae6a8829d97e4e263d0c405ac8581b1f90c3f9cbbb261c6ecb7"} +{"hash_algorithm":"sha256","ts":"2026-10-02T21:00:54.518Z","author":"pi-grok","author_source":"asserted","agent_harness":"pi","agent_model":"grok-4.7","agent_model_source":"environment","agent_instance":"b2e29b56b4df792499683ec2","agent_provenance":{"model":{"value":"grok-4.7","source":"environment"},"effort":null,"role":{"value":"implementer","source":"argv"},"topic":null},"op":"claim","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-10-02T21:00:54.518Z"},{"op":"add","path":"/metadata/assignee","value":"pi-grok"},{"op":"add","path":"/metadata/claim_principal","value":"pi-grok"}],"before_hash":"70fe0f6f506a12cb2b1a933e8490747ee338481bc46a9cc97e3a713c0dbe64d3","after_hash":"6bb70a050308be7459ed6ad333480d38f20e8864df5916f26297b1287ed86798","item_hash_version":3,"message":"Land-pass disposition of cubic review on PR 132","event_class":"substantive","record_hash_version":1,"record_hash":"ba1769f5ca20841cd72b834db772daf76d12cd8d0644355d7202ffc7d07ac7d7"} +{"hash_algorithm":"sha256","ts":"2026-10-02T21:01:02.968Z","author":"pi-grok","author_source":"asserted","agent_harness":"pi","agent_model":"grok-4.7","agent_model_source":"environment","agent_instance":"b2e29b56b4df792499683ec2","agent_provenance":{"model":{"value":"grok-4.7","source":"environment"},"effort":null,"role":null,"topic":null},"op":"note_edit","patch":[{"op":"replace","path":"/metadata/notes/2/text","value":"CodeRabbit review comment 4124694533 reproduced a jscpd 5.2.1 ambient .jscpd.json threshold failure: primary 200-token scan passed, one-token source probe detected 81.2% duplication and exited 1 before reading its count. A real-binary regression failed first. The fix resolves the repo root before launching jscpd and runs both canonical scans from an isolated output directory, so package duplicationGate remains authoritative. Focused test now passes, full release:check exits 0 with 100% on all four measured coverage dimensions, zero prod audit findings, and fresh packed npm/Node and Bun imports both report two complete sources and zero primary clones."},{"op":"add","path":"/metadata/notes/2/edited_at","value":"2026-10-02T21:01:02.968Z"},{"op":"replace","path":"/metadata/updated_at","value":"2026-10-02T21:01:02.968Z"}],"before_hash":"6bb70a050308be7459ed6ad333480d38f20e8864df5916f26297b1287ed86798","after_hash":"b4938ae343e064210103e5c62041ccb162dd0e5d8a0277e82eefd0684c71796d","item_hash_version":3,"message":"Strip spurious author=codex,text= prefix from the jscpd ambient-config note","event_class":"substantive","record_hash_version":1,"record_hash":"7bd1d588fe2ffd8928e851b236d107eb77a3a791a78044d5e5025a1a1da1bed0"} +{"hash_algorithm":"sha256","ts":"2026-10-02T21:01:14.692Z","author":"pi-grok","author_source":"asserted","agent_harness":"pi","agent_model":"grok-4.7","agent_model_source":"environment","agent_instance":"b2e29b56b4df792499683ec2","agent_provenance":{"model":{"value":"grok-4.7","source":"environment"},"effort":null,"role":null,"topic":null},"op":"comment_add","patch":[{"op":"add","path":"/metadata/comments/1","value":{"created_at":"2026-10-02T21:01:14.692Z","author":"pi-grok","text":"Cubic review 5395516638 on head b15bf93, land-pass disposition:\n\n4168776167 is valid. Note 3 began with a pasted author=codex,text= label. pm item notes --edit 3 stripped that prefix so the text starts at \"CodeRabbit review comment 4124694533\". The original note_add history line is kept; the edit is a new history event.\n\n4168776160 is refused. tokenize selects LanguageVariant.JSX only when the file identifier ends with .tsx, which is the same rule collectSourceFiles uses to admit sources. analyzeSource's file argument is that identifier, not a free-form module name. Inferring JSX from source text would treat TypeScript generics in .ts files as tags. A caller that passes TSX bytes under a non-.tsx name is outside the gate contract; the walker never does that.\n\n4168776178 is refused. A live jscpd 5.2.1 JSON report stores statistics.formats.typescript.sources and statistics.total.sources as counts, not file maps. Duplicate records name only files that participated in a clone. The one-token probe therefore cannot name a same-size substitution, and the function comment above analyzeWithBinary already states that the JSON report carries only aggregate source counts. jscpd 4 still fails closed with skippedSources file names."}},{"op":"replace","path":"/metadata/updated_at","value":"2026-10-02T21:01:14.692Z"}],"before_hash":"b4938ae343e064210103e5c62041ccb162dd0e5d8a0277e82eefd0684c71796d","after_hash":"943a24283c0fc4a9e027a2557fd4e4b978be2d8e868656266c1f1ad88968435a","item_hash_version":3,"event_class":"substantive","record_hash_version":1,"record_hash":"414625238d6676c88f354884ebd73b4175dbdcde2ee181bb62906835691f7614"} diff --git a/.agents/pm/issues/ops-zq8c.toon b/.agents/pm/issues/ops-zq8c.toon index 2df5655..ded7821 100644 --- a/.agents/pm/issues/ops-zq8c.toon +++ b/.agents/pm/issues/ops-zq8c.toon @@ -6,16 +6,26 @@ status: in_progress priority: 1 tags[4]: "area:quality",docstrings,duplication,tsx created_at: "2026-09-28T15:05:31.893Z" -updated_at: "2026-10-02T18:27:05.767Z" +updated_at: "2026-10-02T21:01:14.692Z" +assignee: pi-grok +claim_principal: pi-grok author: codex estimated_minutes: 180 acceptance_criteria: Directory and single-file docstring analysis find undocumented TSX exports; jscpd 4 and 5 detect TSX clones with the real engines; mismatched scan counts fail closed; release gate passes; companion records exact limitations. -comments[1]{created_at,author,text}: +comments[2]{created_at,author,text}: "2026-10-02T18:27:05.767Z",pi-glm,"Rebase to current main (pi-glm, orchestrator land pass): PR #132 rebased onto origin/main 5ea8406 (releases 2026.9.28-1 and 2026.9.29 merged in cleanly, no conflicts). New head f3e66c3; same three commits. Full gate re-verified on the rebased head: npm run release:check passes (typecheck, lint, duplication, docstrings, coverage 100/100/100/100 across 23 sources, prod audit 0 findings, pack dry run, changelog:check, release-changelog-date, publish-attestation, lifecycle-policy), and pm health --strict-exit --json exits 0 with only stale-in-progress advisories. Re-review requested from CodeRabbit/Greptile/Gemini." -notes[3]{created_at,author,text}: - "2026-09-28T15:05:31.893Z",codex,"TDD: TSX docstring and real jscpd 4 tests failed before the source fix. The candidate passes 449/451 tests with two existing opt-in skips, c8 100/100/100/100, 221/221 documented declarations, zero duplication across 43 sources, zero production audit findings, and real packed npm/Node and Bun TSX acceptance. The local PM CLI SDK pin is 2026.9.28." - "2026-09-28T15:18:38.784Z",codex,"PR #132 first-head review found two valid regressions. Greptile P1 reproduced: a JSX closing tag let the tokenizer hide a later export; the TSX scanner now uses LanguageVariant.JSX and focused tests cover both direct analysis and directory walking. CodeRabbit major reproduced: fast-glob followed symlinked paths while jscpd 5 did not; fast-glob and jscpd 4 now share the no-symlink policy with jscpd 5, with real 4/5 symlink fixtures. Focused tests, build, typecheck, lint, and docstrings pass; full exact-head gate and packed acceptance remain pending." - "2026-09-28T16:48:08.764Z","harness:codex","author=codex,text=CodeRabbit review comment 4124694533 reproduced a jscpd 5.2.1 ambient .jscpd.json threshold failure: primary 200-token scan passed, one-token source probe detected 81.2% duplication and exited 1 before reading its count. A real-binary regression failed first. The fix resolves the repo root before launching jscpd and runs both canonical scans from an isolated output directory, so package duplicationGate remains authoritative. Focused test now passes, full release:check exits 0 with 100% on all four measured coverage dimensions, zero prod audit findings, and fresh packed npm/Node and Bun imports both report two complete sources and zero primary clones." + "2026-10-02T21:01:14.692Z",pi-grok,"Cubic review 5395516638 on head b15bf93, land-pass disposition:\n\n4168776167 is valid. Note 3 began with a pasted author=codex,text= label. pm item notes --edit 3 stripped that prefix so the text starts at \"CodeRabbit review comment 4124694533\". The original note_add history line is kept; the edit is a new history event.\n\n4168776160 is refused. tokenize selects LanguageVariant.JSX only when the file identifier ends with .tsx, which is the same rule collectSourceFiles uses to admit sources. analyzeSource's file argument is that identifier, not a free-form module name. Inferring JSX from source text would treat TypeScript generics in .ts files as tags. A caller that passes TSX bytes under a non-.tsx name is outside the gate contract; the walker never does that.\n\n4168776178 is refused. A live jscpd 5.2.1 JSON report stores statistics.formats.typescript.sources and statistics.total.sources as counts, not file maps. Duplicate records name only files that participated in a clone. The one-token probe therefore cannot name a same-size substitution, and the function comment above analyzeWithBinary already states that the JSON report carries only aggregate source counts. jscpd 4 still fails closed with skippedSources file names." +notes[3]: + - created_at: "2026-09-28T15:05:31.893Z" + author: codex + text: "TDD: TSX docstring and real jscpd 4 tests failed before the source fix. The candidate passes 449/451 tests with two existing opt-in skips, c8 100/100/100/100, 221/221 documented declarations, zero duplication across 43 sources, zero production audit findings, and real packed npm/Node and Bun TSX acceptance. The local PM CLI SDK pin is 2026.9.28." + - created_at: "2026-09-28T15:18:38.784Z" + author: codex + text: "PR #132 first-head review found two valid regressions. Greptile P1 reproduced: a JSX closing tag let the tokenizer hide a later export; the TSX scanner now uses LanguageVariant.JSX and focused tests cover both direct analysis and directory walking. CodeRabbit major reproduced: fast-glob followed symlinked paths while jscpd 5 did not; fast-glob and jscpd 4 now share the no-symlink policy with jscpd 5, with real 4/5 symlink fixtures. Focused tests, build, typecheck, lint, and docstrings pass; full exact-head gate and packed acceptance remain pending." + - created_at: "2026-09-28T16:48:08.764Z" + author: "harness:codex" + text: "CodeRabbit review comment 4124694533 reproduced a jscpd 5.2.1 ambient .jscpd.json threshold failure: primary 200-token scan passed, one-token source probe detected 81.2% duplication and exited 1 before reading its count. A real-binary regression failed first. The fix resolves the repo root before launching jscpd and runs both canonical scans from an isolated output directory, so package duplicationGate remains authoritative. Focused test now passes, full release:check exits 0 with 100% on all four measured coverage dimensions, zero prod audit findings, and fresh packed npm/Node and Bun imports both report two complete sources and zero primary clones." + edited_at: "2026-10-02T21:01:02.968Z" files[5]{path,scope,note}: docstrings.ts,project,TSX source walker duplication.ts,project,Both jscpd engines and source-count verification From 8ae094a066a542113f04dd4a9716205f106bd42c Mon Sep 17 00:00:00 2001 From: SteveBot <1153461+unbraind@users.noreply.github.com> Date: Fri, 2 Oct 2026 23:09:35 +0200 Subject: [PATCH 6/7] Record the cubic disposition and release the ops-zq8c land-pass claim --- .agents/pm/history/ops-zq8c.jsonl | 2 ++ .agents/pm/issues/ops-zq8c.toon | 7 +++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.agents/pm/history/ops-zq8c.jsonl b/.agents/pm/history/ops-zq8c.jsonl index 275024e..8a2f426 100644 --- a/.agents/pm/history/ops-zq8c.jsonl +++ b/.agents/pm/history/ops-zq8c.jsonl @@ -6,3 +6,5 @@ {"hash_algorithm":"sha256","ts":"2026-10-02T21:00:54.518Z","author":"pi-grok","author_source":"asserted","agent_harness":"pi","agent_model":"grok-4.7","agent_model_source":"environment","agent_instance":"b2e29b56b4df792499683ec2","agent_provenance":{"model":{"value":"grok-4.7","source":"environment"},"effort":null,"role":{"value":"implementer","source":"argv"},"topic":null},"op":"claim","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-10-02T21:00:54.518Z"},{"op":"add","path":"/metadata/assignee","value":"pi-grok"},{"op":"add","path":"/metadata/claim_principal","value":"pi-grok"}],"before_hash":"70fe0f6f506a12cb2b1a933e8490747ee338481bc46a9cc97e3a713c0dbe64d3","after_hash":"6bb70a050308be7459ed6ad333480d38f20e8864df5916f26297b1287ed86798","item_hash_version":3,"message":"Land-pass disposition of cubic review on PR 132","event_class":"substantive","record_hash_version":1,"record_hash":"ba1769f5ca20841cd72b834db772daf76d12cd8d0644355d7202ffc7d07ac7d7"} {"hash_algorithm":"sha256","ts":"2026-10-02T21:01:02.968Z","author":"pi-grok","author_source":"asserted","agent_harness":"pi","agent_model":"grok-4.7","agent_model_source":"environment","agent_instance":"b2e29b56b4df792499683ec2","agent_provenance":{"model":{"value":"grok-4.7","source":"environment"},"effort":null,"role":null,"topic":null},"op":"note_edit","patch":[{"op":"replace","path":"/metadata/notes/2/text","value":"CodeRabbit review comment 4124694533 reproduced a jscpd 5.2.1 ambient .jscpd.json threshold failure: primary 200-token scan passed, one-token source probe detected 81.2% duplication and exited 1 before reading its count. A real-binary regression failed first. The fix resolves the repo root before launching jscpd and runs both canonical scans from an isolated output directory, so package duplicationGate remains authoritative. Focused test now passes, full release:check exits 0 with 100% on all four measured coverage dimensions, zero prod audit findings, and fresh packed npm/Node and Bun imports both report two complete sources and zero primary clones."},{"op":"add","path":"/metadata/notes/2/edited_at","value":"2026-10-02T21:01:02.968Z"},{"op":"replace","path":"/metadata/updated_at","value":"2026-10-02T21:01:02.968Z"}],"before_hash":"6bb70a050308be7459ed6ad333480d38f20e8864df5916f26297b1287ed86798","after_hash":"b4938ae343e064210103e5c62041ccb162dd0e5d8a0277e82eefd0684c71796d","item_hash_version":3,"message":"Strip spurious author=codex,text= prefix from the jscpd ambient-config note","event_class":"substantive","record_hash_version":1,"record_hash":"7bd1d588fe2ffd8928e851b236d107eb77a3a791a78044d5e5025a1a1da1bed0"} {"hash_algorithm":"sha256","ts":"2026-10-02T21:01:14.692Z","author":"pi-grok","author_source":"asserted","agent_harness":"pi","agent_model":"grok-4.7","agent_model_source":"environment","agent_instance":"b2e29b56b4df792499683ec2","agent_provenance":{"model":{"value":"grok-4.7","source":"environment"},"effort":null,"role":null,"topic":null},"op":"comment_add","patch":[{"op":"add","path":"/metadata/comments/1","value":{"created_at":"2026-10-02T21:01:14.692Z","author":"pi-grok","text":"Cubic review 5395516638 on head b15bf93, land-pass disposition:\n\n4168776167 is valid. Note 3 began with a pasted author=codex,text= label. pm item notes --edit 3 stripped that prefix so the text starts at \"CodeRabbit review comment 4124694533\". The original note_add history line is kept; the edit is a new history event.\n\n4168776160 is refused. tokenize selects LanguageVariant.JSX only when the file identifier ends with .tsx, which is the same rule collectSourceFiles uses to admit sources. analyzeSource's file argument is that identifier, not a free-form module name. Inferring JSX from source text would treat TypeScript generics in .ts files as tags. A caller that passes TSX bytes under a non-.tsx name is outside the gate contract; the walker never does that.\n\n4168776178 is refused. A live jscpd 5.2.1 JSON report stores statistics.formats.typescript.sources and statistics.total.sources as counts, not file maps. Duplicate records name only files that participated in a clone. The one-token probe therefore cannot name a same-size substitution, and the function comment above analyzeWithBinary already states that the JSON report carries only aggregate source counts. jscpd 4 still fails closed with skippedSources file names."}},{"op":"replace","path":"/metadata/updated_at","value":"2026-10-02T21:01:14.692Z"}],"before_hash":"b4938ae343e064210103e5c62041ccb162dd0e5d8a0277e82eefd0684c71796d","after_hash":"943a24283c0fc4a9e027a2557fd4e4b978be2d8e868656266c1f1ad88968435a","item_hash_version":3,"event_class":"substantive","record_hash_version":1,"record_hash":"414625238d6676c88f354884ebd73b4175dbdcde2ee181bb62906835691f7614"} +{"hash_algorithm":"sha256","ts":"2026-10-02T21:09:30.355Z","author":"pi-grok","author_source":"asserted","agent_harness":"pi","agent_model":"grok-4.7","agent_model_source":"environment","agent_instance":"b2e29b56b4df792499683ec2","agent_provenance":{"model":{"value":"grok-4.7","source":"environment"},"effort":null,"role":null,"topic":null},"op":"comment_add","patch":[{"op":"add","path":"/metadata/comments/2","value":{"created_at":"2026-10-02T21:09:30.355Z","author":"pi-grok","text":"Land-pass gate: the note-only head was included in the rebased pm-ops#134 tree, where npm run release:check exited 0 (455 pass, 0 fail, 2 default-suite real-data skips, c8 100/100/100/100 across 23 sources, changelog:check current). Local changelog:check on this branch also exited 0. pm health --strict-exit --require-merge-drivers exited 0."}},{"op":"replace","path":"/metadata/updated_at","value":"2026-10-02T21:09:30.355Z"}],"before_hash":"943a24283c0fc4a9e027a2557fd4e4b978be2d8e868656266c1f1ad88968435a","after_hash":"bc0fba6546df33850385888a71734e73566dc6329edd23ac5dc73685c60f821c","item_hash_version":3,"event_class":"substantive","record_hash_version":1,"record_hash":"78058cab21d0bb6ea5f8e71acfc16a401e7728606f689efdca0831bbe658f110"} +{"hash_algorithm":"sha256","ts":"2026-10-02T21:09:31.237Z","author":"pi-grok","author_source":"asserted","agent_harness":"pi","agent_model":"grok-4.7","agent_model_source":"environment","agent_instance":"b2e29b56b4df792499683ec2","agent_provenance":{"model":{"value":"grok-4.7","source":"environment"},"effort":null,"role":{"value":"implementer","source":"argv"},"topic":null},"op":"release","patch":[{"op":"remove","path":"/metadata/claim_principal"},{"op":"remove","path":"/metadata/assignee"},{"op":"replace","path":"/metadata/updated_at","value":"2026-10-02T21:09:31.237Z"}],"before_hash":"bc0fba6546df33850385888a71734e73566dc6329edd23ac5dc73685c60f821c","after_hash":"edf362d739f648f1cbdc4927383d5526ec75cd71285b37e3944b4db7145e912d","item_hash_version":3,"message":"Release land-pass claim after cubic disposition and note correction","event_class":"maintenance","record_hash_version":1,"record_hash":"ab7a6cf11caf198621a243c0fd8ec55fd3893da24a39d27db0448accdb0c2668"} diff --git a/.agents/pm/issues/ops-zq8c.toon b/.agents/pm/issues/ops-zq8c.toon index ded7821..0bfb83c 100644 --- a/.agents/pm/issues/ops-zq8c.toon +++ b/.agents/pm/issues/ops-zq8c.toon @@ -6,15 +6,14 @@ status: in_progress priority: 1 tags[4]: "area:quality",docstrings,duplication,tsx created_at: "2026-09-28T15:05:31.893Z" -updated_at: "2026-10-02T21:01:14.692Z" -assignee: pi-grok -claim_principal: pi-grok +updated_at: "2026-10-02T21:09:31.237Z" author: codex estimated_minutes: 180 acceptance_criteria: Directory and single-file docstring analysis find undocumented TSX exports; jscpd 4 and 5 detect TSX clones with the real engines; mismatched scan counts fail closed; release gate passes; companion records exact limitations. -comments[2]{created_at,author,text}: +comments[3]{created_at,author,text}: "2026-10-02T18:27:05.767Z",pi-glm,"Rebase to current main (pi-glm, orchestrator land pass): PR #132 rebased onto origin/main 5ea8406 (releases 2026.9.28-1 and 2026.9.29 merged in cleanly, no conflicts). New head f3e66c3; same three commits. Full gate re-verified on the rebased head: npm run release:check passes (typecheck, lint, duplication, docstrings, coverage 100/100/100/100 across 23 sources, prod audit 0 findings, pack dry run, changelog:check, release-changelog-date, publish-attestation, lifecycle-policy), and pm health --strict-exit --json exits 0 with only stale-in-progress advisories. Re-review requested from CodeRabbit/Greptile/Gemini." "2026-10-02T21:01:14.692Z",pi-grok,"Cubic review 5395516638 on head b15bf93, land-pass disposition:\n\n4168776167 is valid. Note 3 began with a pasted author=codex,text= label. pm item notes --edit 3 stripped that prefix so the text starts at \"CodeRabbit review comment 4124694533\". The original note_add history line is kept; the edit is a new history event.\n\n4168776160 is refused. tokenize selects LanguageVariant.JSX only when the file identifier ends with .tsx, which is the same rule collectSourceFiles uses to admit sources. analyzeSource's file argument is that identifier, not a free-form module name. Inferring JSX from source text would treat TypeScript generics in .ts files as tags. A caller that passes TSX bytes under a non-.tsx name is outside the gate contract; the walker never does that.\n\n4168776178 is refused. A live jscpd 5.2.1 JSON report stores statistics.formats.typescript.sources and statistics.total.sources as counts, not file maps. Duplicate records name only files that participated in a clone. The one-token probe therefore cannot name a same-size substitution, and the function comment above analyzeWithBinary already states that the JSON report carries only aggregate source counts. jscpd 4 still fails closed with skippedSources file names." + "2026-10-02T21:09:30.355Z",pi-grok,"Land-pass gate: the note-only head was included in the rebased pm-ops#134 tree, where npm run release:check exited 0 (455 pass, 0 fail, 2 default-suite real-data skips, c8 100/100/100/100 across 23 sources, changelog:check current). Local changelog:check on this branch also exited 0. pm health --strict-exit --require-merge-drivers exited 0." notes[3]: - created_at: "2026-09-28T15:05:31.893Z" author: codex From 000f6488357f63c265affa591adf929bb059dd04 Mon Sep 17 00:00:00 2001 From: SteveBot <1153461+unbraind@users.noreply.github.com> Date: Sat, 3 Oct 2026 01:43:44 +0200 Subject: [PATCH 7/7] docs(ops): record resumed PR #132 verification --- .agents/pm/history/ops-zq8c.jsonl | 8 ++++++ .agents/pm/issues/ops-zq8c.toon | 46 ++++++++++++++++++++++++------- 2 files changed, 44 insertions(+), 10 deletions(-) diff --git a/.agents/pm/history/ops-zq8c.jsonl b/.agents/pm/history/ops-zq8c.jsonl index 8a2f426..155eacd 100644 --- a/.agents/pm/history/ops-zq8c.jsonl +++ b/.agents/pm/history/ops-zq8c.jsonl @@ -8,3 +8,11 @@ {"hash_algorithm":"sha256","ts":"2026-10-02T21:01:14.692Z","author":"pi-grok","author_source":"asserted","agent_harness":"pi","agent_model":"grok-4.7","agent_model_source":"environment","agent_instance":"b2e29b56b4df792499683ec2","agent_provenance":{"model":{"value":"grok-4.7","source":"environment"},"effort":null,"role":null,"topic":null},"op":"comment_add","patch":[{"op":"add","path":"/metadata/comments/1","value":{"created_at":"2026-10-02T21:01:14.692Z","author":"pi-grok","text":"Cubic review 5395516638 on head b15bf93, land-pass disposition:\n\n4168776167 is valid. Note 3 began with a pasted author=codex,text= label. pm item notes --edit 3 stripped that prefix so the text starts at \"CodeRabbit review comment 4124694533\". The original note_add history line is kept; the edit is a new history event.\n\n4168776160 is refused. tokenize selects LanguageVariant.JSX only when the file identifier ends with .tsx, which is the same rule collectSourceFiles uses to admit sources. analyzeSource's file argument is that identifier, not a free-form module name. Inferring JSX from source text would treat TypeScript generics in .ts files as tags. A caller that passes TSX bytes under a non-.tsx name is outside the gate contract; the walker never does that.\n\n4168776178 is refused. A live jscpd 5.2.1 JSON report stores statistics.formats.typescript.sources and statistics.total.sources as counts, not file maps. Duplicate records name only files that participated in a clone. The one-token probe therefore cannot name a same-size substitution, and the function comment above analyzeWithBinary already states that the JSON report carries only aggregate source counts. jscpd 4 still fails closed with skippedSources file names."}},{"op":"replace","path":"/metadata/updated_at","value":"2026-10-02T21:01:14.692Z"}],"before_hash":"b4938ae343e064210103e5c62041ccb162dd0e5d8a0277e82eefd0684c71796d","after_hash":"943a24283c0fc4a9e027a2557fd4e4b978be2d8e868656266c1f1ad88968435a","item_hash_version":3,"event_class":"substantive","record_hash_version":1,"record_hash":"414625238d6676c88f354884ebd73b4175dbdcde2ee181bb62906835691f7614"} {"hash_algorithm":"sha256","ts":"2026-10-02T21:09:30.355Z","author":"pi-grok","author_source":"asserted","agent_harness":"pi","agent_model":"grok-4.7","agent_model_source":"environment","agent_instance":"b2e29b56b4df792499683ec2","agent_provenance":{"model":{"value":"grok-4.7","source":"environment"},"effort":null,"role":null,"topic":null},"op":"comment_add","patch":[{"op":"add","path":"/metadata/comments/2","value":{"created_at":"2026-10-02T21:09:30.355Z","author":"pi-grok","text":"Land-pass gate: the note-only head was included in the rebased pm-ops#134 tree, where npm run release:check exited 0 (455 pass, 0 fail, 2 default-suite real-data skips, c8 100/100/100/100 across 23 sources, changelog:check current). Local changelog:check on this branch also exited 0. pm health --strict-exit --require-merge-drivers exited 0."}},{"op":"replace","path":"/metadata/updated_at","value":"2026-10-02T21:09:30.355Z"}],"before_hash":"943a24283c0fc4a9e027a2557fd4e4b978be2d8e868656266c1f1ad88968435a","after_hash":"bc0fba6546df33850385888a71734e73566dc6329edd23ac5dc73685c60f821c","item_hash_version":3,"event_class":"substantive","record_hash_version":1,"record_hash":"78058cab21d0bb6ea5f8e71acfc16a401e7728606f689efdca0831bbe658f110"} {"hash_algorithm":"sha256","ts":"2026-10-02T21:09:31.237Z","author":"pi-grok","author_source":"asserted","agent_harness":"pi","agent_model":"grok-4.7","agent_model_source":"environment","agent_instance":"b2e29b56b4df792499683ec2","agent_provenance":{"model":{"value":"grok-4.7","source":"environment"},"effort":null,"role":{"value":"implementer","source":"argv"},"topic":null},"op":"release","patch":[{"op":"remove","path":"/metadata/claim_principal"},{"op":"remove","path":"/metadata/assignee"},{"op":"replace","path":"/metadata/updated_at","value":"2026-10-02T21:09:31.237Z"}],"before_hash":"bc0fba6546df33850385888a71734e73566dc6329edd23ac5dc73685c60f821c","after_hash":"edf362d739f648f1cbdc4927383d5526ec75cd71285b37e3944b4db7145e912d","item_hash_version":3,"message":"Release land-pass claim after cubic disposition and note correction","event_class":"maintenance","record_hash_version":1,"record_hash":"ab7a6cf11caf198621a243c0fd8ec55fd3893da24a39d27db0448accdb0c2668"} +{"hash_algorithm":"sha256","ts":"2026-10-02T23:41:33.313Z","author":"codex-sol-land","author_source":"asserted","agent_harness":"codex","agent_model":"gpt-6.1-sol","agent_model_source":"probe","agent_instance":"6edbeed2935f1e5c041f14f3","agent_provenance":{"model":{"value":"gpt-6.1-sol","source":"probe"},"effort":{"value":"high","source":"probe"},"role":{"value":"implementer","source":"argv"},"topic":null},"op":"claim","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-10-02T23:41:33.313Z"},{"op":"add","path":"/metadata/assignee","value":"codex-sol-land"},{"op":"add","path":"/metadata/claim_principal","value":"codex-sol-land"}],"before_hash":"edf362d739f648f1cbdc4927383d5526ec75cd71285b37e3944b4db7145e912d","after_hash":"adc8d203e03387ed07f49ac276bbc67d1826319e8a340eb5743ab7be6e72af8f","item_hash_version":3,"message":"Authorized restart of fleet PR preparation; earlier stopped-agent history and dispositions are retained.","context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"effort":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"version":{"status":"unavailable","reason":"harness_unavailable","resolver":"ai_agent_version","rule_version":"v1"}}},"event_class":"substantive","record_hash_version":1,"record_hash":"cbb17cadeefb3590f8c7357fe5f1473733374971a0de543126b52c3da85e0676"} +{"hash_algorithm":"sha256","ts":"2026-10-02T23:41:34.683Z","author":"codex-sol-land","author_source":"asserted","agent_harness":"codex","agent_model":"gpt-6.1-sol","agent_model_source":"probe","agent_instance":"6edbeed2935f1e5c041f14f3","agent_provenance":{"model":{"value":"gpt-6.1-sol","source":"probe"},"effort":{"value":"high","source":"probe"},"role":null,"topic":null},"op":"comment_add","patch":[{"op":"add","path":"/metadata/comments/3","value":{"created_at":"2026-10-02T23:41:34.683Z","author":"codex-sol-land","text":"Resumed PR #132 from 8ae094a066a542113f04dd4a9716205f106bd42c. Rebase onto current main yields 8ae094a066a542113f04dd4a9716205f106bd42c. All existing bot artifacts and restart-era owner replies inspected; no new actionable finding. Preserve earlier fixes and technical refusals. Verifying unchanged CI gates under the shared heavy lock; no merge, release or closure."}},{"op":"replace","path":"/metadata/updated_at","value":"2026-10-02T23:41:34.683Z"}],"before_hash":"adc8d203e03387ed07f49ac276bbc67d1826319e8a340eb5743ab7be6e72af8f","after_hash":"ede60037e4dc4db9db06350efe991fd699605893f5928a0f2a4eaab8cc187b04","item_hash_version":3,"context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"effort":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"version":{"status":"unavailable","reason":"harness_unavailable","resolver":"ai_agent_version","rule_version":"v1"}}},"event_class":"substantive","record_hash_version":1,"record_hash":"803d59075e7aa66f81528cebe77d37667d235b540537cf756dc61c06d91249c3"} +{"hash_algorithm":"sha256","ts":"2026-10-02T23:41:35.324Z","author":"codex-sol-land","author_source":"asserted","agent_harness":"codex","agent_model":"gpt-6.1-sol","agent_model_source":"probe","agent_instance":"6edbeed2935f1e5c041f14f3","agent_provenance":{"model":{"value":"gpt-6.1-sol","source":"probe"},"effort":{"value":"high","source":"probe"},"role":null,"topic":null},"op":"files_add","patch":[{"op":"replace","path":"/metadata/files/4/note","value":"Real jscpd 4 and 5 TSX acceptance"},{"op":"replace","path":"/metadata/files/4/path","value":"test/lint-and-duplication-gates.test.ts"},{"op":"replace","path":"/metadata/files/3/note","value":"TSX docstring regression"},{"op":"replace","path":"/metadata/files/3/path","value":"test/docstrings.test.ts"},{"op":"replace","path":"/metadata/files/2/note","value":"Updated consumer guidance"},{"op":"replace","path":"/metadata/files/2/path","value":"README.md"},{"op":"replace","path":"/metadata/updated_at","value":"2026-10-02T23:41:35.324Z"}],"before_hash":"ede60037e4dc4db9db06350efe991fd699605893f5928a0f2a4eaab8cc187b04","after_hash":"db57ea4eab0b1d33d2e13b3d8a7e2a2b8ba96db76a0717f195b1cf093f34a48c","item_hash_version":3,"context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"effort":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"version":{"status":"unavailable","reason":"harness_unavailable","resolver":"ai_agent_version","rule_version":"v1"}}},"event_class":"maintenance","record_hash_version":1,"record_hash":"86aa23318d2009a693428402e889b9e99494b8a45e752c470bb96445563f7c05"} +{"hash_algorithm":"sha256","ts":"2026-10-02T23:41:35.921Z","author":"codex-sol-land","author_source":"asserted","agent_harness":"codex","agent_model":"gpt-6.1-sol","agent_model_source":"probe","agent_instance":"6edbeed2935f1e5c041f14f3","agent_provenance":{"model":{"value":"gpt-6.1-sol","source":"probe"},"effort":{"value":"high","source":"probe"},"role":null,"topic":null},"op":"docs_add","patch":[{"op":"add","path":"/metadata/docs/3","value":{"path":"https://github.com/unbraind/pm-ops/pull/132","scope":"project"}},{"op":"replace","path":"/metadata/updated_at","value":"2026-10-02T23:41:35.921Z"}],"before_hash":"db57ea4eab0b1d33d2e13b3d8a7e2a2b8ba96db76a0717f195b1cf093f34a48c","after_hash":"04895f282a2f7c7932b9d9488c2b16ac4e486ab2c49fa5ec25c7f1226a41744c","item_hash_version":3,"context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"effort":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"version":{"status":"unavailable","reason":"harness_unavailable","resolver":"ai_agent_version","rule_version":"v1"}}},"event_class":"maintenance","record_hash_version":1,"record_hash":"51e91bd9b26f8f6dd9c2722bd6c30024a015a5c2d0ae4d9b807b5643657dac49"} +{"hash_algorithm":"sha256","ts":"2026-10-02T23:41:36.980Z","author":"codex-sol-land","author_source":"asserted","agent_harness":"codex","agent_model":"gpt-6.1-sol","agent_model_source":"probe","agent_instance":"6edbeed2935f1e5c041f14f3","agent_provenance":{"model":{"value":"gpt-6.1-sol","source":"probe"},"effort":{"value":"high","source":"probe"},"role":null,"topic":null},"op":"tests_add","patch":[{"op":"add","path":"/metadata/tests/1","value":{"command":"node --test test/lint-and-duplication-gates.test.ts","scope":"project","timeout_seconds":120,"provenance":{"author":"codex-sol-land","created_at":"2026-10-02T23:41:36.955Z","source_kind":"local_mutation","source_ref":"fix/pm-ops-tsx-quality-gates-2026-09-28"}}},{"op":"replace","path":"/metadata/updated_at","value":"2026-10-02T23:41:36.980Z"}],"before_hash":"04895f282a2f7c7932b9d9488c2b16ac4e486ab2c49fa5ec25c7f1226a41744c","after_hash":"6ac1d4bdc419a042e00f1b4d12fc8e9c345b09a321e0265fbb3ec6a3eb2bbe51","item_hash_version":3,"context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"effort":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"version":{"status":"unavailable","reason":"harness_unavailable","resolver":"ai_agent_version","rule_version":"v1"}}},"event_class":"maintenance","record_hash_version":1,"record_hash":"fbbdd96e2744a71faa67841bbcfde4f0fdef57480356d02f35c6df5da14fee10"} +{"hash_algorithm":"sha256","ts":"2026-10-02T23:43:43.564Z","author":"codex-sol-land","author_source":"asserted","agent_harness":"codex","agent_model":"gpt-6.1-sol","agent_model_source":"probe","agent_instance":"6edbeed2935f1e5c041f14f3","agent_provenance":{"model":{"value":"gpt-6.1-sol","source":"probe"},"effort":{"value":"high","source":"probe"},"role":null,"topic":null},"op":"comment_add","patch":[{"op":"add","path":"/metadata/comments/4","value":{"created_at":"2026-10-02T23:43:43.564Z","author":"codex-sol-land","text":"Resumed verification: npm ci, current-base rebase, fresh committed-dist comparison, strict local tracker health with required merge drivers, npm run release:check, and bun install --no-save all passed. Full gate: 454 tests, 452 pass, 2 skips; configured coverage thresholds unchanged. PM-linked test/lint-and-duplication-gates.test.ts passed. Earlier findings and technical refusals retained; no new source fix was needed in this restart. Exact pushed-head CI and substantive reviewer availability remain separate checks; no merge, release, publication or item closure."}},{"op":"replace","path":"/metadata/updated_at","value":"2026-10-02T23:43:43.564Z"}],"before_hash":"6ac1d4bdc419a042e00f1b4d12fc8e9c345b09a321e0265fbb3ec6a3eb2bbe51","after_hash":"214a528505a9b6a745c3b0a6903ce481c69e3b1bf4ba409a640859772b51077b","item_hash_version":3,"context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"effort":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"version":{"status":"unavailable","reason":"harness_unavailable","resolver":"ai_agent_version","rule_version":"v1"}}},"event_class":"substantive","record_hash_version":1,"record_hash":"1b739575d76411204a9906c44cff2d620b3aceeb1555d2656fcdb5eac9ec7aff"} +{"hash_algorithm":"sha256","ts":"2026-10-02T23:43:44.146Z","author":"codex-sol-land","author_source":"asserted","agent_harness":"codex","agent_model":"gpt-6.1-sol","agent_model_source":"probe","agent_instance":"6edbeed2935f1e5c041f14f3","agent_provenance":{"model":{"value":"gpt-6.1-sol","source":"probe"},"effort":{"value":"high","source":"probe"},"role":{"value":"implementer","source":"argv"},"topic":null},"op":"update","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-10-02T23:43:44.146Z"},{"op":"replace","path":"/metadata/status","value":"blocked"}],"before_hash":"214a528505a9b6a745c3b0a6903ce481c69e3b1bf4ba409a640859772b51077b","after_hash":"698bf16317f0d2bc627c8c728f6ab62bcce054de2d451a317fb809a678575cc2","item_hash_version":3,"context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"effort":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"version":{"status":"unavailable","reason":"harness_unavailable","resolver":"ai_agent_version","rule_version":"v1"}}},"event_class":"substantive","record_hash_version":1,"record_hash":"839063708974060c9716a4a3416b3011ce9fe4412e9088c57ec1df6184fded8a"} +{"hash_algorithm":"sha256","ts":"2026-10-02T23:43:44.706Z","author":"codex-sol-land","author_source":"asserted","agent_harness":"codex","agent_model":"gpt-6.1-sol","agent_model_source":"probe","agent_instance":"6edbeed2935f1e5c041f14f3","agent_provenance":{"model":{"value":"gpt-6.1-sol","source":"probe"},"effort":{"value":"high","source":"probe"},"role":{"value":"implementer","source":"argv"},"topic":null},"op":"release","patch":[{"op":"remove","path":"/metadata/claim_principal"},{"op":"remove","path":"/metadata/assignee"},{"op":"replace","path":"/metadata/updated_at","value":"2026-10-02T23:43:44.706Z"}],"before_hash":"698bf16317f0d2bc627c8c728f6ab62bcce054de2d451a317fb809a678575cc2","after_hash":"aa8a30588c14ebc7b9b8043d5917583e80c8e4420e005587e700198a3f5f48b7","item_hash_version":3,"context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"effort":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"version":{"status":"unavailable","reason":"harness_unavailable","resolver":"ai_agent_version","rule_version":"v1"}}},"event_class":"maintenance","record_hash_version":1,"record_hash":"cfa04ad60e9bf7cfd6bcb729ba90fb337ddf15d328c9f11ab9d40373c3b79e65"} diff --git a/.agents/pm/issues/ops-zq8c.toon b/.agents/pm/issues/ops-zq8c.toon index 0bfb83c..11ac3cb 100644 --- a/.agents/pm/issues/ops-zq8c.toon +++ b/.agents/pm/issues/ops-zq8c.toon @@ -2,18 +2,20 @@ id: ops-zq8c title: Include TSX in docstring and duplication gates with verified source counts description: "GitHub #128: pm-ops docstring and duplication gates silently omit TSX sources. Make both engines scan TSX, prove source-count completeness, and certify the exact package head." type: Issue -status: in_progress +status: blocked priority: 1 tags[4]: "area:quality",docstrings,duplication,tsx created_at: "2026-09-28T15:05:31.893Z" -updated_at: "2026-10-02T21:09:31.237Z" +updated_at: "2026-10-02T23:43:44.706Z" author: codex estimated_minutes: 180 acceptance_criteria: Directory and single-file docstring analysis find undocumented TSX exports; jscpd 4 and 5 detect TSX clones with the real engines; mismatched scan counts fail closed; release gate passes; companion records exact limitations. -comments[3]{created_at,author,text}: +comments[5]{created_at,author,text}: "2026-10-02T18:27:05.767Z",pi-glm,"Rebase to current main (pi-glm, orchestrator land pass): PR #132 rebased onto origin/main 5ea8406 (releases 2026.9.28-1 and 2026.9.29 merged in cleanly, no conflicts). New head f3e66c3; same three commits. Full gate re-verified on the rebased head: npm run release:check passes (typecheck, lint, duplication, docstrings, coverage 100/100/100/100 across 23 sources, prod audit 0 findings, pack dry run, changelog:check, release-changelog-date, publish-attestation, lifecycle-policy), and pm health --strict-exit --json exits 0 with only stale-in-progress advisories. Re-review requested from CodeRabbit/Greptile/Gemini." "2026-10-02T21:01:14.692Z",pi-grok,"Cubic review 5395516638 on head b15bf93, land-pass disposition:\n\n4168776167 is valid. Note 3 began with a pasted author=codex,text= label. pm item notes --edit 3 stripped that prefix so the text starts at \"CodeRabbit review comment 4124694533\". The original note_add history line is kept; the edit is a new history event.\n\n4168776160 is refused. tokenize selects LanguageVariant.JSX only when the file identifier ends with .tsx, which is the same rule collectSourceFiles uses to admit sources. analyzeSource's file argument is that identifier, not a free-form module name. Inferring JSX from source text would treat TypeScript generics in .ts files as tags. A caller that passes TSX bytes under a non-.tsx name is outside the gate contract; the walker never does that.\n\n4168776178 is refused. A live jscpd 5.2.1 JSON report stores statistics.formats.typescript.sources and statistics.total.sources as counts, not file maps. Duplicate records name only files that participated in a clone. The one-token probe therefore cannot name a same-size substitution, and the function comment above analyzeWithBinary already states that the JSON report carries only aggregate source counts. jscpd 4 still fails closed with skippedSources file names." "2026-10-02T21:09:30.355Z",pi-grok,"Land-pass gate: the note-only head was included in the rebased pm-ops#134 tree, where npm run release:check exited 0 (455 pass, 0 fail, 2 default-suite real-data skips, c8 100/100/100/100 across 23 sources, changelog:check current). Local changelog:check on this branch also exited 0. pm health --strict-exit --require-merge-drivers exited 0." + "2026-10-02T23:41:34.683Z",codex-sol-land,"Resumed PR #132 from 8ae094a066a542113f04dd4a9716205f106bd42c. Rebase onto current main yields 8ae094a066a542113f04dd4a9716205f106bd42c. All existing bot artifacts and restart-era owner replies inspected; no new actionable finding. Preserve earlier fixes and technical refusals. Verifying unchanged CI gates under the shared heavy lock; no merge, release or closure." + "2026-10-02T23:43:43.564Z",codex-sol-land,"Resumed verification: npm ci, current-base rebase, fresh committed-dist comparison, strict local tracker health with required merge drivers, npm run release:check, and bun install --no-save all passed. Full gate: 454 tests, 452 pass, 2 skips; configured coverage thresholds unchanged. PM-linked test/lint-and-duplication-gates.test.ts passed. Earlier findings and technical refusals retained; no new source fix was needed in this restart. Exact pushed-head CI and substantive reviewer availability remain separate checks; no merge, release, publication or item closure." notes[3]: - created_at: "2026-09-28T15:05:31.893Z" author: codex @@ -28,13 +30,37 @@ notes[3]: files[5]{path,scope,note}: docstrings.ts,project,TSX source walker duplication.ts,project,Both jscpd engines and source-count verification + README.md,project,Updated consumer guidance test/docstrings.test.ts,project,TSX docstring regression test/lint-and-duplication-gates.test.ts,project,Real jscpd 4 and 5 TSX acceptance - README.md,project,Updated consumer guidance -tests[1]{command,path,scope,timeout_seconds,provenance{author,created_at,source_kind,source_ref}}: - "npm run release:check",package.json,project,900,codex,"2026-09-28T15:05:31.893Z",local_mutation,fix/pm-ops-tsx-quality-gates-2026-09-28 -docs[3]{path,scope,note}: - "https://github.com/unbraind/pm-ops/issues/128",global,Source issue and reproduction - "https://github.com/unbraind/pm-ops/pull/132#discussion_r4123846054",global,Greptile JSX closing-tag finding - "https://github.com/unbraind/pm-ops/pull/132#discussion_r4123865252",global,CodeRabbit symlink scope finding +tests[2]: + - command: "npm run release:check" + path: package.json + scope: project + timeout_seconds: 900 + provenance: + author: codex + created_at: "2026-09-28T15:05:31.893Z" + source_kind: local_mutation + source_ref: fix/pm-ops-tsx-quality-gates-2026-09-28 + - command: node --test test/lint-and-duplication-gates.test.ts + scope: project + timeout_seconds: 120 + provenance: + author: codex-sol-land + created_at: "2026-10-02T23:41:36.955Z" + source_kind: local_mutation + source_ref: fix/pm-ops-tsx-quality-gates-2026-09-28 +docs[4]: + - path: "https://github.com/unbraind/pm-ops/issues/128" + scope: global + note: Source issue and reproduction + - path: "https://github.com/unbraind/pm-ops/pull/132#discussion_r4123846054" + scope: global + note: Greptile JSX closing-tag finding + - path: "https://github.com/unbraind/pm-ops/pull/132#discussion_r4123865252" + scope: global + note: CodeRabbit symlink scope finding + - path: "https://github.com/unbraind/pm-ops/pull/132" + scope: project body: ""