devworkspace 0.3.3 → 0.4.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"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","sourcesContent":["export interface CommandHelp {\n name: string;\n summary: string;\n usage: string[];\n options: [string, string][];\n examples: string[];\n}\n\nconst COMMON: [string, string][] = [\n ['--json', 'machine-readable output'],\n ['--cwd <dir>', 'run as if started in <dir>'],\n ['--debug', 'show stack traces and debug logs'],\n];\n\nexport const COMMANDS: CommandHelp[] = [\n {\n name: 'init',\n summary: 'Create .devworkspace/ in the current project (safe to re-run)',\n usage: ['devworkspace init [--root <dir>] [--dry-run] [--with-integrations [--yes] [--scope project|user]]'],\n options: [\n ['--root <dir>', 'project root (default: Git top-level or current directory)'],\n ['--dry-run', 'show what would be created'],\n ['--with-integrations', 'then run the same integration setup as \"devworkspace setup --integrations\"'],\n ['--yes', 'with --with-integrations: approve machine-level and third-party installs'],\n ...COMMON,\n ],\n examples: ['npx devworkspace init', 'npx devworkspace init --with-integrations --yes'],\n },\n {\n name: 'setup',\n summary: 'Single-command repository setup (inspect, initialize, discover contract & validate)',\n usage: [\n 'devworkspace setup',\n 'devworkspace setup --integrations [--yes] [--dry-run] [--scope project|user] [--only graphify,agent-skills,ponytail]',\n ],\n options: [\n ['--integrations', 'set up external integrations (Graphify, Agent Skills, Ponytail)'],\n ['--dry-run', 'show exactly what would run; changes nothing'],\n ['--yes', 'with --integrations: approve machine-level and third-party installs'],\n ['--scope project|user', 'where to install (default: project; user needs --yes)'],\n ['--only <ids>', 'comma-separated: graphify, agent-skills, ponytail'],\n ...COMMON,\n ],\n examples: ['devworkspace setup', 'devworkspace setup --json', 'devworkspace setup --integrations --yes'],\n },\n {\n name: 'integrations',\n summary: 'Show or repair the integration installation (observed, not assumed)',\n usage: [\n 'devworkspace integrations status [--quick] [--restarted] [--strict]',\n 'devworkspace integrations repair [--yes] [--dry-run] [--only <ids>] [--scope project|user]',\n ],\n options: [\n ['--quick', 'only look at files and PATH (fast, but nothing can show VERIFIED)'],\n ['--restarted', 'record that you restarted Claude Code, clearing RESTART_REQUIRED'],\n ['--strict', 'exit 3 unless every required integration is VERIFIED'],\n ...COMMON,\n ],\n examples: ['devworkspace integrations status', 'devworkspace integrations repair --yes'],\n },\n {\n name: 'analyze',\n summary: 'Deterministic repository discovery + generate the Claude onboarding prompt',\n usage: ['devworkspace analyze [--dry-run]'],\n options: [['--dry-run', 'discover and report without writing files'], ...COMMON],\n examples: ['devworkspace analyze', 'devworkspace analyze --json'],\n },\n {\n name: 'status',\n summary: 'Concise overview: health, Git, knowledge, tasks, integrations, verification',\n usage: ['devworkspace status [--strict] [--deep] (read-only)'],\n options: [['--strict', 'exit 3 when anything needs attention'], ['--deep', 'also run the integration health checks (what doctor does)'], ...COMMON],\n examples: ['devworkspace status', 'devworkspace status --json'],\n },\n {\n name: 'doctor',\n summary: 'Check the workspace, integrations, security and portability',\n usage: ['devworkspace doctor [--fix] [--strict] (core workspace and integrations are reported separately)'],\n options: [['--fix', 'safely create missing folders/ignore rules (never deletes)'], ['--strict', 'exit 3 when there are warnings'], ...COMMON],\n examples: ['devworkspace doctor', 'devworkspace doctor --json --strict'],\n },\n {\n name: 'refresh',\n summary: 'Re-derive deterministic facts and mark knowledge stale when its evidence changed',\n usage: ['devworkspace refresh [--dry-run] (writes discovery files and detector facts; --dry-run writes nothing)'],\n options: [['--dry-run', 'report stale knowledge without writing'], ...COMMON],\n examples: ['devworkspace refresh'],\n },\n {\n name: 'context',\n summary: 'Show what DevWorkspace believes about the project',\n usage: ['devworkspace context [--for <request>] [--role <explorer|tester|reviewer>] [--topic <prefix>] [--full]'],\n options: [\n ['--for <request>', 'task-aware context: only what this request needs, each item with the reason it is included (safety rules are always shown)'],\n ['--role <role>', 'role-sliced context for AI workflows: explorer, tester, reviewer (requires --for)'],\n ['--topic <text>', 'only facts and testing-contract entries that match <text> (safety rules are always shown)'],\n ['--full', 'also print .devworkspace/context/*.md'],\n ...COMMON,\n ],\n examples: [\n 'devworkspace context --topic auth',\n 'devworkspace context --for \"fix the invoice total rounding bug\"',\n 'devworkspace context --for \"fix memory leak in auth\" --role explorer',\n 'devworkspace context --for \"add regression tests\" --role tester',\n 'devworkspace context --for \"review authentication changes\" --role reviewer',\n ],\n },\n {\n name: 'fact',\n summary: 'Record, verify or remove a piece of project knowledge',\n usage: [\n 'devworkspace fact add --key <key> --value <text> --source <desc> [--file <rel path>]... [--source-type ai|user|file|git] [--confidence HIGH|MEDIUM|LOW] [--status VERIFIED|INFERRED|UNKNOWN]',\n 'devworkspace fact verify <key>',\n 'devworkspace fact remove <key>',\n 'devworkspace fact list',\n ],\n options: [\n ['--key', 'lowercase dotted key, e.g. auth.session-store'],\n ['--value', 'one concise sentence (no secrets, no absolute paths)'],\n ['--file <path>', 'repository file that evidences the fact (repeatable); used for staleness'],\n ...COMMON,\n ],\n examples: ['devworkspace fact add --key auth.sessions --value \"Sessions live in Redis\" --source \"src/auth/session.ts\" --file src/auth/session.ts --source-type ai --confidence HIGH --status VERIFIED'],\n },\n {\n name: 'feature',\n summary: 'Manage feature-level knowledge and end-to-end component traces',\n usage: [\n 'devworkspace feature list',\n 'devworkspace feature show <id>',\n 'devworkspace feature validate',\n 'devworkspace feature add --id <id> --name <name> [--entry <path>...] [--route <path>...] [--service <path>...] [--model <path>...] [--test <path>...] [--symbol <sym>]',\n ],\n options: [\n ['--id <id>', 'unique feature identifier, e.g. auth.login'],\n ['--name <name>', 'human-readable name for the feature'],\n ['--entry <path>', 'frontend entry point path (repeatable)'],\n ['--route <path>', 'backend route/controller path (repeatable)'],\n ['--service <path>', 'backend service path (repeatable)'],\n ['--model <path>', 'database model/schema path (repeatable)'],\n ['--test <path>', 'test file path (repeatable)'],\n ['--symbol <sym>', 'symbol name (function, class, endpoint) to verify in component files'],\n ...COMMON,\n ],\n examples: [\n 'devworkspace feature list',\n 'devworkspace feature show auth.login',\n 'devworkspace feature validate',\n 'devworkspace feature add --id auth.login --name \"User Authentication\" --entry frontend/src/pages/Login.tsx --route backend/src/routes/auth.ts --symbol authRoutes',\n ],\n },\n {\n name: 'graph',\n summary: 'Inspect and trace Graphify knowledge graphs',\n usage: [\n 'devworkspace graph status',\n 'devworkspace graph trace [--from <path|query>] [--depth <n>]',\n ],\n options: [\n ['--from <path|query>', 'starting node file path or symbol name to trace from'],\n ['--depth <n>', 'maximum traversal depth (1-10, default 2)'],\n ...COMMON,\n ],\n examples: [\n 'devworkspace graph status',\n 'devworkspace graph trace --from src/api.ts --depth 3',\n ],\n },\n {\n name: 'task',\n summary: 'Track engineering tasks with a completion gate',\n usage: [\n 'devworkspace task new \"<request>\" [--type BUG|FEATURE|...]',\n 'devworkspace task list [--all] (alias: devworkspace tasks)',\n 'devworkspace task show <id>',\n 'devworkspace task status <id> <STATUS> [--note <text>]',\n 'devworkspace task update <id> [--title ..] [--criteria ..]... [--plan ..]... [--area ..]... [--blocker ..]... [--require <check>]... [--summary ..]',\n 'devworkspace task run <id> <check> [--package <dir>] [--timeout <seconds>] (executes the contract command; read-only checks only)',\n 'devworkspace task verify <id> <check> pass|fail|skip|pending [--package <dir>] [--reason user-override] [--detail <text>] (records a report, not an executed result)',\n 'devworkspace task tests <id> --phase baseline|after --passed <n> --failed <n>',\n 'devworkspace task attest <id> [--user-work-intact] [--knowledge-reviewed] [--final-state-inspected]',\n ],\n options: [\n ['--all', 'include completed tasks'],\n ['--package <dir>', 'with run/verify: the package the result belongs to (default: every changed package / the root)'],\n ['--timeout <seconds>', 'with run: per-command time limit (default 600)'],\n ...COMMON,\n ],\n examples: ['devworkspace task run T-20260101-ab12 typecheck', 'devworkspace task new \"Fix the quotation email bug\"', 'devworkspace task status T-20260101-ab12 COMPLETED'],\n },\n {\n name: 'testenv',\n summary: 'Declare a test environment so database-touching checks may run (local, never committed)',\n usage: [\n 'devworkspace testenv declare --package <dir> --check integration|security|e2e|unit [--check ...] --target \"<description>\" --yes',\n 'devworkspace testenv list',\n 'devworkspace testenv revoke --package <dir>',\n ],\n options: [\n ['--package <dir>', 'package directory the declaration covers'],\n ['--check <id>', 'check the declaration allows (repeatable)'],\n ['--target <text>', 'words describing the environment, never a connection string'],\n ['--yes', 'confirm that running those checks there is safe'],\n ...COMMON,\n ],\n examples: ['devworkspace testenv declare --package backend --check integration --target \"disposable docker compose stack\" --yes'],\n },\n {\n name: 'decision',\n summary: 'Record architectural/project decisions (append-only, human-readable)',\n usage: [\n 'devworkspace decision add --title <t> --context <c> --decision <d> --consequences <q> [--supersedes <n>]',\n 'devworkspace decision list',\n 'devworkspace decision show <n>',\n ],\n options: COMMON,\n examples: ['devworkspace decision list'],\n },\n {\n name: 'session',\n summary: 'Save or list short session summaries (never transcripts)',\n usage: [\n 'devworkspace session save --goal <g> [--done <x>]... [--area <a>]... [--tests-run <t>]... [--decision-note <d>]... [--remaining <r>]... [--next <n>] [--task <id>]',\n 'devworkspace session list',\n ],\n options: COMMON,\n examples: ['devworkspace session save --goal \"Fix login bug\" --done \"Added regression test\" --next \"Run e2e\"'],\n },\n {\n name: 'agent',\n summary: 'Manage coding agent integrations (claude, codex, cursor, copilot)',\n usage: [\n 'devworkspace agent install [--agent claude|codex|cursor|copilot|all] [--dry-run]',\n 'devworkspace agent list',\n ],\n options: [\n ['--agent <id>', 'agent adapter: claude, codex, cursor, copilot, or all (default: claude)'],\n ['--dry-run', 'preview the files that would change'],\n ...COMMON,\n ],\n examples: ['devworkspace agent install --agent cursor', 'devworkspace agent install --agent all --dry-run', 'devworkspace agent list'],\n },\n {\n name: 'export',\n summary: 'Export portable project knowledge to a JSON bundle',\n usage: ['devworkspace export [--out <file>] [--dry-run]'],\n options: [['--out <file>', 'output path (default: devworkspace-export-<date>.json)'], ...COMMON],\n examples: ['devworkspace export --out knowledge.json'],\n },\n {\n name: 'import',\n summary: 'Safely import an export bundle (validated; never silently overwrites)',\n usage: ['devworkspace import <file> [--dry-run] [--overwrite] [--allow-different-project]'],\n options: [['--overwrite', 'replace differing local files (backups are kept)'], ['--dry-run', 'show what would change'], ...COMMON],\n examples: ['devworkspace import knowledge.json --dry-run'],\n },\n {\n name: 'reset',\n summary: 'Delete .devworkspace/ so you can start again with init (shows a plan unless --yes)',\n usage: ['devworkspace reset [--include-agent-files] [--yes]'],\n options: [\n ['--yes', 'actually delete (without it, reset only shows what it would remove)'],\n ['--include-agent-files', 'also remove managed DevWorkspace blocks and skills from agent instruction files'],\n ['--dry-run', 'show the plan only'],\n ...COMMON,\n ],\n examples: ['devworkspace reset', 'devworkspace reset --yes', 'devworkspace reset --yes --include-agent-files && devworkspace init'],\n },\n {\n name: 'migrate',\n summary: 'Upgrade workspace files to the current schema (with backups)',\n usage: ['devworkspace migrate [--dry-run]'],\n options: [['--dry-run', 'list what would be migrated'], ...COMMON],\n examples: ['devworkspace migrate'],\n },\n];\n\nexport function topHelp(version: string): string {\n const w = Math.max(...COMMANDS.map((c) => c.name.length));\n return [\n `devworkspace ${version} - project-local AI engineering workspace`,\n '',\n 'Usage: devworkspace <command> [options]',\n '',\n 'Commands:',\n ...COMMANDS.map((c) => ` ${c.name.padEnd(w + 2)}${c.summary}`),\n '',\n 'Quick start:',\n ' cd my-project',\n ' npx devworkspace init',\n ' npx devworkspace analyze',\n ' # paste .devworkspace/analysis/onboarding-prompt.md into Claude Code',\n '',\n 'Global options: --json --cwd <dir> --debug --no-color --ascii --help --version',\n '(DevWorkspace never prompts interactively; destructive commands such as reset require --yes.)',\n 'Exit codes: 0 ok · 1 failure · 2 usage error or approval needed · 3 warnings (--strict) or setup finished but not fully verified · 130 interrupted',\n 'Run \"devworkspace <command> --help\" for details.',\n ].join('\\n');\n}\n\nexport function commandHelp(c: CommandHelp): string {\n const w = Math.max(...c.options.map(([o]) => o.length));\n return [\n `devworkspace ${c.name} - ${c.summary}`,\n '',\n 'Usage:',\n ...c.usage.map((u) => ` ${u}`),\n '',\n 'Options:',\n ...c.options.map(([o, d]) => ` ${o.padEnd(w + 2)}${d}`),\n '',\n 'Examples:',\n ...c.examples.map((e) => ` ${e}`),\n ].join('\\n');\n}\n"]}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"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","sourcesContent":["export interface CommandHelp {\n name: string;\n summary: string;\n usage: string[];\n options: [string, string][];\n examples: string[];\n}\n\nconst COMMON: [string, string][] = [\n ['--json', 'machine-readable output'],\n ['--cwd <dir>', 'run as if started in <dir>'],\n ['--debug', 'show stack traces and debug logs'],\n];\n\nexport const COMMANDS: CommandHelp[] = [\n {\n name: 'init',\n summary: 'Create .devworkspace/ in the current project (safe to re-run)',\n usage: ['devworkspace init [--root <dir>] [--dry-run] [--with-integrations [--yes] [--scope project|user]]'],\n options: [\n ['--root <dir>', 'project root (default: Git top-level or current directory)'],\n ['--dry-run', 'show what would be created'],\n ['--with-integrations', 'then run the same integration setup as \"devworkspace setup --integrations\"'],\n ['--yes', 'with --with-integrations: approve machine-level and third-party installs'],\n ...COMMON,\n ],\n examples: ['npx devworkspace init', 'npx devworkspace init --with-integrations --yes'],\n },\n {\n name: 'setup',\n summary: 'Single-command repository setup (inspect, initialize, discover contract & validate)',\n usage: [\n 'devworkspace setup',\n 'devworkspace setup --agent claude-code|codex|antigravity|all [--check]',\n 'devworkspace setup --integrations [--yes] [--dry-run] [--scope project|user] [--only graphify,agent-skills,ponytail]',\n ],\n options: [\n ['--agent <name>', 'configure MCP integration for agent (claude-code, codex, antigravity, all)'],\n ['--check', 'with --agent: validate and plan without writing files'],\n ['--integrations', 'set up external integrations (Graphify, Agent Skills, Ponytail)'],\n ['--dry-run', 'show exactly what would run; changes nothing'],\n ['--yes', 'with --integrations: approve machine-level and third-party installs'],\n ['--scope project|user', 'where to install (default: project; user needs --yes)'],\n ['--only <ids>', 'comma-separated: graphify, agent-skills, ponytail'],\n ...COMMON,\n ],\n examples: [\n 'devworkspace setup',\n 'devworkspace setup --agent claude-code',\n 'devworkspace setup --agent antigravity --check',\n 'devworkspace setup --json',\n 'devworkspace setup --integrations --yes',\n ],\n },\n {\n name: 'integrations',\n summary: 'Show or repair the integration installation (observed, not assumed)',\n usage: [\n 'devworkspace integrations status [--quick] [--restarted] [--strict]',\n 'devworkspace integrations repair [--yes] [--dry-run] [--only <ids>] [--scope project|user]',\n ],\n options: [\n ['--quick', 'only look at files and PATH (fast, but nothing can show VERIFIED)'],\n ['--restarted', 'record that you restarted Claude Code, clearing RESTART_REQUIRED'],\n ['--strict', 'exit 3 unless every required integration is VERIFIED'],\n ...COMMON,\n ],\n examples: ['devworkspace integrations status', 'devworkspace integrations repair --yes'],\n },\n {\n name: 'analyze',\n summary: 'Deterministic repository discovery + generate the Claude onboarding prompt',\n usage: ['devworkspace analyze [--dry-run]'],\n options: [['--dry-run', 'discover and report without writing files'], ...COMMON],\n examples: ['devworkspace analyze', 'devworkspace analyze --json'],\n },\n {\n name: 'status',\n summary: 'Concise overview: health, Git, knowledge, tasks, integrations, verification',\n usage: ['devworkspace status [--strict] [--deep] (read-only)'],\n options: [['--strict', 'exit 3 when anything needs attention'], ['--deep', 'also run the integration health checks (what doctor does)'], ...COMMON],\n examples: ['devworkspace status', 'devworkspace status --json'],\n },\n {\n name: 'doctor',\n summary: 'Check the workspace, integrations, security and portability',\n usage: ['devworkspace doctor [--fix] [--strict] (core workspace and integrations are reported separately)'],\n options: [['--fix', 'safely create missing folders/ignore rules (never deletes)'], ['--strict', 'exit 3 when there are warnings'], ...COMMON],\n examples: ['devworkspace doctor', 'devworkspace doctor --json --strict'],\n },\n {\n name: 'refresh',\n summary: 'Re-derive deterministic facts and mark knowledge stale when its evidence changed',\n usage: ['devworkspace refresh [--dry-run] (writes discovery files and detector facts; --dry-run writes nothing)'],\n options: [['--dry-run', 'report stale knowledge without writing'], ...COMMON],\n examples: ['devworkspace refresh'],\n },\n {\n name: 'context',\n summary: 'Show what DevWorkspace believes about the project',\n usage: ['devworkspace context [--for <request>] [--role <explorer|tester|reviewer>] [--topic <prefix>] [--full]'],\n options: [\n ['--for <request>', 'task-aware context: only what this request needs, each item with the reason it is included (safety rules are always shown)'],\n ['--role <role>', 'role-sliced context for AI workflows: explorer, tester, reviewer (requires --for)'],\n ['--topic <text>', 'only facts and testing-contract entries that match <text> (safety rules are always shown)'],\n ['--full', 'also print .devworkspace/context/*.md'],\n ...COMMON,\n ],\n examples: [\n 'devworkspace context --topic auth',\n 'devworkspace context --for \"fix the invoice total rounding bug\"',\n 'devworkspace context --for \"fix memory leak in auth\" --role explorer',\n 'devworkspace context --for \"add regression tests\" --role tester',\n 'devworkspace context --for \"review authentication changes\" --role reviewer',\n ],\n },\n {\n name: 'fact',\n summary: 'Record, verify or remove a piece of project knowledge',\n usage: [\n 'devworkspace fact add --key <key> --value <text> --source <desc> [--file <rel path>]... [--source-type ai|user|file|git] [--confidence HIGH|MEDIUM|LOW] [--status VERIFIED|INFERRED|UNKNOWN]',\n 'devworkspace fact verify <key>',\n 'devworkspace fact remove <key>',\n 'devworkspace fact list',\n ],\n options: [\n ['--key', 'lowercase dotted key, e.g. auth.session-store'],\n ['--value', 'one concise sentence (no secrets, no absolute paths)'],\n ['--file <path>', 'repository file that evidences the fact (repeatable); used for staleness'],\n ...COMMON,\n ],\n examples: ['devworkspace fact add --key auth.sessions --value \"Sessions live in Redis\" --source \"src/auth/session.ts\" --file src/auth/session.ts --source-type ai --confidence HIGH --status VERIFIED'],\n },\n {\n name: 'feature',\n summary: 'Manage feature-level knowledge and end-to-end component traces',\n usage: [\n 'devworkspace feature list',\n 'devworkspace feature show <id>',\n 'devworkspace feature validate',\n 'devworkspace feature add --id <id> --name <name> [--entry <path>...] [--route <path>...] [--service <path>...] [--model <path>...] [--test <path>...] [--symbol <sym>]',\n ],\n options: [\n ['--id <id>', 'unique feature identifier, e.g. auth.login'],\n ['--name <name>', 'human-readable name for the feature'],\n ['--entry <path>', 'frontend entry point path (repeatable)'],\n ['--route <path>', 'backend route/controller path (repeatable)'],\n ['--service <path>', 'backend service path (repeatable)'],\n ['--model <path>', 'database model/schema path (repeatable)'],\n ['--test <path>', 'test file path (repeatable)'],\n ['--symbol <sym>', 'symbol name (function, class, endpoint) to verify in component files'],\n ...COMMON,\n ],\n examples: [\n 'devworkspace feature list',\n 'devworkspace feature show auth.login',\n 'devworkspace feature validate',\n 'devworkspace feature add --id auth.login --name \"User Authentication\" --entry frontend/src/pages/Login.tsx --route backend/src/routes/auth.ts --symbol authRoutes',\n ],\n },\n {\n name: 'graph',\n summary: 'Inspect and trace Graphify knowledge graphs',\n usage: [\n 'devworkspace graph status',\n 'devworkspace graph trace [--from <path|query>] [--depth <n>]',\n ],\n options: [\n ['--from <path|query>', 'starting node file path or symbol name to trace from'],\n ['--depth <n>', 'maximum traversal depth (1-10, default 2)'],\n ...COMMON,\n ],\n examples: [\n 'devworkspace graph status',\n 'devworkspace graph trace --from src/api.ts --depth 3',\n ],\n },\n {\n name: 'task',\n summary: 'Track engineering tasks with a completion gate',\n usage: [\n 'devworkspace task new \"<request>\" [--type BUG|FEATURE|...]',\n 'devworkspace task list [--all] (alias: devworkspace tasks)',\n 'devworkspace task show <id>',\n 'devworkspace task status <id> <STATUS> [--note <text>]',\n 'devworkspace task update <id> [--title ..] [--criteria ..]... [--plan ..]... [--area ..]... [--blocker ..]... [--require <check>]... [--summary ..]',\n 'devworkspace task run <id> <check> [--package <dir>] [--timeout <seconds>] (executes the contract command; read-only checks only)',\n 'devworkspace task verify <id> <check> pass|fail|skip|pending [--package <dir>] [--reason user-override] [--detail <text>] (records a report, not an executed result)',\n 'devworkspace task tests <id> --phase baseline|after --passed <n> --failed <n>',\n 'devworkspace task attest <id> [--user-work-intact] [--knowledge-reviewed] [--final-state-inspected]',\n ],\n options: [\n ['--all', 'include completed tasks'],\n ['--package <dir>', 'with run/verify: the package the result belongs to (default: every changed package / the root)'],\n ['--timeout <seconds>', 'with run: per-command time limit (default 600)'],\n ...COMMON,\n ],\n examples: ['devworkspace task run T-20260101-ab12 typecheck', 'devworkspace task new \"Fix the quotation email bug\"', 'devworkspace task status T-20260101-ab12 COMPLETED'],\n },\n {\n name: 'testenv',\n summary: 'Declare a test environment so database-touching checks may run (local, never committed)',\n usage: [\n 'devworkspace testenv declare --package <dir> --check integration|security|e2e|unit [--check ...] --target \"<description>\" --yes',\n 'devworkspace testenv list',\n 'devworkspace testenv revoke --package <dir>',\n ],\n options: [\n ['--package <dir>', 'package directory the declaration covers'],\n ['--check <id>', 'check the declaration allows (repeatable)'],\n ['--target <text>', 'words describing the environment, never a connection string'],\n ['--yes', 'confirm that running those checks there is safe'],\n ...COMMON,\n ],\n examples: ['devworkspace testenv declare --package backend --check integration --target \"disposable docker compose stack\" --yes'],\n },\n {\n name: 'decision',\n summary: 'Record architectural/project decisions (append-only, human-readable)',\n usage: [\n 'devworkspace decision add --title <t> --context <c> --decision <d> --consequences <q> [--supersedes <n>]',\n 'devworkspace decision list',\n 'devworkspace decision show <n>',\n ],\n options: COMMON,\n examples: ['devworkspace decision list'],\n },\n {\n name: 'session',\n summary: 'Save or list short session summaries (never transcripts)',\n usage: [\n 'devworkspace session save --goal <g> [--done <x>]... [--area <a>]... [--tests-run <t>]... [--decision-note <d>]... [--remaining <r>]... [--next <n>] [--task <id>]',\n 'devworkspace session list',\n ],\n options: COMMON,\n examples: ['devworkspace session save --goal \"Fix login bug\" --done \"Added regression test\" --next \"Run e2e\"'],\n },\n {\n name: 'agent',\n summary: 'Manage coding agent integrations (claude, codex, cursor, copilot)',\n usage: [\n 'devworkspace agent install [--agent claude|codex|cursor|copilot|all] [--dry-run]',\n 'devworkspace agent list',\n ],\n options: [\n ['--agent <id>', 'agent adapter: claude, codex, cursor, copilot, or all (default: claude)'],\n ['--dry-run', 'preview the files that would change'],\n ...COMMON,\n ],\n examples: ['devworkspace agent install --agent cursor', 'devworkspace agent install --agent all --dry-run', 'devworkspace agent list'],\n },\n {\n name: 'export',\n summary: 'Export portable project knowledge to a JSON bundle',\n usage: ['devworkspace export [--out <file>] [--dry-run]'],\n options: [['--out <file>', 'output path (default: devworkspace-export-<date>.json)'], ...COMMON],\n examples: ['devworkspace export --out knowledge.json'],\n },\n {\n name: 'import',\n summary: 'Safely import an export bundle (validated; never silently overwrites)',\n usage: ['devworkspace import <file> [--dry-run] [--overwrite] [--allow-different-project]'],\n options: [['--overwrite', 'replace differing local files (backups are kept)'], ['--dry-run', 'show what would change'], ...COMMON],\n examples: ['devworkspace import knowledge.json --dry-run'],\n },\n {\n name: 'reset',\n summary: 'Delete .devworkspace/ so you can start again with init (shows a plan unless --yes)',\n usage: ['devworkspace reset [--include-agent-files] [--yes]'],\n options: [\n ['--yes', 'actually delete (without it, reset only shows what it would remove)'],\n ['--include-agent-files', 'also remove managed DevWorkspace blocks and skills from agent instruction files'],\n ['--dry-run', 'show the plan only'],\n ...COMMON,\n ],\n examples: ['devworkspace reset', 'devworkspace reset --yes', 'devworkspace reset --yes --include-agent-files && devworkspace init'],\n },\n {\n name: 'migrate',\n summary: 'Upgrade workspace files to the current schema (with backups)',\n usage: ['devworkspace migrate [--dry-run]'],\n options: [['--dry-run', 'list what would be migrated'], ...COMMON],\n examples: ['devworkspace migrate'],\n },\n {\n name: 'mcp',\n summary: 'Local-first Model Context Protocol (MCP) server and agent configuration',\n usage: [\n 'devworkspace mcp serve [--debug]',\n 'devworkspace mcp setup [--agent claude-code|codex|antigravity|all] [--check]',\n ],\n options: [\n ['--agent <name>', 'agent to configure (claude-code, codex, antigravity, all)'],\n ['--check', 'validate and plan configuration without modifying files'],\n ...COMMON,\n ],\n examples: [\n 'devworkspace mcp serve',\n 'devworkspace mcp setup --agent claude-code',\n 'devworkspace mcp setup --agent antigravity --check',\n ],\n },\n];\n\nexport function topHelp(version: string): string {\n const w = Math.max(...COMMANDS.map((c) => c.name.length));\n return [\n `devworkspace ${version} - project-local AI engineering workspace`,\n '',\n 'Usage: devworkspace <command> [options]',\n '',\n 'Commands:',\n ...COMMANDS.map((c) => ` ${c.name.padEnd(w + 2)}${c.summary}`),\n '',\n 'Quick start:',\n ' cd my-project',\n ' npx devworkspace init',\n ' npx devworkspace analyze',\n ' # paste .devworkspace/analysis/onboarding-prompt.md into Claude Code',\n '',\n 'Global options: --json --cwd <dir> --debug --no-color --ascii --help --version',\n '(DevWorkspace never prompts interactively; destructive commands such as reset require --yes.)',\n 'Exit codes: 0 ok · 1 failure · 2 usage error or approval needed · 3 warnings (--strict) or setup finished but not fully verified · 130 interrupted',\n 'Run \"devworkspace <command> --help\" for details.',\n ].join('\\n');\n}\n\nexport function commandHelp(c: CommandHelp): string {\n const w = Math.max(...c.options.map(([o]) => o.length));\n return [\n `devworkspace ${c.name} - ${c.summary}`,\n '',\n 'Usage:',\n ...c.usage.map((u) => ` ${u}`),\n '',\n 'Options:',\n ...c.options.map(([o, d]) => ` ${o.padEnd(w + 2)}${d}`),\n '',\n 'Examples:',\n ...c.examples.map((e) => ` ${e}`),\n ].join('\\n');\n}\n"]}
@@ -18,6 +18,7 @@ import type { FeatureItem, FeatureValidationReport } from '../features/types.js'
18
18
  import type { FeatureSummary } from '../services/features.js';
19
19
  import type { ProjectSetupResult } from '../services/setup.js';
20
20
  import type { GraphStatusResult, GraphTraceResult } from '../services/graph.js';
21
+ import type { McpSetupResult } from '../mcp/setup.js';
21
22
  export interface Style {
22
23
  ok(s: string): string;
23
24
  warn(s: string): string;
@@ -52,6 +53,7 @@ export declare function renderTaskBrief(s: Style, t: Task, change: string, gate:
52
53
  export declare function renderTaskRun(s: Style, r: RunCheckResult, gate: GateResult, next: string): string;
53
54
  export declare function renderTask(s: Style, t: Task, gate?: GateResult, next?: string): string;
54
55
  export declare function renderAgentInstall(s: Style, r: AgentInstallResult): string;
56
+ export declare function renderMcpSetup(s: Style, r: McpSetupResult): string;
55
57
  export declare function renderAgentList(s: Style, agents: AgentInfo[]): string;
56
58
  export declare function renderExport(s: Style, r: ExportResult): string;
57
59
  export declare function renderImport(s: Style, r: ImportResult): string;
@@ -335,6 +335,16 @@ export function renderAgentInstall(s, r) {
335
335
  L.push(` ${s.warn(s.sym.warn)} ${r.conflicts} conflict(s) left untouched; resolve by hand and re-run.`);
336
336
  return L.join('\n');
337
337
  }
338
+ export function renderMcpSetup(s, r) {
339
+ const L = [r.check ? `${s.sym.info} Check mode (dry run): no files were written.` : `${s.ok(s.sym.ok)} MCP setup completed for ${r.agent}.`];
340
+ for (const c of r.changes) {
341
+ const mark = c.kind === 'conflict' ? s.warn(s.sym.warn) : c.kind === 'unchanged' ? s.sym.info : s.ok(s.sym.ok);
342
+ L.push(` ${mark} ${c.kind.toUpperCase().padEnd(9)} ${c.path} - ${c.note}`);
343
+ }
344
+ if (r.conflicts > 0)
345
+ L.push(` ${s.warn(s.sym.warn)} ${r.conflicts} conflict(s) left untouched; resolve by hand and re-run.`);
346
+ return L.join('\n');
347
+ }
338
348
  export function renderAgentList(s, agents) {
339
349
  const L = ['Supported coding agent integrations:'];
340
350
  for (const a of agents) {
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/cli/render.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAsBpD,MAAM,UAAU,SAAS,CAAC,IAAwC;IAChE,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxG,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;QACZ,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QACd,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QACd,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;QACZ,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACb,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;KACpJ,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,CAAQ,EAAE,CAAoB;IAChD,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;QACjB,KAAK,UAAU;YACb,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxB,KAAK,QAAQ,CAAC;QACd,KAAK,uBAAuB;YAC1B,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5B,KAAK,eAAe;YAClB,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;QACtD;YACE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,eAAe,CAAC,CAAQ,EAAE,CAAoB;IAC5D,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACrF,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,qDAAqD,CAAC,CAAC,CAAC,EAAE,CAAC;IACjH,OAAO,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;AAC9G,CAAC;AAED,SAAS,kBAAkB,CAAC,CAAQ,EAAE,CAAoB,EAAE,MAAM,GAAG,MAAM;IACzE,MAAM,CAAC,GAAa,EAAE,CAAC;IACvB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM;QAAE,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzH,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ;QAAE,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1E,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS;QAAE,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;IACpE,OAAO,CAAC,CAAC;AACX,CAAC;AAED,0HAA0H;AAC1H,MAAM,UAAU,iBAAiB,CAAC,KAA0B;IAC1D,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,eAAe,IAAI,CAAC,CAAC,MAAM,KAAK,uBAAuB,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;IACtI,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,uEAAuE,CAAC,CAAC;IACzG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,kBAAkB,CAAC;QAAE,OAAO,CAAC,6EAA6E,CAAC,CAAC;IAClJ,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC;QAAE,OAAO,CAAC,+FAA+F,CAAC,CAAC;IAC5J,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,CAAQ,EAAE,CAAe;IACpD,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,6BAA6B,EAAE,0BAA0B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrG,CAAC;IACD,MAAM,CAAC,GAAa,EAAE,CAAC;IACvB,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,IAAI,IAAI,cAAc,EAAE,CAAC,CAAC;IACxD,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1G,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QACjB,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,YAAY,EAAE,CAAC,CAAC;QACtD,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpI,CAAC;;QAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;IAChF,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,KAAK,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,SAAS,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,CAAC;IACvI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iDAAiD,EAAE,CAAC,CAAC;IACxL,IAAI,CAAC,CAAC,SAAS,CAAC,WAAW,GAAG,CAAC;QAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,WAAW,oFAAoF,CAAC,CAAC;IAChL,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;IACxN,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY;QAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9D,KAAK,MAAM,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,YAAY,CAAC;QAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC1C,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAC7C,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,CAAC,CAAC,WAAW;QAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,CAAC,WAAW,CAAC,IAAI,IAAI,iBAAiB,EAAE,CAAC,CAAC;IACjI,IAAI,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACxB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;YAC/B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzR,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,CAAQ,EAAE,CAAe;IACpD,MAAM,CAAC,GAAa,EAAE,CAAC;IACvB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;QACrJ,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QAChH,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC;YAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IACvH,CAAC;IACD,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK;QAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,SAAS,CAAC;IACzH,CAAC,CAAC,IAAI,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAC;IACrC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACrK,IAAI,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,+CAA+C,CAAC,CAAC;QAC5D,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;YAC/B,CAAC,CAAC,IAAI,CAAC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,eAAe,CAAC;gBAAE,CAAC,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACrJ,CAAC;QACD,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,qCAAqC,CAAC;QAC7H,MAAM,OAAO,GAAG,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,OAAO,CAAC,CAAC,kBAAkB,CAAC,QAAQ,YAAY,CAAC;QACtM,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,QAAQ,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,CAAQ,EAAE,CAAa;IAChD,MAAM,CAAC,GAAa,EAAE,CAAC;IACvB,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;IACnD,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,kCAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,6DAA6D,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC;IAC3N,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5B,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IACtF,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK;QAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;IACxD,IAAI,CAAC,CAAC,KAAK;QAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;;QAC5C,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,kDAAkD,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3L,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5E,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,CAAQ,EAAE,CAAgB;IACtD,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;IACtB,MAAM,CAAC,GAAa,EAAE,CAAC;IACvB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,kCAAkC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,+DAA+D,CAAC,CAAC;IACtJ,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,eAAe,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzI,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM;QAAE,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrG,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI;QAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,YAAY,CAAC,CAAC;IACvG,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;IACtG,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvK,IAAI,CAAC,CAAC,qBAAqB,CAAC,MAAM;QAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpK,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;QAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnH,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACd,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACzG,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM;YAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,4BAA4B,CAAC,CAAC;QAC5F,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,aAAa,GAAG,CAAC;YAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,aAAa,8CAA8C,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACvN,CAAC;IACD,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5E,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,CAAQ,EAAE,CAAgB;IACtD,MAAM,CAAC,GAAa,EAAE,CAAC;IACvB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,gCAAgC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC;IACzG,IAAI,CAAC,CAAC,WAAW;QAAE,CAAC,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;IACzE,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9H,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,gCAAgC,CAAC,CAAC;IACpH,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK;QAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACvF,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW;QAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5G,IAAI,CAAC,CAAC,MAAM;QAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,MAAM,mDAAmD,CAAC,CAAC;IAC/F,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,CAAQ,EAAE,CAAgB;IACtD,MAAM,CAAC,GAAa,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpH,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,UAAU,GAAG,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACvJ,CAAC;IACD,IAAI,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;QAC7B,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,eAAe,CAAC,MAAM,OAAO,CAAC,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,aAAa,kBAAkB,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;QAChM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe;YAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACrP,CAAC;SAAM,IAAI,CAAC,CAAC,aAAa,GAAG,CAAC;QAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,iCAAiC,CAAC,CAAC,aAAa,kBAAkB,CAAC,CAAC,KAAK,qCAAqC,CAAC,CAAC;IAC3J,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACpB,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,iCAAiC,CAAC,CAAC;QAC9C,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM;YAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,0CAA0C,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC1M,CAAC;IACD,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM;QAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,KAAK,gBAAgB,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IACtK,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM;QAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACzH,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM;QAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,yDAAyD,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC;IACnK,IAAI,CAAC,CAAC,OAAO;QAAE,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;YAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,eAAe,IAAI,MAAM,EAAE,IAAI,CAAC,CAAC;IACjH,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,CAAQ,EAAE,CAAoB;IAC9D,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,MAAM,CAAC,GAAa,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,SAAS,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,UAAU,gBAAgB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,IAAI,SAAS,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7K,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5E,IAAI,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;QAC3B,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;QACzC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY;YAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;QACxC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;QAC5B,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,YAAY,CAAC,WAAW;YAAE,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QACrC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,mBAAmB,CAAC,CAAC;QAChC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,QAAQ;YAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChH,CAAC;IACD,IAAI,CAAC,CAAC,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QACvC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,4BAA4B,CAAC,CAAC;QACzC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,UAAU;YAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChH,CAAC;IACD,IAAI,CAAC,CAAC,YAAY,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC;QAC/C,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,uBAAuB,CAAC,CAAC;QACpC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,kBAAkB;YAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,CAAC,CAAC,YAAY,EAAE,UAAU,EAAE,CAAC;QAC/B,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,uBAAuB,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC;IACtF,CAAC;IACD,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACpE,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK;QAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,2BAA2B,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,YAAY,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7M,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM;QAAE,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3H,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACpB,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACzI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM;YAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC,QAAQ,MAAM,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IACxL,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACpB,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,iCAAiC,CAAC,CAAC;QAC9C,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM;YAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,0CAA0C,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC1M,CAAC;IACD,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM;QAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,KAAK,gBAAgB,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACnO,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM;QAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,iBAAiB,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,WAAW,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7J,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,2HAA2H;AAC3H,MAAM,UAAU,eAAe,CAAC,CAAQ,EAAE,CAAO,EAAE,MAAc,EAAE,IAAgB,EAAE,IAAY;IAC/F,MAAM,QAAQ,GAAG,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IACnE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,MAAM,EAAE,EAAE,mBAAmB,OAAO,IAAI,QAAQ,CAAC,MAAM,8CAA8C,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IAC5K,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5E,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,iCAAiC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAClH,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IAC1B,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,CAAQ,EAAE,CAAiB,EAAE,IAAgB,EAAE,IAAY;IACvF,MAAM,CAAC,GAAa,CAAC,GAAG,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IACrD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxH,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,mBAAmB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,QAAQ,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,CAAC;QACjS,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,QAAQ,CAAC,MAAM,QAAQ,EAAE,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC;IACnG,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,CAAQ,EAAE,CAAO,EAAE,IAAiB,EAAE,IAAa;IAC5E,MAAM,CAAC,GAAa,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1E,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM;QAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/E,IAAI,CAAC,CAAC,kBAAkB,CAAC,MAAM;QAAE,CAAC,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IACpH,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM;QAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IACpF,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM;QAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7E,IAAI,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QAC1B,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC1B,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;YAC/B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;YAC1P,IAAI,CAAC,CAAC,MAAM,KAAK,eAAe,IAAI,CAAC,CAAC,MAAM;gBAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5E,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,EAAE;gBAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,QAAQ,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,uBAAuB,EAAE,CAAC,CAAC;QAC/M,CAAC;IACH,CAAC;IACD,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,CAAC,CAAsC,EAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,YAAY,CAAC,CAAC,MAAM,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAC9H,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM;QAAE,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IACrF,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACjD,IAAI,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QAC7D,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ;YAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;QAChE,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ;YAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,CAAQ,EAAE,CAAqB;IAChE,MAAM,CAAC,GAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,kCAAkC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,0BAA0B,CAAC,CAAC;IAC1I,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/G,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC;QAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,0DAA0D,CAAC,CAAC;IAC9H,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,CAAQ,EAAE,MAAmB;IAC3D,MAAM,CAAC,GAAa,CAAC,sCAAsC,CAAC,CAAC;IAC7D,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACpF,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,IAAI,CAAC,CAAC,YAAY,CAAC,YAAY;YAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3D,IAAI,CAAC,CAAC,YAAY,CAAC,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,CAAC,YAAY,CAAC,OAAO;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,CAAC,YAAY,CAAC,GAAG;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,KAAK,MAAM,GAAG,CAAC,CAAC;QACnE,CAAC,CAAC,IAAI,CAAC,4BAA4B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,CAAQ,EAAE,CAAe;IACpD,IAAI,CAAC,CAAC,MAAM;QAAE,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,0BAA0B,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,KAAK,UAAU,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpJ,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,IAAI,EAAE,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,CAAQ,EAAE,CAAe;IACpD,MAAM,CAAC,GAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,gCAAgC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC;IACtH,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,MAAM,cAAc,CAAC,CAAC,OAAO,CAAC,MAAM,aAAa,CAAC,CAAC,MAAM,CAAC,MAAM,gBAAgB,CAAC,CAAC,SAAS,CAAC,MAAM,gBAAgB,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACvK,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM;QAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAClD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS;QAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACtF,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,CAAQ,EAAE,CAAc;IAClD,MAAM,CAAC,GAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,8DAA8D,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IAC/K,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,wBAAwB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC1G,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,CAAC,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;IAC7D,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,CAAQ,EAAE,CAAgB;IACtD,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,6BAA6B,CAAC,CAAC,OAAO,oBAAoB,CAAC;IAChH,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,0BAA0B,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,qDAAqD,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/N,CAAC;AAED,MAAM,WAAW,GAA2B;IAC1C,kBAAkB,EAAE,iCAAiC;IACrD,kBAAkB,EAAE,8CAA8C;IAClE,eAAe,EAAE,eAAe;IAChC,OAAO,EAAE,+BAA+B;IACxC,SAAS,EAAE,uBAAuB;IAClC,mBAAmB,EAAE,qBAAqB;IAC1C,SAAS,EAAE,iBAAiB;IAC5B,MAAM,EAAE,SAAS;IACjB,cAAc,EAAE,cAAc;CAC/B,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,CAAQ,EAAE,CAAc;IAClD,MAAM,CAAC,GAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC;IACjN,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,eAAe,CAAC,EAAE,CAAC;QAC5F,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QACrF,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK;YAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK;gBAAE,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnL,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI;gBAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1H,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACnC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ;gBAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5E,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS;gBAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IACD,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,0CAA0C,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;IAC7L,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,CAAQ,EAAE,CAAqB;IACtE,MAAM,CAAC,GAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,gFAAgF,CAAC,CAAC;IAClK,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC,CAAC,IAAI,CAAC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU;YAAE,CAAC,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,CAAC,CAAC,YAAY;QAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,gDAAgD,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC;IACnL,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,0CAA0C,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,kCAAkC,CAAC,CAAC;IACtM,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,CAAQ,EAAE,CAAc;IACpD,MAAM,CAAC,GAAa,EAAE,CAAC;IACvB,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACjJ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,WAAW,EAAE,CAAC,CAAC;IACrD,IAAI,CAAC,CAAC,WAAW;QAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAChD,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM;QAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IAEpC,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,KAAsD,EAAQ,EAAE;QAClG,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACtG,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACjC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;YACpC,KAAK,MAAM,CAAC,IAAI,KAAM,EAAE,CAAC;gBACvB,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACnH,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3C,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7C,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;IACpC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IAClC,WAAW,CAAC,uBAAuB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;IACjD,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAE9B,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,CAAQ,EAAE,QAA0B;IACpE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,qGAAqG,CAAC;IAC/G,CAAC;IACD,MAAM,CAAC,GAAa,CAAC,kBAAkB,CAAC,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnH,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,eAAe,gBAAgB,CAAC,CAAC,UAAU,SAAS,CAAC,CAAC;IACnI,CAAC;IACD,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,CAAQ,EAAE,GAA4B;IAC5E,MAAM,CAAC,GAAa,EAAE,CAAC;IACvB,CAAC,CAAC,IAAI,CAAC,2BAA2B,GAAG,CAAC,KAAK,mBAAmB,CAAC,CAAC;IAChE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,cAAc,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IACxD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAEnE,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YACb,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;YAClE,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC3B,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,CAAQ,EAAE,CAAqB;IAChE,MAAM,CAAC,GAAa,EAAE,CAAC;IACvB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IACjI,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAAC,OAAO,GAAG,OAAO,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;IAC1E,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEX,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,2BAA2B,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,8BAA8B,EAAE,CAAC,CAAC;IACvI,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvK,CAAC;IACD,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEX,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,SAAS,uCAAuC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;IAC3I,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,0BAA0B,CAAC,CAAC;QAClH,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACjD,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,yEAAyE,CAAC,CAAC;IACvG,CAAC;IACD,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEX,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QACf,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,uBAAuB,CAAC,CAAC,QAAQ,CAAC,QAAQ,cAAc,CAAC,CAAC,QAAQ,CAAC,OAAO,iBAAiB,CAAC,CAAC;QAC3I,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,CAAC;IAED,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvH,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;IACtG,CAAC;IACD,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEX,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC,CAAC,IAAI,CAAC,KAAK,UAAU,mBAAmB,CAAC,CAAC,MAAM,CAAC,MAAM,YAAY,CAAC,CAAC,MAAM,CAAC,QAAQ,gBAAgB,CAAC,CAAC,MAAM,CAAC,QAAQ,aAAa,CAAC,CAAC;IACrI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEX,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAC9B,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;QAC/B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,CAAQ,EAAE,GAAsB;IAChE,MAAM,CAAC,GAAa,EAAE,CAAC;IACvB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;IAC5C,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACjD,IAAI,GAAG,CAAC,IAAI;YAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,UAAU,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,cAAc,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,GAAG,CAAC,UAAU,aAAa,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IAClF,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QAC9B,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACvD,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,CAAQ,EAAE,KAAuB;IAChE,MAAM,CAAC,GAAa,EAAE,CAAC;IACvB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,KAAK,CAAC,KAAK,aAAa,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACxE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QACrB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,yBAAyB,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnF,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,2BAA2B,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QAC1E,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ;YAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IACtF,CAAC,CAAC,IAAI,CAAC,gBAAgB,KAAK,CAAC,UAAU,aAAa,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,aAAa,WAAW,CAAC,KAAK,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,eAAe,aAAa,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC;IAC/L,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEX,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACnC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACxC,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAClF,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACtG,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,QAAQ,GAAG,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACjC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClF,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,QAAQ,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ;YAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC","sourcesContent":["import type { DoctorResult } from '../services/doctor.js';\nimport type { StatusResult } from '../services/status.js';\nimport type { InitResult } from '../services/init.js';\nimport type { AnalyzeResult } from '../services/analysis.js';\nimport type { RefreshResult } from '../services/refresh.js';\nimport type { ContextResult } from '../services/knowledge.js';\nimport type { TaskContextResult } from '../services/taskContext.js';\nimport type { RunCheckResult } from '../services/verify.js';\nimport type { Task, GateResult } from '../tasks/task.js';\nimport { nextRequiredStep } from '../tasks/task.js';\nimport type { AgentInstallResult, AgentInfo } from '../services/agent.js';\nimport type { ImportResult, ExportResult } from '../services/portability.js';\nimport type { MigrateResult } from '../services/migrate.js';\nimport type { ResetResult } from '../services/reset.js';\nimport type { IntegrationReport } from '../integrations/types.js';\nimport type { SetupResult } from '../integrations/manager.js';\nimport type { IntegrationsStatus } from '../services/integrations.js';\nimport type { FeatureItem, FeatureValidationReport, FeatureComponent } from '../features/types.js';\nimport type { FeatureSummary } from '../services/features.js';\nimport type { ProjectSetupResult } from '../services/setup.js';\nimport type { GraphStatusResult, GraphTraceResult } from '../services/graph.js';\n\nexport interface Style {\n ok(s: string): string;\n warn(s: string): string;\n fail(s: string): string;\n dim(s: string): string;\n bold(s: string): string;\n sym: { ok: string; warn: string; fail: string; info: string; arrow: string };\n}\n\nexport function makeStyle(opts: { color: boolean; ascii: boolean }): Style {\n const wrap = (code: number) => (s: string): string => (opts.color ? `\\u001b[${code}m${s}\\u001b[0m` : s);\n return {\n ok: wrap(32),\n warn: wrap(33),\n fail: wrap(31),\n dim: wrap(2),\n bold: wrap(1),\n sym: opts.ascii ? { ok: '[ok]', warn: '[warn]', fail: '[fail]', info: '-', arrow: '->' } : { ok: '✓', warn: '⚠', fail: '✗', info: '·', arrow: '→' },\n };\n}\n\nfunction statusMark(s: Style, r: IntegrationReport): string {\n switch (r.status) {\n case 'VERIFIED':\n return s.ok(s.sym.ok);\n case 'FAILED':\n case 'PREREQUISITES_MISSING':\n return s.fail(s.sym.fail);\n case 'NOT_INSTALLED':\n return r.required ? s.warn(s.sym.warn) : s.sym.info;\n default:\n return s.warn(s.sym.warn);\n }\n}\n\n/** One line per integration: always includes the status word, never just a symbol. */\nexport function integrationLine(s: Style, r: IntegrationReport): string {\n const how = r.variant ? ` (${r.variant}${r.scope ? `, ${r.scope} scope` : ''})` : '';\n const ver = r.version ? ` v${r.version}` : '';\n const shallow = !r.deep && r.status === 'INSTALLED' ? ' - installed; health not checked in this quick view' : '';\n return `${statusMark(s, r)} ${r.name}: ${r.status}${how}${ver}${shallow}${r.required ? '' : ' (optional)'}`;\n}\n\nfunction integrationDetails(s: Style, r: IntegrationReport, indent = ' '): string[] {\n const L: string[] = [];\n for (const c of r.checks) L.push(`${indent}${c.ok ? s.sym.ok : s.sym.fail} ${c.name}${c.detail ? `: ${c.detail}` : ''}`);\n for (const w of r.warnings) L.push(`${indent}${s.warn(s.sym.warn)} ${w}`);\n for (const n of r.nextSteps) L.push(`${indent}${s.sym.arrow} ${n}`);\n return L;\n}\n\n/** What to suggest after a quick (shallow) integration check. Never tells the user to install what is already present. */\nexport function integrationAdvice(items: IntegrationReport[]): string[] {\n const required = items.filter((i) => i.required);\n const missing = required.filter((i) => i.status === 'NOT_INSTALLED' || i.status === 'PREREQUISITES_MISSING' || i.status === 'FAILED');\n if (missing.length > 0) return ['Install and verify them with: devworkspace setup --integrations --yes'];\n if (required.some((i) => i.status === 'RESTART_REQUIRED')) return ['Restart Claude Code, then run: devworkspace integrations status --restarted'];\n if (required.some((i) => i.status !== 'VERIFIED')) return ['Installed. Check their health with: devworkspace doctor (or devworkspace integrations status)'];\n return [];\n}\n\nexport function renderStatus(s: Style, r: StatusResult): string {\n if (!r.initialized) {\n return [`${s.warn(s.sym.warn)} Workspace: Not initialized`, ' Run: devworkspace init'].join('\\n');\n }\n const L: string[] = [];\n L.push(`Project: ${r.project?.name ?? '(unreadable)'}`);\n L.push(`Workspace: ${r.workspace}${r.workspaceProblem ? ` - ${r.workspaceProblem.split('\\n')[0]}` : ''}`);\n if (r.git.isRepo) {\n L.push(`Git branch: ${r.git.branch ?? '(detached)'}`);\n L.push(`Working tree: ${r.git.workingTree}${r.git.changes ? ` (${r.git.changes} change${r.git.changes === 1 ? '' : 's'})` : ''}`);\n } else L.push(`Git: ${r.git.available ? 'not a repository' : 'not installed'}`);\n L.push('');\n L.push(`Knowledge: ${r.knowledge.state} (${r.knowledge.facts} fact${r.knowledge.facts === 1 ? '' : 's'}, ${r.knowledge.stale} stale)`);\n for (const x of r.knowledge.staleItems.slice(0, 5)) L.push(` ${s.warn(s.sym.warn)} stale ${x.key}: ${x.reason}${x.recorded ? '' : ' (not yet recorded; run \"devworkspace refresh\")'}`);\n if (r.knowledge.needsReview > 0) L.push(` ${s.warn(s.sym.warn)} ${r.knowledge.needsReview} user decision(s) cite changed files; review with \"devworkspace refresh --dry-run\"`);\n L.push(`Onboarding: ${r.onboarding.ready ? 'Complete' : `Pending (instructions ${r.onboarding.instructionsInstalled ? 'installed' : 'missing'}, knowledge ${r.onboarding.knowledgeWritten ? 'written' : 'missing'})`}`);\n for (const i of r.integrations) L.push(integrationLine(s, i));\n for (const a of integrationAdvice(r.integrations)) L.push(` ${a}`);\n L.push('');\n L.push(`Active tasks: ${r.activeTasks.length}`);\n for (const t of r.activeTasks.slice(0, 8)) {\n L.push(` ${t.id} [${t.status}] ${t.title}`);\n L.push(` next: ${t.next}`);\n }\n if (r.lastSession) L.push(`Last session: ${r.lastSession.goal} ${s.sym.arrow} next: ${r.lastSession.next || '(none recorded)'}`);\n if (r.verification.length > 0) {\n L.push('');\n L.push('Verification:');\n for (const v of r.verification) {\n L.push(` ${v.id.padEnd(12)} ${v.available ? 'configured' : 'not available'}${v.cwd ? ` [in ${v.cwd}]` : ''}${v.command ? ` ${v.command}` : ''}${v.available && v.required !== 'no' ? ` [${v.required}]` : ''}${v.mutates ? ' (modifies files; never run by DevWorkspace)' : ''}`);\n }\n }\n return L.join('\\n');\n}\n\nexport function renderDoctor(s: Style, r: DoctorResult): string {\n const L: string[] = [];\n for (const c of r.checks) {\n const mark = c.status === 'pass' ? s.ok(s.sym.ok) : c.status === 'warn' ? s.warn(s.sym.warn) : c.status === 'fail' ? s.fail(s.sym.fail) : s.sym.info;\n const tag = c.status === 'pass' ? 'PASS' : c.status === 'warn' ? 'WARN' : c.status === 'fail' ? 'FAIL' : 'INFO';\n L.push(`${mark} ${tag} ${c.message}`);\n if (c.remediation && (c.status === 'warn' || c.status === 'fail')) L.push(` ${s.sym.arrow} ${c.remediation}`);\n }\n L.push('');\n for (const f of r.fixed) L.push(`${s.ok(s.sym.ok)} Fixed: ${f}`);\n const verdict = !r.healthy ? 'UNHEALTHY' : r.ready ? 'READY' : r.counts.warn > 0 ? 'HEALTHY (with warnings)' : 'HEALTHY';\n L.push(`Core workspace: ${verdict}`);\n L.push(`Core checks: ${r.counts.pass} passed, ${r.counts.warn} warning${r.counts.warn === 1 ? '' : 's'}, ${r.counts.fail} failure${r.counts.fail === 1 ? '' : 's'}`);\n if (r.integrations.length > 0) {\n L.push('', 'Integrations (observed by running the tools):');\n for (const i of r.integrations) {\n L.push(` ${integrationLine(s, i)}`);\n if (i.status !== 'VERIFIED' && (i.required || i.status !== 'NOT_INSTALLED')) L.push(...integrationDetails(s, i, ' ').filter((_, k) => k < 6));\n }\n const coreText = !r.healthy ? 'core workspace has problems' : r.ready ? 'core ready' : 'core healthy, onboarding incomplete';\n const intText = r.integrationSummary.complete ? 'all required integrations verified' : `integration setup incomplete (${r.integrationSummary.verified} of ${r.integrationSummary.required} verified)`;\n L.push('', `Overall: ${coreText[0]!.toUpperCase()}${coreText.slice(1)}; ${intText}`);\n }\n return L.join('\\n');\n}\n\nexport function renderInit(s: Style, r: InitResult): string {\n const L: string[] = [];\n const verb = r.dryRun ? 'Would create' : 'Created';\n L.push(r.dryRun ? `${s.sym.info} Dry run: no files were written.` : r.alreadyInitialized ? `${s.ok(s.sym.ok)} DevWorkspace already initialized; nothing was overwritten.` : `${s.ok(s.sym.ok)} DevWorkspace initialized.`);\n L.push(` Root: ${r.root}`);\n if (r.created.length > 0) L.push(` ${verb}:`, ...r.created.map((c) => ` + ${c}`));\n for (const n of r.notes) L.push(` ${s.sym.info} ${n}`);\n if (r.setup) L.push('', renderSetup(s, r.setup));\n else L.push('', 'Integrations (quick check, files and PATH only):', ...r.integrations.map((i) => ` ${integrationLine(s, i)}`), ...integrationAdvice(r.integrations).map((a) => ` ${a}`));\n L.push('', 'Next steps:', ...r.nextSteps.map((n, i) => ` ${i + 1}. ${n}`));\n return L.join('\\n');\n}\n\nexport function renderAnalyze(s: Style, r: AnalyzeResult): string {\n const d = r.discovery;\n const L: string[] = [];\n L.push(r.dryRun ? `${s.sym.info} Dry run: no files were written.` : `${s.ok(s.sym.ok)} Analysis complete (deterministic discovery; no AI involved).`);\n L.push(` Files scanned: ${d.scan.fileCount}${d.scan.truncated ? ' (truncated by limits)' : ''}`);\n L.push(` Ecosystems: ${d.ecosystems.join(', ') || 'none detected'}${d.packageManager ? `; package manager: ${d.packageManager}` : ''}`);\n if (d.frameworks.length) L.push(` Frameworks/tools: ${d.frameworks.map((f) => f.name).join(', ')}`);\n if (d.monorepo.tool) L.push(` Monorepo: ${d.monorepo.tool} (${d.monorepo.packages.length} packages)`);\n const avail = d.commands.filter((c) => c.available);\n L.push(` Verification commands found: ${[...new Set(avail.map((c) => c.id))].join(', ') || 'none'}`);\n if (d.monorepo.packages.length > 0) L.push(` Packages: ${d.monorepo.packages.map((p) => `${p.path}${p.packageManager ? ` (${p.packageManager})` : ''}`).join(', ')}`);\n if (d.sensitiveFilesPresent.length) L.push(` ${s.warn(s.sym.warn)} Credential-like files present (names only, never read): ${d.sensitiveFilesPresent.join(', ')}`);\n for (const w of d.warnings.filter((w) => !w.startsWith('Credential-like'))) L.push(` ${s.warn(s.sym.warn)} ${w}`);\n if (!r.dryRun) {\n L.push('', 'Wrote:', ` ${r.files.discovery}`, ` ${r.files.commands}`, ` ${r.files.onboardingPrompt}`);\n if (r.facts.written.length) L.push(` ${r.facts.written.length} detected fact(s) recorded`);\n if (r.contract && r.contract.preservedUser > 0) L.push(` ${s.sym.ok} Kept ${r.contract.preservedUser} command(s) you or Claude confirmed earlier${r.contract.incomplete ? ' (this analysis was incomplete)' : ''}`);\n }\n L.push('', 'Next steps:', ...r.nextSteps.map((n, i) => ` ${i + 1}. ${n}`));\n return L.join('\\n');\n}\n\nexport function renderRefresh(s: Style, r: RefreshResult): string {\n const L: string[] = [];\n L.push(r.dryRun ? `${s.sym.info} Dry run: nothing was written.` : `${s.ok(s.sym.ok)} Refresh complete.`);\n if (r.headChanged) L.push(` Git HEAD changed since the last analysis.`);\n L.push(` Deterministic facts updated: ${r.autoRefreshed.length}${r.retired.length ? `, retired: ${r.retired.length}` : ''}`);\n if (r.stale.length === 0 && r.needsReview.length === 0) L.push(` ${s.ok(s.sym.ok)} No stored knowledge is stale.`);\n for (const x of r.stale) L.push(` ${s.warn(s.sym.warn)} STALE ${x.key}: ${x.reason}`);\n for (const x of r.needsReview) L.push(` ${s.warn(s.sym.warn)} Review user decision ${x.key}: ${x.reason}`);\n if (r.prompt) L.push('', `Paste ${r.prompt} into Claude Code to re-validate the stale items.`);\n return L.join('\\n');\n}\n\nexport function renderContext(s: Style, r: ContextResult): string {\n const L: string[] = [`Project: ${r.project.name}`, ''];\n L.push(`Facts${r.topic ? ` matching \"${r.topic}\"` : ''}: ${r.facts.length}${r.topic ? ` of ${r.totalFacts}` : ''}`);\n for (const f of r.facts) {\n L.push(` ${f.key} [${f.status}/${f.confidence}]`, ` ${f.value}`, ` source: ${f.source}${f.staleReason ? ` (stale: ${f.staleReason})` : ''}`);\n }\n if (r.testingContract.length) {\n L.push('', r.topic && r.omittedChecks > 0 ? `Testing contract (${r.testingContract.length} of ${r.testingContract.length + r.omittedChecks} checks match \"${r.topic}\"):` : 'Testing contract:');\n for (const c of r.testingContract) L.push(` ${c.id.padEnd(12)} ${c.available ? 'yes' : 'no '} ${(c.cwd ? `[${c.cwd}] ` : '') + (c.command ?? '-')} required: ${c.required}${c.mutates ? ' (modifies files; never run by DevWorkspace)' : ''}`);\n } else if (r.omittedChecks > 0) L.push('', `Testing contract: none of its ${r.omittedChecks} checks match \"${r.topic}\"; run without --topic to see them.`);\n if (r.safety.length) {\n L.push('', 'Not run automatically (safety):');\n for (const x of r.safety) L.push(` ${x.check.padEnd(12)} [${x.package}] ${x.command ?? ''}: ${x.safety === 'blocked' ? 'never' : 'only against a declared test environment'} - ${x.reasons[0] ?? ''}`);\n }\n L.push('', 'Rules:', ...r.rules.map((x) => ` - ${x}`));\n if (r.decisions.length) L.push('', 'Decisions:', ...r.decisions.map((d) => ` ${String(d.number).padStart(4, '0')} [${d.status}] ${d.title} (decisions/${d.file})`));\n if (r.activeTasks.length) L.push('', 'Active tasks:', ...r.activeTasks.map((t) => ` ${t.id} [${t.status}] ${t.title}`));\n if (r.documents.length) L.push('', 'Context documents (read as needed; --full prints them):', ...r.documents.map((d) => ` context/${d.name} (${d.bytes} bytes)`));\n if (r.content) for (const [name, text] of Object.entries(r.content)) L.push('', `--- context/${name} ---`, text);\n return L.join('\\n');\n}\n\nexport function renderTaskContext(s: Style, r: TaskContextResult): string {\n const roleLabel = r.role ? ` [Role: ${r.role.toUpperCase()}]` : '';\n const L: string[] = [`Project: ${r.project.name}`, `Task: ${r.type} (${r.confidence} confidence, ${r.readOnly ? 'read-only' : 'modifies code'})${roleLabel} - ${r.request}`];\n const why = new Map(r.included.map((i) => [`${i.kind}:${i.id}`, i.reason]));\n if (r.roleGuidance?.length) {\n L.push('', `Role Guidance (${r.role}):`);\n for (const g of r.roleGuidance) L.push(` ${s.sym.arrow} ${g}`);\n }\n if (r.roleFindings?.entryPoints?.length) {\n L.push('', 'Entry points:');\n for (const ep of r.roleFindings.entryPoints) L.push(` * ${ep}`);\n }\n if (r.roleFindings?.features?.length) {\n L.push('', 'Related features:');\n for (const f of r.roleFindings.features) L.push(` * [${f.id}] ${f.name}${f.status ? ` (${f.status})` : ''}`);\n }\n if (r.roleFindings?.graphNodes?.length) {\n L.push('', 'Graphify dependency trace:');\n for (const n of r.roleFindings.graphNodes) L.push(` * ${n.id} [${n.status}]${n.path ? ` (${n.path})` : ''}`);\n }\n if (r.roleFindings?.zeroTestSafeguards?.length) {\n L.push('', 'Zero-test safeguards:');\n for (const z of r.roleFindings.zeroTestSafeguards) L.push(` ${s.sym.info} ${z}`);\n }\n if (r.roleFindings?.diffNotice) {\n L.push('', 'Diff & review notice:', ` ${s.sym.info} ${r.roleFindings.diffNotice}`);\n }\n L.push('', `Facts (${r.counts.facts[0]} of ${r.counts.facts[1]}):`);\n for (const f of r.facts) L.push(` ${f.key} [${f.status}] ${f.value}${f.clipped ? ` ...(+${f.clipped} chars; context --topic ${f.key})` : ''}`, ` why: ${why.get(`fact:${f.key}`)}; source: ${f.source}`);\n if (r.aliases.length) L.push(` same value as another fact: ${r.aliases.map((a) => `${a.key} = ${a.sameAs}`).join(', ')}`);\n if (r.checks.length) {\n L.push('', `Checks (${r.counts.checks[0]} of ${r.counts.checks[1]})${r.packages.length ? `, packages: ${r.packages.join(', ')}` : ''}:`);\n for (const c of r.checks) L.push(` ${c.id.padEnd(12)} ${(c.cwd ? `[${c.cwd}] ` : '') + (c.command ?? '-')} required: ${c.required} (${why.get(`check:${c.cwd ?? '.'}:${c.id}`)})`);\n }\n if (r.safety.length) {\n L.push('', 'Not run automatically (safety):');\n for (const x of r.safety) L.push(` ${x.check.padEnd(12)} [${x.package}] ${x.command ?? ''}: ${x.safety === 'blocked' ? 'never' : 'only against a declared test environment'} - ${x.reasons[0] ?? ''}`);\n }\n L.push('', 'Rules:', ...r.rules.map((x) => ` - ${x}`));\n if (r.decisions.length) L.push('', 'Decisions:', ...r.decisions.map((d) => ` ${String(d.number).padStart(4, '0')} [${d.status}] ${d.title} (decisions/${d.file}; ${why.get(`decision:${String(d.number).padStart(4, '0')}`)})`));\n if (r.documents.length) L.push('', 'Read if needed:', ...r.documents.map((d) => ` context/${d.name} (${d.bytes} bytes; ${why.get(`document:${d.name}`)})`));\n return L.join('\\n');\n}\n\n/** One-screen result of a small task update: what changed, verification progress, the first blockers and the next step. */\nexport function renderTaskBrief(s: Style, t: Task, change: string, gate: GateResult, next: string): string {\n const required = t.verification.filter((v) => v.required);\n const passing = required.filter((v) => v.status === 'PASS').length;\n const L = [`${s.ok(s.sym.ok)} ${t.id} ${change}`, ` verification: ${passing}/${required.length} required checks recorded as passing; gate ${gate.ok ? 'met' : 'not met'}`];\n for (const f of gate.failures.slice(0, 3)) L.push(` ${s.sym.fail} ${f}`);\n if (gate.failures.length > 3) L.push(` ... ${gate.failures.length - 3} more (devworkspace task show ${t.id})`);\n for (const w of gate.warnings.slice(0, 2)) L.push(` ${s.sym.warn} ${w}`);\n L.push(` next: ${next}`);\n return L.join('\\n');\n}\n\nexport function renderTaskRun(s: Style, r: RunCheckResult, gate: GateResult, next: string): string {\n const L: string[] = [`${r.check} for ${r.task.id}:`];\n for (const x of r.runs) {\n const mark = x.outcome === 'passed' ? s.ok(s.sym.ok) : x.outcome === 'failed' ? s.fail(s.sym.fail) : s.warn(s.sym.warn);\n const detail = x.outcome === 'passed' ? `passed (exit 0, ${Math.round((x.durationMs ?? 0) / 100) / 10}s)` : x.outcome === 'failed' ? `FAILED (exit ${x.exitCode ?? 'none'})${x.reason ? `: ${x.reason}` : ''}` : x.outcome === 'not-affected' ? `not run: ${x.reason}` : `NOT RUN - ${x.reason}`;\n L.push(` ${mark} [${x.package}] ${x.command ?? ''} ${detail}`);\n }\n L.push(` gate: ${gate.ok ? 'met' : `not met (${gate.failures.length} open)`}`, ` next: ${next}`);\n return L.join('\\n');\n}\n\nexport function renderTask(s: Style, t: Task, gate?: GateResult, next?: string): string {\n const L: string[] = [`${t.id} [${t.status}] ${t.type}`, ` ${t.title}`];\n if (t.constraints.length) L.push(` constraints: ${t.constraints.join(', ')}`);\n if (t.acceptanceCriteria.length) L.push(' acceptance criteria:', ...t.acceptanceCriteria.map((c) => ` - ${c}`));\n if (t.plan.length) L.push(' plan:', ...t.plan.map((c, i) => ` ${i + 1}. ${c}`));\n if (t.affectedAreas.length) L.push(` areas: ${t.affectedAreas.join(', ')}`);\n if (t.verification.length) {\n L.push(' verification:');\n for (const v of t.verification) {\n L.push(` ${v.status === 'PASS' ? s.sym.ok : v.status === 'FAIL' || v.status === 'COULD_NOT_RUN' ? s.sym.fail : s.sym.info} ${v.check.padEnd(12)} ${v.status.replace(/_/g, ' ')}${v.reason ? ` (${v.reason})` : ''}${v.required ? '' : ' [optional]'}`);\n if (v.status === 'COULD_NOT_RUN' && v.detail) L.push(` ${v.detail}`);\n for (const e of v.evidence ?? []) L.push(` [${e.package}] ${e.kind === 'executed' ? `executed, exit ${e.exitCode ?? 'none'}` : e.userOverride ? 'claimed (user vouched)' : 'claimed, not executed'}`);\n }\n }\n if (t.tests.baseline || t.tests.after) {\n const f = (c?: { passed: number; failed: number }): string => (c ? `${c.passed} passed, ${c.failed} failed` : 'not recorded');\n L.push(` tests: baseline ${f(t.tests.baseline)}; after ${f(t.tests.after)}`);\n }\n if (t.blockers.length) L.push(' blockers:', ...t.blockers.map((b) => ` - ${b}`));\n L.push(` next: ${next ?? nextRequiredStep(t)}`);\n if (gate) {\n L.push(` completion gate: ${gate.ok ? 'PASS' : 'NOT MET'}`);\n for (const f of gate.failures) L.push(` ${s.sym.fail} ${f}`);\n for (const w of gate.warnings) L.push(` ${s.sym.warn} ${w}`);\n }\n return L.join('\\n');\n}\n\nexport function renderAgentInstall(s: Style, r: AgentInstallResult): string {\n const L: string[] = [r.dryRun ? `${s.sym.info} Dry run: no files were written.` : `${s.ok(s.sym.ok)} ${r.agent} instructions processed.`];\n for (const c of r.changes) {\n const mark = c.kind === 'conflict' ? s.warn(s.sym.warn) : c.kind === 'unchanged' ? s.sym.info : s.ok(s.sym.ok);\n L.push(` ${mark} ${c.kind.toUpperCase().padEnd(9)} ${c.path} - ${c.note}`);\n }\n if (r.conflicts > 0) L.push(` ${s.warn(s.sym.warn)} ${r.conflicts} conflict(s) left untouched; resolve by hand and re-run.`);\n return L.join('\\n');\n}\n\nexport function renderAgentList(s: Style, agents: AgentInfo[]): string {\n const L: string[] = ['Supported coding agent integrations:'];\n for (const a of agents) {\n const status = a.installed ? s.ok(`${s.sym.ok} installed`) : s.dim('not installed');\n const caps: string[] = [];\n if (a.capabilities.instructions) caps.push('instructions');\n if (a.capabilities.skills) caps.push('skills');\n if (a.capabilities.plugins) caps.push('plugins');\n if (a.capabilities.cli) caps.push('cli');\n L.push(` ${s.bold(a.id.padEnd(8))} ${a.displayName} [${status}]`);\n L.push(` capabilities: ${caps.join(', ')}`);\n if (a.detectedFiles.length > 0) {\n L.push(` detected: ${a.detectedFiles.join(', ')}`);\n }\n }\n return L.join('\\n');\n}\n\nexport function renderExport(s: Style, r: ExportResult): string {\n if (r.dryRun) return [`${s.sym.info} Dry run: would export ${r.fileCount} file(s) (${r.bytes} bytes):`, ...r.files.map((f) => ` ${f}`)].join('\\n');\n return `${s.ok(s.sym.ok)} Exported ${r.fileCount} file(s) to ${r.file}`;\n}\n\nexport function renderImport(s: Style, r: ImportResult): string {\n const L: string[] = [r.dryRun ? `${s.sym.info} Dry run: nothing was changed.` : `${s.ok(s.sym.ok)} Import complete.`];\n L.push(` created: ${r.created.length}, updated: ${r.updated.length}, merged: ${r.merged.length}, unchanged: ${r.unchanged.length}, conflicts: ${r.conflicts.length}`);\n for (const m of r.merged) L.push(` merged ${m}`);\n for (const c of r.conflicts) L.push(` ${s.warn(s.sym.warn)} ${c.path}: ${c.reason}`);\n return L.join('\\n');\n}\n\nexport function renderReset(s: Style, r: ResetResult): string {\n const L: string[] = [r.executed ? `${s.ok(s.sym.ok)} DevWorkspace reset. Run \"devworkspace init\" to start fresh.` : `${s.warn(s.sym.warn)} Reset plan (nothing deleted yet):`];\n for (const a of r.actions) {\n const verb = a.action === 'skip' ? 'SKIP ' : a.action === 'remove-managed-section' ? 'EDIT ' : 'DELETE';\n L.push(` ${verb} ${a.path} - ${a.note}`);\n }\n L.push(' Your application source files are never touched.');\n return L.join('\\n');\n}\n\nexport function renderMigrate(s: Style, r: MigrateResult): string {\n if (r.migrated.length === 0) return `${s.ok(s.sym.ok)} Workspace is up to date (${r.checked} file(s) checked).`;\n return [r.dryRun ? `${s.sym.info} Dry run: would migrate:` : `${s.ok(s.sym.ok)} Migrated (backups in .devworkspace/local/backups):`, ...r.migrated.map((m) => ` ${m.file}: v${m.from} ${s.sym.arrow} v${m.to}`)].join('\\n');\n}\n\nconst ACTION_TEXT: Record<string, string> = {\n 'already-verified': 'already verified, nothing to do',\n 'awaiting-restart': 'installed; waiting for a Claude Code restart',\n 'nothing-to-do': 'nothing to do',\n blocked: 'cannot continue automatically',\n 'dry-run': 'would run these steps',\n 'approval-required': 'needs your approval',\n installed: 'steps completed',\n failed: 'stopped',\n 'not-selected': 'not selected',\n};\n\nexport function renderSetup(s: Style, r: SetupResult): string {\n const L: string[] = [r.dryRun ? `${s.sym.info} Dry run: nothing was changed.` : r.approvalRequired ? `${s.warn(s.sym.warn)} Approval needed before anything was changed.` : `${s.ok(s.sym.ok)} Setup finished.`];\n L.push(` Scope: ${r.scope}`);\n for (const o of r.outcomes.filter((x) => x.report.required || x.action !== 'nothing-to-do')) {\n L.push('', integrationLine(s, o.report), ` ${ACTION_TEXT[o.action] ?? o.action}`);\n for (const n of o.notes) L.push(` ${s.sym.info} ${n}`);\n if (o.steps.length > 0) {\n for (const st of o.steps) L.push(` ${st.state === 'ok' ? s.sym.ok : st.state === 'failed' ? s.sym.fail : s.sym.info} ${st.description}${st.detail ? ` - ${st.detail}` : ''}`);\n } else {\n for (const p of o.plan) L.push(` ${s.sym.info} [${p.level}] ${p.description}${p.command ? ` (${p.command})` : ''}`);\n }\n if (o.report.status !== 'VERIFIED') {\n for (const w of o.report.warnings) L.push(` ${s.warn(s.sym.warn)} ${w}`);\n for (const n of o.report.nextSteps) L.push(` ${s.sym.arrow} ${n}`);\n }\n }\n L.push('', r.complete ? `${s.ok(s.sym.ok)} All required integrations are verified.` : `${s.warn(s.sym.warn)} Integration setup is not complete. Core DevWorkspace features are unaffected.`);\n return L.join('\\n');\n}\n\nexport function renderIntegrationsStatus(s: Style, r: IntegrationsStatus): string {\n const L: string[] = [r.deep ? 'Integrations (observed by running the tools):' : 'Integrations (quick check; files and PATH only, so nothing can show VERIFIED):'];\n for (const i of r.reports) {\n L.push(` ${integrationLine(s, i)}`);\n if (i.status !== 'VERIFIED') L.push(...integrationDetails(s, i, ' '));\n }\n if (r.acknowledged) L.push('', r.acknowledged.length ? `Recorded that Claude Code was restarted for: ${r.acknowledged.join(', ')}.` : 'No integration was waiting for a restart.');\n L.push('', r.summary.complete ? `${s.ok(s.sym.ok)} All required integrations are verified.` : `${s.warn(s.sym.warn)} ${r.summary.verified} of ${r.summary.required} required integrations verified.`);\n return L.join('\\n');\n}\n\nexport function renderFeature(s: Style, f: FeatureItem): string {\n const L: string[] = [];\n const statusColor = f.status === 'verified' ? s.ok(`[${f.status}]`) : f.status === 'inferred' ? s.warn(`[${f.status}]`) : s.dim(`[${f.status}]`);\n L.push(`${s.bold(f.name)} (${f.id}) ${statusColor}`);\n if (f.description) L.push(` ${f.description}`);\n if (f.tags?.length) L.push(` Tags: ${f.tags.join(', ')}`);\n L.push(` Updated: ${f.updatedAt}`);\n\n const renderGroup = (label: string, group?: Record<string, FeatureComponent[] | undefined>): void => {\n if (!group) return;\n const entries = Object.entries(group).filter(([, comps]) => Array.isArray(comps) && comps.length > 0);\n if (entries.length === 0) return;\n L.push('', ` ${s.bold(label)}:`);\n for (const [type, comps] of entries) {\n for (const c of comps!) {\n const mark = c.status === 'verified' ? s.ok(s.sym.ok) : c.status === 'inferred' ? s.warn('?') : s.fail(s.sym.fail);\n const sym = c.symbol ? `:${c.symbol}` : '';\n const det = c.detail ? ` (${c.detail})` : '';\n L.push(` ${mark} [${type}] ${c.path}${sym}${det}`);\n }\n }\n };\n\n renderGroup('Frontend', f.frontend);\n renderGroup('Backend', f.backend);\n renderGroup('Database & Migrations', f.database);\n renderGroup('Tests', f.tests);\n\n return L.join('\\n');\n}\n\nexport function renderFeatureList(s: Style, features: FeatureSummary[]): string {\n if (features.length === 0) {\n return 'No features mapped yet. Use \"devworkspace feature add\" or edit .devworkspace/context/features.json.';\n }\n const L: string[] = ['Mapped features:'];\n for (const f of features) {\n const mark = f.status === 'verified' ? s.ok(s.sym.ok) : f.status === 'inferred' ? s.warn('?') : s.fail(s.sym.fail);\n L.push(` ${mark} ${f.id.padEnd(20)} ${f.status.padEnd(10)} ${f.name} (${f.componentsCount} components, ${f.testsCount} tests)`);\n }\n return L.join('\\n');\n}\n\nexport function renderFeatureValidation(s: Style, rep: FeatureValidationReport): string {\n const L: string[] = [];\n L.push(`Feature map validation: ${rep.total} total feature(s)`);\n L.push(` ${s.ok(s.sym.ok)} Verified: ${rep.verified}`);\n L.push(` ${s.warn('?')} Inferred: ${rep.inferred}`);\n L.push(` ${s.fail(s.sym.fail)} Unknown / broken: ${rep.unknown}`);\n\n for (const f of rep.features) {\n if (!f.valid) {\n L.push('', ` ${s.warn(s.sym.warn)} [${f.featureId}] ${f.name}:`);\n for (const iss of f.issues) {\n L.push(` - ${iss}`);\n }\n }\n }\n return L.join('\\n');\n}\n\nexport function renderProjectSetup(s: Style, r: ProjectSetupResult): string {\n const L: string[] = [];\n L.push(s.bold(`DevWorkspace Setup: ${r.projectName}`));\n L.push(` Repository root: ${r.root}`);\n L.push(` Platform: ${r.os} | Node.js: ${r.nodeVersion}`);\n const cliNote = r.cli.mode === 'source-checkout' ? ' (local source checkout)' : r.cli.mode === 'npx-cache' ? ' (npx cache)' : '';\n L.push(` DevWorkspace CLI: v${r.cli.version}${cliNote} [${r.cli.path}]`);\n L.push('');\n\n L.push(s.bold('Workspace & Discovery:'));\n L.push(` ${s.ok(s.sym.ok)} Workspace initialized: ${r.isFirstRun ? 'Created fresh .devworkspace/' : 'Existing workspace preserved'}`);\n if (r.packages.length > 0) {\n L.push(` ${s.ok(s.sym.ok)} Packages detected: ${r.packages.map((p) => `${p.path} (${p.ecosystem}${p.packageManager ? `, ${p.packageManager}` : ''})`).join(', ')}`);\n }\n if (r.frameworks.length > 0) {\n L.push(` ${s.ok(s.sym.ok)} Frameworks: ${r.frameworks.join(', ')}`);\n }\n L.push('');\n\n L.push(s.bold('Verification Contract:'));\n L.push(` ${s.ok(s.sym.ok)} ${r.verification.available} verification command(s) available: ${r.verification.checks.join(', ') || 'none'}`);\n if (r.verification.drift.length > 0) {\n L.push(` ${s.warn(s.sym.warn)} Contract drift detected: ${r.verification.drift.length} issue(s) need attention`);\n for (const d of r.verification.drift.slice(0, 3)) {\n L.push(` - ${d.id}${d.cwd ? ` [${d.cwd}]` : ''}: ${d.message}`);\n }\n } else {\n L.push(` ${s.ok(s.sym.ok)} Configured commands match repository manifests and working directories`);\n }\n L.push('');\n\n if (r.features) {\n L.push(s.bold('Feature-Level Knowledge:'));\n L.push(` ${s.ok(s.sym.ok)} ${r.features.total} feature(s) mapped: ${r.features.verified} verified, ${r.features.unknown} unknown/broken`);\n L.push('');\n }\n\n L.push(s.bold('Integrations:'));\n for (const i of r.integrations) {\n const mark = i.status === 'VERIFIED' ? s.ok(s.sym.ok) : i.status === 'NOT_INSTALLED' ? s.dim('-') : s.warn(s.sym.warn);\n L.push(` ${mark} ${i.name.padEnd(16)} ${i.status} ${i.required ? '(recommended)' : '(optional)'}`);\n }\n L.push('');\n\n L.push(s.bold('Readiness & Health:'));\n const healthMark = r.doctor.healthy ? s.ok(s.sym.ok) : s.warn(s.sym.warn);\n L.push(` ${healthMark} Doctor checks: ${r.doctor.passed} passed, ${r.doctor.warnings} warning(s), ${r.doctor.failures} failure(s)`);\n L.push('');\n\n L.push(s.bold('Next Steps:'));\n for (const step of r.nextSteps) {\n L.push(` ${s.sym.arrow} ${step}`);\n }\n\n return L.join('\\n');\n}\n\nexport function renderGraphStatus(s: Style, res: GraphStatusResult): string {\n const L: string[] = [];\n L.push(s.bold('Graphify Knowledge Graph:'));\n if (!res.available) {\n L.push(` ${s.warn(s.sym.warn)} ${res.message}`);\n if (res.hint) L.push(` ${s.sym.arrow} Hint: ${res.hint}`);\n return L.join('\\n');\n }\n\n L.push(` ${s.ok(s.sym.ok)} Location: ${res.graphPath}`);\n L.push(` ${s.ok(s.sym.ok)} Nodes: ${res.nodesCount} | Edges: ${res.edgesCount}`);\n if (Object.keys(res.nodeTypes).length > 0) {\n L.push('');\n L.push(s.bold('Node Types:'));\n for (const [t, count] of Object.entries(res.nodeTypes)) {\n L.push(` - ${t.padEnd(14)}: ${count}`);\n }\n }\n return L.join('\\n');\n}\n\nexport function renderGraphTrace(s: Style, trace: GraphTraceResult): string {\n const L: string[] = [];\n L.push(s.bold(`Graph Trace: \"${trace.query}\" (depth: ${trace.depth})`));\n if (!trace.available) {\n L.push(` ${s.warn(s.sym.warn)} Graph not available. ${trace.warnings.join(' ')}`);\n return L.join('\\n');\n }\n\n if (!trace.matchedNode) {\n L.push(` ${s.warn(s.sym.warn)} No start node matched \"${trace.query}\".`);\n for (const w of trace.warnings) L.push(` ${s.dim(w)}`);\n return L.join('\\n');\n }\n\n L.push(` Start node: ${s.bold(trace.matchedNode.id)} [${trace.matchedNode.status}]`);\n L.push(` Traversed: ${trace.totalNodes} node(s) (${s.ok(`${trace.verifiedNodes} verified`)}, ${trace.hypothesisNodes > 0 ? s.warn(`${trace.hypothesisNodes} hypothesis`) : '0 hypothesis'})`);\n L.push('');\n\n L.push(s.bold('Traversed Nodes:'));\n for (const n of trace.nodes) {\n const indent = ' '.repeat(n.depth + 1);\n const tag = n.status === 'verified' ? s.ok('[verified]') : s.warn('[hypothesis]');\n const pathInfo = n.path ? s.dim(`(${n.path}${n.symbol ? `::${n.symbol}` : ''})`) : s.dim('(no file)');\n const reason = n.reason ? ` - ${s.dim(n.reason)}` : '';\n L.push(`${indent}${tag} ${n.id} ${pathInfo}${reason}`);\n }\n\n if (trace.edges.length > 0) {\n L.push('');\n L.push(s.bold('Relationships:'));\n for (const e of trace.edges) {\n const tag = e.status === 'verified' ? s.ok('[verified]') : s.warn('[hypothesis]');\n L.push(` ${tag} ${e.source} --(${e.relation})--> ${e.target}`);\n }\n }\n\n if (trace.warnings.length > 0) {\n L.push('');\n for (const w of trace.warnings) L.push(` ${s.warn(s.sym.warn)} ${w}`);\n }\n\n return L.join('\\n');\n}\n"]}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/cli/render.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DoctorResult } from '../services/doctor.js';\nimport type { StatusResult } from '../services/status.js';\nimport type { InitResult } from '../services/init.js';\nimport type { AnalyzeResult } from '../services/analysis.js';\nimport type { RefreshResult } from '../services/refresh.js';\nimport type { ContextResult } from '../services/knowledge.js';\nimport type { TaskContextResult } from '../services/taskContext.js';\nimport type { RunCheckResult } from '../services/verify.js';\nimport type { Task, GateResult } from '../tasks/task.js';\nimport { nextRequiredStep } from '../tasks/task.js';\nimport type { AgentInstallResult, AgentInfo } from '../services/agent.js';\nimport type { ImportResult, ExportResult } from '../services/portability.js';\nimport type { MigrateResult } from '../services/migrate.js';\nimport type { ResetResult } from '../services/reset.js';\nimport type { IntegrationReport } from '../integrations/types.js';\nimport type { SetupResult } from '../integrations/manager.js';\nimport type { IntegrationsStatus } from '../services/integrations.js';\nimport type { FeatureItem, FeatureValidationReport, FeatureComponent } from '../features/types.js';\nimport type { FeatureSummary } from '../services/features.js';\nimport type { ProjectSetupResult } from '../services/setup.js';\nimport type { GraphStatusResult, GraphTraceResult } from '../services/graph.js';\nimport type { McpSetupResult } from '../mcp/setup.js';\n\nexport interface Style {\n ok(s: string): string;\n warn(s: string): string;\n fail(s: string): string;\n dim(s: string): string;\n bold(s: string): string;\n sym: { ok: string; warn: string; fail: string; info: string; arrow: string };\n}\n\nexport function makeStyle(opts: { color: boolean; ascii: boolean }): Style {\n const wrap = (code: number) => (s: string): string => (opts.color ? `\\u001b[${code}m${s}\\u001b[0m` : s);\n return {\n ok: wrap(32),\n warn: wrap(33),\n fail: wrap(31),\n dim: wrap(2),\n bold: wrap(1),\n sym: opts.ascii ? { ok: '[ok]', warn: '[warn]', fail: '[fail]', info: '-', arrow: '->' } : { ok: '✓', warn: '⚠', fail: '✗', info: '·', arrow: '→' },\n };\n}\n\nfunction statusMark(s: Style, r: IntegrationReport): string {\n switch (r.status) {\n case 'VERIFIED':\n return s.ok(s.sym.ok);\n case 'FAILED':\n case 'PREREQUISITES_MISSING':\n return s.fail(s.sym.fail);\n case 'NOT_INSTALLED':\n return r.required ? s.warn(s.sym.warn) : s.sym.info;\n default:\n return s.warn(s.sym.warn);\n }\n}\n\n/** One line per integration: always includes the status word, never just a symbol. */\nexport function integrationLine(s: Style, r: IntegrationReport): string {\n const how = r.variant ? ` (${r.variant}${r.scope ? `, ${r.scope} scope` : ''})` : '';\n const ver = r.version ? ` v${r.version}` : '';\n const shallow = !r.deep && r.status === 'INSTALLED' ? ' - installed; health not checked in this quick view' : '';\n return `${statusMark(s, r)} ${r.name}: ${r.status}${how}${ver}${shallow}${r.required ? '' : ' (optional)'}`;\n}\n\nfunction integrationDetails(s: Style, r: IntegrationReport, indent = ' '): string[] {\n const L: string[] = [];\n for (const c of r.checks) L.push(`${indent}${c.ok ? s.sym.ok : s.sym.fail} ${c.name}${c.detail ? `: ${c.detail}` : ''}`);\n for (const w of r.warnings) L.push(`${indent}${s.warn(s.sym.warn)} ${w}`);\n for (const n of r.nextSteps) L.push(`${indent}${s.sym.arrow} ${n}`);\n return L;\n}\n\n/** What to suggest after a quick (shallow) integration check. Never tells the user to install what is already present. */\nexport function integrationAdvice(items: IntegrationReport[]): string[] {\n const required = items.filter((i) => i.required);\n const missing = required.filter((i) => i.status === 'NOT_INSTALLED' || i.status === 'PREREQUISITES_MISSING' || i.status === 'FAILED');\n if (missing.length > 0) return ['Install and verify them with: devworkspace setup --integrations --yes'];\n if (required.some((i) => i.status === 'RESTART_REQUIRED')) return ['Restart Claude Code, then run: devworkspace integrations status --restarted'];\n if (required.some((i) => i.status !== 'VERIFIED')) return ['Installed. Check their health with: devworkspace doctor (or devworkspace integrations status)'];\n return [];\n}\n\nexport function renderStatus(s: Style, r: StatusResult): string {\n if (!r.initialized) {\n return [`${s.warn(s.sym.warn)} Workspace: Not initialized`, ' Run: devworkspace init'].join('\\n');\n }\n const L: string[] = [];\n L.push(`Project: ${r.project?.name ?? '(unreadable)'}`);\n L.push(`Workspace: ${r.workspace}${r.workspaceProblem ? ` - ${r.workspaceProblem.split('\\n')[0]}` : ''}`);\n if (r.git.isRepo) {\n L.push(`Git branch: ${r.git.branch ?? '(detached)'}`);\n L.push(`Working tree: ${r.git.workingTree}${r.git.changes ? ` (${r.git.changes} change${r.git.changes === 1 ? '' : 's'})` : ''}`);\n } else L.push(`Git: ${r.git.available ? 'not a repository' : 'not installed'}`);\n L.push('');\n L.push(`Knowledge: ${r.knowledge.state} (${r.knowledge.facts} fact${r.knowledge.facts === 1 ? '' : 's'}, ${r.knowledge.stale} stale)`);\n for (const x of r.knowledge.staleItems.slice(0, 5)) L.push(` ${s.warn(s.sym.warn)} stale ${x.key}: ${x.reason}${x.recorded ? '' : ' (not yet recorded; run \"devworkspace refresh\")'}`);\n if (r.knowledge.needsReview > 0) L.push(` ${s.warn(s.sym.warn)} ${r.knowledge.needsReview} user decision(s) cite changed files; review with \"devworkspace refresh --dry-run\"`);\n L.push(`Onboarding: ${r.onboarding.ready ? 'Complete' : `Pending (instructions ${r.onboarding.instructionsInstalled ? 'installed' : 'missing'}, knowledge ${r.onboarding.knowledgeWritten ? 'written' : 'missing'})`}`);\n for (const i of r.integrations) L.push(integrationLine(s, i));\n for (const a of integrationAdvice(r.integrations)) L.push(` ${a}`);\n L.push('');\n L.push(`Active tasks: ${r.activeTasks.length}`);\n for (const t of r.activeTasks.slice(0, 8)) {\n L.push(` ${t.id} [${t.status}] ${t.title}`);\n L.push(` next: ${t.next}`);\n }\n if (r.lastSession) L.push(`Last session: ${r.lastSession.goal} ${s.sym.arrow} next: ${r.lastSession.next || '(none recorded)'}`);\n if (r.verification.length > 0) {\n L.push('');\n L.push('Verification:');\n for (const v of r.verification) {\n L.push(` ${v.id.padEnd(12)} ${v.available ? 'configured' : 'not available'}${v.cwd ? ` [in ${v.cwd}]` : ''}${v.command ? ` ${v.command}` : ''}${v.available && v.required !== 'no' ? ` [${v.required}]` : ''}${v.mutates ? ' (modifies files; never run by DevWorkspace)' : ''}`);\n }\n }\n return L.join('\\n');\n}\n\nexport function renderDoctor(s: Style, r: DoctorResult): string {\n const L: string[] = [];\n for (const c of r.checks) {\n const mark = c.status === 'pass' ? s.ok(s.sym.ok) : c.status === 'warn' ? s.warn(s.sym.warn) : c.status === 'fail' ? s.fail(s.sym.fail) : s.sym.info;\n const tag = c.status === 'pass' ? 'PASS' : c.status === 'warn' ? 'WARN' : c.status === 'fail' ? 'FAIL' : 'INFO';\n L.push(`${mark} ${tag} ${c.message}`);\n if (c.remediation && (c.status === 'warn' || c.status === 'fail')) L.push(` ${s.sym.arrow} ${c.remediation}`);\n }\n L.push('');\n for (const f of r.fixed) L.push(`${s.ok(s.sym.ok)} Fixed: ${f}`);\n const verdict = !r.healthy ? 'UNHEALTHY' : r.ready ? 'READY' : r.counts.warn > 0 ? 'HEALTHY (with warnings)' : 'HEALTHY';\n L.push(`Core workspace: ${verdict}`);\n L.push(`Core checks: ${r.counts.pass} passed, ${r.counts.warn} warning${r.counts.warn === 1 ? '' : 's'}, ${r.counts.fail} failure${r.counts.fail === 1 ? '' : 's'}`);\n if (r.integrations.length > 0) {\n L.push('', 'Integrations (observed by running the tools):');\n for (const i of r.integrations) {\n L.push(` ${integrationLine(s, i)}`);\n if (i.status !== 'VERIFIED' && (i.required || i.status !== 'NOT_INSTALLED')) L.push(...integrationDetails(s, i, ' ').filter((_, k) => k < 6));\n }\n const coreText = !r.healthy ? 'core workspace has problems' : r.ready ? 'core ready' : 'core healthy, onboarding incomplete';\n const intText = r.integrationSummary.complete ? 'all required integrations verified' : `integration setup incomplete (${r.integrationSummary.verified} of ${r.integrationSummary.required} verified)`;\n L.push('', `Overall: ${coreText[0]!.toUpperCase()}${coreText.slice(1)}; ${intText}`);\n }\n return L.join('\\n');\n}\n\nexport function renderInit(s: Style, r: InitResult): string {\n const L: string[] = [];\n const verb = r.dryRun ? 'Would create' : 'Created';\n L.push(r.dryRun ? `${s.sym.info} Dry run: no files were written.` : r.alreadyInitialized ? `${s.ok(s.sym.ok)} DevWorkspace already initialized; nothing was overwritten.` : `${s.ok(s.sym.ok)} DevWorkspace initialized.`);\n L.push(` Root: ${r.root}`);\n if (r.created.length > 0) L.push(` ${verb}:`, ...r.created.map((c) => ` + ${c}`));\n for (const n of r.notes) L.push(` ${s.sym.info} ${n}`);\n if (r.setup) L.push('', renderSetup(s, r.setup));\n else L.push('', 'Integrations (quick check, files and PATH only):', ...r.integrations.map((i) => ` ${integrationLine(s, i)}`), ...integrationAdvice(r.integrations).map((a) => ` ${a}`));\n L.push('', 'Next steps:', ...r.nextSteps.map((n, i) => ` ${i + 1}. ${n}`));\n return L.join('\\n');\n}\n\nexport function renderAnalyze(s: Style, r: AnalyzeResult): string {\n const d = r.discovery;\n const L: string[] = [];\n L.push(r.dryRun ? `${s.sym.info} Dry run: no files were written.` : `${s.ok(s.sym.ok)} Analysis complete (deterministic discovery; no AI involved).`);\n L.push(` Files scanned: ${d.scan.fileCount}${d.scan.truncated ? ' (truncated by limits)' : ''}`);\n L.push(` Ecosystems: ${d.ecosystems.join(', ') || 'none detected'}${d.packageManager ? `; package manager: ${d.packageManager}` : ''}`);\n if (d.frameworks.length) L.push(` Frameworks/tools: ${d.frameworks.map((f) => f.name).join(', ')}`);\n if (d.monorepo.tool) L.push(` Monorepo: ${d.monorepo.tool} (${d.monorepo.packages.length} packages)`);\n const avail = d.commands.filter((c) => c.available);\n L.push(` Verification commands found: ${[...new Set(avail.map((c) => c.id))].join(', ') || 'none'}`);\n if (d.monorepo.packages.length > 0) L.push(` Packages: ${d.monorepo.packages.map((p) => `${p.path}${p.packageManager ? ` (${p.packageManager})` : ''}`).join(', ')}`);\n if (d.sensitiveFilesPresent.length) L.push(` ${s.warn(s.sym.warn)} Credential-like files present (names only, never read): ${d.sensitiveFilesPresent.join(', ')}`);\n for (const w of d.warnings.filter((w) => !w.startsWith('Credential-like'))) L.push(` ${s.warn(s.sym.warn)} ${w}`);\n if (!r.dryRun) {\n L.push('', 'Wrote:', ` ${r.files.discovery}`, ` ${r.files.commands}`, ` ${r.files.onboardingPrompt}`);\n if (r.facts.written.length) L.push(` ${r.facts.written.length} detected fact(s) recorded`);\n if (r.contract && r.contract.preservedUser > 0) L.push(` ${s.sym.ok} Kept ${r.contract.preservedUser} command(s) you or Claude confirmed earlier${r.contract.incomplete ? ' (this analysis was incomplete)' : ''}`);\n }\n L.push('', 'Next steps:', ...r.nextSteps.map((n, i) => ` ${i + 1}. ${n}`));\n return L.join('\\n');\n}\n\nexport function renderRefresh(s: Style, r: RefreshResult): string {\n const L: string[] = [];\n L.push(r.dryRun ? `${s.sym.info} Dry run: nothing was written.` : `${s.ok(s.sym.ok)} Refresh complete.`);\n if (r.headChanged) L.push(` Git HEAD changed since the last analysis.`);\n L.push(` Deterministic facts updated: ${r.autoRefreshed.length}${r.retired.length ? `, retired: ${r.retired.length}` : ''}`);\n if (r.stale.length === 0 && r.needsReview.length === 0) L.push(` ${s.ok(s.sym.ok)} No stored knowledge is stale.`);\n for (const x of r.stale) L.push(` ${s.warn(s.sym.warn)} STALE ${x.key}: ${x.reason}`);\n for (const x of r.needsReview) L.push(` ${s.warn(s.sym.warn)} Review user decision ${x.key}: ${x.reason}`);\n if (r.prompt) L.push('', `Paste ${r.prompt} into Claude Code to re-validate the stale items.`);\n return L.join('\\n');\n}\n\nexport function renderContext(s: Style, r: ContextResult): string {\n const L: string[] = [`Project: ${r.project.name}`, ''];\n L.push(`Facts${r.topic ? ` matching \"${r.topic}\"` : ''}: ${r.facts.length}${r.topic ? ` of ${r.totalFacts}` : ''}`);\n for (const f of r.facts) {\n L.push(` ${f.key} [${f.status}/${f.confidence}]`, ` ${f.value}`, ` source: ${f.source}${f.staleReason ? ` (stale: ${f.staleReason})` : ''}`);\n }\n if (r.testingContract.length) {\n L.push('', r.topic && r.omittedChecks > 0 ? `Testing contract (${r.testingContract.length} of ${r.testingContract.length + r.omittedChecks} checks match \"${r.topic}\"):` : 'Testing contract:');\n for (const c of r.testingContract) L.push(` ${c.id.padEnd(12)} ${c.available ? 'yes' : 'no '} ${(c.cwd ? `[${c.cwd}] ` : '') + (c.command ?? '-')} required: ${c.required}${c.mutates ? ' (modifies files; never run by DevWorkspace)' : ''}`);\n } else if (r.omittedChecks > 0) L.push('', `Testing contract: none of its ${r.omittedChecks} checks match \"${r.topic}\"; run without --topic to see them.`);\n if (r.safety.length) {\n L.push('', 'Not run automatically (safety):');\n for (const x of r.safety) L.push(` ${x.check.padEnd(12)} [${x.package}] ${x.command ?? ''}: ${x.safety === 'blocked' ? 'never' : 'only against a declared test environment'} - ${x.reasons[0] ?? ''}`);\n }\n L.push('', 'Rules:', ...r.rules.map((x) => ` - ${x}`));\n if (r.decisions.length) L.push('', 'Decisions:', ...r.decisions.map((d) => ` ${String(d.number).padStart(4, '0')} [${d.status}] ${d.title} (decisions/${d.file})`));\n if (r.activeTasks.length) L.push('', 'Active tasks:', ...r.activeTasks.map((t) => ` ${t.id} [${t.status}] ${t.title}`));\n if (r.documents.length) L.push('', 'Context documents (read as needed; --full prints them):', ...r.documents.map((d) => ` context/${d.name} (${d.bytes} bytes)`));\n if (r.content) for (const [name, text] of Object.entries(r.content)) L.push('', `--- context/${name} ---`, text);\n return L.join('\\n');\n}\n\nexport function renderTaskContext(s: Style, r: TaskContextResult): string {\n const roleLabel = r.role ? ` [Role: ${r.role.toUpperCase()}]` : '';\n const L: string[] = [`Project: ${r.project.name}`, `Task: ${r.type} (${r.confidence} confidence, ${r.readOnly ? 'read-only' : 'modifies code'})${roleLabel} - ${r.request}`];\n const why = new Map(r.included.map((i) => [`${i.kind}:${i.id}`, i.reason]));\n if (r.roleGuidance?.length) {\n L.push('', `Role Guidance (${r.role}):`);\n for (const g of r.roleGuidance) L.push(` ${s.sym.arrow} ${g}`);\n }\n if (r.roleFindings?.entryPoints?.length) {\n L.push('', 'Entry points:');\n for (const ep of r.roleFindings.entryPoints) L.push(` * ${ep}`);\n }\n if (r.roleFindings?.features?.length) {\n L.push('', 'Related features:');\n for (const f of r.roleFindings.features) L.push(` * [${f.id}] ${f.name}${f.status ? ` (${f.status})` : ''}`);\n }\n if (r.roleFindings?.graphNodes?.length) {\n L.push('', 'Graphify dependency trace:');\n for (const n of r.roleFindings.graphNodes) L.push(` * ${n.id} [${n.status}]${n.path ? ` (${n.path})` : ''}`);\n }\n if (r.roleFindings?.zeroTestSafeguards?.length) {\n L.push('', 'Zero-test safeguards:');\n for (const z of r.roleFindings.zeroTestSafeguards) L.push(` ${s.sym.info} ${z}`);\n }\n if (r.roleFindings?.diffNotice) {\n L.push('', 'Diff & review notice:', ` ${s.sym.info} ${r.roleFindings.diffNotice}`);\n }\n L.push('', `Facts (${r.counts.facts[0]} of ${r.counts.facts[1]}):`);\n for (const f of r.facts) L.push(` ${f.key} [${f.status}] ${f.value}${f.clipped ? ` ...(+${f.clipped} chars; context --topic ${f.key})` : ''}`, ` why: ${why.get(`fact:${f.key}`)}; source: ${f.source}`);\n if (r.aliases.length) L.push(` same value as another fact: ${r.aliases.map((a) => `${a.key} = ${a.sameAs}`).join(', ')}`);\n if (r.checks.length) {\n L.push('', `Checks (${r.counts.checks[0]} of ${r.counts.checks[1]})${r.packages.length ? `, packages: ${r.packages.join(', ')}` : ''}:`);\n for (const c of r.checks) L.push(` ${c.id.padEnd(12)} ${(c.cwd ? `[${c.cwd}] ` : '') + (c.command ?? '-')} required: ${c.required} (${why.get(`check:${c.cwd ?? '.'}:${c.id}`)})`);\n }\n if (r.safety.length) {\n L.push('', 'Not run automatically (safety):');\n for (const x of r.safety) L.push(` ${x.check.padEnd(12)} [${x.package}] ${x.command ?? ''}: ${x.safety === 'blocked' ? 'never' : 'only against a declared test environment'} - ${x.reasons[0] ?? ''}`);\n }\n L.push('', 'Rules:', ...r.rules.map((x) => ` - ${x}`));\n if (r.decisions.length) L.push('', 'Decisions:', ...r.decisions.map((d) => ` ${String(d.number).padStart(4, '0')} [${d.status}] ${d.title} (decisions/${d.file}; ${why.get(`decision:${String(d.number).padStart(4, '0')}`)})`));\n if (r.documents.length) L.push('', 'Read if needed:', ...r.documents.map((d) => ` context/${d.name} (${d.bytes} bytes; ${why.get(`document:${d.name}`)})`));\n return L.join('\\n');\n}\n\n/** One-screen result of a small task update: what changed, verification progress, the first blockers and the next step. */\nexport function renderTaskBrief(s: Style, t: Task, change: string, gate: GateResult, next: string): string {\n const required = t.verification.filter((v) => v.required);\n const passing = required.filter((v) => v.status === 'PASS').length;\n const L = [`${s.ok(s.sym.ok)} ${t.id} ${change}`, ` verification: ${passing}/${required.length} required checks recorded as passing; gate ${gate.ok ? 'met' : 'not met'}`];\n for (const f of gate.failures.slice(0, 3)) L.push(` ${s.sym.fail} ${f}`);\n if (gate.failures.length > 3) L.push(` ... ${gate.failures.length - 3} more (devworkspace task show ${t.id})`);\n for (const w of gate.warnings.slice(0, 2)) L.push(` ${s.sym.warn} ${w}`);\n L.push(` next: ${next}`);\n return L.join('\\n');\n}\n\nexport function renderTaskRun(s: Style, r: RunCheckResult, gate: GateResult, next: string): string {\n const L: string[] = [`${r.check} for ${r.task.id}:`];\n for (const x of r.runs) {\n const mark = x.outcome === 'passed' ? s.ok(s.sym.ok) : x.outcome === 'failed' ? s.fail(s.sym.fail) : s.warn(s.sym.warn);\n const detail = x.outcome === 'passed' ? `passed (exit 0, ${Math.round((x.durationMs ?? 0) / 100) / 10}s)` : x.outcome === 'failed' ? `FAILED (exit ${x.exitCode ?? 'none'})${x.reason ? `: ${x.reason}` : ''}` : x.outcome === 'not-affected' ? `not run: ${x.reason}` : `NOT RUN - ${x.reason}`;\n L.push(` ${mark} [${x.package}] ${x.command ?? ''} ${detail}`);\n }\n L.push(` gate: ${gate.ok ? 'met' : `not met (${gate.failures.length} open)`}`, ` next: ${next}`);\n return L.join('\\n');\n}\n\nexport function renderTask(s: Style, t: Task, gate?: GateResult, next?: string): string {\n const L: string[] = [`${t.id} [${t.status}] ${t.type}`, ` ${t.title}`];\n if (t.constraints.length) L.push(` constraints: ${t.constraints.join(', ')}`);\n if (t.acceptanceCriteria.length) L.push(' acceptance criteria:', ...t.acceptanceCriteria.map((c) => ` - ${c}`));\n if (t.plan.length) L.push(' plan:', ...t.plan.map((c, i) => ` ${i + 1}. ${c}`));\n if (t.affectedAreas.length) L.push(` areas: ${t.affectedAreas.join(', ')}`);\n if (t.verification.length) {\n L.push(' verification:');\n for (const v of t.verification) {\n L.push(` ${v.status === 'PASS' ? s.sym.ok : v.status === 'FAIL' || v.status === 'COULD_NOT_RUN' ? s.sym.fail : s.sym.info} ${v.check.padEnd(12)} ${v.status.replace(/_/g, ' ')}${v.reason ? ` (${v.reason})` : ''}${v.required ? '' : ' [optional]'}`);\n if (v.status === 'COULD_NOT_RUN' && v.detail) L.push(` ${v.detail}`);\n for (const e of v.evidence ?? []) L.push(` [${e.package}] ${e.kind === 'executed' ? `executed, exit ${e.exitCode ?? 'none'}` : e.userOverride ? 'claimed (user vouched)' : 'claimed, not executed'}`);\n }\n }\n if (t.tests.baseline || t.tests.after) {\n const f = (c?: { passed: number; failed: number }): string => (c ? `${c.passed} passed, ${c.failed} failed` : 'not recorded');\n L.push(` tests: baseline ${f(t.tests.baseline)}; after ${f(t.tests.after)}`);\n }\n if (t.blockers.length) L.push(' blockers:', ...t.blockers.map((b) => ` - ${b}`));\n L.push(` next: ${next ?? nextRequiredStep(t)}`);\n if (gate) {\n L.push(` completion gate: ${gate.ok ? 'PASS' : 'NOT MET'}`);\n for (const f of gate.failures) L.push(` ${s.sym.fail} ${f}`);\n for (const w of gate.warnings) L.push(` ${s.sym.warn} ${w}`);\n }\n return L.join('\\n');\n}\n\nexport function renderAgentInstall(s: Style, r: AgentInstallResult): string {\n const L: string[] = [r.dryRun ? `${s.sym.info} Dry run: no files were written.` : `${s.ok(s.sym.ok)} ${r.agent} instructions processed.`];\n for (const c of r.changes) {\n const mark = c.kind === 'conflict' ? s.warn(s.sym.warn) : c.kind === 'unchanged' ? s.sym.info : s.ok(s.sym.ok);\n L.push(` ${mark} ${c.kind.toUpperCase().padEnd(9)} ${c.path} - ${c.note}`);\n }\n if (r.conflicts > 0) L.push(` ${s.warn(s.sym.warn)} ${r.conflicts} conflict(s) left untouched; resolve by hand and re-run.`);\n return L.join('\\n');\n}\n\nexport function renderMcpSetup(s: Style, r: McpSetupResult): string {\n const L: string[] = [r.check ? `${s.sym.info} Check mode (dry run): no files were written.` : `${s.ok(s.sym.ok)} MCP setup completed for ${r.agent}.`];\n for (const c of r.changes) {\n const mark = c.kind === 'conflict' ? s.warn(s.sym.warn) : c.kind === 'unchanged' ? s.sym.info : s.ok(s.sym.ok);\n L.push(` ${mark} ${c.kind.toUpperCase().padEnd(9)} ${c.path} - ${c.note}`);\n }\n if (r.conflicts > 0) L.push(` ${s.warn(s.sym.warn)} ${r.conflicts} conflict(s) left untouched; resolve by hand and re-run.`);\n return L.join('\\n');\n}\n\nexport function renderAgentList(s: Style, agents: AgentInfo[]): string {\n const L: string[] = ['Supported coding agent integrations:'];\n for (const a of agents) {\n const status = a.installed ? s.ok(`${s.sym.ok} installed`) : s.dim('not installed');\n const caps: string[] = [];\n if (a.capabilities.instructions) caps.push('instructions');\n if (a.capabilities.skills) caps.push('skills');\n if (a.capabilities.plugins) caps.push('plugins');\n if (a.capabilities.cli) caps.push('cli');\n L.push(` ${s.bold(a.id.padEnd(8))} ${a.displayName} [${status}]`);\n L.push(` capabilities: ${caps.join(', ')}`);\n if (a.detectedFiles.length > 0) {\n L.push(` detected: ${a.detectedFiles.join(', ')}`);\n }\n }\n return L.join('\\n');\n}\n\nexport function renderExport(s: Style, r: ExportResult): string {\n if (r.dryRun) return [`${s.sym.info} Dry run: would export ${r.fileCount} file(s) (${r.bytes} bytes):`, ...r.files.map((f) => ` ${f}`)].join('\\n');\n return `${s.ok(s.sym.ok)} Exported ${r.fileCount} file(s) to ${r.file}`;\n}\n\nexport function renderImport(s: Style, r: ImportResult): string {\n const L: string[] = [r.dryRun ? `${s.sym.info} Dry run: nothing was changed.` : `${s.ok(s.sym.ok)} Import complete.`];\n L.push(` created: ${r.created.length}, updated: ${r.updated.length}, merged: ${r.merged.length}, unchanged: ${r.unchanged.length}, conflicts: ${r.conflicts.length}`);\n for (const m of r.merged) L.push(` merged ${m}`);\n for (const c of r.conflicts) L.push(` ${s.warn(s.sym.warn)} ${c.path}: ${c.reason}`);\n return L.join('\\n');\n}\n\nexport function renderReset(s: Style, r: ResetResult): string {\n const L: string[] = [r.executed ? `${s.ok(s.sym.ok)} DevWorkspace reset. Run \"devworkspace init\" to start fresh.` : `${s.warn(s.sym.warn)} Reset plan (nothing deleted yet):`];\n for (const a of r.actions) {\n const verb = a.action === 'skip' ? 'SKIP ' : a.action === 'remove-managed-section' ? 'EDIT ' : 'DELETE';\n L.push(` ${verb} ${a.path} - ${a.note}`);\n }\n L.push(' Your application source files are never touched.');\n return L.join('\\n');\n}\n\nexport function renderMigrate(s: Style, r: MigrateResult): string {\n if (r.migrated.length === 0) return `${s.ok(s.sym.ok)} Workspace is up to date (${r.checked} file(s) checked).`;\n return [r.dryRun ? `${s.sym.info} Dry run: would migrate:` : `${s.ok(s.sym.ok)} Migrated (backups in .devworkspace/local/backups):`, ...r.migrated.map((m) => ` ${m.file}: v${m.from} ${s.sym.arrow} v${m.to}`)].join('\\n');\n}\n\nconst ACTION_TEXT: Record<string, string> = {\n 'already-verified': 'already verified, nothing to do',\n 'awaiting-restart': 'installed; waiting for a Claude Code restart',\n 'nothing-to-do': 'nothing to do',\n blocked: 'cannot continue automatically',\n 'dry-run': 'would run these steps',\n 'approval-required': 'needs your approval',\n installed: 'steps completed',\n failed: 'stopped',\n 'not-selected': 'not selected',\n};\n\nexport function renderSetup(s: Style, r: SetupResult): string {\n const L: string[] = [r.dryRun ? `${s.sym.info} Dry run: nothing was changed.` : r.approvalRequired ? `${s.warn(s.sym.warn)} Approval needed before anything was changed.` : `${s.ok(s.sym.ok)} Setup finished.`];\n L.push(` Scope: ${r.scope}`);\n for (const o of r.outcomes.filter((x) => x.report.required || x.action !== 'nothing-to-do')) {\n L.push('', integrationLine(s, o.report), ` ${ACTION_TEXT[o.action] ?? o.action}`);\n for (const n of o.notes) L.push(` ${s.sym.info} ${n}`);\n if (o.steps.length > 0) {\n for (const st of o.steps) L.push(` ${st.state === 'ok' ? s.sym.ok : st.state === 'failed' ? s.sym.fail : s.sym.info} ${st.description}${st.detail ? ` - ${st.detail}` : ''}`);\n } else {\n for (const p of o.plan) L.push(` ${s.sym.info} [${p.level}] ${p.description}${p.command ? ` (${p.command})` : ''}`);\n }\n if (o.report.status !== 'VERIFIED') {\n for (const w of o.report.warnings) L.push(` ${s.warn(s.sym.warn)} ${w}`);\n for (const n of o.report.nextSteps) L.push(` ${s.sym.arrow} ${n}`);\n }\n }\n L.push('', r.complete ? `${s.ok(s.sym.ok)} All required integrations are verified.` : `${s.warn(s.sym.warn)} Integration setup is not complete. Core DevWorkspace features are unaffected.`);\n return L.join('\\n');\n}\n\nexport function renderIntegrationsStatus(s: Style, r: IntegrationsStatus): string {\n const L: string[] = [r.deep ? 'Integrations (observed by running the tools):' : 'Integrations (quick check; files and PATH only, so nothing can show VERIFIED):'];\n for (const i of r.reports) {\n L.push(` ${integrationLine(s, i)}`);\n if (i.status !== 'VERIFIED') L.push(...integrationDetails(s, i, ' '));\n }\n if (r.acknowledged) L.push('', r.acknowledged.length ? `Recorded that Claude Code was restarted for: ${r.acknowledged.join(', ')}.` : 'No integration was waiting for a restart.');\n L.push('', r.summary.complete ? `${s.ok(s.sym.ok)} All required integrations are verified.` : `${s.warn(s.sym.warn)} ${r.summary.verified} of ${r.summary.required} required integrations verified.`);\n return L.join('\\n');\n}\n\nexport function renderFeature(s: Style, f: FeatureItem): string {\n const L: string[] = [];\n const statusColor = f.status === 'verified' ? s.ok(`[${f.status}]`) : f.status === 'inferred' ? s.warn(`[${f.status}]`) : s.dim(`[${f.status}]`);\n L.push(`${s.bold(f.name)} (${f.id}) ${statusColor}`);\n if (f.description) L.push(` ${f.description}`);\n if (f.tags?.length) L.push(` Tags: ${f.tags.join(', ')}`);\n L.push(` Updated: ${f.updatedAt}`);\n\n const renderGroup = (label: string, group?: Record<string, FeatureComponent[] | undefined>): void => {\n if (!group) return;\n const entries = Object.entries(group).filter(([, comps]) => Array.isArray(comps) && comps.length > 0);\n if (entries.length === 0) return;\n L.push('', ` ${s.bold(label)}:`);\n for (const [type, comps] of entries) {\n for (const c of comps!) {\n const mark = c.status === 'verified' ? s.ok(s.sym.ok) : c.status === 'inferred' ? s.warn('?') : s.fail(s.sym.fail);\n const sym = c.symbol ? `:${c.symbol}` : '';\n const det = c.detail ? ` (${c.detail})` : '';\n L.push(` ${mark} [${type}] ${c.path}${sym}${det}`);\n }\n }\n };\n\n renderGroup('Frontend', f.frontend);\n renderGroup('Backend', f.backend);\n renderGroup('Database & Migrations', f.database);\n renderGroup('Tests', f.tests);\n\n return L.join('\\n');\n}\n\nexport function renderFeatureList(s: Style, features: FeatureSummary[]): string {\n if (features.length === 0) {\n return 'No features mapped yet. Use \"devworkspace feature add\" or edit .devworkspace/context/features.json.';\n }\n const L: string[] = ['Mapped features:'];\n for (const f of features) {\n const mark = f.status === 'verified' ? s.ok(s.sym.ok) : f.status === 'inferred' ? s.warn('?') : s.fail(s.sym.fail);\n L.push(` ${mark} ${f.id.padEnd(20)} ${f.status.padEnd(10)} ${f.name} (${f.componentsCount} components, ${f.testsCount} tests)`);\n }\n return L.join('\\n');\n}\n\nexport function renderFeatureValidation(s: Style, rep: FeatureValidationReport): string {\n const L: string[] = [];\n L.push(`Feature map validation: ${rep.total} total feature(s)`);\n L.push(` ${s.ok(s.sym.ok)} Verified: ${rep.verified}`);\n L.push(` ${s.warn('?')} Inferred: ${rep.inferred}`);\n L.push(` ${s.fail(s.sym.fail)} Unknown / broken: ${rep.unknown}`);\n\n for (const f of rep.features) {\n if (!f.valid) {\n L.push('', ` ${s.warn(s.sym.warn)} [${f.featureId}] ${f.name}:`);\n for (const iss of f.issues) {\n L.push(` - ${iss}`);\n }\n }\n }\n return L.join('\\n');\n}\n\nexport function renderProjectSetup(s: Style, r: ProjectSetupResult): string {\n const L: string[] = [];\n L.push(s.bold(`DevWorkspace Setup: ${r.projectName}`));\n L.push(` Repository root: ${r.root}`);\n L.push(` Platform: ${r.os} | Node.js: ${r.nodeVersion}`);\n const cliNote = r.cli.mode === 'source-checkout' ? ' (local source checkout)' : r.cli.mode === 'npx-cache' ? ' (npx cache)' : '';\n L.push(` DevWorkspace CLI: v${r.cli.version}${cliNote} [${r.cli.path}]`);\n L.push('');\n\n L.push(s.bold('Workspace & Discovery:'));\n L.push(` ${s.ok(s.sym.ok)} Workspace initialized: ${r.isFirstRun ? 'Created fresh .devworkspace/' : 'Existing workspace preserved'}`);\n if (r.packages.length > 0) {\n L.push(` ${s.ok(s.sym.ok)} Packages detected: ${r.packages.map((p) => `${p.path} (${p.ecosystem}${p.packageManager ? `, ${p.packageManager}` : ''})`).join(', ')}`);\n }\n if (r.frameworks.length > 0) {\n L.push(` ${s.ok(s.sym.ok)} Frameworks: ${r.frameworks.join(', ')}`);\n }\n L.push('');\n\n L.push(s.bold('Verification Contract:'));\n L.push(` ${s.ok(s.sym.ok)} ${r.verification.available} verification command(s) available: ${r.verification.checks.join(', ') || 'none'}`);\n if (r.verification.drift.length > 0) {\n L.push(` ${s.warn(s.sym.warn)} Contract drift detected: ${r.verification.drift.length} issue(s) need attention`);\n for (const d of r.verification.drift.slice(0, 3)) {\n L.push(` - ${d.id}${d.cwd ? ` [${d.cwd}]` : ''}: ${d.message}`);\n }\n } else {\n L.push(` ${s.ok(s.sym.ok)} Configured commands match repository manifests and working directories`);\n }\n L.push('');\n\n if (r.features) {\n L.push(s.bold('Feature-Level Knowledge:'));\n L.push(` ${s.ok(s.sym.ok)} ${r.features.total} feature(s) mapped: ${r.features.verified} verified, ${r.features.unknown} unknown/broken`);\n L.push('');\n }\n\n L.push(s.bold('Integrations:'));\n for (const i of r.integrations) {\n const mark = i.status === 'VERIFIED' ? s.ok(s.sym.ok) : i.status === 'NOT_INSTALLED' ? s.dim('-') : s.warn(s.sym.warn);\n L.push(` ${mark} ${i.name.padEnd(16)} ${i.status} ${i.required ? '(recommended)' : '(optional)'}`);\n }\n L.push('');\n\n L.push(s.bold('Readiness & Health:'));\n const healthMark = r.doctor.healthy ? s.ok(s.sym.ok) : s.warn(s.sym.warn);\n L.push(` ${healthMark} Doctor checks: ${r.doctor.passed} passed, ${r.doctor.warnings} warning(s), ${r.doctor.failures} failure(s)`);\n L.push('');\n\n L.push(s.bold('Next Steps:'));\n for (const step of r.nextSteps) {\n L.push(` ${s.sym.arrow} ${step}`);\n }\n\n return L.join('\\n');\n}\n\nexport function renderGraphStatus(s: Style, res: GraphStatusResult): string {\n const L: string[] = [];\n L.push(s.bold('Graphify Knowledge Graph:'));\n if (!res.available) {\n L.push(` ${s.warn(s.sym.warn)} ${res.message}`);\n if (res.hint) L.push(` ${s.sym.arrow} Hint: ${res.hint}`);\n return L.join('\\n');\n }\n\n L.push(` ${s.ok(s.sym.ok)} Location: ${res.graphPath}`);\n L.push(` ${s.ok(s.sym.ok)} Nodes: ${res.nodesCount} | Edges: ${res.edgesCount}`);\n if (Object.keys(res.nodeTypes).length > 0) {\n L.push('');\n L.push(s.bold('Node Types:'));\n for (const [t, count] of Object.entries(res.nodeTypes)) {\n L.push(` - ${t.padEnd(14)}: ${count}`);\n }\n }\n return L.join('\\n');\n}\n\nexport function renderGraphTrace(s: Style, trace: GraphTraceResult): string {\n const L: string[] = [];\n L.push(s.bold(`Graph Trace: \"${trace.query}\" (depth: ${trace.depth})`));\n if (!trace.available) {\n L.push(` ${s.warn(s.sym.warn)} Graph not available. ${trace.warnings.join(' ')}`);\n return L.join('\\n');\n }\n\n if (!trace.matchedNode) {\n L.push(` ${s.warn(s.sym.warn)} No start node matched \"${trace.query}\".`);\n for (const w of trace.warnings) L.push(` ${s.dim(w)}`);\n return L.join('\\n');\n }\n\n L.push(` Start node: ${s.bold(trace.matchedNode.id)} [${trace.matchedNode.status}]`);\n L.push(` Traversed: ${trace.totalNodes} node(s) (${s.ok(`${trace.verifiedNodes} verified`)}, ${trace.hypothesisNodes > 0 ? s.warn(`${trace.hypothesisNodes} hypothesis`) : '0 hypothesis'})`);\n L.push('');\n\n L.push(s.bold('Traversed Nodes:'));\n for (const n of trace.nodes) {\n const indent = ' '.repeat(n.depth + 1);\n const tag = n.status === 'verified' ? s.ok('[verified]') : s.warn('[hypothesis]');\n const pathInfo = n.path ? s.dim(`(${n.path}${n.symbol ? `::${n.symbol}` : ''})`) : s.dim('(no file)');\n const reason = n.reason ? ` - ${s.dim(n.reason)}` : '';\n L.push(`${indent}${tag} ${n.id} ${pathInfo}${reason}`);\n }\n\n if (trace.edges.length > 0) {\n L.push('');\n L.push(s.bold('Relationships:'));\n for (const e of trace.edges) {\n const tag = e.status === 'verified' ? s.ok('[verified]') : s.warn('[hypothesis]');\n L.push(` ${tag} ${e.source} --(${e.relation})--> ${e.target}`);\n }\n }\n\n if (trace.warnings.length > 0) {\n L.push('');\n for (const w of trace.warnings) L.push(` ${s.warn(s.sym.warn)} ${w}`);\n }\n\n return L.join('\\n');\n}\n"]}