@fairfox/polly 0.83.0 → 0.84.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/tools/bdd/src/cli.js +23 -19
- package/dist/tools/bdd/src/cli.js.map +4 -4
- package/dist/tools/bdd/src/index.js +23 -19
- package/dist/tools/bdd/src/index.js.map +4 -4
- package/dist/tools/bdd/src/types.d.ts +7 -0
- package/dist/tools/verify/src/cli.js +73 -25
- package/dist/tools/verify/src/cli.js.map +4 -4
- package/package.json +1 -1
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
"/**\n * Parse `.feature` files into the runner's normalized AST.\n *\n * Thin wrapper over `@cucumber/gherkin` (parser only — no cucumber runtime):\n * we keep our own {@link ParsedFeature} shape so the rest of the tool never\n * touches the gherkin message types, and swapping the parser stays a one-file\n * change. Responsibilities beyond raw parsing:\n * - normalize And/But to the preceding concrete keyword (Given/When/Then);\n * - fold Background steps into a feature-level list;\n * - expand each Scenario Outline into one concrete scenario per Examples row.\n */\nimport { AstBuilder, GherkinClassicTokenMatcher, Parser } from \"@cucumber/gherkin\";\nimport type { GherkinDocument, Scenario } from \"@cucumber/messages\";\nimport { IdGenerator } from \"@cucumber/messages\";\nimport type { ParsedFeature, ParsedScenario, ParsedStep, StepKeyword } from \"./types.ts\";\n\nfunction newParser() {\n return new Parser(new AstBuilder(IdGenerator.uuid()), new GherkinClassicTokenMatcher());\n}\n\n/** And/But inherit the previous concrete keyword; a leading And/But defaults to Given. */\nfunction normalizeKeyword(raw: string, prev: StepKeyword | null): StepKeyword {\n const k = raw.trim().toLowerCase();\n if (k === \"given\") return \"given\";\n if (k === \"when\") return \"when\";\n if (k === \"then\") return \"then\";\n return prev ?? \"given\";\n}\n\ninterface RawStep {\n keyword: string;\n text: string;\n location?: { line?: number };\n}\n\nfunction normalizeSteps(rawSteps: readonly RawStep[]): ParsedStep[] {\n const out: ParsedStep[] = [];\n let prev: StepKeyword | null = null;\n for (const s of rawSteps) {\n const keyword = normalizeKeyword(s.keyword, prev);\n prev = keyword;\n out.push({\n keyword,\n rawKeyword: s.keyword.trim(),\n text: s.text.trim(),\n line: s.location?.line ?? 0,\n });\n }\n return out;\n}\n\nfunction tagNames(tags: ReadonlyArray<{ name: string }> | undefined): string[] {\n return (tags ?? []).map((t) => t.name.replace(/^@/, \"\"));\n}\n\n/** Substitute `<placeholder>` cells from an Examples row into step text. */\nfunction fillOutline(text: string, headers: string[], cells: string[]): string {\n let filled = text;\n headers.forEach((h, i) => {\n filled = filled.split(`<${h}>`).join(cells[i] ?? \"\");\n });\n return filled;\n}\n\n/** A plain scenario, or one concrete scenario per Scenario Outline Examples row. */\nfunction buildScenarios(sc: Scenario): ParsedScenario[] {\n const baseSteps = sc.steps ?? [];\n const tags = tagNames(sc.tags);\n const examples = sc.examples ?? [];\n\n if (examples.length === 0) {\n return [\n { name: sc.name, tags, steps: normalizeSteps(baseSteps), line: sc.location?.line ?? 0 },\n ];\n }\n\n const out: ParsedScenario[] = [];\n for (const ex of examples) {\n const headers = (ex.tableHeader?.cells ?? []).map((c) => c.value);\n for (const row of ex.tableBody ?? []) {\n const cells = (row.cells ?? []).map((c) => c.value);\n const rowSteps = baseSteps.map((s) => ({\n keyword: s.keyword,\n text: fillOutline(s.text, headers, cells),\n location: s.location,\n }));\n const label = headers.map((h, i) => `${h}=${cells[i] ?? \"\"}`).join(\", \");\n out.push({\n name: `${sc.name} [${label}]`,\n tags: [...tags, ...tagNames(ex.tags)],\n steps: normalizeSteps(rowSteps),\n line: row.location?.line ?? sc.location?.line ?? 0,\n fromOutline: true,\n });\n }\n }\n return out;\n}\n\nexport function parseFeatureText(text: string, file: string): ParsedFeature {\n const doc: GherkinDocument = newParser().parse(text);\n const feature = doc.feature;\n if (!feature) {\n return { name: \"\", description: \"\", tags: [], background: [], scenarios: [], file };\n }\n\n let background: ParsedStep[] = [];\n const scenarios: ParsedScenario[] = [];\n\n for (const child of feature.children ?? []) {\n if (child.background) {\n background = normalizeSteps(child.background.steps ?? []);\n } else if (child.scenario) {\n scenarios.push(...buildScenarios(child.scenario));\n }\n }\n\n return {\n name: feature.name,\n description: (feature.description ?? \"\").trim(),\n tags: tagNames(feature.tags),\n background,\n scenarios,\n file,\n };\n}\n\nexport async function parseFeatureFile(path: string): Promise<ParsedFeature> {\n const text = await Bun.file(path).text();\n return parseFeatureText(text, path);\n}\n",
|
|
14
14
|
"/**\n * The step-binding registry and matcher.\n *\n * `defineStep()` is the consumer-facing keystone: one call registers a binding\n * that the runner executes (`given`/`when`/`then`) AND the verify extractor\n * reads (`message`/`stateExpr`). `defineWorld()` records how to build and\n * cold-reset the real-factory world.\n *\n * Patterns use a small Cucumber-expression subset: `{string}`, `{int}`,\n * `{float}`, `{word}`. Everything else is matched literally. That covers\n * declarative steps without dragging in the full cucumber-expressions library.\n *\n * The registry lives on `globalThis`, not in a module-level array, on purpose:\n * `polly bdd` ships as two bundles (the CLI and the `@fairfox/polly/bdd`\n * library export). `build-lib` runs with `splitting: false`, so this module is\n * *inlined separately into each bundle* — a module-level array would give the\n * runner and the consumer's `defineWorld` two different registries. A single\n * global slot is the standard cross-bundle-singleton fix.\n */\nimport type { StepBinding, StepKeyword, WorldDef } from \"./types.ts\";\n\ninterface CompiledBinding {\n binding: StepBinding;\n regex: RegExp;\n}\n\ninterface RegistryState {\n bindings: CompiledBinding[];\n worldDef: WorldDef | null;\n}\n\ndeclare global {\n // An ambient global declaration — `var` is the only legal form here.\n var __pollyBddRegistry__: RegistryState | undefined;\n}\n\nfunction state(): RegistryState {\n globalThis.__pollyBddRegistry__ ??= { bindings: [], worldDef: null };\n return globalThis.__pollyBddRegistry__;\n}\n\n/** Translate a Cucumber-expression pattern into an anchored RegExp. */\nexport function compilePattern(pattern: string): RegExp {\n // Escape regex metacharacters, then re-introduce capture groups for {tokens}.\n const escaped = pattern.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n const withGroups = escaped\n // {string} — double- or single-quoted; capture the inner text. The\n // alternation MUST be wrapped in a non-capturing group, or the `|` would\n // bind to the whole pattern and shatter any step with two+ tokens.\n .replace(/\\\\\\{string\\\\\\}/g, `(?:\"([^\"]*)\"|'([^']*)')`)\n .replace(/\\\\\\{int\\\\\\}/g, \"([-+]?\\\\d+)\")\n .replace(/\\\\\\{float\\\\\\}/g, \"([-+]?\\\\d*\\\\.?\\\\d+)\")\n .replace(/\\\\\\{word\\\\\\}/g, \"([^\\\\s]+)\");\n return new RegExp(`^${withGroups}$`);\n}\n\nexport function defineStep(binding: StepBinding): void {\n state().bindings.push({ binding, regex: compilePattern(binding.pattern) });\n}\n\nexport function defineWorld(def: WorldDef): void {\n state().worldDef = def;\n}\n\nexport function getWorldDef(): WorldDef | null {\n return state().worldDef;\n}\n\n/** Drop all registrations — used between isolated runs/tests. */\nexport function resetRegistry(): void {\n const s = state();\n s.bindings.length = 0;\n s.worldDef = null;\n}\n\nexport interface StepMatch {\n binding: StepBinding;\n args: string[];\n}\n\n/**\n * Find the binding whose pattern matches `text`. Captured groups become the\n * step arguments (the `{string}` alternation yields two groups per token, so\n * we drop the undefined half).\n *\n * When `keyword` is given, a binding that *has* the callback for that keyword\n * wins over one that merely matches the text — so the same phrase can serve as\n * a `given` precondition in one scenario and a `then` assertion in another.\n */\nexport function matchStep(text: string, keyword?: StepKeyword): StepMatch | null {\n let textOnlyFallback: StepMatch | null = null;\n for (const { binding, regex } of state().bindings) {\n const m = regex.exec(text);\n if (!m) continue;\n const args = m.slice(1).filter((g) => g !== undefined);\n if (!keyword || binding[keyword]) return { binding, args };\n textOnlyFallback ??= { binding, args };\n }\n return textOnlyFallback;\n}\n\n/** Snapshot of all registered bindings (for the verify extractor). */\nexport function registeredBindings(): StepBinding[] {\n return state().bindings.map((c) => c.binding);\n}\n",
|
|
15
15
|
"/**\n * The deeper verify cross-link: reduce each scenario to its *Then-predicate* —\n * the observable post-state a passing scenario claims is reachable.\n *\n * Where {@link extractTraces} (and `polly bdd check`) ask \"does this scenario\n * speak the config's vocabulary?\", a witness asks the *formal* question: \"can\n * the exhaustive model actually reach the state this scenario asserts?\" A\n * scenario whose Then-state the model proves unreachable is a scenario that\n * lies — green in the runner, impossible in the model. `polly verify --witness`\n * turns each predicate produced here into a per-scenario TLC reachability check\n * (tools/verify); this module never runs a model checker — it only reduces.\n *\n * The reduction reuses the same dual-use `stateExpr` metadata the static check\n * reads, but it needs the *whole* predicate, not just the field names. So it\n * substitutes the values captured from the step text into the binding's\n * `stateExpr` placeholders: a `then` bound to `user.role === \"{0}\"` matched\n * against `their role is \"admin\"` reduces to `user.role === \"admin\"`. Then-steps\n * whose `stateExpr` is a bare field reference (no comparison) or absent (a\n * runtime-only assertion like `the change is refused`) are not state-observable\n * outcomes — they are reported as skipped, never silently dropped.\n */\nimport { parseFeatureFile } from \"./parse.ts\";\nimport { matchStep, resetRegistry } from \"./steps.ts\";\n\n/** A scenario reduced to the post-state it claims, ready for the verify witness. */\nexport interface ScenarioWitness {\n feature: string;\n scenario: string;\n tags: string[];\n file: string;\n /**\n * The conjoined Then-predicate (TS, `signal.field` dialect, values\n * substituted) — e.g. `user.loggedIn === true && user.role === \"admin\"`.\n * `null` when the scenario has no state-observable outcome to witness.\n */\n predicate: string | null;\n /** Dotted state-field paths the predicate references (for subsystem routing). */\n fields: string[];\n /** Then-step texts skipped: a bare field ref, no binding, or a runtime-only check. */\n skipped: string[];\n}\n\nasync function loadStepModules(stepFiles: string[]): Promise<void> {\n resetRegistry();\n for (const file of stepFiles) {\n await import(`${file}?t=${Bun.nanoseconds()}`);\n }\n}\n\n/** A predicate is witnessable only if it actually compares — a bare field cannot. */\nconst COMPARISON = /===|!==|==|!=|<=|>=|<|>/;\n\n/** Substitute `{0}`, `{1}`, … in a stateExpr with the values captured from the step text. */\nfunction substituteArgs(expr: string, args: string[]): string {\n return expr.replace(/\\{(\\d+)\\}/g, (whole, index) => args[Number(index)] ?? whole);\n}\n\n/** Dotted identifier paths in an expression, minus string literals and keywords. */\nfunction fieldsIn(expr: string): string[] {\n const noStrings = expr.replace(/\"[^\"]*\"|'[^']*'/g, \"\");\n const ids = noStrings.match(/[a-zA-Z_$][\\w$]*(?:\\.[a-zA-Z_$][\\w$]*)*/g) ?? [];\n const ignore = new Set([\"true\", \"false\", \"null\", \"undefined\", \"length\", \"value\"]);\n return (\n ids\n .filter((id) => !ignore.has(id) && Number.isNaN(Number(id)))\n // Drop a trailing `.length` so routing sees the underlying field (`todos`).\n .map((id) => id.replace(/\\.length$/, \"\"))\n );\n}\n\n/**\n * Reduce one scenario's Then steps to a witness. Conjoins every Then whose\n * bound `stateExpr` resolves to a comparison; records the rest as skipped.\n */\nfunction reduceScenario(\n feature: { name: string; tags: string[]; background: ParsedStepLike[]; file: string },\n scenario: { name: string; tags: string[]; steps: ParsedStepLike[] }\n): ScenarioWitness {\n const thenSteps = [...feature.background, ...scenario.steps].filter((s) => s.keyword === \"then\");\n const conjuncts: string[] = [];\n const skipped: string[] = [];\n\n for (const step of thenSteps) {\n const match = matchStep(step.text, \"then\");\n const expr = match?.binding.stateExpr;\n if (!expr) {\n skipped.push(step.text);\n continue;\n }\n const resolved = substituteArgs(expr, match.args);\n if (!COMPARISON.test(resolved)) {\n // A bare field reference (`todos`, `user.role`) names a field but asserts\n // nothing checkable — useful to `polly bdd check`, not to a witness.\n skipped.push(step.text);\n continue;\n }\n conjuncts.push(resolved);\n }\n\n const predicate = conjuncts.length > 0 ? conjuncts.join(\" && \") : null;\n const fields = [...new Set(conjuncts.flatMap(fieldsIn))];\n return {\n feature: feature.name,\n scenario: scenario.name,\n tags: [...feature.tags, ...scenario.tags],\n file: feature.file,\n predicate,\n fields,\n skipped,\n };\n}\n\ninterface ParsedStepLike {\n keyword: \"given\" | \"when\" | \"then\";\n text: string;\n}\n\n/**\n * Reduce every scenario in the given feature files to a {@link ScenarioWitness}.\n * Step modules are loaded for their `defineStep` side effects (the same import\n * trick {@link extractTraces} uses) so `matchStep` can resolve each Then.\n */\nexport async function extractWitnesses(\n featureFiles: string[],\n stepFiles: string[]\n): Promise<ScenarioWitness[]> {\n await loadStepModules(stepFiles);\n const witnesses: ScenarioWitness[] = [];\n for (const file of featureFiles) {\n const feature = await parseFeatureFile(file);\n for (const scenario of feature.scenarios) {\n witnesses.push(\n reduceScenario(\n {\n name: feature.name,\n tags: feature.tags,\n background: feature.background,\n file: feature.file,\n },\n scenario\n )\n );\n }\n }\n return witnesses;\n}\n",
|
|
16
|
-
"/**\n * The verify half of the BDD reachability witness (`polly verify --witness`).\n *\n * The BDD stratum (tools/bdd) reduces each scenario to its Then-predicate — the\n * post-state a passing scenario claims is reachable, in the runtime\n * `signal.field` dialect (e.g. `user.loggedIn === true && user.role ===\n * \"admin\"`). This module turns one such predicate into a TLC *reachability\n * witness* over the generated subsystem spec:\n *\n * WitnessReachable == ~(\\E ctx \\in Contexts : <predicate over contextStates[ctx]>)\n *\n * The negation makes the witness an invariant TLC can refute:\n * - TLC reports it *violated* ⇒ a state satisfying the predicate is REACHABLE\n * ⇒ the scenario describes a real outcome — honest. The counterexample\n * trace IS the scenario's path through the model.\n * - TLC explores fully with *no violation* ⇒ the predicate is UNREACHABLE\n * ⇒ the scenario asserts a state the model proves impossible — it lies.\n *\n * Why a dedicated translator and not the handler-expression `tsExpressionToTLA`:\n * the BDD dialect drops the `.value` a handler expression carries\n * (`user.loggedIn`, not `user.value.loggedIn`) and a witness only ever needs a\n * flat conjunction of comparisons over state fields. A small, total translator\n * for that grammar is far more predictable than threading the 150-KB generator's\n * mesh/array machinery through a second entry point.\n */\n\n/** The single invariant every generated witness module declares. */\nexport const WITNESS_INVARIANT = \"WitnessReachable\";\n\n/** Raised when a Then-predicate falls outside the witness grammar. */\nexport class WitnessTranslationError extends Error {}\n\n/** JS comparison → TLA+ operator, longest-token-first so `===` wins over `==`. */\nconst COMPARATORS: ReadonlyArray<readonly [string, string]> = [\n [\"===\", \"=\"],\n [\"!==\", \"#\"],\n [\"==\", \"=\"],\n [\"!=\", \"#\"],\n [\">=\", \">=\"],\n [\"<=\", \"<=\"],\n [\">\", \">\"],\n [\"<\", \"<\"],\n];\n\n/** `user.loggedIn` → `user_loggedIn`; the signal name and nested fields join with `_`. */\nfunction flattenField(path: string): string {\n return path.split(\".\").join(\"_\");\n}\n\n/**\n * Translate one operand. A literal (boolean/number/string) maps straight across;\n * a field reference becomes `contextStates[ctx].<flattened>`, and a trailing\n * `.length` becomes TLA+ sequence length `Len(...)`.\n */\nfunction translateOperand(raw: string): string {\n const op = raw.trim();\n if (op === \"true\") return \"TRUE\";\n if (op === \"false\") return \"FALSE\";\n if (/^\"[^\"]*\"$/.test(op)) return op;\n if (/^'[^']*'$/.test(op)) return `\"${op.slice(1, -1)}\"`;\n if (/^[-+]?\\d+(?:\\.\\d+)?$/.test(op)) return op;\n if (!/^[a-zA-Z_$][\\w$]*(?:\\.[a-zA-Z_$][\\w$]*)*$/.test(op)) {\n throw new WitnessTranslationError(`unsupported operand \"${raw}\" in witness predicate`);\n }\n if (op.endsWith(\".length\")) {\n return `Len(contextStates[ctx].${flattenField(op.slice(0, -\".length\".length))})`;\n }\n return `contextStates[ctx].${flattenField(op)}`;\n}\n\n/** Translate a single `lhs <op> rhs` comparison. */\nfunction translateConjunct(conjunct: string): string {\n const text = conjunct.trim();\n for (const [js, tla] of COMPARATORS) {\n const at = text.indexOf(js);\n if (at === -1) continue;\n const lhs = text.slice(0, at);\n const rhs = text.slice(at + js.length);\n return `${translateOperand(lhs)} ${tla} ${translateOperand(rhs)}`;\n }\n throw new WitnessTranslationError(`no comparison operator in witness conjunct \"${conjunct}\"`);\n}\n\n/**\n * Translate a BDD Then-predicate (`&&`-joined comparisons, `signal.field`\n * dialect) into a TLA+ predicate over `contextStates[ctx]`.\n */\nexport function bddPredicateToTLA(predicate: string): string {\n const conjuncts = predicate\n .split(\"&&\")\n .map((c) => c.trim())\n .filter(Boolean);\n if (conjuncts.length === 0) {\n throw new WitnessTranslationError(\"empty witness predicate\");\n }\n return conjuncts.map(translateConjunct).join(\" /\\\\ \");\n}\n\n/** Wrap a translated predicate as the negated-reachability witness invariant. */\nexport function buildWitnessInvariant(tlaPredicate: string): string {\n return `${WITNESS_INVARIANT} == ~(\\\\E ctx \\\\in Contexts : ${tlaPredicate})`;\n}\n\n/**\n * A tiny TLA+ module that EXTENDS the generated subsystem spec and adds the one\n * witness invariant. EXTENDS pulls in every definition and declaration the\n * invariant needs (`Contexts`, `contextStates`, `UserSpec`, `StateConstraint`),\n * so the witness stays non-invasive — the subsystem spec is never edited.\n */\nexport function buildWitnessModule(\n moduleName: string,\n subsystemModule: string,\n tlaPredicate: string\n): string {\n return [\n `---- MODULE ${moduleName} ----`,\n `EXTENDS ${subsystemModule}`,\n \"\",\n buildWitnessInvariant(tlaPredicate),\n \"====\",\n \"\",\n ].join(\"\\n\");\n}\n\n/** The indented, non-comment body lines of a top-level `.cfg` section. */\nfunction sectionBody(cfg: string, header: string): string[] {\n const body: string[] = [];\n let inSection = false;\n for (const line of cfg.split(\"\\n\")) {\n const headerMatch = /^([A-Z_]+)\\b/.exec(line);\n if (headerMatch) {\n inSection = headerMatch[1] === header;\n continue;\n }\n if (!inSection) continue;\n if (line.trim() === \"\" || line.trim().startsWith(\"\\\\*\")) continue;\n body.push(line);\n }\n return body;\n}\n\n/** The inline value of a single-line header (e.g. `SPECIFICATION UserSpec`). */\nfunction headerLine(cfg: string, header: string): string | null {\n for (const line of cfg.split(\"\\n\")) {\n const m = new RegExp(`^${header}\\\\b(.*)$`).exec(line);\n if (m) return line.trimEnd();\n }\n return null;\n}\n\n/**\n * Derive a witness `.cfg` from a subsystem `.cfg`: keep SPECIFICATION,\n * CONSTANTS, CONSTRAINT and SYMMETRY verbatim, swap the INVARIANTS list for the\n * single witness, and drop PROPERTIES (the ensures temporal properties play no\n * part in — and only slow down — a state-reachability check). CONSTRAINT is\n * kept on purpose: StateConstraint prunes the space and is exactly what makes an\n * unreachable outcome provably unreachable (the login-guard case).\n */\nexport function buildWitnessCfg(baseCfg: string): string {\n const spec = headerLine(baseCfg, \"SPECIFICATION\") ?? \"SPECIFICATION UserSpec\";\n const constants = sectionBody(baseCfg, \"CONSTANTS\");\n const constraint = sectionBody(baseCfg, \"CONSTRAINT\");\n const symmetry = sectionBody(baseCfg, \"SYMMETRY\");\n\n const out = [spec, \"\", \"CONSTANTS\", ...constants, \"\", \"INVARIANTS\", ` ${WITNESS_INVARIANT}`];\n if (constraint.length > 0) out.push(\"\", \"CONSTRAINT\", ...constraint);\n if (symmetry.length > 0) out.push(\"\", \"SYMMETRY\", ...symmetry);\n return `${out.join(\"\\n\")}\\n`;\n}\n\n/** A field matches a subsystem state key if either is a dotted prefix of the other. */\nfunction covers(stateKeys: string[], field: string): boolean {\n return stateKeys.some(\n (k) => k === field || field.startsWith(`${k}.`) || k.startsWith(`${field}.`)\n );\n}\n\n/**\n * Route a witness to the one subsystem whose state covers every field it\n * references. Returns the subsystem name, or `null` when no subsystem (or more\n * than one) owns the fields — a cross-subsystem outcome cannot be witnessed in\n * the compositional model, where each subsystem is checked in isolation.\n */\nexport function routeWitness(\n fields: string[],\n subsystems: Record<string, { state: string[] }>\n): string | null {\n if (fields.length === 0) return null;\n const owners = Object.entries(subsystems).filter(([, sub]) =>\n fields.every((f) => covers(sub.state, f))\n );\n const only = owners.length === 1 ? owners[0] : undefined;\n return only ? only[0] : null;\n}\n",
|
|
16
|
+
"/**\n * The verify half of the BDD reachability witness (`polly verify --witness`).\n *\n * The BDD stratum (tools/bdd) reduces each scenario to its Then-predicate — the\n * post-state a passing scenario claims is reachable, in the runtime\n * `signal.field` dialect (e.g. `user.loggedIn === true && user.role ===\n * \"admin\"`). This module turns one such predicate into a TLC *reachability\n * witness* over the generated subsystem spec:\n *\n * WitnessReachable == ~(\\E ctx \\in Contexts : <predicate over contextStates[ctx]>)\n *\n * The negation makes the witness an invariant TLC can refute:\n * - TLC reports it *violated* ⇒ a state satisfying the predicate is REACHABLE\n * ⇒ the scenario describes a real outcome — honest. The counterexample\n * trace IS the scenario's path through the model.\n * - TLC explores fully with *no violation* ⇒ the predicate is UNREACHABLE\n * ⇒ the scenario asserts a state the model proves impossible — it lies.\n *\n * Why a dedicated translator and not the handler-expression `tsExpressionToTLA`:\n * the BDD dialect drops the `.value` a handler expression carries\n * (`user.loggedIn`, not `user.value.loggedIn`) and a witness only ever needs a\n * flat conjunction of comparisons over state fields. A small, total translator\n * for that grammar is far more predictable than threading the 150-KB generator's\n * mesh/array machinery through a second entry point.\n */\n\n/** The single invariant every generated witness module declares. */\nexport const WITNESS_INVARIANT = \"WitnessReachable\";\n\n/** Raised when a Then-predicate falls outside the witness grammar. */\nexport class WitnessTranslationError extends Error {}\n\n/**\n * The two directions a witness can run. A `positive` witness (the default)\n * asserts a *desirable* outcome — it should be reachable. A `forbidden` witness\n * (tag `@forbidden`) asserts an *undesirable* state — it must be unreachable.\n * The TLC mechanism is identical (the negated existential); only the verdict\n * inverts, so the same `bddPredicateToTLA` / module / cfg serve both.\n */\nexport type WitnessPolarity = \"positive\" | \"forbidden\";\n\n/** A scenario tagged `@forbidden` flips the witness into a safety check. */\nexport function witnessPolarity(tags: string[]): WitnessPolarity {\n return tags.includes(\"forbidden\") ? \"forbidden\" : \"positive\";\n}\n\nexport interface WitnessVerdict {\n /** Display status, distinct per polarity so a report never conflates them. */\n status: \"reachable\" | \"unreachable\" | \"excluded\" | \"violated\";\n /** Whether this verdict passes (a forbidden state being unreachable passes). */\n ok: boolean;\n message: string;\n}\n\n/**\n * Map a TLC reachability fact to a pass/fail verdict for the witness's polarity.\n * `reachable` is true when TLC violated the witness invariant — it found a state\n * satisfying the predicate.\n *\n * positive + reachable → honest, the outcome happens (pass)\n * positive + unreachable → the scenario lies (fail)\n * forbidden + unreachable → the bad state is provably impossible (pass)\n * forbidden + reachable → the bad state IS reachable, a defect (fail)\n */\nexport function witnessVerdict(polarity: WitnessPolarity, reachable: boolean): WitnessVerdict {\n if (polarity === \"forbidden\") {\n return reachable\n ? {\n status: \"violated\",\n ok: false,\n message:\n \"the forbidden state is REACHABLE — a defect; the counterexample is the path to it\",\n }\n : { status: \"excluded\", ok: true, message: \"the model proves this state unreachable\" };\n }\n return reachable\n ? { status: \"reachable\", ok: true, message: \"the model reaches this outcome\" }\n : {\n status: \"unreachable\",\n ok: false,\n message: \"the model proves this outcome impossible (the scenario lies)\",\n };\n}\n\n/** JS comparison → TLA+ operator, longest-token-first so `===` wins over `==`. */\nconst COMPARATORS: ReadonlyArray<readonly [string, string]> = [\n [\"===\", \"=\"],\n [\"!==\", \"#\"],\n [\"==\", \"=\"],\n [\"!=\", \"#\"],\n [\">=\", \">=\"],\n [\"<=\", \"<=\"],\n [\">\", \">\"],\n [\"<\", \"<\"],\n];\n\n/** `user.loggedIn` → `user_loggedIn`; the signal name and nested fields join with `_`. */\nfunction flattenField(path: string): string {\n return path.split(\".\").join(\"_\");\n}\n\n/**\n * Translate one operand. A literal (boolean/number/string) maps straight across;\n * a field reference becomes `contextStates[ctx].<flattened>`, and a trailing\n * `.length` becomes TLA+ sequence length `Len(...)`.\n */\nfunction translateOperand(raw: string): string {\n const op = raw.trim();\n if (op === \"true\") return \"TRUE\";\n if (op === \"false\") return \"FALSE\";\n if (/^\"[^\"]*\"$/.test(op)) return op;\n if (/^'[^']*'$/.test(op)) return `\"${op.slice(1, -1)}\"`;\n if (/^[-+]?\\d+(?:\\.\\d+)?$/.test(op)) return op;\n if (!/^[a-zA-Z_$][\\w$]*(?:\\.[a-zA-Z_$][\\w$]*)*$/.test(op)) {\n throw new WitnessTranslationError(`unsupported operand \"${raw}\" in witness predicate`);\n }\n if (op.endsWith(\".length\")) {\n return `Len(contextStates[ctx].${flattenField(op.slice(0, -\".length\".length))})`;\n }\n return `contextStates[ctx].${flattenField(op)}`;\n}\n\n/** Translate a single `lhs <op> rhs` comparison. */\nfunction translateConjunct(conjunct: string): string {\n const text = conjunct.trim();\n for (const [js, tla] of COMPARATORS) {\n const at = text.indexOf(js);\n if (at === -1) continue;\n const lhs = text.slice(0, at);\n const rhs = text.slice(at + js.length);\n return `${translateOperand(lhs)} ${tla} ${translateOperand(rhs)}`;\n }\n throw new WitnessTranslationError(`no comparison operator in witness conjunct \"${conjunct}\"`);\n}\n\n/**\n * Translate a BDD Then-predicate (`&&`-joined comparisons, `signal.field`\n * dialect) into a TLA+ predicate over `contextStates[ctx]`.\n */\nexport function bddPredicateToTLA(predicate: string): string {\n const conjuncts = predicate\n .split(\"&&\")\n .map((c) => c.trim())\n .filter(Boolean);\n if (conjuncts.length === 0) {\n throw new WitnessTranslationError(\"empty witness predicate\");\n }\n return conjuncts.map(translateConjunct).join(\" /\\\\ \");\n}\n\n/** Wrap a translated predicate as the negated-reachability witness invariant. */\nexport function buildWitnessInvariant(tlaPredicate: string): string {\n return `${WITNESS_INVARIANT} == ~(\\\\E ctx \\\\in Contexts : ${tlaPredicate})`;\n}\n\n/**\n * A tiny TLA+ module that EXTENDS the generated subsystem spec and adds the one\n * witness invariant. EXTENDS pulls in every definition and declaration the\n * invariant needs (`Contexts`, `contextStates`, `UserSpec`, `StateConstraint`),\n * so the witness stays non-invasive — the subsystem spec is never edited.\n */\nexport function buildWitnessModule(\n moduleName: string,\n subsystemModule: string,\n tlaPredicate: string\n): string {\n return [\n `---- MODULE ${moduleName} ----`,\n `EXTENDS ${subsystemModule}`,\n \"\",\n buildWitnessInvariant(tlaPredicate),\n \"====\",\n \"\",\n ].join(\"\\n\");\n}\n\n/** The indented, non-comment body lines of a top-level `.cfg` section. */\nfunction sectionBody(cfg: string, header: string): string[] {\n const body: string[] = [];\n let inSection = false;\n for (const line of cfg.split(\"\\n\")) {\n const headerMatch = /^([A-Z_]+)\\b/.exec(line);\n if (headerMatch) {\n inSection = headerMatch[1] === header;\n continue;\n }\n if (!inSection) continue;\n if (line.trim() === \"\" || line.trim().startsWith(\"\\\\*\")) continue;\n body.push(line);\n }\n return body;\n}\n\n/** The inline value of a single-line header (e.g. `SPECIFICATION UserSpec`). */\nfunction headerLine(cfg: string, header: string): string | null {\n for (const line of cfg.split(\"\\n\")) {\n const m = new RegExp(`^${header}\\\\b(.*)$`).exec(line);\n if (m) return line.trimEnd();\n }\n return null;\n}\n\n/**\n * Derive a witness `.cfg` from a subsystem `.cfg`: keep SPECIFICATION,\n * CONSTANTS, CONSTRAINT and SYMMETRY verbatim, swap the INVARIANTS list for the\n * single witness, and drop PROPERTIES (the ensures temporal properties play no\n * part in — and only slow down — a state-reachability check). CONSTRAINT is\n * kept on purpose: StateConstraint prunes the space and is exactly what makes an\n * unreachable outcome provably unreachable (the login-guard case).\n */\nexport function buildWitnessCfg(baseCfg: string): string {\n const spec = headerLine(baseCfg, \"SPECIFICATION\") ?? \"SPECIFICATION UserSpec\";\n const constants = sectionBody(baseCfg, \"CONSTANTS\");\n const constraint = sectionBody(baseCfg, \"CONSTRAINT\");\n const symmetry = sectionBody(baseCfg, \"SYMMETRY\");\n\n const out = [spec, \"\", \"CONSTANTS\", ...constants, \"\", \"INVARIANTS\", ` ${WITNESS_INVARIANT}`];\n if (constraint.length > 0) out.push(\"\", \"CONSTRAINT\", ...constraint);\n if (symmetry.length > 0) out.push(\"\", \"SYMMETRY\", ...symmetry);\n return `${out.join(\"\\n\")}\\n`;\n}\n\n/** A field matches a subsystem state key if either is a dotted prefix of the other. */\nfunction covers(stateKeys: string[], field: string): boolean {\n return stateKeys.some(\n (k) => k === field || field.startsWith(`${k}.`) || k.startsWith(`${field}.`)\n );\n}\n\n/**\n * Route a witness to the one subsystem whose state covers every field it\n * references. Returns the subsystem name, or `null` when no subsystem (or more\n * than one) owns the fields — a cross-subsystem outcome cannot be witnessed in\n * the compositional model, where each subsystem is checked in isolation.\n */\nexport function routeWitness(\n fields: string[],\n subsystems: Record<string, { state: string[] }>\n): string | null {\n if (fields.length === 0) return null;\n const owners = Object.entries(subsystems).filter(([, sub]) =>\n fields.every((f) => covers(sub.state, f))\n );\n const only = owners.length === 1 ? owners[0] : undefined;\n return only ? only[0] : null;\n}\n",
|
|
17
17
|
"// Docker container management for TLA+ verification\n\nimport { spawn } from \"node:child_process\";\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\n\nexport type DockerRunResult = {\n exitCode: number;\n stdout: string;\n stderr: string;\n};\n\nexport class DockerRunner {\n private readonly IMAGE_NAME = \"polly-tla:latest\";\n private readonly DOCKERFILE_PATH = path.join(__dirname, \"../../Dockerfile\");\n\n /**\n * Check if Docker is available and daemon is responsive\n * Throws an error if Docker times out (to distinguish from Docker not being installed)\n */\n async isDockerAvailable(): Promise<boolean> {\n try {\n // Use 'docker info' instead of '--version' to verify daemon is running\n // '--version' only checks the client, not the daemon\n const result = await this.runCommand(\"docker\", [\"info\"], {\n timeout: 5000, // 5 second timeout\n });\n return result.exitCode === 0;\n } catch (error) {\n // Re-throw timeout errors so caller can handle them specially\n if (error instanceof Error && error.message.includes(\"timed out\")) {\n throw error;\n }\n return false;\n }\n }\n\n /**\n * Check if TLA+ image exists\n * Throws an error if Docker times out\n */\n async hasImage(): Promise<boolean> {\n try {\n const result = await this.runCommand(\"docker\", [\"images\", \"-q\", this.IMAGE_NAME], {\n timeout: 10000, // 10 second timeout\n });\n return result.stdout.trim().length > 0;\n } catch (error) {\n // Re-throw timeout errors so caller can handle them specially\n if (error instanceof Error && error.message.includes(\"timed out\")) {\n throw error;\n }\n return false;\n }\n }\n\n /**\n * Build TLA+ image from Dockerfile\n */\n async buildImage(onProgress?: (line: string) => void): Promise<void> {\n const dockerfileDir = path.dirname(this.DOCKERFILE_PATH);\n\n await this.runCommandStreaming(\n \"docker\",\n [\"build\", \"-f\", this.DOCKERFILE_PATH, \"-t\", this.IMAGE_NAME, dockerfileDir],\n onProgress,\n 300000 // 5 minute timeout for building image\n );\n }\n\n /**\n * Pull TLA+ image (deprecated - use buildImage instead)\n */\n async pullImage(onProgress?: (line: string) => void): Promise<void> {\n await this.buildImage(onProgress);\n }\n\n /**\n * Run TLC model checker on a spec\n */\n async runTLC(\n specPath: string,\n options?: {\n workers?: number;\n timeout?: number;\n maxDepth?: number;\n }\n ): Promise<TLCResult> {\n // Ensure spec file exists\n if (!fs.existsSync(specPath)) {\n throw new Error(`Spec file not found: ${specPath}`);\n }\n\n const specDir = path.dirname(specPath);\n const specName = path.basename(specPath, \".tla\");\n const cfgPath = path.join(specDir, `${specName}.cfg`);\n\n // Ensure cfg file exists\n if (!fs.existsSync(cfgPath)) {\n throw new Error(`Config file not found: ${cfgPath}`);\n }\n\n // Clean up any leftover state files from previous interrupted runs.\n // Older versions of the runner let TLC's -metadir default to\n // <work>/states, so stale dirs may still exist on the host bind mount.\n const statesDir = path.join(specDir, \"states\");\n if (fs.existsSync(statesDir)) {\n fs.rmSync(statesDir, { recursive: true, force: true });\n }\n\n // Run TLC in Docker.\n //\n // -metadir points TLC's state pool at a container-internal path\n // (/tmp/states on the overlay filesystem) instead of letting it default to\n // <work>/states, which under our bind mount lands on the host via Docker\n // Desktop's file-share layer (VirtioFS/osxfs). Large runs spill millions of\n // small state-pool files; that layer isn't built for sustained small-file\n // IO and surfaces transient \"No such file or directory\" mid-run failures.\n // Keeping the state pool inside the container hits the native filesystem at\n // native speed, and with --rm + -cleanup it dies with the container, so no\n // multi-GB dirs leak back onto the host. See issue #152.\n const args = [\n \"run\",\n \"--rm\",\n \"-v\",\n `${specDir}:/work`,\n this.IMAGE_NAME,\n \"tlc\",\n \"-workers\",\n `${options?.workers || 1}`,\n \"-cleanup\", // Delete state files after model checking to prevent disk space issues\n \"-metadir\",\n \"/tmp/states\", // container-internal state pool, off the host bind mount (#152)\n ];\n\n // Add depth limit if maxDepth is configured (bounded model checking)\n if (options?.maxDepth !== undefined && options.maxDepth > 0) {\n args.push(\"-depth\", `${options.maxDepth}`);\n }\n\n args.push(`${specName}.tla`);\n\n const result = await this.runCommand(\"docker\", args, {\n timeout: options?.timeout,\n });\n\n return this.parseTLCOutput(result);\n }\n\n /**\n * Parse TLC output\n */\n private parseTLCOutput(result: DockerRunResult): TLCResult {\n const output = result.stdout + result.stderr;\n\n // Check for violations\n const violationMatch = output.match(/Error: Invariant (.*?) is violated/);\n if (violationMatch) {\n return {\n success: false,\n violation: {\n type: \"invariant\",\n name: violationMatch[1],\n trace: this.extractTrace(output),\n },\n output,\n };\n }\n\n // Check for errors\n if (result.exitCode !== 0 || output.includes(\"Error:\")) {\n return {\n success: false,\n error: this.extractError(output),\n output,\n };\n }\n\n // Success\n const statesMatch = output.match(/(\\d+) states generated/);\n const distinctMatch = output.match(/(\\d+) distinct states/);\n\n return {\n success: true,\n stats: {\n statesGenerated: statesMatch?.[1] ? Number.parseInt(statesMatch[1], 10) : 0,\n distinctStates: distinctMatch?.[1] ? Number.parseInt(distinctMatch[1], 10) : 0,\n },\n output,\n };\n }\n\n /**\n * Extract error trace from TLC output\n */\n private extractTrace(output: string): string[] {\n const lines = output.split(\"\\n\");\n const trace: string[] = [];\n let inTrace = false;\n\n for (const line of lines) {\n if (line.includes(\"State \") && line.includes(\":\")) {\n inTrace = true;\n trace.push(line);\n } else if (inTrace) {\n if (line.trim() === \"\" || line.startsWith(\"Error:\")) {\n break;\n }\n trace.push(line);\n }\n }\n\n return trace;\n }\n\n /**\n * Extract error message from TLC output\n */\n private extractError(output: string): string {\n // A state-pool write/read failing against a states/.../<n> path is almost\n // never a real model problem — it's the Docker Desktop file-share layer\n // dropping a small-file IO under sustained load. Since #152 we write the\n // state pool to a container-internal -metadir, so this should no longer\n // occur; if it does, point the consumer at the IO issue rather than letting\n // them chase a phantom spec error.\n if (/StatePool\\w*\\.run/.test(output) && /states\\/.*No such file or directory/.test(output)) {\n return \"TLC state-pool IO failure (states/.../<n>: No such file or directory). This is a Docker filesystem flake, not a spec error — re-run the verification. See issue #152.\";\n }\n\n const errorMatch = output.match(/Error: (.*?)(?:\\n|$)/);\n if (errorMatch?.[1]) {\n return errorMatch[1];\n }\n\n // Look for common error patterns\n if (output.includes(\"Parse Error\")) {\n return \"TLA+ syntax error in specification\";\n }\n if (output.includes(\"Semantic Error\")) {\n return \"Semantic error in specification\";\n }\n\n return \"Unknown error occurred during model checking\";\n }\n\n /**\n * Run a command and return output\n * Public to allow other runners (like SANYRunner) to execute commands\n */\n runCommand(\n command: string,\n args: string[],\n options?: { timeout?: number }\n ): Promise<DockerRunResult> {\n return new Promise((resolve, reject) => {\n const proc = spawn(command, args);\n\n let stdout = \"\";\n let stderr = \"\";\n\n proc.stdout.on(\"data\", (data) => {\n stdout += data.toString();\n });\n\n proc.stderr.on(\"data\", (data) => {\n stderr += data.toString();\n });\n\n // Only set timeout if a timeout value is provided\n const timeoutValue = options?.timeout ?? 0;\n const timeout =\n timeoutValue > 0\n ? setTimeout(() => {\n proc.kill();\n reject(\n new Error(\n `Command timed out after ${Math.floor(timeoutValue / 1000)}s. TLC was still making progress. Consider increasing the timeout or setting timeout: 0 for no timeout.`\n )\n );\n }, timeoutValue)\n : null;\n\n proc.on(\"close\", (exitCode) => {\n if (timeout) clearTimeout(timeout);\n\n resolve({\n exitCode: exitCode || 0,\n stdout,\n stderr,\n });\n });\n\n proc.on(\"error\", (error) => {\n if (timeout) clearTimeout(timeout);\n reject(error);\n });\n });\n }\n\n /**\n * Run a command with streaming output\n */\n private runCommandStreaming(\n command: string,\n args: string[],\n onOutput?: (line: string) => void,\n timeout?: number\n ): Promise<void> {\n return new Promise((resolve, reject) => {\n const proc = spawn(command, args);\n\n // Set up timeout if provided\n const timeoutHandle =\n timeout && timeout > 0\n ? setTimeout(() => {\n proc.kill();\n reject(\n new Error(\n `Command timed out after ${Math.floor(timeout / 1000)}s. Docker may be unresponsive.`\n )\n );\n }, timeout)\n : null;\n\n proc.stdout.on(\"data\", (data) => {\n if (onOutput) {\n const lines = data.toString().split(\"\\n\");\n for (const line of lines) {\n if (line.trim()) {\n onOutput(line.trim());\n }\n }\n }\n });\n\n proc.stderr.on(\"data\", (data) => {\n if (onOutput) {\n const lines = data.toString().split(\"\\n\");\n for (const line of lines) {\n if (line.trim()) {\n onOutput(line.trim());\n }\n }\n }\n });\n\n proc.on(\"close\", (exitCode) => {\n if (timeoutHandle) clearTimeout(timeoutHandle);\n\n if (exitCode === 0) {\n resolve();\n } else {\n reject(new Error(`Command failed with exit code ${exitCode}`));\n }\n });\n\n proc.on(\"error\", (error) => {\n if (timeoutHandle) clearTimeout(timeoutHandle);\n reject(error);\n });\n });\n }\n}\n\nexport type TLCResult = {\n success: boolean;\n violation?: {\n type: \"invariant\" | \"property\" | \"deadlock\";\n name?: string;\n trace: string[];\n };\n error?: string;\n stats?: {\n statesGenerated: number;\n distinctStates: number;\n };\n output: string;\n};\n",
|
|
18
|
-
"#!/usr/bin/env bun\n// CLI for verification system\n\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport { type ValidationResult, validateExpressions } from \"./analysis/expression-validator\";\nimport { computeMeshOrPeerSignalFindings } from \"./analysis/mesh-signal-warnings\";\nimport {\n estimateStateSpace,\n feasibilityLabel,\n type StateSpaceEstimate,\n} from \"./analysis/state-space-estimator\";\nimport { generateConfig } from \"./codegen/config\";\nimport { validateConfig } from \"./config/parser\";\nimport type { UnifiedVerificationConfig } from \"./config/types\";\nimport { analyzeCodebase } from \"./extract/types\";\nimport { isSeedFixDisabled, meshSeedCfg } from \"./runner/mesh-seed\";\n\nconst COLORS = {\n reset: \"\\x1b[0m\",\n red: \"\\x1b[31m\",\n green: \"\\x1b[32m\",\n yellow: \"\\x1b[33m\",\n blue: \"\\x1b[34m\",\n gray: \"\\x1b[90m\",\n};\n\nfunction color(text: string, colorCode: string): string {\n return `${colorCode}${text}${COLORS.reset}`;\n}\n\nasync function main() {\n const args = process.argv.slice(2);\n const command = args[0];\n\n switch (command) {\n case \"--setup\":\n case \"setup\":\n await setupCommand();\n break;\n\n case \"--validate\":\n case \"validate\":\n await validateCommand();\n break;\n\n case \"--estimate\":\n case \"estimate\":\n await estimateCommand();\n break;\n\n case \"--help\":\n case \"help\":\n showHelp();\n break;\n\n default:\n await verifyCommand();\n }\n}\n\nasync function setupCommand() {\n console.log(color(\"\\n🔍 Analyzing codebase...\\n\", COLORS.blue));\n\n try {\n // Find tsconfig\n const tsConfigPath = findTsConfig();\n if (!tsConfigPath) {\n process.exit(1);\n }\n\n console.log(color(` Using: ${tsConfigPath}`, COLORS.gray));\n\n // Analyze codebase\n const analysis = await analyzeCodebase({\n tsConfigPath,\n stateFilePath: findStateFile(),\n });\n\n displayAnalysisResults(analysis);\n displayAnalysisSummary(analysis);\n\n // Generate and write config\n const configContent = generateConfig(analysis);\n const configPath = path.join(process.cwd(), \"specs\", \"verification.config.ts\");\n\n writeConfigFile(configPath, configContent);\n displaySetupSuccess(configPath);\n } catch (_error) {\n process.exit(1);\n }\n}\n\nfunction displayAnalysisResults(analysis: {\n stateType?: unknown;\n fields: unknown[];\n messageTypes: unknown[];\n}): void {\n if (analysis.stateType) {\n console.log(color(`✓ Found state type with ${analysis.fields.length} field(s)`, COLORS.green));\n } else {\n console.log(color(\"\\n⚠️ Could not find state type definition\", COLORS.yellow));\n console.log(\" Expected to find a type named 'AppState' or 'State'\");\n console.log(\" in a file matching **/state*.ts\");\n console.log();\n console.log(\" You can still generate a config template:\");\n console.log(\" It will be empty and you'll need to fill it in manually.\");\n console.log();\n }\n\n console.log(color(`✓ Found ${analysis.messageTypes.length} message type(s)`, COLORS.green));\n}\n\nfunction displayAnalysisSummary(analysis: {\n fields: Array<{ path: string; type: { kind: string }; confidence: string }>;\n}): void {\n if (analysis.fields.length === 0) return;\n\n console.log(color(\"\\n📊 Configuration Summary:\\n\", COLORS.blue));\n\n const table = [\n [\"Field\", \"Type\", \"Status\"],\n [\"─\".repeat(30), \"─\".repeat(20), \"─\".repeat(20)],\n ];\n\n for (const field of analysis.fields) {\n const status = getFieldStatus(field.confidence);\n table.push([field.path, field.type.kind, status]);\n }\n\n for (const row of table) {\n console.log(` ${row[0]?.padEnd(32) ?? \"\"} ${row[1]?.padEnd(22) ?? \"\"} ${row[2] ?? \"\"}`);\n }\n}\n\nfunction getFieldStatus(confidence: string): string {\n if (confidence === \"high\") return color(\"✓ Auto-configured\", COLORS.green);\n if (confidence === \"medium\") return color(\"⚠ Review needed\", COLORS.yellow);\n return color(\"⚠ Manual config\", COLORS.red);\n}\n\nfunction writeConfigFile(configPath: string, configContent: string): void {\n const configDir = path.dirname(configPath);\n if (!fs.existsSync(configDir)) {\n fs.mkdirSync(configDir, { recursive: true });\n }\n fs.writeFileSync(configPath, configContent, \"utf-8\");\n}\n\nfunction displaySetupSuccess(configPath: string): void {\n console.log(color(\"\\n✅ Configuration generated!\\n\", COLORS.green));\n console.log(` File: ${color(configPath, COLORS.blue)}`);\n console.log();\n console.log(color(\"📝 Next steps:\", COLORS.blue));\n console.log();\n console.log(\" 1. Review the generated configuration file\");\n console.log(\" 2. Fill in values marked with /* CONFIGURE */\");\n console.log(\" 3. Run 'polly verify' to check your configuration\");\n console.log();\n console.log(color(\"💡 Tip:\", COLORS.gray));\n console.log(color(\" Look for comments explaining what each field needs.\", COLORS.gray));\n console.log();\n}\n\nasync function validateCommand() {\n const configPath = path.join(process.cwd(), \"specs\", \"verification.config.ts\");\n\n console.log(color(\"\\n🔍 Validating configuration...\\n\", COLORS.blue));\n\n const result = validateConfig(configPath);\n\n if (result.valid) {\n console.log(color(\"✅ Configuration is complete and valid!\\n\", COLORS.green));\n console.log(\" You can now run 'polly verify' to start verification.\");\n console.log();\n return;\n }\n\n // Show errors\n const errors = result.issues.filter((i) => i.severity === \"error\");\n const warnings = result.issues.filter((i) => i.severity === \"warning\");\n\n displayValidationErrors(errors);\n displayValidationWarnings(warnings);\n\n console.log(color(\"Configuration incomplete. Please fix the errors above.\\n\", COLORS.red));\n process.exit(1);\n}\n\nasync function estimateCommand() {\n const configPath = path.join(process.cwd(), \"specs\", \"verification.config.ts\");\n\n console.log(color(\"\\n📊 Estimating state space...\\n\", COLORS.blue));\n\n // Validate config first\n const validation = validateConfig(configPath);\n if (!validation.valid) {\n const errors = validation.issues.filter((i) => i.severity === \"error\");\n console.log(color(`❌ Configuration incomplete (${errors.length} error(s))\\n`, COLORS.red));\n for (const error of errors.slice(0, 3)) {\n console.log(color(` • ${error.message}`, COLORS.red));\n }\n console.log(\"\\n Run 'polly verify --validate' to see all issues\");\n process.exit(1);\n }\n\n // Load config\n const config = await loadVerificationConfig(configPath);\n\n // Analyze codebase\n const analysis = await runCodebaseAnalysis();\n\n // Validate expressions\n const typedConfig = config as unknown as import(\"./config/types\").UnifiedVerificationConfig;\n const typedAnalysis = analysis as unknown as import(\"./core/model\").CodebaseAnalysis;\n const meshSignalNames = new Set(\n (typedAnalysis.meshOrPeerSignals ?? []).map((s) => s.variableName)\n );\n const exprValidation = validateExpressions(\n typedAnalysis.handlers,\n typedConfig.state,\n meshSignalNames\n );\n if (exprValidation.warnings.length > 0) {\n displayExpressionWarnings(exprValidation);\n }\n\n // Estimate\n const estimate = estimateStateSpace(typedConfig, typedAnalysis);\n\n displayEstimate(estimate);\n}\n\nfunction displayEstimate(estimate: StateSpaceEstimate): void {\n console.log(color(\"State space estimate:\\n\", COLORS.blue));\n\n // Fields table\n console.log(color(\" Fields:\", COLORS.blue));\n for (const field of estimate.fields) {\n const name = field.name.padEnd(28);\n const kind = field.kind.padEnd(18);\n const card =\n field.cardinality === \"unbounded\"\n ? color(\"(excluded — unbounded)\", COLORS.yellow)\n : `${field.cardinality} values`;\n console.log(` ${name} ${kind} ${card}`);\n }\n\n console.log();\n console.log(` Field combinations: ${color(String(estimate.fieldProduct), COLORS.green)}`);\n console.log(` Handlers: ${estimate.handlerCount}`);\n console.log(` Max in-flight: ${estimate.maxInFlight}`);\n console.log(\n ` Contexts: ${estimate.contextCount} (${estimate.contextCount - 1} tab${estimate.contextCount - 1 === 1 ? \"\" : \"s\"} + background)`\n );\n console.log(` Interleaving factor: ${estimate.interleavingFactor}`);\n\n console.log();\n console.log(\n ` Estimated states: ${color(`~${estimate.estimatedStates.toLocaleString()}`, COLORS.green)}`\n );\n\n // Feasibility\n const feasColor =\n estimate.feasibility === \"trivial\" || estimate.feasibility === \"feasible\"\n ? COLORS.green\n : estimate.feasibility === \"slow\"\n ? COLORS.yellow\n : COLORS.red;\n console.log();\n console.log(` Assessment: ${color(feasibilityLabel(estimate.feasibility), feasColor)}`);\n\n // Warnings\n if (estimate.warnings.length > 0) {\n console.log();\n for (const w of estimate.warnings) {\n console.log(color(` ⚠️ ${w}`, COLORS.yellow));\n }\n }\n\n // Suggestions\n if (estimate.suggestions.length > 0) {\n console.log();\n console.log(color(\" Suggestions:\", COLORS.blue));\n for (const s of estimate.suggestions) {\n console.log(color(` • ${s}`, COLORS.gray));\n }\n }\n\n console.log();\n}\n\nfunction displayValidationErrors(\n errors: Array<{\n message: string;\n field?: string;\n location?: { line: number };\n suggestion: string;\n }>\n): void {\n if (errors.length === 0) return;\n\n console.log(color(`❌ Found ${errors.length} error(s):\\n`, COLORS.red));\n\n for (const error of errors) {\n console.log(color(` • ${error.message}`, COLORS.red));\n if (error.field) {\n console.log(color(` Field: ${error.field}`, COLORS.gray));\n }\n if (error.location) {\n console.log(color(` Location: line ${error.location.line}`, COLORS.gray));\n }\n console.log(color(` → ${error.suggestion}`, COLORS.yellow));\n console.log();\n }\n}\n\nfunction displayValidationWarnings(\n warnings: Array<{ message: string; field?: string; suggestion: string }>\n): void {\n if (warnings.length === 0) return;\n\n console.log(color(`⚠️ Found ${warnings.length} warning(s):\\n`, COLORS.yellow));\n\n for (const warning of warnings) {\n console.log(color(` • ${warning.message}`, COLORS.yellow));\n if (warning.field) {\n console.log(color(` Field: ${warning.field}`, COLORS.gray));\n }\n console.log(color(` → ${warning.suggestion}`, COLORS.gray));\n console.log();\n }\n}\n\nfunction displayExpressionWarnings(result: ValidationResult): void {\n if (result.warnings.length === 0) return;\n\n console.log(color(`⚠️ Found ${result.warnCount} expression warning(s):\\n`, COLORS.yellow));\n\n for (const w of result.warnings) {\n console.log(color(` ⚠ ${w.message}`, COLORS.yellow));\n console.log(color(` ${w.expression}`, COLORS.gray));\n console.log(color(` at ${w.location.file}:${w.location.line}`, COLORS.gray));\n console.log(color(` → ${w.suggestion}`, COLORS.yellow));\n console.log();\n }\n}\n\n/**\n * polly#117: warn when a handler's requires/ensures predicate\n * references a `$meshState`/`$peerState` signal whose cross-peer\n * semantics the verifier does NOT check.\n *\n * A `$meshState` document declared under `mesh:` in the verification\n * config is routed through the `meshState` namespace with a\n * `PropagateMeshOp` action — its cross-peer claims are genuinely\n * checked, so it is NOT warned about. An *undeclared* `$meshState`\n * signal, or any `$peerState` signal, is flattened to single-context\n * local state; a predicate over it silently asserts only the\n * executing context's view. This warning makes that narrowing loud\n * and points at the fix.\n */\nfunction displayMeshOrPeerSignalWarnings(\n analysis: import(\"./core/model\").CodebaseAnalysis,\n declaredMeshDocs: ReadonlySet<string>\n): number {\n const findings = computeMeshOrPeerSignalFindings(analysis, declaredMeshDocs);\n if (findings.length === 0) return 0;\n\n const hasUndeclaredMesh = findings.some((f) => f.signalKind === \"mesh\");\n const hasPeer = findings.some((f) => f.signalKind === \"peer\");\n\n console.log(\n color(\n `\\n⚠️ ${findings.length} predicate(s) reference an unverified $meshState/$peerState signal (polly#117):`,\n COLORS.yellow\n )\n );\n console.log(\n color(\n \" These signals are flattened to single-context local state, so a green run\",\n COLORS.gray\n )\n );\n console.log(color(\" does NOT prove the claim holds across peers.\", COLORS.gray));\n if (hasUndeclaredMesh) {\n console.log(\n color(\n \" Fix ($meshState): declare the document key under `mesh: { ... }` in your\",\n COLORS.gray\n )\n );\n console.log(\n color(\n \" verification config. Declared mesh docs are routed through the meshState\",\n COLORS.gray\n )\n );\n console.log(\n color(\n \" namespace with a PropagateMeshOp action, so `forAllPeers(...)` claims are checked.\",\n COLORS.gray\n )\n );\n }\n if (hasPeer) {\n console.log(\n color(\" $peerState signals have no cross-peer verification model yet.\", COLORS.gray)\n );\n }\n console.log();\n\n for (const f of findings) {\n const remedy =\n f.signalKind === \"mesh\" ? \"not declared in config.mesh\" : \"$peerState — no cross-peer model\";\n console.log(color(` ⚠ ${f.handler} ${f.kind}: ${f.signalName} (${remedy})`, COLORS.yellow));\n console.log(color(` ${f.expression}`, COLORS.gray));\n console.log(color(` at ${f.location.file}:${f.location.line}`, COLORS.gray));\n console.log();\n }\n\n return findings.length;\n}\n\n/**\n * polly#160 (Ask #1): does the operator want a fail-closed run? `--strict`\n * (or POLLY_VERIFY_STRICT=1) turns model-coverage gaps and unverified\n * mesh/peer signals from warnings into a non-zero exit, so a silently\n * unmodelled path cannot pass with a green check.\n */\nfunction isStrictMode(): boolean {\n return process.argv.includes(\"--strict\") || process.env.POLLY_VERIFY_STRICT === \"1\";\n}\n\n/**\n * `polly verify --witness`: after the invariant pass, turn each BDD scenario's\n * Then-predicate into a per-scenario TLC reachability check (the deeper BDD ↔\n * verify link). A scenario whose outcome the exhaustive model proves\n * unreachable is a scenario that lies. Off by default — it adds one TLC run per\n * witnessable scenario.\n */\nfunction isWitnessMode(): boolean {\n return process.argv.includes(\"--witness\");\n}\n\n/**\n * polly#160 (Ask #1): render the model-coverage report — which declared state\n * fields are written by which handlers, which are written by none, and which\n * mutators pin no postcondition. Clean specs get a one-line confirmation.\n */\nfunction displayModelCoverage(\n report: import(\"./analysis/model-coverage\").ModelCoverageReport\n): void {\n const { unwrittenFields, unconstrainedMutators, fieldCoverage } = report;\n\n if (unwrittenFields.length === 0 && unconstrainedMutators.length === 0) {\n console.log(\n color(\n `✓ Model coverage: all ${fieldCoverage.length} declared field(s) written by a modelled handler`,\n COLORS.green\n )\n );\n console.log();\n return;\n }\n\n if (unwrittenFields.length > 0) {\n console.log(\n color(\n `\\n⚠️ ${unwrittenFields.length} declared state field(s) written by NO modelled handler (polly#160):`,\n COLORS.yellow\n )\n );\n for (const f of unwrittenFields) {\n console.log(color(` • ${f}`, COLORS.yellow));\n }\n console.log(\n color(\n \" The model carries a variable no transition can change. Either it is dead\",\n COLORS.gray\n )\n );\n console.log(\n color(\n \" state (drop it from the verified surface) or its mutating path was never\",\n COLORS.gray\n )\n );\n console.log(\n color(\" modelled — the omission class both TLC and mutation testing miss.\", COLORS.gray)\n );\n console.log();\n }\n\n if (unconstrainedMutators.length > 0) {\n console.log(\n color(\n `ℹ️ ${unconstrainedMutators.length} handler(s) mutate declared state with no ensures() postcondition:`,\n COLORS.gray\n )\n );\n for (const m of unconstrainedMutators) {\n console.log(\n color(\n ` • ${m.handler} writes {${m.fields.join(\", \")}} — ${m.location.file}:${m.location.line}`,\n COLORS.gray\n )\n );\n }\n console.log(\n color(\n \" The checker explores these transitions but asserts nothing about their effect.\",\n COLORS.gray\n )\n );\n console.log();\n }\n}\n\n/**\n * polly#160 (Ask #1): compute and render the model-coverage report, then —\n * under --strict — fail closed before the expensive TLC pass when the model\n * has an unwritten declared field or an unverified mesh/peer signal. Extracted\n * from runFullVerification to keep that orchestrator within complexity limits.\n */\nasync function runModelCoverage(\n typedConfig: UnifiedVerificationConfig,\n typedAnalysis: import(\"./core/model\").CodebaseAnalysis,\n meshFindingCount: number\n): Promise<void> {\n const { computeModelCoverage, strictCoverageReasons } = await import(\"./analysis/model-coverage\");\n const stateFields = Object.keys(typedConfig.state ?? {});\n const coverage = computeModelCoverage(stateFields, typedAnalysis.handlers);\n displayModelCoverage(coverage);\n\n if (!isStrictMode()) return;\n\n const reasons = strictCoverageReasons(coverage, meshFindingCount);\n\n if (reasons.length === 0) {\n console.log(color(\"✓ Strict mode: model coverage complete\", COLORS.green));\n console.log();\n return;\n }\n\n console.log(color(\"❌ Strict mode: model coverage incomplete\\n\", COLORS.red));\n for (const reason of reasons) {\n console.log(color(` • ${reason}`, COLORS.red));\n }\n console.log();\n console.log(\n color(\" --strict fails closed on these so an unmodelled path cannot pass with a\", COLORS.gray)\n );\n console.log(\n color(\" green check. Re-run without --strict to treat them as warnings.\", COLORS.gray)\n );\n console.log();\n process.exit(1);\n}\n\nasync function verifyCommand() {\n const configPath = path.join(process.cwd(), \"specs\", \"verification.config.ts\");\n\n console.log(color(\"\\n🔍 Running verification...\\n\", COLORS.blue));\n\n // First validate config\n const validation = validateConfig(configPath);\n\n if (!validation.valid) {\n const errors = validation.issues.filter((i) => i.severity === \"error\");\n console.log(color(`❌ Configuration incomplete (${errors.length} error(s))\\n`, COLORS.red));\n\n for (const error of errors.slice(0, 3)) {\n console.log(color(` • ${error.message}`, COLORS.red));\n if (error.field) {\n console.log(color(` Field: ${error.field}`, COLORS.gray));\n }\n console.log();\n }\n\n if (errors.length > 3) {\n console.log(color(` ... and ${errors.length - 3} more error(s)`, COLORS.gray));\n console.log();\n }\n\n console.log(\" Run 'polly verify --validate' to see all issues\");\n console.log(\" Run 'polly verify --setup' to regenerate configuration\");\n console.log();\n process.exit(1);\n }\n\n console.log(color(\"✓ Configuration valid\", COLORS.green));\n console.log();\n\n // Run full verification\n try {\n await runFullVerification(configPath);\n } catch (error) {\n // biome-ignore lint/suspicious/noConsole: CLI tool needs console output for error reporting\n console.error(color(\"\\n❌ Verification error:\", COLORS.red));\n if (error instanceof Error) {\n // biome-ignore lint/suspicious/noConsole: CLI tool needs console output for error reporting\n console.error(color(error.message, COLORS.red));\n if (process.env.POLLY_DEBUG) {\n // biome-ignore lint/suspicious/noConsole: CLI tool needs console output for error reporting\n console.error(color(\"\\nStack trace:\", COLORS.gray));\n // biome-ignore lint/suspicious/noConsole: CLI tool needs console output for error reporting\n console.error(error.stack);\n }\n } else {\n // biome-ignore lint/suspicious/noConsole: CLI tool needs console output for error reporting\n console.error(String(error));\n }\n // biome-ignore lint/suspicious/noConsole: CLI tool needs console output for error reporting\n console.error();\n process.exit(1);\n }\n}\n\n/**\n * polly#117/#114: read the docIds of the optional `mesh` record off a loaded\n * config without asserting its shape.\n */\nfunction getMeshDocIds(config: unknown): string[] {\n if (typeof config !== \"object\" || config === null || !(\"mesh\" in config)) return [];\n const mesh = config.mesh;\n if (typeof mesh !== \"object\" || mesh === null) return [];\n return Object.keys(mesh);\n}\n\n/**\n * Get timeout in seconds from config (0 = no timeout)\n */\nfunction getTimeout(config: UnifiedVerificationConfig): number {\n return config.verification?.timeout ?? 0;\n}\n\n/**\n * Get number of workers from config\n */\nfunction getWorkers(config: UnifiedVerificationConfig): number {\n return config.verification?.workers ?? 1;\n}\n\n/**\n * Get maxDepth from config for bounded model checking (Tier 2)\n */\nfunction getMaxDepth(config: UnifiedVerificationConfig): number | undefined {\n // maxDepth is only available in legacy config format with tier2 settings\n if (\"tier2\" in config && config.tier2?.boundedExploration?.maxDepth) {\n return config.tier2.boundedExploration.maxDepth;\n }\n return undefined;\n}\n\n/**\n * polly#160 (A2): coupled-field write-coupling lint. WARNS only — a legitimate\n * staged transition (one handler sets each field) trips the per-handler subset\n * check, so this never fails the run. The sound, whole-state detector is the\n * `capabilities` TLA+ invariant. Runs in runFullVerification before the\n * subsystem/monolithic branch, so it covers both paths.\n */\nasync function runCoupledFieldsLint(\n config: UnifiedVerificationConfig,\n analysis: import(\"./core/model\").CodebaseAnalysis\n): Promise<void> {\n const groups = config.coupledFields ?? [];\n if (groups.length === 0) return;\n\n const { checkCoupledFields } = await import(\"./analysis/coupled-fields\");\n const result = checkCoupledFields(groups, analysis.handlers);\n\n if (result.valid) {\n console.log(color(\"✓ Coupled fields: verified (no partial-subset writes)\", COLORS.green));\n console.log();\n return;\n }\n\n console.log(color(\"⚠️ Coupled-field violations detected:\\n\", COLORS.yellow));\n for (const v of result.violations) {\n console.log(\n color(\n ` • Handler \"${v.handler}\" writes {${v.written.join(\", \")}} but not {${v.missing.join(\n \", \"\n )}} of coupled group {${v.group.join(\", \")}}`,\n COLORS.yellow\n )\n );\n }\n console.log();\n console.log(\n color(\n \" These fields are declared to move together; a capability granted without its\",\n COLORS.yellow\n )\n );\n console.log(\n color(\n \" precondition is a likely cause. Co-write the full group in each handler, or model\",\n COLORS.yellow\n )\n );\n console.log(color(\" the relationship with a `capabilities` invariant.\", COLORS.yellow));\n console.log();\n}\n\nasync function runFullVerification(configPath: string) {\n // Load config\n const config = await loadVerificationConfig(configPath);\n\n // Analyze codebase\n const analysis = await runCodebaseAnalysis();\n\n // Validate expressions\n const typedConfig = config as unknown as UnifiedVerificationConfig;\n const typedAnalysis = analysis as unknown as import(\"./core/model\").CodebaseAnalysis;\n // polly#117: mesh/peer signal variable names — references into these\n // are not \"unmodeled fields\"; they are handled by the dedicated\n // mesh/peer signal warning below.\n const meshSignalNames = new Set(\n (typedAnalysis.meshOrPeerSignals ?? []).map((s) => s.variableName)\n );\n const exprValidation = validateExpressions(\n typedAnalysis.handlers,\n typedConfig.state,\n meshSignalNames\n );\n if (exprValidation.warnings.length > 0) {\n displayExpressionWarnings(exprValidation);\n }\n\n // polly#117: surface mesh- and peer-scoped signal references whose\n // cross-peer semantics the codegen does not check. A $meshState doc\n // declared under `mesh:` is verified cross-peer and excluded.\n const declaredMeshDocs = new Set(getMeshDocIds(typedConfig));\n const meshFindingCount = displayMeshOrPeerSignalWarnings(typedAnalysis, declaredMeshDocs);\n\n // polly#160: coupled-field write-coupling lint (warn-only). One call here\n // covers both the subsystem and monolithic paths below.\n await runCoupledFieldsLint(typedConfig, typedAnalysis);\n\n // polly#160 (Ask #1): model-coverage report + optional fail-closed gate.\n await runModelCoverage(typedConfig, typedAnalysis, meshFindingCount);\n\n // Check for subsystem-scoped verification\n if (typedConfig.subsystems && Object.keys(typedConfig.subsystems).length > 0) {\n await runSubsystemVerification(typedConfig, typedAnalysis);\n if (isWitnessMode()) {\n await runWitnessVerification(typedConfig);\n }\n return;\n }\n\n // Monolithic verification (fallback)\n await runMonolithicVerification(config, analysis);\n if (isWitnessMode()) {\n console.log(\n color(\n \"\\n⚠ --witness needs subsystem-scoped verification (a `subsystems` block in the config);\",\n COLORS.yellow\n )\n );\n console.log(\n color(\" reachability witnesses route each scenario to its subsystem spec.\\n\", COLORS.yellow)\n );\n }\n}\n\nasync function runMonolithicVerification(config: unknown, analysis: unknown) {\n // Generate TLA+ specs\n const { specPath, specDir } = await generateAndWriteTLASpecs(config, analysis);\n\n // Find and copy base spec\n findAndCopyBaseSpec(specDir);\n\n console.log(color(\"✓ Specification generated\", COLORS.green));\n console.log(color(` ${specPath}`, COLORS.gray));\n console.log();\n\n // Setup and run Docker\n const docker = await setupDocker();\n\n // Determine timeout, workers, and maxDepth from config\n const typedConfig = config as unknown as UnifiedVerificationConfig;\n const timeoutSeconds = getTimeout(typedConfig);\n const workers = getWorkers(typedConfig);\n const maxDepth = getMaxDepth(typedConfig);\n\n // Run TLC\n console.log(color(\"⚙️ Running TLC model checker...\", COLORS.blue));\n if (timeoutSeconds === 0) {\n console.log(color(\" No timeout set - will run until completion\", COLORS.gray));\n } else {\n const timeoutMinutes = Math.floor(timeoutSeconds / 60);\n const timeoutLabel =\n timeoutMinutes > 0\n ? `${timeoutMinutes} minute${timeoutMinutes > 1 ? \"s\" : \"\"}`\n : `${timeoutSeconds} seconds`;\n console.log(color(` Timeout: ${timeoutLabel}`, COLORS.gray));\n }\n if (maxDepth !== undefined) {\n console.log(color(` Max depth: ${maxDepth}`, COLORS.gray));\n }\n console.log();\n\n const result = await docker.runTLC(specPath, {\n workers,\n timeout: timeoutSeconds > 0 ? timeoutSeconds * 1000 : undefined,\n maxDepth,\n });\n\n // polly#114: when the project declares $meshState documents, also\n // model-check the concurrent first-time seed — the polly#113 race that\n // lived entirely outside verification. A failure here is reported and\n // exits before the project-spec result.\n const meshSeed = await runMeshSeedGuard(docker, specDir, config);\n if (meshSeed && !meshSeed.success) {\n console.log(color(\"\\n❌ Mesh seed-race guard failed (polly#113 / polly#114)\\n\", COLORS.red));\n displayVerificationResults(meshSeed, specDir);\n }\n if (meshSeed) {\n console.log(color(\"✓ Mesh seed-race guard passed (MeshSeed.tla)\\n\", COLORS.green));\n }\n\n // Display results\n displayVerificationResults(result, specDir);\n}\n\n// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: Subsystem orchestration requires sequential steps with branching\nasync function runSubsystemVerification(\n config: UnifiedVerificationConfig,\n analysis: import(\"./core/model\").CodebaseAnalysis\n) {\n const subsystems = config.subsystems as unknown as Record<\n string,\n { state: string[]; handlers: string[] }\n >;\n const subsystemNames = Object.keys(subsystems);\n\n console.log(\n color(`Subsystem-scoped verification (${subsystemNames.length} subsystems)\\n`, COLORS.blue)\n );\n\n // Non-interference check\n const { checkNonInterference } = await import(\"./analysis/non-interference\");\n const interference = checkNonInterference(subsystems, analysis.handlers);\n\n if (interference.valid) {\n console.log(\n color(\"✓ Non-interference: verified (no cross-subsystem state writes)\", COLORS.green)\n );\n console.log();\n } else {\n console.log(color(\"⚠️ Non-interference violations detected:\\n\", COLORS.yellow));\n for (const v of interference.violations) {\n console.log(\n color(\n ` • Handler \"${v.handler}\" (${v.subsystem}) writes to \"${v.writesTo}\" owned by \"${v.ownedBy}\"`,\n COLORS.yellow\n )\n );\n }\n console.log();\n console.log(\n color(\n \" Compositional verification may not be sound. Consider restructuring subsystem boundaries.\",\n COLORS.yellow\n )\n );\n console.log();\n }\n\n // Precondition-locality check (read-side complement to non-interference).\n // A handler whose requires() reads state owned by another subsystem will\n // silently never have its postcondition evaluated under compositional\n // verification: the foreign subsystem is absent during this pass, so the\n // pre-state the handler waits for is never produced and TLC reports PASS\n // without firing the property the user wrote.\n const { checkPreconditionLocality } = await import(\"./analysis/precondition-locality\");\n const locality = checkPreconditionLocality(subsystems, analysis.handlers);\n\n if (locality.valid) {\n console.log(\n color(\"✓ Precondition locality: verified (no cross-subsystem requires() reads)\", COLORS.green)\n );\n console.log();\n } else {\n console.log(color(\"⚠️ Precondition-locality violations detected:\\n\", COLORS.yellow));\n for (const v of locality.violations) {\n console.log(\n color(\n ` • Handler \"${v.handler}\" (${v.subsystem}) requires \"${v.readsFrom}\" owned by \"${v.ownedBy}\"`,\n COLORS.yellow\n )\n );\n console.log(color(` ${v.expression}`, COLORS.gray));\n }\n console.log();\n console.log(\n color(\n \" Compositional verification of these subsystems cannot satisfy the precondition;\",\n COLORS.yellow\n )\n );\n console.log(\n color(\n \" the handler's ensures() postcondition will not be evaluated. Consider restructuring\",\n COLORS.yellow\n )\n );\n console.log(color(\" subsystems to keep preconditions local.\", COLORS.yellow));\n console.log();\n }\n\n // Warn about unassigned handlers\n const assignedHandlers = new Set(Object.values(subsystems).flatMap((s) => s.handlers));\n const unassigned = analysis.messageTypes.filter((mt) => !assignedHandlers.has(mt));\n if (unassigned.length > 0) {\n console.log(\n color(\n `⚠️ ${unassigned.length} handler(s) not assigned to any subsystem (will not be verified):`,\n COLORS.yellow\n )\n );\n for (const h of unassigned.slice(0, 10)) {\n console.log(color(` • ${h}`, COLORS.yellow));\n }\n if (unassigned.length > 10) {\n console.log(color(` ... and ${unassigned.length - 10} more`, COLORS.yellow));\n }\n console.log();\n }\n\n // Setup Docker once\n const docker = await setupDocker();\n const timeoutSeconds = getTimeout(config);\n const workers = getWorkers(config);\n const maxDepth = getMaxDepth(config);\n\n // Generate and run per-subsystem\n const { generateSubsystemTLA } = await import(\"./codegen/tla\");\n const results: Array<{\n name: string;\n success: boolean;\n handlerCount: number;\n ensuresCount: number;\n stateCount: number;\n elapsed: number;\n stats?: { statesGenerated: number; distinctStates: number };\n error?: string;\n }> = [];\n\n for (const name of subsystemNames) {\n const sub = subsystems[name];\n const startTime = Date.now();\n\n console.log(color(`⚙️ Verifying subsystem: ${name}...`, COLORS.blue));\n\n // Generate per-subsystem TLA+\n const { spec, cfg } = await generateSubsystemTLA(name, sub, config, analysis);\n\n // Count step-temporal ensures properties registered for this subsystem.\n // This is the upper bound on postconditions TLC will evaluate; a property\n // only fires when its handler is enabled at some reachable state, so the\n // count overstates true coverage when handlers are multi-step-reachable\n // and bounds.maxInFlight is too low to reach them.\n const ensuresCount = (spec.match(/^EnsuresAfter_\\w+ ==/gm) ?? []).length;\n\n // Write specs\n const specDir = path.join(process.cwd(), \"specs\", \"tla\", \"generated\", name);\n if (!fs.existsSync(specDir)) {\n fs.mkdirSync(specDir, { recursive: true });\n }\n\n const specPath = path.join(specDir, `UserApp_${name}.tla`);\n const cfgPath = path.join(specDir, `UserApp_${name}.cfg`);\n fs.writeFileSync(specPath, spec);\n fs.writeFileSync(cfgPath, cfg);\n\n // Copy base spec\n findAndCopyBaseSpec(specDir);\n\n // Run TLC\n const result = await docker.runTLC(specPath, {\n workers,\n timeout: timeoutSeconds > 0 ? timeoutSeconds * 1000 : undefined,\n maxDepth,\n });\n\n const elapsed = (Date.now() - startTime) / 1000;\n\n results.push({\n name,\n success: result.success,\n handlerCount: sub.handlers.length,\n ensuresCount,\n stateCount: result.stats?.distinctStates ?? 0,\n elapsed,\n stats: result.stats,\n error: result.error,\n });\n\n if (result.success) {\n console.log(color(` ✓ ${name} passed (${elapsed.toFixed(1)}s)`, COLORS.green));\n } else {\n console.log(color(` ✗ ${name} failed`, COLORS.red));\n if (result.violation) {\n console.log(color(` Invariant violated: ${result.violation.name}`, COLORS.red));\n } else if (result.error) {\n console.log(color(` Error: ${result.error}`, COLORS.red));\n }\n // Write full output for debugging\n fs.writeFileSync(path.join(specDir, \"tlc-output.log\"), result.output);\n }\n }\n\n console.log();\n\n // Compositional report\n displayCompositionalReport(results, interference.valid);\n}\n\n/** A finite default cap so an unconstrained witness cannot hang the run. */\nconst DEFAULT_WITNESS_TIMEOUT_MS = 180_000;\n\ntype WitnessStatus = \"reachable\" | \"unreachable\" | \"inconclusive\" | \"skipped\" | \"error\";\n\ninterface WitnessResult {\n id: string;\n status: WitnessStatus;\n subsystem?: string;\n predicate?: string;\n note?: string;\n}\n\n/** Absolute paths matching `pattern` under `cwd`, sorted. */\nasync function globAbsolute(cwd: string, pattern: string): Promise<string[]> {\n const out: string[] = [];\n for await (const f of new Bun.Glob(pattern).scan({ cwd, absolute: true, onlyFiles: true })) {\n out.push(f);\n }\n return out.sort();\n}\n\n/**\n * `polly verify --witness`: the deeper BDD ↔ verify link. Each BDD scenario's\n * Then-predicate (reduced by tools/bdd) becomes a per-scenario TLC reachability\n * check over the subsystem spec the normal pass just generated.\n *\n * Semantics, inverted from a normal invariant: the witness `~(\\E ctx : <Then>)`\n * is *violated* exactly when the model reaches the asserted outcome — so a\n * violation is GOOD (the scenario is honest; the counterexample is its path).\n * A clean full exploration means the outcome is unreachable — the scenario\n * lies, and the run fails. Witnesses run WITHOUT the depth bound: a \"reachable\"\n * verdict is sound at any bound, but \"unreachable\" is only sound under full\n * exploration (StateConstraint keeps the space finite). If TLC times out first,\n * the verdict is inconclusive — reported, never silently passed or failed.\n */\n// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: a flat per-scenario classify loop — the branches are the verdict surface.\nasync function runWitnessVerification(config: UnifiedVerificationConfig): Promise<void> {\n console.log(color(\"Reachability witnesses (--witness)\\n\", COLORS.blue));\n\n const cwd = process.cwd();\n const featureFiles = await globAbsolute(cwd, \"features/**/*.feature\");\n const stepFiles = [\n ...new Set([\n ...(await globAbsolute(cwd, \"features/**/*.steps.ts\")),\n ...(await globAbsolute(cwd, \"features/steps.ts\")),\n ]),\n ];\n if (featureFiles.length === 0 || stepFiles.length === 0) {\n console.log(\n color(\" No .feature files / step modules found — nothing to witness.\\n\", COLORS.gray)\n );\n return;\n }\n\n const { extractWitnesses } = await import(\"../../bdd/src/witness\");\n const {\n bddPredicateToTLA,\n buildWitnessCfg,\n buildWitnessModule,\n routeWitness,\n WITNESS_INVARIANT,\n } = await import(\"./codegen/witness\");\n\n const subsystems = config.subsystems as unknown as Record<string, { state: string[] }>;\n const witnesses = await extractWitnesses(featureFiles, stepFiles);\n\n const docker = await setupDocker();\n const timeoutSeconds = getTimeout(config);\n const timeout = timeoutSeconds > 0 ? timeoutSeconds * 1000 : DEFAULT_WITNESS_TIMEOUT_MS;\n const workers = getWorkers(config);\n\n const results: WitnessResult[] = [];\n let idx = 0;\n\n for (const w of witnesses) {\n const id = `${w.feature} › ${w.scenario}`;\n if (!w.predicate) {\n results.push({ id, status: \"skipped\", note: \"no state-observable Then to witness\" });\n continue;\n }\n const subsystem = routeWitness(w.fields, subsystems);\n if (!subsystem) {\n results.push({\n id,\n status: \"skipped\",\n note: `fields [${w.fields.join(\", \")}] not owned by a single subsystem`,\n });\n continue;\n }\n\n const specDir = path.join(cwd, \"specs\", \"tla\", \"generated\", subsystem);\n const subsystemCfg = path.join(specDir, `UserApp_${subsystem}.cfg`);\n if (\n !fs.existsSync(path.join(specDir, `UserApp_${subsystem}.tla`)) ||\n !fs.existsSync(subsystemCfg)\n ) {\n results.push({\n id,\n status: \"error\",\n subsystem,\n note: `subsystem spec missing: ${subsystem}`,\n });\n continue;\n }\n\n let tlaPredicate: string;\n try {\n tlaPredicate = bddPredicateToTLA(w.predicate);\n } catch (err) {\n results.push({\n id,\n status: \"error\",\n subsystem,\n note: err instanceof Error ? err.message : String(err),\n });\n continue;\n }\n\n const moduleName = `Witness_${subsystem}_${idx++}`;\n const witnessTla = path.join(specDir, `${moduleName}.tla`);\n fs.writeFileSync(\n witnessTla,\n buildWitnessModule(moduleName, `UserApp_${subsystem}`, tlaPredicate)\n );\n fs.writeFileSync(\n path.join(specDir, `${moduleName}.cfg`),\n buildWitnessCfg(fs.readFileSync(subsystemCfg, \"utf8\"))\n );\n\n console.log(color(`⚙️ ${id}`, COLORS.blue));\n console.log(color(` ${subsystem} ⊨ ${w.predicate}`, COLORS.gray));\n\n let tlc: Awaited<ReturnType<Awaited<ReturnType<typeof setupDocker>>[\"runTLC\"]>>;\n try {\n tlc = await docker.runTLC(witnessTla, { workers, timeout });\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n results.push({ id, status: \"inconclusive\", subsystem, predicate: w.predicate, note: msg });\n console.log(\n color(\" ⚠ inconclusive — TLC did not finish (raise the config timeout)\", COLORS.yellow)\n );\n continue;\n }\n\n if (!tlc.success && tlc.violation?.name === WITNESS_INVARIANT) {\n results.push({ id, status: \"reachable\", subsystem, predicate: w.predicate });\n console.log(color(\" ✓ reachable — the model reaches this outcome\", COLORS.green));\n } else if (tlc.success) {\n results.push({\n id,\n status: \"unreachable\",\n subsystem,\n predicate: w.predicate,\n note: `${tlc.stats?.distinctStates ?? 0} distinct states, no path`,\n });\n console.log(\n color(\n \" ✗ UNREACHABLE — the model proves this outcome impossible (the scenario lies)\",\n COLORS.red\n )\n );\n fs.writeFileSync(path.join(specDir, `${moduleName}.tlc-output.log`), tlc.output);\n } else {\n results.push({\n id,\n status: \"error\",\n subsystem,\n predicate: w.predicate,\n note: tlc.error ?? tlc.violation?.name ?? \"TLC error\",\n });\n console.log(color(` ! error — ${tlc.error ?? \"see log\"}`, COLORS.yellow));\n fs.writeFileSync(path.join(specDir, `${moduleName}.tlc-output.log`), tlc.output);\n }\n }\n\n displayWitnessReport(results);\n}\n\nfunction displayWitnessReport(results: WitnessResult[]): void {\n const count = (s: WitnessStatus) => results.filter((r) => r.status === s).length;\n const reachable = count(\"reachable\");\n const unreachable = count(\"unreachable\");\n const inconclusive = count(\"inconclusive\");\n const errors = count(\"error\");\n const skipped = count(\"skipped\");\n\n console.log();\n console.log(color(\"Witness results:\\n\", COLORS.blue));\n for (const r of results) {\n const mark = {\n reachable: color(\"✓\", COLORS.green),\n unreachable: color(\"✗\", COLORS.red),\n inconclusive: color(\"⚠\", COLORS.yellow),\n error: color(\"!\", COLORS.yellow),\n skipped: color(\"·\", COLORS.gray),\n }[r.status];\n const note = r.note ? color(` (${r.note})`, COLORS.gray) : \"\";\n console.log(` ${mark} ${r.status.padEnd(12)} ${r.id}${note}`);\n }\n\n console.log();\n console.log(\n color(\n ` ${reachable} reachable, ${unreachable} unreachable, ${inconclusive} inconclusive, ${errors} error, ${skipped} skipped`,\n COLORS.gray\n )\n );\n console.log();\n\n if (unreachable > 0 || errors > 0) {\n console.log(color(\"Witness result: ✗ FAIL\", COLORS.red));\n console.log(\n color(\n \" A scenario the exhaustive model cannot reach describes an impossible outcome.\",\n COLORS.gray\n )\n );\n console.log();\n process.exit(1);\n }\n console.log(color(\"Witness result: ✓ PASS\", COLORS.green));\n console.log(\n color(\" Every witnessable scenario's outcome is reachable in the model.\", COLORS.gray)\n );\n console.log();\n}\n\nfunction displayEnsuresSummary(results: Array<{ ensuresCount: number }>): void {\n const totalEnsures = results.reduce((sum, r) => sum + r.ensuresCount, 0);\n if (totalEnsures === 0) return;\n\n const subsystemWord = `subsystem${results.length === 1 ? \"\" : \"s\"}`;\n console.log();\n console.log(\n color(\n ` ${totalEnsures} ensures step-properties registered across ${results.length} ${subsystemWord}.`,\n COLORS.gray\n )\n );\n console.log(\n color(\" A property only fires at states where its handler is enabled — raise\", COLORS.gray)\n );\n console.log(\n color(\n \" bounds.maxInFlight on a subsystem to reach multi-step-reachable handlers.\",\n COLORS.gray\n )\n );\n}\n\nfunction displayCompositionalReport(\n results: Array<{\n name: string;\n success: boolean;\n handlerCount: number;\n ensuresCount: number;\n stateCount: number;\n elapsed: number;\n }>,\n nonInterferenceValid: boolean\n): void {\n console.log(color(\"Subsystem verification results:\\n\", COLORS.blue));\n\n for (const r of results) {\n const status = r.success ? color(\"✓\", COLORS.green) : color(\"✗\", COLORS.red);\n const name = r.name.padEnd(20);\n const handlers = `${r.handlerCount} handler${r.handlerCount === 1 ? \"\" : \"s\"}`;\n const ensures = `${r.ensuresCount} ensures`;\n const states = `${r.stateCount} states`;\n const time = `${r.elapsed.toFixed(1)}s`;\n console.log(\n ` ${status} ${name} ${handlers.padEnd(14)} ${ensures.padEnd(12)} ${states.padEnd(14)} ${time}`\n );\n }\n\n displayEnsuresSummary(results);\n\n console.log();\n\n const nonIntLabel = nonInterferenceValid\n ? color(\"✓ verified (no cross-subsystem state writes)\", COLORS.green)\n : color(\"⚠ violations detected\", COLORS.yellow);\n console.log(` Non-interference: ${nonIntLabel}`);\n console.log();\n\n const allPassed = results.every((r) => r.success);\n if (allPassed && nonInterferenceValid) {\n console.log(color(\"Compositional result: ✓ PASS\", COLORS.green));\n console.log(\n color(\" All subsystems verified independently. By non-interference,\", COLORS.gray)\n );\n console.log(color(\" the full system satisfies all per-subsystem invariants.\", COLORS.gray));\n } else if (allPassed && !nonInterferenceValid) {\n console.log(color(\"Compositional result: ⚠ PASS (with warnings)\", COLORS.yellow));\n console.log(\n color(\" All subsystems passed, but non-interference violations exist.\", COLORS.gray)\n );\n console.log(color(\" Compositional soundness is not guaranteed.\", COLORS.gray));\n } else {\n console.log(color(\"Compositional result: ✗ FAIL\", COLORS.red));\n const failed = results.filter((r) => !r.success);\n for (const f of failed) {\n console.log(color(` Failed: ${f.name}`, COLORS.red));\n }\n process.exit(1);\n }\n\n console.log();\n}\n\nasync function loadVerificationConfig(configPath: string): Promise<unknown> {\n const resolvedPath = path.resolve(configPath);\n const configModule = await import(`file://${resolvedPath}?t=${Date.now()}`);\n\n // Support both named export (verificationConfig) and default export\n // Named export was added in v0.7.0 for better IDE support\n return configModule.verificationConfig || configModule.default;\n}\n\nasync function runCodebaseAnalysis(): Promise<{ fields: unknown[]; messageTypes: unknown[] }> {\n console.log(color(\"📊 Analyzing codebase...\", COLORS.blue));\n const tsConfigPath = findTsConfig();\n if (!tsConfigPath) {\n throw new Error(\"Could not find tsconfig.json\");\n }\n\n const analysis = await analyzeCodebase({\n tsConfigPath,\n stateFilePath: findStateFile(),\n });\n\n console.log(color(\"✓ Analysis complete\", COLORS.green));\n console.log();\n\n return analysis;\n}\n\nasync function generateAndWriteTLASpecs(\n config: unknown,\n analysis: unknown\n): Promise<{ specPath: string; specDir: string }> {\n const { generateTLA } = await import(\"./codegen/tla\");\n\n console.log(color(\"📝 Generating TLA+ specification...\", COLORS.blue));\n const { spec, cfg } = await generateTLA(config, analysis);\n\n const specDir = path.join(process.cwd(), \"specs\", \"tla\", \"generated\");\n if (!fs.existsSync(specDir)) {\n fs.mkdirSync(specDir, { recursive: true });\n }\n\n const specPath = path.join(specDir, \"UserApp.tla\");\n const cfgPath = path.join(specDir, \"UserApp.cfg\");\n\n fs.writeFileSync(specPath, spec);\n fs.writeFileSync(cfgPath, cfg);\n\n return { specPath, specDir };\n}\n\nfunction findAndCopyBaseSpec(specDir: string): void {\n const possiblePaths = [\n path.join(process.cwd(), \"specs\", \"tla\", \"MessageRouter.tla\"),\n path.join(__dirname, \"..\", \"specs\", \"tla\", \"MessageRouter.tla\"),\n path.join(__dirname, \"..\", \"..\", \"specs\", \"tla\", \"MessageRouter.tla\"),\n path.join(\n process.cwd(),\n \"external\",\n \"polly\",\n \"packages\",\n \"verify\",\n \"specs\",\n \"tla\",\n \"MessageRouter.tla\"\n ),\n path.join(\n process.cwd(),\n \"node_modules\",\n \"@fairfox\",\n \"polly-verify\",\n \"specs\",\n \"tla\",\n \"MessageRouter.tla\"\n ),\n ];\n\n let baseSpecPath: string | null = null;\n for (const candidatePath of possiblePaths) {\n if (fs.existsSync(candidatePath)) {\n baseSpecPath = candidatePath;\n break;\n }\n }\n\n if (baseSpecPath) {\n const destSpecPath = path.join(specDir, \"MessageRouter.tla\");\n fs.copyFileSync(baseSpecPath, destSpecPath);\n console.log(color(\"✓ Copied MessageRouter.tla\", COLORS.green));\n } else {\n console.log(\n color(\"⚠️ Warning: MessageRouter.tla not found, verification may fail\", COLORS.yellow)\n );\n console.log(color(\" Searched in:\", COLORS.gray));\n for (const searchPath of possiblePaths) {\n console.log(color(` - ${searchPath}`, COLORS.gray));\n }\n }\n}\n\n/**\n * polly#114: locate the directory holding the committed MeshSeed.tla /\n * MeshSeed.cfg pair. Mirrors findAndCopyBaseSpec's search order.\n */\nfunction findMeshSeedSpecDir(): string | null {\n const candidates = [\n path.join(process.cwd(), \"specs\", \"tla\"),\n path.join(__dirname, \"..\", \"specs\", \"tla\"),\n path.join(__dirname, \"..\", \"..\", \"specs\", \"tla\"),\n path.join(process.cwd(), \"node_modules\", \"@fairfox\", \"polly-verify\", \"specs\", \"tla\"),\n ];\n for (const dir of candidates) {\n if (fs.existsSync(path.join(dir, \"MeshSeed.tla\"))) return dir;\n }\n return null;\n}\n\n/**\n * polly#114: model-check the concurrent first-time $meshState seed.\n *\n * When the project declares mesh documents the seed path is in scope —\n * and the polly#113 race (two devices materialising the same document\n * concurrently, forking it permanently) lived entirely outside the\n * verify pipeline. This runs MeshSeed.tla alongside the project spec.\n *\n * `POLLY_113_DISABLE_FIX=1` — the same toggle seedDocumentBytes honours\n * to restore the pre-fix non-deterministic seed — flips the spec's\n * SeedDeterministic constant to FALSE. Under it TLC reports a\n * SeedConvergence violation and verification fails, so a regression in\n * the seed path cannot land green.\n *\n * Returns undefined (guard skipped) when no mesh documents are declared.\n */\nasync function runMeshSeedGuard(\n docker: Awaited<ReturnType<typeof setupDocker>>,\n specDir: string,\n config: unknown\n): Promise<Parameters<typeof displayVerificationResults>[0] | undefined> {\n if (getMeshDocIds(config).length === 0) return undefined;\n\n const sourceDir = findMeshSeedSpecDir();\n if (!sourceDir) {\n console.log(color(\"⚠️ MeshSeed.tla not found — skipping seed-race guard\", COLORS.yellow));\n return undefined;\n }\n\n const fixDisabled = isSeedFixDisabled();\n fs.copyFileSync(path.join(sourceDir, \"MeshSeed.tla\"), path.join(specDir, \"MeshSeed.tla\"));\n // One source of truth for Peers / invariants / properties: the\n // committed cfg. Only the SeedDeterministic constant is rewritten.\n const baseCfg = fs.readFileSync(path.join(sourceDir, \"MeshSeed.cfg\"), \"utf8\");\n fs.writeFileSync(\n path.join(specDir, \"MeshSeed.cfg\"),\n meshSeedCfg(baseCfg, { disableFix: fixDisabled })\n );\n\n console.log(\n color(\n `⚙️ Running mesh seed-race guard (MeshSeed.tla, SeedDeterministic = ${\n fixDisabled ? \"FALSE\" : \"TRUE\"\n })...`,\n COLORS.blue\n )\n );\n return docker.runTLC(path.join(specDir, \"MeshSeed.tla\"), { workers: 1 });\n}\n\nasync function setupDocker(): Promise<{\n runTLC: (\n specPath: string,\n options: { workers: number; timeout: number }\n ) => Promise<{\n success: boolean;\n stats?: { statesGenerated: number; distinctStates: number };\n violation?: { name: string; trace: string[] };\n error?: string;\n output: string;\n }>;\n}> {\n const { DockerRunner } = await import(\"./runner/docker\");\n\n console.log(color(\"🐳 Checking Docker...\", COLORS.blue));\n const docker = new DockerRunner();\n\n try {\n if (!(await docker.isDockerAvailable())) {\n console.log();\n console.log(color(\"❌ Docker is not available\", COLORS.red));\n console.log();\n console.log(\"Please ensure Docker is installed and running:\");\n console.log(\n color(\n \" • Install Docker Desktop: https://www.docker.com/products/docker-desktop\",\n COLORS.gray\n )\n );\n console.log(color(\" • Make sure Docker Desktop is running\", COLORS.gray));\n console.log();\n throw new Error(\"Docker is not available\");\n }\n } catch (error) {\n console.log();\n if (error instanceof Error && error.message.includes(\"timed out\")) {\n console.log(color(\"❌ Docker is unresponsive\", COLORS.red));\n console.log();\n console.log(\"Docker appears to be installed but is not responding.\");\n console.log(\"Try restarting Docker:\");\n console.log(color(\" • Quit Docker Desktop completely\", COLORS.gray));\n console.log(color(\" • Restart Docker Desktop\", COLORS.gray));\n console.log(\n color(\" • Wait for Docker to fully start (check the menu bar icon)\", COLORS.gray)\n );\n console.log();\n } else if (error instanceof Error && error.message !== \"Docker is not available\") {\n console.log(color(`❌ Error checking Docker: ${error.message}`, COLORS.red));\n console.log();\n }\n throw error;\n }\n\n try {\n if (!(await docker.hasImage())) {\n console.log(color(\" Pulling TLA+ image (this may take a moment)...\", COLORS.gray));\n await docker.pullImage((line) => {\n console.log(color(` ${line}`, COLORS.gray));\n });\n }\n } catch (error) {\n console.log();\n if (error instanceof Error && error.message.includes(\"timed out\")) {\n console.log(color(\"❌ Docker is unresponsive while checking for TLA+ image\", COLORS.red));\n console.log();\n console.log(\"Docker is not responding. Try restarting Docker Desktop.\");\n console.log();\n }\n throw error;\n }\n\n console.log(color(\"✓ Docker ready\", COLORS.green));\n console.log();\n\n return docker;\n}\n\nfunction displayVerificationResults(\n result: {\n success: boolean;\n stats?: { statesGenerated: number; distinctStates: number };\n violation?: { name: string; trace: string[] };\n error?: string;\n output: string;\n },\n specDir: string\n): void {\n if (result.success) {\n console.log(color(\"✅ Verification passed!\\n\", COLORS.green));\n console.log(color(\"Statistics:\", COLORS.blue));\n console.log(color(` States explored: ${result.stats?.statesGenerated || 0}`, COLORS.gray));\n console.log(color(` Distinct states: ${result.stats?.distinctStates || 0}`, COLORS.gray));\n console.log();\n return;\n }\n\n console.log(color(\"❌ Verification failed!\\n\", COLORS.red));\n\n if (result.violation) {\n console.log(color(`Invariant violated: ${result.violation.name}\\n`, COLORS.red));\n console.log(color(\"Trace to violation:\", COLORS.yellow));\n for (const line of result.violation.trace.slice(0, 20)) {\n console.log(color(` ${line}`, COLORS.gray));\n }\n if (result.violation.trace.length > 20) {\n console.log(color(` ... (${result.violation.trace.length - 20} more lines)`, COLORS.gray));\n }\n } else if (result.error) {\n console.log(color(`Error: ${result.error}`, COLORS.red));\n }\n\n console.log();\n console.log(color(\"Full output saved to:\", COLORS.gray));\n console.log(color(` ${path.join(specDir, \"tlc-output.log\")}`, COLORS.gray));\n fs.writeFileSync(path.join(specDir, \"tlc-output.log\"), result.output);\n\n process.exit(1);\n}\n\nfunction showHelp() {\n console.log(`\n${color(\"polly verify\", COLORS.blue)} - Formal verification for web extensions\n\nTests sample a few executions; a model checker explores every reachable state.\nThis compiles your handlers and state into TLA+ and runs TLC to prove safety\ninvariants hold under all interleavings — the ordering and concurrency bugs\ntests rarely reach.\n\n${color(\"Commands:\", COLORS.blue)}\n\n ${color(\"polly verify\", COLORS.green)}\n Run verification (validates config, generates specs, runs TLC)\n\n ${color(\"polly verify --strict\", COLORS.green)}\n Fail closed (non-zero exit) on model-coverage gaps: a declared state\n field no handler writes, or an unverified $meshState/$peerState predicate.\n Also via ${color(\"POLLY_VERIFY_STRICT=1\", COLORS.yellow)}.\n\n ${color(\"polly verify --witness\", COLORS.green)}\n After the invariant pass, check each BDD scenario's Then-outcome for\n reachability: one TLC run per witnessable scenario over its subsystem spec.\n A scenario the exhaustive model proves unreachable is one that lies, and\n fails the run. Needs a ${color(\"subsystems\", COLORS.blue)} block and ${color(\"features/\", COLORS.blue)} (see polly bdd).\n\n ${color(\"polly verify --setup\", COLORS.green)}\n Analyze codebase and generate configuration file\n\n ${color(\"polly verify --validate\", COLORS.green)}\n Validate existing configuration without running verification\n\n ${color(\"polly verify --estimate\", COLORS.green)}\n Estimate state space without running TLC\n\n ${color(\"polly verify --help\", COLORS.green)}\n Show this help message\n\n${color(\"Getting Started:\", COLORS.blue)}\n\n 1. Run ${color(\"polly verify --setup\", COLORS.green)} to generate configuration\n 2. Review ${color(\"specs/verification.config.ts\", COLORS.blue)} and fill in marked fields\n 3. Run ${color(\"polly verify --validate\", COLORS.green)} to check your configuration\n 4. Run ${color(\"polly verify\", COLORS.green)} to start verification\n\n${color(\"Configuration Help:\", COLORS.blue)}\n\n The generated config file uses special markers:\n\n ${color(\"/* CONFIGURE */\", COLORS.yellow)} - Replace with your value\n ${color(\"/* REVIEW */\", COLORS.yellow)} - Check auto-generated value\n ${color(\"null\", COLORS.yellow)} - Must be replaced with concrete value\n\n${color(\"Learn More:\", COLORS.blue)}\n\n Documentation: https://github.com/fairfox/web-ext\n TLA+ Resources: https://learntla.com\n`);\n}\n\nfunction findTsConfig(): string | null {\n const locations = [\n path.join(process.cwd(), \"tsconfig.json\"),\n path.join(process.cwd(), \"packages\", \"web-ext\", \"tsconfig.json\"),\n ];\n\n for (const loc of locations) {\n if (fs.existsSync(loc)) {\n return loc;\n }\n }\n\n return null;\n}\n\nfunction findStateFile(): string | undefined {\n const locations = [\n path.join(process.cwd(), \"types\", \"state.ts\"),\n path.join(process.cwd(), \"src\", \"types\", \"state.ts\"),\n path.join(process.cwd(), \"packages\", \"web-ext\", \"src\", \"shared\", \"state\", \"app-state.ts\"),\n ];\n\n for (const loc of locations) {\n if (fs.existsSync(loc)) {\n return loc;\n }\n }\n\n return undefined;\n}\n\nmain().catch((error) => {\n if (error instanceof Error && error.stack) {\n // Stack trace already printed by underlying functions\n }\n process.exit(1);\n});\n",
|
|
18
|
+
"#!/usr/bin/env bun\n// CLI for verification system\n\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport { type ValidationResult, validateExpressions } from \"./analysis/expression-validator\";\nimport { computeMeshOrPeerSignalFindings } from \"./analysis/mesh-signal-warnings\";\nimport {\n estimateStateSpace,\n feasibilityLabel,\n type StateSpaceEstimate,\n} from \"./analysis/state-space-estimator\";\nimport { generateConfig } from \"./codegen/config\";\nimport { validateConfig } from \"./config/parser\";\nimport type { UnifiedVerificationConfig } from \"./config/types\";\nimport { analyzeCodebase } from \"./extract/types\";\nimport { isSeedFixDisabled, meshSeedCfg } from \"./runner/mesh-seed\";\n\nconst COLORS = {\n reset: \"\\x1b[0m\",\n red: \"\\x1b[31m\",\n green: \"\\x1b[32m\",\n yellow: \"\\x1b[33m\",\n blue: \"\\x1b[34m\",\n gray: \"\\x1b[90m\",\n};\n\nfunction color(text: string, colorCode: string): string {\n return `${colorCode}${text}${COLORS.reset}`;\n}\n\nasync function main() {\n const args = process.argv.slice(2);\n const command = args[0];\n\n switch (command) {\n case \"--setup\":\n case \"setup\":\n await setupCommand();\n break;\n\n case \"--validate\":\n case \"validate\":\n await validateCommand();\n break;\n\n case \"--estimate\":\n case \"estimate\":\n await estimateCommand();\n break;\n\n case \"--help\":\n case \"help\":\n showHelp();\n break;\n\n default:\n await verifyCommand();\n }\n}\n\nasync function setupCommand() {\n console.log(color(\"\\n🔍 Analyzing codebase...\\n\", COLORS.blue));\n\n try {\n // Find tsconfig\n const tsConfigPath = findTsConfig();\n if (!tsConfigPath) {\n process.exit(1);\n }\n\n console.log(color(` Using: ${tsConfigPath}`, COLORS.gray));\n\n // Analyze codebase\n const analysis = await analyzeCodebase({\n tsConfigPath,\n stateFilePath: findStateFile(),\n });\n\n displayAnalysisResults(analysis);\n displayAnalysisSummary(analysis);\n\n // Generate and write config\n const configContent = generateConfig(analysis);\n const configPath = path.join(process.cwd(), \"specs\", \"verification.config.ts\");\n\n writeConfigFile(configPath, configContent);\n displaySetupSuccess(configPath);\n } catch (_error) {\n process.exit(1);\n }\n}\n\nfunction displayAnalysisResults(analysis: {\n stateType?: unknown;\n fields: unknown[];\n messageTypes: unknown[];\n}): void {\n if (analysis.stateType) {\n console.log(color(`✓ Found state type with ${analysis.fields.length} field(s)`, COLORS.green));\n } else {\n console.log(color(\"\\n⚠️ Could not find state type definition\", COLORS.yellow));\n console.log(\" Expected to find a type named 'AppState' or 'State'\");\n console.log(\" in a file matching **/state*.ts\");\n console.log();\n console.log(\" You can still generate a config template:\");\n console.log(\" It will be empty and you'll need to fill it in manually.\");\n console.log();\n }\n\n console.log(color(`✓ Found ${analysis.messageTypes.length} message type(s)`, COLORS.green));\n}\n\nfunction displayAnalysisSummary(analysis: {\n fields: Array<{ path: string; type: { kind: string }; confidence: string }>;\n}): void {\n if (analysis.fields.length === 0) return;\n\n console.log(color(\"\\n📊 Configuration Summary:\\n\", COLORS.blue));\n\n const table = [\n [\"Field\", \"Type\", \"Status\"],\n [\"─\".repeat(30), \"─\".repeat(20), \"─\".repeat(20)],\n ];\n\n for (const field of analysis.fields) {\n const status = getFieldStatus(field.confidence);\n table.push([field.path, field.type.kind, status]);\n }\n\n for (const row of table) {\n console.log(` ${row[0]?.padEnd(32) ?? \"\"} ${row[1]?.padEnd(22) ?? \"\"} ${row[2] ?? \"\"}`);\n }\n}\n\nfunction getFieldStatus(confidence: string): string {\n if (confidence === \"high\") return color(\"✓ Auto-configured\", COLORS.green);\n if (confidence === \"medium\") return color(\"⚠ Review needed\", COLORS.yellow);\n return color(\"⚠ Manual config\", COLORS.red);\n}\n\nfunction writeConfigFile(configPath: string, configContent: string): void {\n const configDir = path.dirname(configPath);\n if (!fs.existsSync(configDir)) {\n fs.mkdirSync(configDir, { recursive: true });\n }\n fs.writeFileSync(configPath, configContent, \"utf-8\");\n}\n\nfunction displaySetupSuccess(configPath: string): void {\n console.log(color(\"\\n✅ Configuration generated!\\n\", COLORS.green));\n console.log(` File: ${color(configPath, COLORS.blue)}`);\n console.log();\n console.log(color(\"📝 Next steps:\", COLORS.blue));\n console.log();\n console.log(\" 1. Review the generated configuration file\");\n console.log(\" 2. Fill in values marked with /* CONFIGURE */\");\n console.log(\" 3. Run 'polly verify' to check your configuration\");\n console.log();\n console.log(color(\"💡 Tip:\", COLORS.gray));\n console.log(color(\" Look for comments explaining what each field needs.\", COLORS.gray));\n console.log();\n}\n\nasync function validateCommand() {\n const configPath = path.join(process.cwd(), \"specs\", \"verification.config.ts\");\n\n console.log(color(\"\\n🔍 Validating configuration...\\n\", COLORS.blue));\n\n const result = validateConfig(configPath);\n\n if (result.valid) {\n console.log(color(\"✅ Configuration is complete and valid!\\n\", COLORS.green));\n console.log(\" You can now run 'polly verify' to start verification.\");\n console.log();\n return;\n }\n\n // Show errors\n const errors = result.issues.filter((i) => i.severity === \"error\");\n const warnings = result.issues.filter((i) => i.severity === \"warning\");\n\n displayValidationErrors(errors);\n displayValidationWarnings(warnings);\n\n console.log(color(\"Configuration incomplete. Please fix the errors above.\\n\", COLORS.red));\n process.exit(1);\n}\n\nasync function estimateCommand() {\n const configPath = path.join(process.cwd(), \"specs\", \"verification.config.ts\");\n\n console.log(color(\"\\n📊 Estimating state space...\\n\", COLORS.blue));\n\n // Validate config first\n const validation = validateConfig(configPath);\n if (!validation.valid) {\n const errors = validation.issues.filter((i) => i.severity === \"error\");\n console.log(color(`❌ Configuration incomplete (${errors.length} error(s))\\n`, COLORS.red));\n for (const error of errors.slice(0, 3)) {\n console.log(color(` • ${error.message}`, COLORS.red));\n }\n console.log(\"\\n Run 'polly verify --validate' to see all issues\");\n process.exit(1);\n }\n\n // Load config\n const config = await loadVerificationConfig(configPath);\n\n // Analyze codebase\n const analysis = await runCodebaseAnalysis();\n\n // Validate expressions\n const typedConfig = config as unknown as import(\"./config/types\").UnifiedVerificationConfig;\n const typedAnalysis = analysis as unknown as import(\"./core/model\").CodebaseAnalysis;\n const meshSignalNames = new Set(\n (typedAnalysis.meshOrPeerSignals ?? []).map((s) => s.variableName)\n );\n const exprValidation = validateExpressions(\n typedAnalysis.handlers,\n typedConfig.state,\n meshSignalNames\n );\n if (exprValidation.warnings.length > 0) {\n displayExpressionWarnings(exprValidation);\n }\n\n // Estimate\n const estimate = estimateStateSpace(typedConfig, typedAnalysis);\n\n displayEstimate(estimate);\n}\n\nfunction displayEstimate(estimate: StateSpaceEstimate): void {\n console.log(color(\"State space estimate:\\n\", COLORS.blue));\n\n // Fields table\n console.log(color(\" Fields:\", COLORS.blue));\n for (const field of estimate.fields) {\n const name = field.name.padEnd(28);\n const kind = field.kind.padEnd(18);\n const card =\n field.cardinality === \"unbounded\"\n ? color(\"(excluded — unbounded)\", COLORS.yellow)\n : `${field.cardinality} values`;\n console.log(` ${name} ${kind} ${card}`);\n }\n\n console.log();\n console.log(` Field combinations: ${color(String(estimate.fieldProduct), COLORS.green)}`);\n console.log(` Handlers: ${estimate.handlerCount}`);\n console.log(` Max in-flight: ${estimate.maxInFlight}`);\n console.log(\n ` Contexts: ${estimate.contextCount} (${estimate.contextCount - 1} tab${estimate.contextCount - 1 === 1 ? \"\" : \"s\"} + background)`\n );\n console.log(` Interleaving factor: ${estimate.interleavingFactor}`);\n\n console.log();\n console.log(\n ` Estimated states: ${color(`~${estimate.estimatedStates.toLocaleString()}`, COLORS.green)}`\n );\n\n // Feasibility\n const feasColor =\n estimate.feasibility === \"trivial\" || estimate.feasibility === \"feasible\"\n ? COLORS.green\n : estimate.feasibility === \"slow\"\n ? COLORS.yellow\n : COLORS.red;\n console.log();\n console.log(` Assessment: ${color(feasibilityLabel(estimate.feasibility), feasColor)}`);\n\n // Warnings\n if (estimate.warnings.length > 0) {\n console.log();\n for (const w of estimate.warnings) {\n console.log(color(` ⚠️ ${w}`, COLORS.yellow));\n }\n }\n\n // Suggestions\n if (estimate.suggestions.length > 0) {\n console.log();\n console.log(color(\" Suggestions:\", COLORS.blue));\n for (const s of estimate.suggestions) {\n console.log(color(` • ${s}`, COLORS.gray));\n }\n }\n\n console.log();\n}\n\nfunction displayValidationErrors(\n errors: Array<{\n message: string;\n field?: string;\n location?: { line: number };\n suggestion: string;\n }>\n): void {\n if (errors.length === 0) return;\n\n console.log(color(`❌ Found ${errors.length} error(s):\\n`, COLORS.red));\n\n for (const error of errors) {\n console.log(color(` • ${error.message}`, COLORS.red));\n if (error.field) {\n console.log(color(` Field: ${error.field}`, COLORS.gray));\n }\n if (error.location) {\n console.log(color(` Location: line ${error.location.line}`, COLORS.gray));\n }\n console.log(color(` → ${error.suggestion}`, COLORS.yellow));\n console.log();\n }\n}\n\nfunction displayValidationWarnings(\n warnings: Array<{ message: string; field?: string; suggestion: string }>\n): void {\n if (warnings.length === 0) return;\n\n console.log(color(`⚠️ Found ${warnings.length} warning(s):\\n`, COLORS.yellow));\n\n for (const warning of warnings) {\n console.log(color(` • ${warning.message}`, COLORS.yellow));\n if (warning.field) {\n console.log(color(` Field: ${warning.field}`, COLORS.gray));\n }\n console.log(color(` → ${warning.suggestion}`, COLORS.gray));\n console.log();\n }\n}\n\nfunction displayExpressionWarnings(result: ValidationResult): void {\n if (result.warnings.length === 0) return;\n\n console.log(color(`⚠️ Found ${result.warnCount} expression warning(s):\\n`, COLORS.yellow));\n\n for (const w of result.warnings) {\n console.log(color(` ⚠ ${w.message}`, COLORS.yellow));\n console.log(color(` ${w.expression}`, COLORS.gray));\n console.log(color(` at ${w.location.file}:${w.location.line}`, COLORS.gray));\n console.log(color(` → ${w.suggestion}`, COLORS.yellow));\n console.log();\n }\n}\n\n/**\n * polly#117: warn when a handler's requires/ensures predicate\n * references a `$meshState`/`$peerState` signal whose cross-peer\n * semantics the verifier does NOT check.\n *\n * A `$meshState` document declared under `mesh:` in the verification\n * config is routed through the `meshState` namespace with a\n * `PropagateMeshOp` action — its cross-peer claims are genuinely\n * checked, so it is NOT warned about. An *undeclared* `$meshState`\n * signal, or any `$peerState` signal, is flattened to single-context\n * local state; a predicate over it silently asserts only the\n * executing context's view. This warning makes that narrowing loud\n * and points at the fix.\n */\nfunction displayMeshOrPeerSignalWarnings(\n analysis: import(\"./core/model\").CodebaseAnalysis,\n declaredMeshDocs: ReadonlySet<string>\n): number {\n const findings = computeMeshOrPeerSignalFindings(analysis, declaredMeshDocs);\n if (findings.length === 0) return 0;\n\n const hasUndeclaredMesh = findings.some((f) => f.signalKind === \"mesh\");\n const hasPeer = findings.some((f) => f.signalKind === \"peer\");\n\n console.log(\n color(\n `\\n⚠️ ${findings.length} predicate(s) reference an unverified $meshState/$peerState signal (polly#117):`,\n COLORS.yellow\n )\n );\n console.log(\n color(\n \" These signals are flattened to single-context local state, so a green run\",\n COLORS.gray\n )\n );\n console.log(color(\" does NOT prove the claim holds across peers.\", COLORS.gray));\n if (hasUndeclaredMesh) {\n console.log(\n color(\n \" Fix ($meshState): declare the document key under `mesh: { ... }` in your\",\n COLORS.gray\n )\n );\n console.log(\n color(\n \" verification config. Declared mesh docs are routed through the meshState\",\n COLORS.gray\n )\n );\n console.log(\n color(\n \" namespace with a PropagateMeshOp action, so `forAllPeers(...)` claims are checked.\",\n COLORS.gray\n )\n );\n }\n if (hasPeer) {\n console.log(\n color(\" $peerState signals have no cross-peer verification model yet.\", COLORS.gray)\n );\n }\n console.log();\n\n for (const f of findings) {\n const remedy =\n f.signalKind === \"mesh\" ? \"not declared in config.mesh\" : \"$peerState — no cross-peer model\";\n console.log(color(` ⚠ ${f.handler} ${f.kind}: ${f.signalName} (${remedy})`, COLORS.yellow));\n console.log(color(` ${f.expression}`, COLORS.gray));\n console.log(color(` at ${f.location.file}:${f.location.line}`, COLORS.gray));\n console.log();\n }\n\n return findings.length;\n}\n\n/**\n * polly#160 (Ask #1): does the operator want a fail-closed run? `--strict`\n * (or POLLY_VERIFY_STRICT=1) turns model-coverage gaps and unverified\n * mesh/peer signals from warnings into a non-zero exit, so a silently\n * unmodelled path cannot pass with a green check.\n */\nfunction isStrictMode(): boolean {\n return process.argv.includes(\"--strict\") || process.env.POLLY_VERIFY_STRICT === \"1\";\n}\n\n/**\n * `polly verify --witness`: after the invariant pass, turn each BDD scenario's\n * Then-predicate into a per-scenario TLC reachability check (the deeper BDD ↔\n * verify link). A scenario whose outcome the exhaustive model proves\n * unreachable is a scenario that lies. Off by default — it adds one TLC run per\n * witnessable scenario.\n */\nfunction isWitnessMode(): boolean {\n return process.argv.includes(\"--witness\");\n}\n\n/**\n * polly#160 (Ask #1): render the model-coverage report — which declared state\n * fields are written by which handlers, which are written by none, and which\n * mutators pin no postcondition. Clean specs get a one-line confirmation.\n */\nfunction displayModelCoverage(\n report: import(\"./analysis/model-coverage\").ModelCoverageReport\n): void {\n const { unwrittenFields, unconstrainedMutators, fieldCoverage } = report;\n\n if (unwrittenFields.length === 0 && unconstrainedMutators.length === 0) {\n console.log(\n color(\n `✓ Model coverage: all ${fieldCoverage.length} declared field(s) written by a modelled handler`,\n COLORS.green\n )\n );\n console.log();\n return;\n }\n\n if (unwrittenFields.length > 0) {\n console.log(\n color(\n `\\n⚠️ ${unwrittenFields.length} declared state field(s) written by NO modelled handler (polly#160):`,\n COLORS.yellow\n )\n );\n for (const f of unwrittenFields) {\n console.log(color(` • ${f}`, COLORS.yellow));\n }\n console.log(\n color(\n \" The model carries a variable no transition can change. Either it is dead\",\n COLORS.gray\n )\n );\n console.log(\n color(\n \" state (drop it from the verified surface) or its mutating path was never\",\n COLORS.gray\n )\n );\n console.log(\n color(\" modelled — the omission class both TLC and mutation testing miss.\", COLORS.gray)\n );\n console.log();\n }\n\n if (unconstrainedMutators.length > 0) {\n console.log(\n color(\n `ℹ️ ${unconstrainedMutators.length} handler(s) mutate declared state with no ensures() postcondition:`,\n COLORS.gray\n )\n );\n for (const m of unconstrainedMutators) {\n console.log(\n color(\n ` • ${m.handler} writes {${m.fields.join(\", \")}} — ${m.location.file}:${m.location.line}`,\n COLORS.gray\n )\n );\n }\n console.log(\n color(\n \" The checker explores these transitions but asserts nothing about their effect.\",\n COLORS.gray\n )\n );\n console.log();\n }\n}\n\n/**\n * polly#160 (Ask #1): compute and render the model-coverage report, then —\n * under --strict — fail closed before the expensive TLC pass when the model\n * has an unwritten declared field or an unverified mesh/peer signal. Extracted\n * from runFullVerification to keep that orchestrator within complexity limits.\n */\nasync function runModelCoverage(\n typedConfig: UnifiedVerificationConfig,\n typedAnalysis: import(\"./core/model\").CodebaseAnalysis,\n meshFindingCount: number\n): Promise<void> {\n const { computeModelCoverage, strictCoverageReasons } = await import(\"./analysis/model-coverage\");\n const stateFields = Object.keys(typedConfig.state ?? {});\n const coverage = computeModelCoverage(stateFields, typedAnalysis.handlers);\n displayModelCoverage(coverage);\n\n if (!isStrictMode()) return;\n\n const reasons = strictCoverageReasons(coverage, meshFindingCount);\n\n if (reasons.length === 0) {\n console.log(color(\"✓ Strict mode: model coverage complete\", COLORS.green));\n console.log();\n return;\n }\n\n console.log(color(\"❌ Strict mode: model coverage incomplete\\n\", COLORS.red));\n for (const reason of reasons) {\n console.log(color(` • ${reason}`, COLORS.red));\n }\n console.log();\n console.log(\n color(\" --strict fails closed on these so an unmodelled path cannot pass with a\", COLORS.gray)\n );\n console.log(\n color(\" green check. Re-run without --strict to treat them as warnings.\", COLORS.gray)\n );\n console.log();\n process.exit(1);\n}\n\nasync function verifyCommand() {\n const configPath = path.join(process.cwd(), \"specs\", \"verification.config.ts\");\n\n console.log(color(\"\\n🔍 Running verification...\\n\", COLORS.blue));\n\n // First validate config\n const validation = validateConfig(configPath);\n\n if (!validation.valid) {\n const errors = validation.issues.filter((i) => i.severity === \"error\");\n console.log(color(`❌ Configuration incomplete (${errors.length} error(s))\\n`, COLORS.red));\n\n for (const error of errors.slice(0, 3)) {\n console.log(color(` • ${error.message}`, COLORS.red));\n if (error.field) {\n console.log(color(` Field: ${error.field}`, COLORS.gray));\n }\n console.log();\n }\n\n if (errors.length > 3) {\n console.log(color(` ... and ${errors.length - 3} more error(s)`, COLORS.gray));\n console.log();\n }\n\n console.log(\" Run 'polly verify --validate' to see all issues\");\n console.log(\" Run 'polly verify --setup' to regenerate configuration\");\n console.log();\n process.exit(1);\n }\n\n console.log(color(\"✓ Configuration valid\", COLORS.green));\n console.log();\n\n // Run full verification\n try {\n await runFullVerification(configPath);\n } catch (error) {\n // biome-ignore lint/suspicious/noConsole: CLI tool needs console output for error reporting\n console.error(color(\"\\n❌ Verification error:\", COLORS.red));\n if (error instanceof Error) {\n // biome-ignore lint/suspicious/noConsole: CLI tool needs console output for error reporting\n console.error(color(error.message, COLORS.red));\n if (process.env.POLLY_DEBUG) {\n // biome-ignore lint/suspicious/noConsole: CLI tool needs console output for error reporting\n console.error(color(\"\\nStack trace:\", COLORS.gray));\n // biome-ignore lint/suspicious/noConsole: CLI tool needs console output for error reporting\n console.error(error.stack);\n }\n } else {\n // biome-ignore lint/suspicious/noConsole: CLI tool needs console output for error reporting\n console.error(String(error));\n }\n // biome-ignore lint/suspicious/noConsole: CLI tool needs console output for error reporting\n console.error();\n process.exit(1);\n }\n}\n\n/**\n * polly#117/#114: read the docIds of the optional `mesh` record off a loaded\n * config without asserting its shape.\n */\nfunction getMeshDocIds(config: unknown): string[] {\n if (typeof config !== \"object\" || config === null || !(\"mesh\" in config)) return [];\n const mesh = config.mesh;\n if (typeof mesh !== \"object\" || mesh === null) return [];\n return Object.keys(mesh);\n}\n\n/**\n * Get timeout in seconds from config (0 = no timeout)\n */\nfunction getTimeout(config: UnifiedVerificationConfig): number {\n return config.verification?.timeout ?? 0;\n}\n\n/**\n * Get number of workers from config\n */\nfunction getWorkers(config: UnifiedVerificationConfig): number {\n return config.verification?.workers ?? 1;\n}\n\n/**\n * Get maxDepth from config for bounded model checking (Tier 2)\n */\nfunction getMaxDepth(config: UnifiedVerificationConfig): number | undefined {\n // maxDepth is only available in legacy config format with tier2 settings\n if (\"tier2\" in config && config.tier2?.boundedExploration?.maxDepth) {\n return config.tier2.boundedExploration.maxDepth;\n }\n return undefined;\n}\n\n/**\n * polly#160 (A2): coupled-field write-coupling lint. WARNS only — a legitimate\n * staged transition (one handler sets each field) trips the per-handler subset\n * check, so this never fails the run. The sound, whole-state detector is the\n * `capabilities` TLA+ invariant. Runs in runFullVerification before the\n * subsystem/monolithic branch, so it covers both paths.\n */\nasync function runCoupledFieldsLint(\n config: UnifiedVerificationConfig,\n analysis: import(\"./core/model\").CodebaseAnalysis\n): Promise<void> {\n const groups = config.coupledFields ?? [];\n if (groups.length === 0) return;\n\n const { checkCoupledFields } = await import(\"./analysis/coupled-fields\");\n const result = checkCoupledFields(groups, analysis.handlers);\n\n if (result.valid) {\n console.log(color(\"✓ Coupled fields: verified (no partial-subset writes)\", COLORS.green));\n console.log();\n return;\n }\n\n console.log(color(\"⚠️ Coupled-field violations detected:\\n\", COLORS.yellow));\n for (const v of result.violations) {\n console.log(\n color(\n ` • Handler \"${v.handler}\" writes {${v.written.join(\", \")}} but not {${v.missing.join(\n \", \"\n )}} of coupled group {${v.group.join(\", \")}}`,\n COLORS.yellow\n )\n );\n }\n console.log();\n console.log(\n color(\n \" These fields are declared to move together; a capability granted without its\",\n COLORS.yellow\n )\n );\n console.log(\n color(\n \" precondition is a likely cause. Co-write the full group in each handler, or model\",\n COLORS.yellow\n )\n );\n console.log(color(\" the relationship with a `capabilities` invariant.\", COLORS.yellow));\n console.log();\n}\n\nasync function runFullVerification(configPath: string) {\n // Load config\n const config = await loadVerificationConfig(configPath);\n\n // Analyze codebase\n const analysis = await runCodebaseAnalysis();\n\n // Validate expressions\n const typedConfig = config as unknown as UnifiedVerificationConfig;\n const typedAnalysis = analysis as unknown as import(\"./core/model\").CodebaseAnalysis;\n // polly#117: mesh/peer signal variable names — references into these\n // are not \"unmodeled fields\"; they are handled by the dedicated\n // mesh/peer signal warning below.\n const meshSignalNames = new Set(\n (typedAnalysis.meshOrPeerSignals ?? []).map((s) => s.variableName)\n );\n const exprValidation = validateExpressions(\n typedAnalysis.handlers,\n typedConfig.state,\n meshSignalNames\n );\n if (exprValidation.warnings.length > 0) {\n displayExpressionWarnings(exprValidation);\n }\n\n // polly#117: surface mesh- and peer-scoped signal references whose\n // cross-peer semantics the codegen does not check. A $meshState doc\n // declared under `mesh:` is verified cross-peer and excluded.\n const declaredMeshDocs = new Set(getMeshDocIds(typedConfig));\n const meshFindingCount = displayMeshOrPeerSignalWarnings(typedAnalysis, declaredMeshDocs);\n\n // polly#160: coupled-field write-coupling lint (warn-only). One call here\n // covers both the subsystem and monolithic paths below.\n await runCoupledFieldsLint(typedConfig, typedAnalysis);\n\n // polly#160 (Ask #1): model-coverage report + optional fail-closed gate.\n await runModelCoverage(typedConfig, typedAnalysis, meshFindingCount);\n\n // Check for subsystem-scoped verification\n if (typedConfig.subsystems && Object.keys(typedConfig.subsystems).length > 0) {\n await runSubsystemVerification(typedConfig, typedAnalysis);\n if (isWitnessMode()) {\n await runWitnessVerification(typedConfig);\n }\n return;\n }\n\n // Monolithic verification (fallback)\n await runMonolithicVerification(config, analysis);\n if (isWitnessMode()) {\n console.log(\n color(\n \"\\n⚠ --witness needs subsystem-scoped verification (a `subsystems` block in the config);\",\n COLORS.yellow\n )\n );\n console.log(\n color(\" reachability witnesses route each scenario to its subsystem spec.\\n\", COLORS.yellow)\n );\n }\n}\n\nasync function runMonolithicVerification(config: unknown, analysis: unknown) {\n // Generate TLA+ specs\n const { specPath, specDir } = await generateAndWriteTLASpecs(config, analysis);\n\n // Find and copy base spec\n findAndCopyBaseSpec(specDir);\n\n console.log(color(\"✓ Specification generated\", COLORS.green));\n console.log(color(` ${specPath}`, COLORS.gray));\n console.log();\n\n // Setup and run Docker\n const docker = await setupDocker();\n\n // Determine timeout, workers, and maxDepth from config\n const typedConfig = config as unknown as UnifiedVerificationConfig;\n const timeoutSeconds = getTimeout(typedConfig);\n const workers = getWorkers(typedConfig);\n const maxDepth = getMaxDepth(typedConfig);\n\n // Run TLC\n console.log(color(\"⚙️ Running TLC model checker...\", COLORS.blue));\n if (timeoutSeconds === 0) {\n console.log(color(\" No timeout set - will run until completion\", COLORS.gray));\n } else {\n const timeoutMinutes = Math.floor(timeoutSeconds / 60);\n const timeoutLabel =\n timeoutMinutes > 0\n ? `${timeoutMinutes} minute${timeoutMinutes > 1 ? \"s\" : \"\"}`\n : `${timeoutSeconds} seconds`;\n console.log(color(` Timeout: ${timeoutLabel}`, COLORS.gray));\n }\n if (maxDepth !== undefined) {\n console.log(color(` Max depth: ${maxDepth}`, COLORS.gray));\n }\n console.log();\n\n const result = await docker.runTLC(specPath, {\n workers,\n timeout: timeoutSeconds > 0 ? timeoutSeconds * 1000 : undefined,\n maxDepth,\n });\n\n // polly#114: when the project declares $meshState documents, also\n // model-check the concurrent first-time seed — the polly#113 race that\n // lived entirely outside verification. A failure here is reported and\n // exits before the project-spec result.\n const meshSeed = await runMeshSeedGuard(docker, specDir, config);\n if (meshSeed && !meshSeed.success) {\n console.log(color(\"\\n❌ Mesh seed-race guard failed (polly#113 / polly#114)\\n\", COLORS.red));\n displayVerificationResults(meshSeed, specDir);\n }\n if (meshSeed) {\n console.log(color(\"✓ Mesh seed-race guard passed (MeshSeed.tla)\\n\", COLORS.green));\n }\n\n // Display results\n displayVerificationResults(result, specDir);\n}\n\n// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: Subsystem orchestration requires sequential steps with branching\nasync function runSubsystemVerification(\n config: UnifiedVerificationConfig,\n analysis: import(\"./core/model\").CodebaseAnalysis\n) {\n const subsystems = config.subsystems as unknown as Record<\n string,\n { state: string[]; handlers: string[] }\n >;\n const subsystemNames = Object.keys(subsystems);\n\n console.log(\n color(`Subsystem-scoped verification (${subsystemNames.length} subsystems)\\n`, COLORS.blue)\n );\n\n // Non-interference check\n const { checkNonInterference } = await import(\"./analysis/non-interference\");\n const interference = checkNonInterference(subsystems, analysis.handlers);\n\n if (interference.valid) {\n console.log(\n color(\"✓ Non-interference: verified (no cross-subsystem state writes)\", COLORS.green)\n );\n console.log();\n } else {\n console.log(color(\"⚠️ Non-interference violations detected:\\n\", COLORS.yellow));\n for (const v of interference.violations) {\n console.log(\n color(\n ` • Handler \"${v.handler}\" (${v.subsystem}) writes to \"${v.writesTo}\" owned by \"${v.ownedBy}\"`,\n COLORS.yellow\n )\n );\n }\n console.log();\n console.log(\n color(\n \" Compositional verification may not be sound. Consider restructuring subsystem boundaries.\",\n COLORS.yellow\n )\n );\n console.log();\n }\n\n // Precondition-locality check (read-side complement to non-interference).\n // A handler whose requires() reads state owned by another subsystem will\n // silently never have its postcondition evaluated under compositional\n // verification: the foreign subsystem is absent during this pass, so the\n // pre-state the handler waits for is never produced and TLC reports PASS\n // without firing the property the user wrote.\n const { checkPreconditionLocality } = await import(\"./analysis/precondition-locality\");\n const locality = checkPreconditionLocality(subsystems, analysis.handlers);\n\n if (locality.valid) {\n console.log(\n color(\"✓ Precondition locality: verified (no cross-subsystem requires() reads)\", COLORS.green)\n );\n console.log();\n } else {\n console.log(color(\"⚠️ Precondition-locality violations detected:\\n\", COLORS.yellow));\n for (const v of locality.violations) {\n console.log(\n color(\n ` • Handler \"${v.handler}\" (${v.subsystem}) requires \"${v.readsFrom}\" owned by \"${v.ownedBy}\"`,\n COLORS.yellow\n )\n );\n console.log(color(` ${v.expression}`, COLORS.gray));\n }\n console.log();\n console.log(\n color(\n \" Compositional verification of these subsystems cannot satisfy the precondition;\",\n COLORS.yellow\n )\n );\n console.log(\n color(\n \" the handler's ensures() postcondition will not be evaluated. Consider restructuring\",\n COLORS.yellow\n )\n );\n console.log(color(\" subsystems to keep preconditions local.\", COLORS.yellow));\n console.log();\n }\n\n // Warn about unassigned handlers\n const assignedHandlers = new Set(Object.values(subsystems).flatMap((s) => s.handlers));\n const unassigned = analysis.messageTypes.filter((mt) => !assignedHandlers.has(mt));\n if (unassigned.length > 0) {\n console.log(\n color(\n `⚠️ ${unassigned.length} handler(s) not assigned to any subsystem (will not be verified):`,\n COLORS.yellow\n )\n );\n for (const h of unassigned.slice(0, 10)) {\n console.log(color(` • ${h}`, COLORS.yellow));\n }\n if (unassigned.length > 10) {\n console.log(color(` ... and ${unassigned.length - 10} more`, COLORS.yellow));\n }\n console.log();\n }\n\n // Setup Docker once\n const docker = await setupDocker();\n const timeoutSeconds = getTimeout(config);\n const workers = getWorkers(config);\n const maxDepth = getMaxDepth(config);\n\n // Generate and run per-subsystem\n const { generateSubsystemTLA } = await import(\"./codegen/tla\");\n const results: Array<{\n name: string;\n success: boolean;\n handlerCount: number;\n ensuresCount: number;\n stateCount: number;\n elapsed: number;\n stats?: { statesGenerated: number; distinctStates: number };\n error?: string;\n }> = [];\n\n for (const name of subsystemNames) {\n const sub = subsystems[name];\n const startTime = Date.now();\n\n console.log(color(`⚙️ Verifying subsystem: ${name}...`, COLORS.blue));\n\n // Generate per-subsystem TLA+\n const { spec, cfg } = await generateSubsystemTLA(name, sub, config, analysis);\n\n // Count step-temporal ensures properties registered for this subsystem.\n // This is the upper bound on postconditions TLC will evaluate; a property\n // only fires when its handler is enabled at some reachable state, so the\n // count overstates true coverage when handlers are multi-step-reachable\n // and bounds.maxInFlight is too low to reach them.\n const ensuresCount = (spec.match(/^EnsuresAfter_\\w+ ==/gm) ?? []).length;\n\n // Write specs\n const specDir = path.join(process.cwd(), \"specs\", \"tla\", \"generated\", name);\n if (!fs.existsSync(specDir)) {\n fs.mkdirSync(specDir, { recursive: true });\n }\n\n const specPath = path.join(specDir, `UserApp_${name}.tla`);\n const cfgPath = path.join(specDir, `UserApp_${name}.cfg`);\n fs.writeFileSync(specPath, spec);\n fs.writeFileSync(cfgPath, cfg);\n\n // Copy base spec\n findAndCopyBaseSpec(specDir);\n\n // Run TLC\n const result = await docker.runTLC(specPath, {\n workers,\n timeout: timeoutSeconds > 0 ? timeoutSeconds * 1000 : undefined,\n maxDepth,\n });\n\n const elapsed = (Date.now() - startTime) / 1000;\n\n results.push({\n name,\n success: result.success,\n handlerCount: sub.handlers.length,\n ensuresCount,\n stateCount: result.stats?.distinctStates ?? 0,\n elapsed,\n stats: result.stats,\n error: result.error,\n });\n\n if (result.success) {\n console.log(color(` ✓ ${name} passed (${elapsed.toFixed(1)}s)`, COLORS.green));\n } else {\n console.log(color(` ✗ ${name} failed`, COLORS.red));\n if (result.violation) {\n console.log(color(` Invariant violated: ${result.violation.name}`, COLORS.red));\n } else if (result.error) {\n console.log(color(` Error: ${result.error}`, COLORS.red));\n }\n // Write full output for debugging\n fs.writeFileSync(path.join(specDir, \"tlc-output.log\"), result.output);\n }\n }\n\n console.log();\n\n // Compositional report\n displayCompositionalReport(results, interference.valid);\n}\n\n/** A finite default cap so an unconstrained witness cannot hang the run. */\nconst DEFAULT_WITNESS_TIMEOUT_MS = 180_000;\n\ntype WitnessStatus =\n | \"reachable\" // positive, pass\n | \"unreachable\" // positive, fail (the scenario lies)\n | \"excluded\" // forbidden, pass (the bad state is proven impossible)\n | \"violated\" // forbidden, fail (the bad state is reachable — a defect)\n | \"inconclusive\"\n | \"skipped\"\n | \"error\";\n\ninterface WitnessResult {\n id: string;\n status: WitnessStatus;\n /** Whether this result passes; drives the run's exit code. */\n ok: boolean;\n subsystem?: string;\n predicate?: string;\n note?: string;\n}\n\n/** Absolute paths matching `pattern` under `cwd`, sorted. */\nasync function globAbsolute(cwd: string, pattern: string): Promise<string[]> {\n const out: string[] = [];\n for await (const f of new Bun.Glob(pattern).scan({ cwd, absolute: true, onlyFiles: true })) {\n out.push(f);\n }\n return out.sort();\n}\n\n/**\n * `polly verify --witness`: the deeper BDD ↔ verify link. Each BDD scenario's\n * Then-predicate (reduced by tools/bdd) becomes a per-scenario TLC reachability\n * check over the subsystem spec the normal pass just generated.\n *\n * Semantics, inverted from a normal invariant: the witness `~(\\E ctx : <Then>)`\n * is *violated* exactly when the model reaches the asserted outcome — so a\n * violation is GOOD (the scenario is honest; the counterexample is its path).\n * A clean full exploration means the outcome is unreachable — the scenario\n * lies, and the run fails. Witnesses run WITHOUT the depth bound: a \"reachable\"\n * verdict is sound at any bound, but \"unreachable\" is only sound under full\n * exploration (StateConstraint keeps the space finite). If TLC times out first,\n * the verdict is inconclusive — reported, never silently passed or failed.\n */\n// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: a flat per-scenario classify loop — the branches are the verdict surface.\nasync function runWitnessVerification(config: UnifiedVerificationConfig): Promise<void> {\n console.log(color(\"Reachability witnesses (--witness)\\n\", COLORS.blue));\n\n const cwd = process.cwd();\n const featureFiles = await globAbsolute(cwd, \"features/**/*.feature\");\n const stepFiles = [\n ...new Set([\n ...(await globAbsolute(cwd, \"features/**/*.steps.ts\")),\n ...(await globAbsolute(cwd, \"features/steps.ts\")),\n ]),\n ];\n if (featureFiles.length === 0 || stepFiles.length === 0) {\n console.log(\n color(\" No .feature files / step modules found — nothing to witness.\\n\", COLORS.gray)\n );\n return;\n }\n\n const { extractWitnesses } = await import(\"../../bdd/src/witness\");\n const {\n bddPredicateToTLA,\n buildWitnessCfg,\n buildWitnessModule,\n routeWitness,\n witnessPolarity,\n witnessVerdict,\n WITNESS_INVARIANT,\n } = await import(\"./codegen/witness\");\n\n const subsystems = config.subsystems as unknown as Record<string, { state: string[] }>;\n const witnesses = await extractWitnesses(featureFiles, stepFiles);\n\n const docker = await setupDocker();\n const timeoutSeconds = getTimeout(config);\n const timeout = timeoutSeconds > 0 ? timeoutSeconds * 1000 : DEFAULT_WITNESS_TIMEOUT_MS;\n const workers = getWorkers(config);\n\n const results: WitnessResult[] = [];\n let idx = 0;\n\n for (const w of witnesses) {\n const id = `${w.feature} › ${w.scenario}`;\n const polarity = witnessPolarity(w.tags);\n if (!w.predicate) {\n results.push({\n id,\n status: \"skipped\",\n ok: true,\n note: \"no state-observable Then to witness\",\n });\n continue;\n }\n const subsystem = routeWitness(w.fields, subsystems);\n if (!subsystem) {\n results.push({\n id,\n status: \"skipped\",\n ok: true,\n note: `fields [${w.fields.join(\", \")}] not owned by a single subsystem`,\n });\n continue;\n }\n\n const specDir = path.join(cwd, \"specs\", \"tla\", \"generated\", subsystem);\n const subsystemCfg = path.join(specDir, `UserApp_${subsystem}.cfg`);\n if (\n !fs.existsSync(path.join(specDir, `UserApp_${subsystem}.tla`)) ||\n !fs.existsSync(subsystemCfg)\n ) {\n results.push({\n id,\n status: \"error\",\n ok: false,\n subsystem,\n note: `subsystem spec missing: ${subsystem}`,\n });\n continue;\n }\n\n let tlaPredicate: string;\n try {\n tlaPredicate = bddPredicateToTLA(w.predicate);\n } catch (err) {\n results.push({\n id,\n status: \"error\",\n ok: false,\n subsystem,\n note: err instanceof Error ? err.message : String(err),\n });\n continue;\n }\n\n const moduleName = `Witness_${subsystem}_${idx++}`;\n const witnessTla = path.join(specDir, `${moduleName}.tla`);\n fs.writeFileSync(\n witnessTla,\n buildWitnessModule(moduleName, `UserApp_${subsystem}`, tlaPredicate)\n );\n fs.writeFileSync(\n path.join(specDir, `${moduleName}.cfg`),\n buildWitnessCfg(fs.readFileSync(subsystemCfg, \"utf8\"))\n );\n\n const polarityTag =\n polarity === \"forbidden\" ? color(\" [forbidden — must be unreachable]\", COLORS.gray) : \"\";\n console.log(color(`⚙️ ${id}`, COLORS.blue) + polarityTag);\n console.log(color(` ${subsystem} ⊨ ${w.predicate}`, COLORS.gray));\n\n let tlc: Awaited<ReturnType<Awaited<ReturnType<typeof setupDocker>>[\"runTLC\"]>>;\n try {\n tlc = await docker.runTLC(witnessTla, { workers, timeout });\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n results.push({\n id,\n status: \"inconclusive\",\n ok: true,\n subsystem,\n predicate: w.predicate,\n note: msg,\n });\n console.log(\n color(\" ⚠ inconclusive — TLC did not finish (raise the config timeout)\", COLORS.yellow)\n );\n continue;\n }\n\n const reachable = !tlc.success && tlc.violation?.name === WITNESS_INVARIANT;\n // A failure that is NOT our witness invariant is a genuine TLC/spec error.\n if (!tlc.success && !reachable) {\n results.push({\n id,\n status: \"error\",\n ok: false,\n subsystem,\n predicate: w.predicate,\n note: tlc.error ?? tlc.violation?.name ?? \"TLC error\",\n });\n console.log(color(` ! error — ${tlc.error ?? \"see log\"}`, COLORS.yellow));\n fs.writeFileSync(path.join(specDir, `${moduleName}.tlc-output.log`), tlc.output);\n continue;\n }\n\n const verdict = witnessVerdict(polarity, reachable);\n const note = reachable\n ? undefined\n : `${tlc.stats?.distinctStates ?? 0} distinct states explored`;\n results.push({\n id,\n status: verdict.status,\n ok: verdict.ok,\n subsystem,\n predicate: w.predicate,\n note,\n });\n console.log(\n color(\n ` ${verdict.ok ? \"✓\" : \"✗\"} ${verdict.status} — ${verdict.message}`,\n verdict.ok ? COLORS.green : COLORS.red\n )\n );\n // Keep the trace for any failure (a positive lie or a reachable forbidden state).\n if (!verdict.ok)\n fs.writeFileSync(path.join(specDir, `${moduleName}.tlc-output.log`), tlc.output);\n }\n\n displayWitnessReport(results);\n}\n\nfunction displayWitnessReport(results: WitnessResult[]): void {\n const count = (s: WitnessStatus) => results.filter((r) => r.status === s).length;\n\n console.log();\n console.log(color(\"Witness results:\\n\", COLORS.blue));\n for (const r of results) {\n const mark = {\n reachable: color(\"✓\", COLORS.green),\n excluded: color(\"✓\", COLORS.green),\n unreachable: color(\"✗\", COLORS.red),\n violated: color(\"✗\", COLORS.red),\n inconclusive: color(\"⚠\", COLORS.yellow),\n error: color(\"!\", COLORS.yellow),\n skipped: color(\"·\", COLORS.gray),\n }[r.status];\n const note = r.note ? color(` (${r.note})`, COLORS.gray) : \"\";\n console.log(` ${mark} ${r.status.padEnd(12)} ${r.id}${note}`);\n }\n\n const tally = (\n [\n \"reachable\",\n \"excluded\",\n \"unreachable\",\n \"violated\",\n \"inconclusive\",\n \"error\",\n \"skipped\",\n ] as const\n )\n .map((s) => `${count(s)} ${s}`)\n .join(\", \");\n console.log();\n console.log(color(` ${tally}`, COLORS.gray));\n console.log();\n\n const failures = results.filter((r) => !r.ok);\n if (failures.length > 0) {\n console.log(color(\"Witness result: ✗ FAIL\", COLORS.red));\n console.log(\n color(\n \" An outcome a scenario claims is unreachable, or a forbidden state the model can reach.\",\n COLORS.gray\n )\n );\n console.log();\n process.exit(1);\n }\n console.log(color(\"Witness result: ✓ PASS\", COLORS.green));\n console.log(\n color(\n \" Every claimed outcome is reachable; every forbidden state is proven unreachable.\",\n COLORS.gray\n )\n );\n console.log();\n}\n\nfunction displayEnsuresSummary(results: Array<{ ensuresCount: number }>): void {\n const totalEnsures = results.reduce((sum, r) => sum + r.ensuresCount, 0);\n if (totalEnsures === 0) return;\n\n const subsystemWord = `subsystem${results.length === 1 ? \"\" : \"s\"}`;\n console.log();\n console.log(\n color(\n ` ${totalEnsures} ensures step-properties registered across ${results.length} ${subsystemWord}.`,\n COLORS.gray\n )\n );\n console.log(\n color(\" A property only fires at states where its handler is enabled — raise\", COLORS.gray)\n );\n console.log(\n color(\n \" bounds.maxInFlight on a subsystem to reach multi-step-reachable handlers.\",\n COLORS.gray\n )\n );\n}\n\nfunction displayCompositionalReport(\n results: Array<{\n name: string;\n success: boolean;\n handlerCount: number;\n ensuresCount: number;\n stateCount: number;\n elapsed: number;\n }>,\n nonInterferenceValid: boolean\n): void {\n console.log(color(\"Subsystem verification results:\\n\", COLORS.blue));\n\n for (const r of results) {\n const status = r.success ? color(\"✓\", COLORS.green) : color(\"✗\", COLORS.red);\n const name = r.name.padEnd(20);\n const handlers = `${r.handlerCount} handler${r.handlerCount === 1 ? \"\" : \"s\"}`;\n const ensures = `${r.ensuresCount} ensures`;\n const states = `${r.stateCount} states`;\n const time = `${r.elapsed.toFixed(1)}s`;\n console.log(\n ` ${status} ${name} ${handlers.padEnd(14)} ${ensures.padEnd(12)} ${states.padEnd(14)} ${time}`\n );\n }\n\n displayEnsuresSummary(results);\n\n console.log();\n\n const nonIntLabel = nonInterferenceValid\n ? color(\"✓ verified (no cross-subsystem state writes)\", COLORS.green)\n : color(\"⚠ violations detected\", COLORS.yellow);\n console.log(` Non-interference: ${nonIntLabel}`);\n console.log();\n\n const allPassed = results.every((r) => r.success);\n if (allPassed && nonInterferenceValid) {\n console.log(color(\"Compositional result: ✓ PASS\", COLORS.green));\n console.log(\n color(\" All subsystems verified independently. By non-interference,\", COLORS.gray)\n );\n console.log(color(\" the full system satisfies all per-subsystem invariants.\", COLORS.gray));\n } else if (allPassed && !nonInterferenceValid) {\n console.log(color(\"Compositional result: ⚠ PASS (with warnings)\", COLORS.yellow));\n console.log(\n color(\" All subsystems passed, but non-interference violations exist.\", COLORS.gray)\n );\n console.log(color(\" Compositional soundness is not guaranteed.\", COLORS.gray));\n } else {\n console.log(color(\"Compositional result: ✗ FAIL\", COLORS.red));\n const failed = results.filter((r) => !r.success);\n for (const f of failed) {\n console.log(color(` Failed: ${f.name}`, COLORS.red));\n }\n process.exit(1);\n }\n\n console.log();\n}\n\nasync function loadVerificationConfig(configPath: string): Promise<unknown> {\n const resolvedPath = path.resolve(configPath);\n const configModule = await import(`file://${resolvedPath}?t=${Date.now()}`);\n\n // Support both named export (verificationConfig) and default export\n // Named export was added in v0.7.0 for better IDE support\n return configModule.verificationConfig || configModule.default;\n}\n\nasync function runCodebaseAnalysis(): Promise<{ fields: unknown[]; messageTypes: unknown[] }> {\n console.log(color(\"📊 Analyzing codebase...\", COLORS.blue));\n const tsConfigPath = findTsConfig();\n if (!tsConfigPath) {\n throw new Error(\"Could not find tsconfig.json\");\n }\n\n const analysis = await analyzeCodebase({\n tsConfigPath,\n stateFilePath: findStateFile(),\n });\n\n console.log(color(\"✓ Analysis complete\", COLORS.green));\n console.log();\n\n return analysis;\n}\n\nasync function generateAndWriteTLASpecs(\n config: unknown,\n analysis: unknown\n): Promise<{ specPath: string; specDir: string }> {\n const { generateTLA } = await import(\"./codegen/tla\");\n\n console.log(color(\"📝 Generating TLA+ specification...\", COLORS.blue));\n const { spec, cfg } = await generateTLA(config, analysis);\n\n const specDir = path.join(process.cwd(), \"specs\", \"tla\", \"generated\");\n if (!fs.existsSync(specDir)) {\n fs.mkdirSync(specDir, { recursive: true });\n }\n\n const specPath = path.join(specDir, \"UserApp.tla\");\n const cfgPath = path.join(specDir, \"UserApp.cfg\");\n\n fs.writeFileSync(specPath, spec);\n fs.writeFileSync(cfgPath, cfg);\n\n return { specPath, specDir };\n}\n\nfunction findAndCopyBaseSpec(specDir: string): void {\n const possiblePaths = [\n path.join(process.cwd(), \"specs\", \"tla\", \"MessageRouter.tla\"),\n path.join(__dirname, \"..\", \"specs\", \"tla\", \"MessageRouter.tla\"),\n path.join(__dirname, \"..\", \"..\", \"specs\", \"tla\", \"MessageRouter.tla\"),\n path.join(\n process.cwd(),\n \"external\",\n \"polly\",\n \"packages\",\n \"verify\",\n \"specs\",\n \"tla\",\n \"MessageRouter.tla\"\n ),\n path.join(\n process.cwd(),\n \"node_modules\",\n \"@fairfox\",\n \"polly-verify\",\n \"specs\",\n \"tla\",\n \"MessageRouter.tla\"\n ),\n ];\n\n let baseSpecPath: string | null = null;\n for (const candidatePath of possiblePaths) {\n if (fs.existsSync(candidatePath)) {\n baseSpecPath = candidatePath;\n break;\n }\n }\n\n if (baseSpecPath) {\n const destSpecPath = path.join(specDir, \"MessageRouter.tla\");\n fs.copyFileSync(baseSpecPath, destSpecPath);\n console.log(color(\"✓ Copied MessageRouter.tla\", COLORS.green));\n } else {\n console.log(\n color(\"⚠️ Warning: MessageRouter.tla not found, verification may fail\", COLORS.yellow)\n );\n console.log(color(\" Searched in:\", COLORS.gray));\n for (const searchPath of possiblePaths) {\n console.log(color(` - ${searchPath}`, COLORS.gray));\n }\n }\n}\n\n/**\n * polly#114: locate the directory holding the committed MeshSeed.tla /\n * MeshSeed.cfg pair. Mirrors findAndCopyBaseSpec's search order.\n */\nfunction findMeshSeedSpecDir(): string | null {\n const candidates = [\n path.join(process.cwd(), \"specs\", \"tla\"),\n path.join(__dirname, \"..\", \"specs\", \"tla\"),\n path.join(__dirname, \"..\", \"..\", \"specs\", \"tla\"),\n path.join(process.cwd(), \"node_modules\", \"@fairfox\", \"polly-verify\", \"specs\", \"tla\"),\n ];\n for (const dir of candidates) {\n if (fs.existsSync(path.join(dir, \"MeshSeed.tla\"))) return dir;\n }\n return null;\n}\n\n/**\n * polly#114: model-check the concurrent first-time $meshState seed.\n *\n * When the project declares mesh documents the seed path is in scope —\n * and the polly#113 race (two devices materialising the same document\n * concurrently, forking it permanently) lived entirely outside the\n * verify pipeline. This runs MeshSeed.tla alongside the project spec.\n *\n * `POLLY_113_DISABLE_FIX=1` — the same toggle seedDocumentBytes honours\n * to restore the pre-fix non-deterministic seed — flips the spec's\n * SeedDeterministic constant to FALSE. Under it TLC reports a\n * SeedConvergence violation and verification fails, so a regression in\n * the seed path cannot land green.\n *\n * Returns undefined (guard skipped) when no mesh documents are declared.\n */\nasync function runMeshSeedGuard(\n docker: Awaited<ReturnType<typeof setupDocker>>,\n specDir: string,\n config: unknown\n): Promise<Parameters<typeof displayVerificationResults>[0] | undefined> {\n if (getMeshDocIds(config).length === 0) return undefined;\n\n const sourceDir = findMeshSeedSpecDir();\n if (!sourceDir) {\n console.log(color(\"⚠️ MeshSeed.tla not found — skipping seed-race guard\", COLORS.yellow));\n return undefined;\n }\n\n const fixDisabled = isSeedFixDisabled();\n fs.copyFileSync(path.join(sourceDir, \"MeshSeed.tla\"), path.join(specDir, \"MeshSeed.tla\"));\n // One source of truth for Peers / invariants / properties: the\n // committed cfg. Only the SeedDeterministic constant is rewritten.\n const baseCfg = fs.readFileSync(path.join(sourceDir, \"MeshSeed.cfg\"), \"utf8\");\n fs.writeFileSync(\n path.join(specDir, \"MeshSeed.cfg\"),\n meshSeedCfg(baseCfg, { disableFix: fixDisabled })\n );\n\n console.log(\n color(\n `⚙️ Running mesh seed-race guard (MeshSeed.tla, SeedDeterministic = ${\n fixDisabled ? \"FALSE\" : \"TRUE\"\n })...`,\n COLORS.blue\n )\n );\n return docker.runTLC(path.join(specDir, \"MeshSeed.tla\"), { workers: 1 });\n}\n\nasync function setupDocker(): Promise<{\n runTLC: (\n specPath: string,\n options: { workers: number; timeout: number }\n ) => Promise<{\n success: boolean;\n stats?: { statesGenerated: number; distinctStates: number };\n violation?: { name: string; trace: string[] };\n error?: string;\n output: string;\n }>;\n}> {\n const { DockerRunner } = await import(\"./runner/docker\");\n\n console.log(color(\"🐳 Checking Docker...\", COLORS.blue));\n const docker = new DockerRunner();\n\n try {\n if (!(await docker.isDockerAvailable())) {\n console.log();\n console.log(color(\"❌ Docker is not available\", COLORS.red));\n console.log();\n console.log(\"Please ensure Docker is installed and running:\");\n console.log(\n color(\n \" • Install Docker Desktop: https://www.docker.com/products/docker-desktop\",\n COLORS.gray\n )\n );\n console.log(color(\" • Make sure Docker Desktop is running\", COLORS.gray));\n console.log();\n throw new Error(\"Docker is not available\");\n }\n } catch (error) {\n console.log();\n if (error instanceof Error && error.message.includes(\"timed out\")) {\n console.log(color(\"❌ Docker is unresponsive\", COLORS.red));\n console.log();\n console.log(\"Docker appears to be installed but is not responding.\");\n console.log(\"Try restarting Docker:\");\n console.log(color(\" • Quit Docker Desktop completely\", COLORS.gray));\n console.log(color(\" • Restart Docker Desktop\", COLORS.gray));\n console.log(\n color(\" • Wait for Docker to fully start (check the menu bar icon)\", COLORS.gray)\n );\n console.log();\n } else if (error instanceof Error && error.message !== \"Docker is not available\") {\n console.log(color(`❌ Error checking Docker: ${error.message}`, COLORS.red));\n console.log();\n }\n throw error;\n }\n\n try {\n if (!(await docker.hasImage())) {\n console.log(color(\" Pulling TLA+ image (this may take a moment)...\", COLORS.gray));\n await docker.pullImage((line) => {\n console.log(color(` ${line}`, COLORS.gray));\n });\n }\n } catch (error) {\n console.log();\n if (error instanceof Error && error.message.includes(\"timed out\")) {\n console.log(color(\"❌ Docker is unresponsive while checking for TLA+ image\", COLORS.red));\n console.log();\n console.log(\"Docker is not responding. Try restarting Docker Desktop.\");\n console.log();\n }\n throw error;\n }\n\n console.log(color(\"✓ Docker ready\", COLORS.green));\n console.log();\n\n return docker;\n}\n\nfunction displayVerificationResults(\n result: {\n success: boolean;\n stats?: { statesGenerated: number; distinctStates: number };\n violation?: { name: string; trace: string[] };\n error?: string;\n output: string;\n },\n specDir: string\n): void {\n if (result.success) {\n console.log(color(\"✅ Verification passed!\\n\", COLORS.green));\n console.log(color(\"Statistics:\", COLORS.blue));\n console.log(color(` States explored: ${result.stats?.statesGenerated || 0}`, COLORS.gray));\n console.log(color(` Distinct states: ${result.stats?.distinctStates || 0}`, COLORS.gray));\n console.log();\n return;\n }\n\n console.log(color(\"❌ Verification failed!\\n\", COLORS.red));\n\n if (result.violation) {\n console.log(color(`Invariant violated: ${result.violation.name}\\n`, COLORS.red));\n console.log(color(\"Trace to violation:\", COLORS.yellow));\n for (const line of result.violation.trace.slice(0, 20)) {\n console.log(color(` ${line}`, COLORS.gray));\n }\n if (result.violation.trace.length > 20) {\n console.log(color(` ... (${result.violation.trace.length - 20} more lines)`, COLORS.gray));\n }\n } else if (result.error) {\n console.log(color(`Error: ${result.error}`, COLORS.red));\n }\n\n console.log();\n console.log(color(\"Full output saved to:\", COLORS.gray));\n console.log(color(` ${path.join(specDir, \"tlc-output.log\")}`, COLORS.gray));\n fs.writeFileSync(path.join(specDir, \"tlc-output.log\"), result.output);\n\n process.exit(1);\n}\n\nfunction showHelp() {\n console.log(`\n${color(\"polly verify\", COLORS.blue)} - Formal verification for web extensions\n\nTests sample a few executions; a model checker explores every reachable state.\nThis compiles your handlers and state into TLA+ and runs TLC to prove safety\ninvariants hold under all interleavings — the ordering and concurrency bugs\ntests rarely reach.\n\n${color(\"Commands:\", COLORS.blue)}\n\n ${color(\"polly verify\", COLORS.green)}\n Run verification (validates config, generates specs, runs TLC)\n\n ${color(\"polly verify --strict\", COLORS.green)}\n Fail closed (non-zero exit) on model-coverage gaps: a declared state\n field no handler writes, or an unverified $meshState/$peerState predicate.\n Also via ${color(\"POLLY_VERIFY_STRICT=1\", COLORS.yellow)}.\n\n ${color(\"polly verify --witness\", COLORS.green)}\n After the invariant pass, check each BDD scenario's Then-outcome for\n reachability: one TLC run per witnessable scenario over its subsystem spec.\n A scenario the exhaustive model proves unreachable is one that lies, and\n fails the run. Needs a ${color(\"subsystems\", COLORS.blue)} block and ${color(\"features/\", COLORS.blue)} (see polly bdd).\n\n ${color(\"polly verify --setup\", COLORS.green)}\n Analyze codebase and generate configuration file\n\n ${color(\"polly verify --validate\", COLORS.green)}\n Validate existing configuration without running verification\n\n ${color(\"polly verify --estimate\", COLORS.green)}\n Estimate state space without running TLC\n\n ${color(\"polly verify --help\", COLORS.green)}\n Show this help message\n\n${color(\"Getting Started:\", COLORS.blue)}\n\n 1. Run ${color(\"polly verify --setup\", COLORS.green)} to generate configuration\n 2. Review ${color(\"specs/verification.config.ts\", COLORS.blue)} and fill in marked fields\n 3. Run ${color(\"polly verify --validate\", COLORS.green)} to check your configuration\n 4. Run ${color(\"polly verify\", COLORS.green)} to start verification\n\n${color(\"Configuration Help:\", COLORS.blue)}\n\n The generated config file uses special markers:\n\n ${color(\"/* CONFIGURE */\", COLORS.yellow)} - Replace with your value\n ${color(\"/* REVIEW */\", COLORS.yellow)} - Check auto-generated value\n ${color(\"null\", COLORS.yellow)} - Must be replaced with concrete value\n\n${color(\"Learn More:\", COLORS.blue)}\n\n Documentation: https://github.com/fairfox/web-ext\n TLA+ Resources: https://learntla.com\n`);\n}\n\nfunction findTsConfig(): string | null {\n const locations = [\n path.join(process.cwd(), \"tsconfig.json\"),\n path.join(process.cwd(), \"packages\", \"web-ext\", \"tsconfig.json\"),\n ];\n\n for (const loc of locations) {\n if (fs.existsSync(loc)) {\n return loc;\n }\n }\n\n return null;\n}\n\nfunction findStateFile(): string | undefined {\n const locations = [\n path.join(process.cwd(), \"types\", \"state.ts\"),\n path.join(process.cwd(), \"src\", \"types\", \"state.ts\"),\n path.join(process.cwd(), \"packages\", \"web-ext\", \"src\", \"shared\", \"state\", \"app-state.ts\"),\n ];\n\n for (const loc of locations) {\n if (fs.existsSync(loc)) {\n return loc;\n }\n }\n\n return undefined;\n}\n\nmain().catch((error) => {\n if (error instanceof Error && error.stack) {\n // Stack trace already printed by underlying functions\n }\n process.exit(1);\n});\n",
|
|
19
19
|
"// polly#117: detect requires/ensures predicates whose cross-peer\n// semantics the verifier does NOT check.\n//\n// A `$meshState` document is verified cross-peer only when its key is\n// declared in the `mesh: { ... }` block of the verification config:\n// the codegen then routes it through the `meshState` namespace, emits\n// a `PropagateMeshOp` action, and lets `forAllPeers(...)` claims over\n// it be checked. An *undeclared* `$meshState` signal — or any\n// `$peerState` signal, for which no cross-peer model exists yet — is\n// flattened to single-context local state, so a predicate over it\n// silently asserts only the executing context's view.\n//\n// This module computes the findings; `cli.ts` renders them. Keeping\n// the computation pure makes it directly testable without driving the\n// whole CLI.\n\nimport type { CodebaseAnalysis } from \"../core/model\";\n\n/** One predicate that references a signal with unverified cross-peer semantics. */\nexport type MeshOrPeerSignalFinding = {\n /** The handler (message type) the predicate belongs to. */\n handler: string;\n /** Whether the predicate is a requires() or an ensures(). */\n kind: \"precondition\" | \"postcondition\";\n /** The raw predicate expression. */\n expression: string;\n /** The offending signal's variable name. */\n signalName: string;\n /** Whether the signal is a `$meshState` or `$peerState` signal. */\n signalKind: \"mesh\" | \"peer\";\n /** Source location of the predicate. */\n location: { file: string; line: number };\n};\n\n/**\n * Find every requires/ensures predicate that references a\n * `$meshState`/`$peerState` signal the verifier does not check\n * cross-peer.\n *\n * A `$meshState` signal whose key is in `declaredMeshDocs` (i.e. the\n * consumer declared it under `mesh:` in the verification config) is\n * routed through the `meshState` namespace and IS verified — it is\n * excluded. Every other reference — an undeclared `$meshState` signal,\n * or any `$peerState` signal — is reported.\n *\n * @param analysis the analysed codebase\n * @param declaredMeshDocs the set of doc keys declared under `mesh:`\n * in the verification config\n */\nexport function computeMeshOrPeerSignalFindings(\n analysis: CodebaseAnalysis,\n declaredMeshDocs: ReadonlySet<string>\n): MeshOrPeerSignalFinding[] {\n const signals = analysis.meshOrPeerSignals ?? [];\n if (signals.length === 0) return [];\n\n // A declared $meshState doc is genuinely verified cross-peer; only\n // the rest are unverified and worth warning about.\n const unverified = signals.filter((s) => !(s.kind === \"mesh\" && declaredMeshDocs.has(s.key)));\n if (unverified.length === 0) return [];\n\n const findings: MeshOrPeerSignalFinding[] = [];\n\n for (const handler of analysis.handlers) {\n const scan = (\n conditions: Array<{ expression: string; location?: { line?: number } }>,\n kind: \"precondition\" | \"postcondition\"\n ): void => {\n for (const cond of conditions) {\n for (const sig of unverified) {\n // Match `<varName>.value` on an identifier boundary so a\n // signal named `thing` does not false-positive on\n // `myThing.value`.\n // nosemgrep: javascript.lang.security.audit.detect-non-literal-regexp.detect-non-literal-regexp — `sig.variableName` is a TypeScript identifier extracted from typed AST analysis, never user input.\n const pattern = new RegExp(`\\\\b${sig.variableName}\\\\.value\\\\b`);\n if (pattern.test(cond.expression)) {\n findings.push({\n handler: handler.messageType,\n kind,\n expression: cond.expression,\n signalName: sig.variableName,\n signalKind: sig.kind,\n location: {\n file: handler.location?.file ?? sig.filePath,\n line: cond.location?.line ?? handler.location?.line ?? sig.line,\n },\n });\n }\n }\n }\n };\n scan(handler.preconditions, \"precondition\");\n scan(handler.postconditions, \"postcondition\");\n }\n\n return findings;\n}\n",
|
|
20
20
|
"// Configuration Types for Adapter-Based Verification\n\nimport type { RoutingAdapter } from \"../adapters/base\";\nimport type { StateSchema } from \"../core/model\";\n\n// New Adapter-Based Configuration\n\n/**\n * polly#160: a directional capability whose grant requires a precondition.\n * Desugars to a TLA+ safety invariant `(enabledBy) => (requires)` checked at\n * every reachable state — catching \"a capability granted without its\n * precondition\" (an omission across multiple handlers that mutation testing\n * cannot see).\n *\n * `enabledBy` and `requires` are TS boolean expressions in the same dialect as\n * `requires()`/`ensures()` (e.g. `\"state.authReady\"`,\n * `\"state.user.value.loggedIn\"`). They MUST reference state via the `state.` /\n * signal `.value` form so the field flattens to `contextStates[ctx].*`; bare\n * identifiers are rejected at config-validation time.\n */\nexport interface CapabilityConfig {\n /** Capability name; used to derive the TLA+ invariant identifier. */\n name: string;\n /** Expression that is true when the capability is granted/active. */\n enabledBy: string;\n /** Expression that MUST hold whenever the capability is enabled. */\n requires: string;\n /** Optional human-readable message for the generated invariant comment. */\n message?: string;\n}\n\n/**\n * Adapter-based verification configuration (new format)\n */\nexport interface AdapterVerificationConfig {\n /** The routing adapter to use */\n adapter: RoutingAdapter;\n\n /** State bounds (domain-agnostic) */\n state: StateSchema;\n\n /** Concurrency bounds */\n bounds?: {\n maxInFlight?: number;\n [key: string]: unknown;\n };\n\n /** Verification behavior on build */\n onBuild?: \"warn\" | \"error\" | \"off\";\n\n /** Verification behavior on release */\n onRelease?: \"warn\" | \"error\" | \"off\";\n\n /** Optional: Custom invariants */\n invariants?: Array<{\n name: string;\n expression: string;\n description?: string;\n }>;\n\n /** polly#160: directional capability invariants (desugar to TLA+). */\n capabilities?: CapabilityConfig[];\n\n /** polly#160: symmetric write-coupling lint groups (static warning only). */\n coupledFields?: string[][];\n}\n\n// Legacy Configuration (Backward Compatibility)\n\n/**\n * Legacy verification configuration (backward compatible)\n */\nexport interface LegacyVerificationConfig {\n /** State configuration (old format) */\n state: Record<string, unknown>;\n\n /** Message configuration (old format) */\n messages: {\n maxInFlight: number | null;\n maxTabs: number | null;\n };\n\n /** Verification behavior on build */\n onBuild: \"warn\" | \"error\" | \"off\";\n\n /** Verification behavior on release */\n onRelease: \"warn\" | \"error\" | \"off\";\n\n /** polly#160: directional capability invariants (desugar to TLA+). */\n capabilities?: CapabilityConfig[];\n\n /** polly#160: symmetric write-coupling lint groups (static warning only). */\n coupledFields?: string[][];\n}\n\n// Unified Configuration Type\n\n/**\n * Union of new and legacy configuration formats\n */\nexport type UnifiedVerificationConfig = AdapterVerificationConfig | LegacyVerificationConfig;\n\n/**\n * Type guard to check if config is adapter-based (new format)\n */\nexport function isAdapterConfig(\n config: UnifiedVerificationConfig\n): config is AdapterVerificationConfig {\n return \"adapter\" in config;\n}\n\n/**\n * Type guard to check if config is legacy format\n */\nexport function isLegacyConfig(\n config: UnifiedVerificationConfig\n): config is LegacyVerificationConfig {\n return \"messages\" in config && !(\"adapter\" in config);\n}\n\n// Configuration Validation\n\nexport interface ConfigIssue {\n type:\n | \"incomplete\"\n | \"null_placeholder\"\n | \"unrealistic_bound\"\n | \"invalid_value\"\n // polly#160\n | \"capability_unknown_field\"\n | \"capability_empty_expression\"\n | \"coupled_unknown_field\";\n severity: \"error\" | \"warning\";\n field?: string;\n location?: { line: number; column: number };\n message: string;\n suggestion: string;\n}\n\nexport interface ValidationResult {\n valid: boolean;\n issues: ConfigIssue[];\n configType?: \"adapter\" | \"legacy\";\n}\n",
|
|
21
21
|
"import type {\n AdapterVerificationConfig,\n LegacyVerificationConfig,\n UnifiedVerificationConfig,\n} from \"../config/types\";\nimport { isAdapterConfig, isLegacyConfig } from \"../config/types\";\nimport type { CodebaseAnalysis } from \"../core/model\";\n\nexport type FieldEstimate = {\n name: string;\n cardinality: number | \"unbounded\";\n kind: string;\n};\n\nexport type StateSpaceEstimate = {\n fields: FieldEstimate[];\n fieldProduct: number;\n handlerCount: number;\n maxInFlight: number;\n contextCount: number;\n totalStateSpace: number;\n interleavingFactor: number;\n estimatedStates: number;\n feasibility: \"trivial\" | \"feasible\" | \"slow\" | \"infeasible\";\n warnings: string[];\n suggestions: string[];\n};\n\nfunction typedFieldCardinality(name: string, obj: Record<string, unknown>): FieldEstimate | null {\n if (!(\"type\" in obj)) return null;\n\n switch (obj.type) {\n case \"boolean\":\n return { name, cardinality: 2, kind: \"boolean\" };\n case \"enum\":\n if (Array.isArray(obj.values)) {\n return { name, cardinality: obj.values.length, kind: \"enum\" };\n }\n return { name, cardinality: \"unbounded\", kind: \"enum\" };\n case \"number\":\n if (typeof obj.min === \"number\" && typeof obj.max === \"number\") {\n return { name, cardinality: obj.max - obj.min + 1, kind: \"number\" };\n }\n return { name, cardinality: \"unbounded\", kind: \"number\" };\n case \"array\":\n return { name, cardinality: \"unbounded\", kind: \"array\" };\n case \"string\":\n return { name, cardinality: \"unbounded\", kind: \"string\" };\n default:\n return null;\n }\n}\n\nfunction legacyFieldCardinality(name: string, obj: Record<string, unknown>): FieldEstimate | null {\n // { values: [...], abstract?: boolean }\n if (\"values\" in obj && Array.isArray(obj.values)) {\n const base = obj.values.length;\n const extra = obj.abstract === true ? 1 : 0;\n return {\n name,\n cardinality: base + extra,\n kind: obj.abstract ? \"enum (abstract)\" : \"enum (values)\",\n };\n }\n\n // { maxLength: N } (array)\n if (\"maxLength\" in obj && !(\"type\" in obj)) {\n return { name, cardinality: \"unbounded\", kind: \"array\" };\n }\n\n // { min, max } (number range)\n if (\n \"min\" in obj &&\n \"max\" in obj &&\n typeof obj.min === \"number\" &&\n typeof obj.max === \"number\" &&\n !(\"type\" in obj)\n ) {\n return { name, cardinality: obj.max - obj.min + 1, kind: \"number\" };\n }\n\n return null;\n}\n\n/**\n * Compute the cardinality of a single state field from config.\n */\nfunction fieldCardinality(name: string, value: unknown): FieldEstimate {\n // Array literal: [val1, val2, ...]\n if (Array.isArray(value)) {\n return { name, cardinality: value.length, kind: \"enum (literal)\" };\n }\n\n if (typeof value !== \"object\" || value === null) {\n return { name, cardinality: \"unbounded\", kind: \"unknown\" };\n }\n\n const obj = value as unknown as Record<string, unknown>;\n\n return (\n typedFieldCardinality(name, obj) ??\n legacyFieldCardinality(name, obj) ?? { name, cardinality: \"unbounded\", kind: \"unknown\" }\n );\n}\n\n/**\n * Compute C(n, k) * k! = n! / (n-k)! (permutations)\n */\nfunction permutations(n: number, k: number): number {\n if (k > n) return 1;\n let result = 1;\n for (let i = 0; i < k; i++) {\n result *= n - i;\n }\n return result;\n}\n\nfunction getHandlerCount(config: UnifiedVerificationConfig, analysis: CodebaseAnalysis): number {\n if (isLegacyConfig(config)) {\n const msgs = config.messages as unknown as LegacyVerificationConfig[\"messages\"] & {\n include?: string[];\n exclude?: string[];\n };\n if (msgs.include) {\n return msgs.include.length;\n }\n if (msgs.exclude) {\n return Math.max(0, analysis.handlers.length - msgs.exclude.length);\n }\n }\n return analysis.handlers.length;\n}\n\nfunction getMaxInFlight(config: UnifiedVerificationConfig): number {\n if (isLegacyConfig(config)) {\n return config.messages.maxInFlight ?? 1;\n }\n if (isAdapterConfig(config)) {\n return (config as unknown as AdapterVerificationConfig).bounds?.maxInFlight ?? 1;\n }\n return 1;\n}\n\nfunction getMaxTabs(config: UnifiedVerificationConfig): number {\n if (isLegacyConfig(config)) {\n return config.messages.maxTabs ?? 1;\n }\n return 1;\n}\n\nfunction getFeasibility(states: number): StateSpaceEstimate[\"feasibility\"] {\n if (states < 100_000) return \"trivial\";\n if (states <= 1_000_000) return \"feasible\";\n if (states <= 10_000_000) return \"slow\";\n return \"infeasible\";\n}\n\nfunction feasibilityLabel(f: StateSpaceEstimate[\"feasibility\"]): string {\n switch (f) {\n case \"trivial\":\n return \"trivial (should complete in seconds)\";\n case \"feasible\":\n return \"feasible (should complete in minutes)\";\n case \"slow\":\n return \"slow (may take 10–30 minutes)\";\n case \"infeasible\":\n return \"infeasible (likely won't terminate)\";\n }\n}\n\nexport function estimateStateSpace(\n config: UnifiedVerificationConfig,\n analysis: CodebaseAnalysis\n): StateSpaceEstimate {\n const state = config.state as unknown as Record<string, unknown>;\n const fields: FieldEstimate[] = [];\n const warnings: string[] = [];\n const suggestions: string[] = [];\n\n for (const [name, value] of Object.entries(state)) {\n fields.push(fieldCardinality(name, value));\n }\n\n // Compute field product (only bounded fields)\n const unboundedFields = fields.filter((f) => f.cardinality === \"unbounded\");\n const boundedFields = fields.filter((f) => f.cardinality !== \"unbounded\");\n\n const fieldProduct =\n boundedFields.length > 0\n ? boundedFields.reduce((acc, f) => acc * (f.cardinality as unknown as number), 1)\n : 1;\n\n if (unboundedFields.length > 0) {\n warnings.push(\n `${unboundedFields.length} field(s) have unbounded domains: ${unboundedFields.map((f) => f.name).join(\", \")}`\n );\n suggestions.push(\n `Fields ${unboundedFields.map((f) => f.name).join(\", \")} have unbounded domains — their actual impact depends on handler logic`\n );\n }\n\n const handlerCount = getHandlerCount(config, analysis);\n const maxInFlight = getMaxInFlight(config);\n const maxTabs = getMaxTabs(config);\n\n // Contexts: tabs + 1 background\n const contextCount = maxTabs + 1;\n\n const totalStateSpace = fieldProduct ** contextCount;\n\n // Interleaving: permutations(handlerCount, maxInFlight)\n const interleavingFactor = permutations(handlerCount, maxInFlight);\n\n const estimatedStates = totalStateSpace * interleavingFactor;\n\n const feasibility = getFeasibility(estimatedStates);\n\n // Generate suggestions\n if (handlerCount > 15) {\n suggestions.push(\"Consider splitting into subsystems\");\n }\n\n for (const f of boundedFields) {\n if ((f.cardinality as unknown as number) > 50) {\n suggestions.push(`Consider reducing bounds for field \"${f.name}\" (${f.cardinality} values)`);\n }\n }\n\n if (maxInFlight > 2) {\n const reducedInterleaving = permutations(handlerCount, 2);\n const reduction =\n reducedInterleaving > 0 ? Math.round(interleavingFactor / reducedInterleaving) : 1;\n suggestions.push(\n `Reducing maxInFlight from ${maxInFlight} to 2 would reduce interleaving by ~${reduction}x`\n );\n }\n\n return {\n fields,\n fieldProduct,\n handlerCount,\n maxInFlight,\n contextCount,\n totalStateSpace,\n interleavingFactor,\n estimatedStates,\n feasibility,\n warnings,\n suggestions,\n };\n}\n\nexport { feasibilityLabel };\n",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"// Component relationship extraction from TypeScript code\n// Detects function calls, imports, and dependencies between components\n\nimport {\n type ArrowFunction,\n type CallExpression,\n type FunctionDeclaration,\n type FunctionExpression,\n type Identifier,\n Node,\n type SourceFile,\n} from \"ts-morph\";\n\n/**\n * Represents a relationship between components detected from code analysis\n */\nexport interface DetectedRelationship {\n /** Source component (handler, service, etc.) */\n from: string;\n /** Target component being called/used */\n to: string;\n /** Description of the relationship */\n description: string;\n /** Technology/method used (e.g., \"Function Call\", \"Import\", \"SQL\", \"HTTP\") */\n technology?: string;\n /** Confidence level of this detection */\n confidence: \"high\" | \"medium\" | \"low\";\n /** Evidence supporting this detection */\n evidence: string[];\n}\n\n/**\n * Extracts component relationships from handler code\n */\nexport class RelationshipExtractor {\n /**\n * Extract relationships from a function/handler body\n */\n extractFromHandler(\n handlerNode: Node,\n sourceFile: SourceFile,\n handlerName: string\n ): DetectedRelationship[] {\n const relationships: DetectedRelationship[] = [];\n const visited = new Set<string>(); // Prevent infinite recursion\n\n this.extractFromNode(handlerNode, sourceFile, handlerName, relationships, visited);\n\n return this.deduplicateRelationships(relationships);\n }\n\n /**\n * Recursively extract relationships from a node and follow function calls\n */\n private extractFromNode(\n node: Node,\n sourceFile: SourceFile,\n handlerName: string,\n relationships: DetectedRelationship[],\n visited: Set<string>\n ): void {\n node.forEachDescendant((descendant) => {\n this.processDescendantNode(descendant, sourceFile, handlerName, relationships, visited);\n });\n }\n\n /**\n * Process a single descendant node for relationship extraction\n */\n private processDescendantNode(\n descendant: Node,\n sourceFile: SourceFile,\n handlerName: string,\n relationships: DetectedRelationship[],\n visited: Set<string>\n ): void {\n if (Node.isCallExpression(descendant)) {\n this.processCallExpression(descendant, sourceFile, handlerName, relationships, visited);\n }\n\n if (Node.isAwaitExpression(descendant)) {\n const rel = this.extractFromDatabaseCall(descendant, handlerName);\n if (rel) {\n relationships.push(rel);\n }\n }\n\n if (Node.isCallExpression(descendant) && descendant.getExpression().getText() === \"fetch\") {\n const rel = this.extractFromFetchCall(descendant, handlerName);\n if (rel) {\n relationships.push(rel);\n }\n }\n }\n\n /**\n * Process a call expression for relationship extraction\n */\n private processCallExpression(\n callExpr: CallExpression,\n sourceFile: SourceFile,\n handlerName: string,\n relationships: DetectedRelationship[],\n visited: Set<string>\n ): void {\n const expr = callExpr.getExpression();\n\n if (Node.isIdentifier(expr)) {\n this.processIdentifierCall(expr, sourceFile, handlerName, relationships, visited);\n return;\n }\n\n if (Node.isPropertyAccessExpression(expr)) {\n const rel = this.extractFromPropertyAccess(expr, handlerName);\n if (rel) {\n relationships.push(rel);\n return;\n }\n }\n\n const rel = this.extractFromFunctionCall(callExpr, handlerName, sourceFile);\n if (rel) {\n relationships.push(rel);\n }\n }\n\n /**\n * Process an identifier call (local or imported function)\n */\n private processIdentifierCall(\n identifier: Identifier,\n sourceFile: SourceFile,\n handlerName: string,\n relationships: DetectedRelationship[],\n visited: Set<string>\n ): void {\n const functionName = identifier.getText();\n const resolved = this.resolveFunctionDeclaration(functionName, sourceFile);\n\n if (resolved && !visited.has(functionName)) {\n this.followFunctionCall(\n functionName,\n resolved.functionDecl,\n resolved.sourceFile,\n handlerName,\n relationships,\n visited\n );\n return;\n }\n\n if (!resolved) {\n this.tryAddServiceCallRelationship(functionName, handlerName, relationships);\n }\n }\n\n /**\n * Resolve function declaration from name\n */\n private resolveFunctionDeclaration(\n functionName: string,\n sourceFile: SourceFile\n ): {\n functionDecl: FunctionDeclaration | ArrowFunction | FunctionExpression;\n sourceFile: SourceFile;\n } | null {\n let functionDecl: FunctionDeclaration | ArrowFunction | FunctionExpression | undefined =\n sourceFile.getFunction(functionName);\n let targetSourceFile = sourceFile;\n\n if (!functionDecl) {\n const resolved = this.resolveImportedFunction(functionName, sourceFile);\n if (resolved) {\n functionDecl = resolved.functionDecl;\n targetSourceFile = resolved.sourceFile;\n }\n }\n\n if (!functionDecl) {\n return null;\n }\n\n return { functionDecl, sourceFile: targetSourceFile };\n }\n\n /**\n * Follow a function call recursively\n */\n private followFunctionCall(\n functionName: string,\n functionDecl: FunctionDeclaration | ArrowFunction | FunctionExpression,\n targetSourceFile: SourceFile,\n handlerName: string,\n relationships: DetectedRelationship[],\n visited: Set<string>\n ): void {\n visited.add(functionName);\n\n const body = functionDecl.getBody();\n if (body) {\n this.extractFromNode(body, targetSourceFile, handlerName, relationships, visited);\n }\n }\n\n /**\n * Try to add a service call relationship based on function name\n */\n private tryAddServiceCallRelationship(\n functionName: string,\n handlerName: string,\n relationships: DetectedRelationship[]\n ): void {\n const componentFromName = this.inferComponentFromFunctionName(functionName);\n if (componentFromName) {\n relationships.push({\n from: this.toComponentId(handlerName),\n to: componentFromName,\n description: `Calls ${functionName}()`,\n technology: \"Function Call\",\n confidence: \"medium\",\n evidence: [`Function call: ${functionName}`],\n });\n }\n }\n\n /**\n * Extract relationship from a function call\n */\n private extractFromFunctionCall(\n callExpr: CallExpression,\n handlerName: string,\n sourceFile: SourceFile\n ): DetectedRelationship | null {\n const expr = callExpr.getExpression();\n const exprText = expr.getText();\n\n // Skip common utility functions and built-ins\n const skipList = [\n \"console.\",\n \"JSON.\",\n \"Math.\",\n \"Object.\",\n \"Array.\",\n \"String.\",\n \"Number.\",\n \"Date.\",\n \"Promise.\",\n \"setTimeout\",\n \"setInterval\",\n \"clearTimeout\",\n \"clearInterval\",\n ];\n\n if (skipList.some((skip) => exprText.startsWith(skip))) {\n return null;\n }\n\n // Extract function name\n let functionName = exprText;\n let targetComponent: string | null = null;\n\n // Handle property access (e.g., db.getConnection() -> db_client)\n if (Node.isPropertyAccessExpression(expr)) {\n const objectExpr = expr.getExpression();\n const objectName = objectExpr.getText();\n const methodName = expr.getName();\n\n // Map common patterns to component names\n targetComponent = this.inferComponentFromCall(objectName);\n\n if (!targetComponent) {\n return null;\n }\n\n functionName = methodName;\n } else {\n // Direct function call - try to resolve from imports\n targetComponent = this.resolveComponentFromImport(exprText, sourceFile);\n\n if (!targetComponent) {\n return null;\n }\n }\n\n return {\n from: this.toComponentId(handlerName),\n to: targetComponent,\n description: `Calls ${functionName}()`,\n technology: \"Function Call\",\n confidence: \"high\",\n evidence: [`Function call: ${exprText}`],\n };\n }\n\n /**\n * Extract relationship from property access chain\n * Handles both simple (obj.method) and nested (obj.prop.method) patterns\n */\n private extractFromPropertyAccess(\n propAccess: Node,\n handlerName: string\n ): DetectedRelationship | null {\n if (!Node.isPropertyAccessExpression(propAccess)) {\n return null;\n }\n\n const fullChain = propAccess.getText();\n const methodName = propAccess.getName();\n\n // Extract the root object from potentially nested property access\n // e.g., repositories.users.create -> repositories\n let rootObject = propAccess.getExpression();\n while (Node.isPropertyAccessExpression(rootObject)) {\n rootObject = rootObject.getExpression();\n }\n\n const objectName = rootObject.getText();\n\n // Map object name to component name\n const targetComponent = this.inferComponentFromCall(objectName);\n\n if (!targetComponent) {\n return null;\n }\n\n return {\n from: this.toComponentId(handlerName),\n to: targetComponent,\n description: `Calls ${methodName}()`,\n technology: \"Function Call\",\n confidence: \"high\",\n evidence: [`Property access: ${fullChain}`],\n };\n }\n\n /**\n * Extract relationship from database call\n */\n private extractFromDatabaseCall(\n awaitExpr: Node,\n handlerName: string\n ): DetectedRelationship | null {\n if (!Node.isAwaitExpression(awaitExpr)) {\n return null;\n }\n\n const innerExpr = awaitExpr.getExpression();\n if (!Node.isCallExpression(innerExpr)) {\n return null;\n }\n\n const callExpr = innerExpr.getExpression().getText();\n\n // Detect database patterns\n if (\n callExpr.includes(\"db.query\") ||\n callExpr.includes(\"db.execute\") ||\n callExpr.includes(\"db.select\") ||\n callExpr.includes(\"db.insert\") ||\n callExpr.includes(\"db.update\") ||\n callExpr.includes(\"db.delete\")\n ) {\n const operation = this.inferDatabaseOperation(callExpr);\n\n return {\n from: this.toComponentId(handlerName),\n to: \"database\",\n description: operation,\n technology: \"SQL\",\n confidence: \"high\",\n evidence: [`Database call: ${callExpr}`],\n };\n }\n\n return null;\n }\n\n /**\n * Extract relationship from fetch/HTTP call\n */\n private extractFromFetchCall(\n callExpr: CallExpression,\n handlerName: string\n ): DetectedRelationship | null {\n const args = callExpr.getArguments();\n if (args.length === 0 || !args[0]) {\n return null;\n }\n\n const urlArg = args[0].getText();\n\n // Try to extract API name from URL\n let apiName = \"external_api\";\n if (urlArg.includes(\"openai\")) {\n apiName = \"openai_api\";\n } else if (urlArg.includes(\"anthropic\")) {\n apiName = \"anthropic_api\";\n }\n\n return {\n from: this.toComponentId(handlerName),\n to: apiName,\n description: \"Calls external API\",\n technology: \"HTTP/REST\",\n confidence: \"high\",\n evidence: [`fetch() call to: ${urlArg}`],\n };\n }\n\n /**\n * Infer component name from object.method pattern\n */\n private inferComponentFromCall(objectName: string): string | null {\n const mappings: Record<string, string> = {\n db: \"db_client\",\n database: \"database\",\n repos: \"repositories\",\n repository: \"repositories\",\n repositories: \"repositories\",\n cache: \"cache\",\n storage: \"storage\",\n ai: \"ai_service\",\n auth: \"auth_service\",\n authservice: \"auth_service\",\n user: \"user_service\",\n userservice: \"user_service\",\n logger: \"logger\",\n queue: \"queue_service\",\n };\n\n const normalized = objectName.toLowerCase();\n return mappings[normalized] || null;\n }\n\n /**\n * Infer component name from function name patterns\n * Detects patterns like getDatabase(), createRepositories(), etc.\n */\n private inferComponentFromFunctionName(functionName: string): string | null {\n const normalized = functionName.toLowerCase();\n\n // Pattern 1: getXxx() or createXxx()\n if (normalized.startsWith(\"get\") || normalized.startsWith(\"create\")) {\n const prefixLength = normalized.startsWith(\"get\") ? 3 : 6;\n const suffix = functionName.substring(prefixLength);\n return this.matchComponentPattern(suffix);\n }\n\n // Pattern 2: initXxx() or setupXxx()\n if (normalized.startsWith(\"init\") || normalized.startsWith(\"setup\")) {\n const prefixLength = normalized.startsWith(\"init\") ? 4 : 5;\n const suffix = functionName.substring(prefixLength);\n return this.matchInitPattern(suffix);\n }\n\n return null;\n }\n\n /**\n * Match component patterns for get/create functions\n */\n private matchComponentPattern(suffix: string): string | null {\n const suffixLower = suffix.toLowerCase();\n\n const componentPatterns = [\n {\n patterns: [\"database\", \"db\", \"dbconnection\", \"connection\"],\n component: \"db_client\",\n },\n {\n patterns: [\"repositories\", \"repos\", \"repository\"],\n component: \"repositories\",\n },\n {\n patterns: [\"cache\"],\n component: \"cache\",\n },\n {\n patterns: [\"storage\"],\n component: \"storage\",\n },\n {\n patterns: [\"ai\", \"llm\"],\n component: \"ai_service\",\n },\n {\n patterns: [\"logger\"],\n component: \"logger\",\n },\n ];\n\n for (const { patterns, component } of componentPatterns) {\n if (patterns.some((pattern) => suffixLower.includes(pattern) || suffixLower === pattern)) {\n return component;\n }\n }\n\n // Service patterns (special case with extraction)\n if (suffixLower.includes(\"service\")) {\n const serviceMatch = suffix.match(/^(.+?)Service/i);\n if (serviceMatch) {\n return this.toComponentId(`${serviceMatch[1]}_service`);\n }\n return \"service\";\n }\n\n return null;\n }\n\n /**\n * Match patterns for init/setup functions\n */\n private matchInitPattern(suffix: string): string | null {\n const suffixLower = suffix.toLowerCase();\n\n if (suffixLower.includes(\"database\") || suffixLower === \"db\") {\n return \"db_client\";\n }\n if (suffixLower.includes(\"cache\")) {\n return \"cache\";\n }\n\n return null;\n }\n\n /**\n * Resolve component from import statement\n */\n private resolveComponentFromImport(functionName: string, sourceFile: SourceFile): string | null {\n for (const importDecl of sourceFile.getImportDeclarations()) {\n const namedImports = importDecl.getNamedImports();\n\n for (const namedImport of namedImports) {\n if (namedImport.getName() === functionName) {\n const modulePath = importDecl.getModuleSpecifierValue();\n const component = this.inferComponentFromModulePath(modulePath);\n if (component) return component;\n }\n }\n }\n\n return null;\n }\n\n /**\n * Infer component from module path\n */\n private inferComponentFromModulePath(modulePath: string): string | null {\n if (modulePath.includes(\"/db/\") || modulePath.includes(\"/database/\")) {\n return \"db_client\";\n }\n if (modulePath.includes(\"/repos\") || modulePath.includes(\"/repositories\")) {\n return \"repositories\";\n }\n if (modulePath.includes(\"/service\") || modulePath.includes(\"/services\")) {\n const match = modulePath.match(/\\/([^/]+)\\.ts$/);\n if (match?.[1]) {\n return this.toComponentId(match[1]);\n }\n }\n return null;\n }\n\n /**\n * Resolve imported function to its declaration in another file\n * This enables cross-file relationship detection for architectures where\n * handlers are separated from routing logic\n */\n private resolveImportedFunction(\n functionName: string,\n sourceFile: SourceFile\n ): {\n functionDecl: FunctionDeclaration | ArrowFunction | FunctionExpression;\n sourceFile: SourceFile;\n } | null {\n try {\n for (const importDecl of sourceFile.getImportDeclarations()) {\n const namedImports = importDecl.getNamedImports();\n\n for (const namedImport of namedImports) {\n if (namedImport.getName() === functionName) {\n const moduleSpecifier = importDecl.getModuleSpecifierSourceFile();\n if (!moduleSpecifier) continue;\n\n const result = this.findFunctionInModule(functionName, moduleSpecifier);\n if (result) return result;\n }\n }\n }\n } catch (_error) {\n // Silently fail on resolution errors (e.g., missing files, parse errors)\n // This ensures the extractor is resilient to incomplete projects\n return null;\n }\n\n return null;\n }\n\n /**\n * Find function declaration or arrow function in a module\n */\n private findFunctionInModule(\n functionName: string,\n moduleSpecifier: SourceFile\n ): {\n functionDecl: FunctionDeclaration | ArrowFunction | FunctionExpression;\n sourceFile: SourceFile;\n } | null {\n // Find the function in the imported file\n const functionDecl = moduleSpecifier.getFunction(functionName);\n if (functionDecl) {\n return {\n functionDecl,\n sourceFile: moduleSpecifier,\n };\n }\n\n // Also check for exported arrow functions or const declarations\n const variableDecl = moduleSpecifier.getVariableDeclaration(functionName);\n if (variableDecl) {\n const initializer = variableDecl.getInitializer();\n if (\n initializer &&\n (Node.isArrowFunction(initializer) || Node.isFunctionExpression(initializer))\n ) {\n return {\n functionDecl: initializer,\n sourceFile: moduleSpecifier,\n };\n }\n }\n\n return null;\n }\n\n /**\n * Infer database operation type\n */\n private inferDatabaseOperation(callExpr: string): string {\n if (callExpr.includes(\"query\") || callExpr.includes(\"select\")) {\n return \"Reads from database\";\n }\n if (\n callExpr.includes(\"execute\") ||\n callExpr.includes(\"insert\") ||\n callExpr.includes(\"update\") ||\n callExpr.includes(\"delete\")\n ) {\n return \"Writes to database\";\n }\n return \"Accesses database\";\n }\n\n /**\n * Convert name to component ID format\n */\n private toComponentId(name: string): string {\n return name\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"_\")\n .replace(/^_|_$/g, \"\");\n }\n\n /**\n * Remove duplicate relationships\n */\n private deduplicateRelationships(relationships: DetectedRelationship[]): DetectedRelationship[] {\n const seen = new Set<string>();\n const unique: DetectedRelationship[] = [];\n\n for (const rel of relationships) {\n const key = `${rel.from}->${rel.to}`;\n if (!seen.has(key)) {\n seen.add(key);\n unique.push(rel);\n }\n }\n\n return unique;\n }\n}\n",
|
|
28
28
|
"/**\n * polly#114: the concurrent first-time $meshState seed guard.\n *\n * MeshSeed.tla model-checks the polly#113 race — two devices materialising\n * the same mesh document concurrently and forking it permanently. The\n * spec's `SeedDeterministic` constant is TRUE for the shipped fix; this\n * module rewrites it to FALSE when the fix is disabled, under which TLC\n * reports a `SeedConvergence` violation.\n *\n * The toggle is shared by the verify CLI (which honours the\n * `POLLY_113_DISABLE_FIX` environment variable, the same lever\n * seedDocumentBytes uses) and the e2e falsification script, so there is\n * one source of truth for how the guard is parameterised.\n */\n\n/** The invariant whose violation is the polly#113 race. */\nexport const SEED_CONVERGENCE_INVARIANT = \"SeedConvergence\";\n\n/**\n * Produce the MeshSeed.cfg contents for a run. With `disableFix` the\n * `SeedDeterministic` constant flips to FALSE — the pre-fix seed — and\n * TLC is expected to report a {@link SEED_CONVERGENCE_INVARIANT}\n * violation. Otherwise the committed cfg is used unchanged.\n */\nexport function meshSeedCfg(baseCfg: string, opts: { disableFix: boolean }): string {\n if (!opts.disableFix) return baseCfg;\n // Match the constant *declaration* line specifically: optional\n // indentation, then `SeedDeterministic = TRUE`, then end of line. A\n // plain string replace would hit the first occurrence — which is the\n // explanatory comment, not the declaration — and leave the real\n // constant untouched, silently defeating the falsification.\n const declaration = /^([ \\t]*)SeedDeterministic = TRUE[ \\t]*$/m;\n if (!declaration.test(baseCfg)) {\n throw new Error(\n \"MeshSeed.cfg no longer declares `SeedDeterministic = TRUE` on its own line — the polly#114 seed-race guard cannot be falsified. Update tools/verify/src/runner/mesh-seed.ts.\"\n );\n }\n return baseCfg.replace(declaration, \"$1SeedDeterministic = FALSE\");\n}\n\n/** True when the polly#113 seed fix is disabled for this process. */\nexport function isSeedFixDisabled(env: NodeJS.ProcessEnv = process.env): boolean {\n return env[\"POLLY_113_DISABLE_FIX\"] === \"1\";\n}\n"
|
|
29
29
|
],
|
|
30
|
-
"mappings": "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",
|
|
31
|
-
"debugId": "
|
|
30
|
+
"mappings": "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",
|
|
31
|
+
"debugId": "F9E0214A7A9A110B64756E2164756E21",
|
|
32
32
|
"names": []
|
|
33
33
|
}
|