cdalkit 0.1.6 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -29,8 +29,8 @@ npx cdalkit verify # the full deterministic gate: validate, codegen --check,
29
29
 
30
30
  ## Links
31
31
 
32
- - Website and docs: https://cdal-henna.vercel.app
33
- - Getting started: https://cdal-henna.vercel.app/docs/getting-started
34
- - CLI reference: https://cdal-henna.vercel.app/docs/cli-reference
32
+ - Website and docs: https://cdalkit.tech
33
+ - Getting started: https://cdalkit.tech/docs/getting-started
34
+ - CLI reference: https://cdalkit.tech/docs/cli-reference
35
35
 
36
36
  Apache-2.0 © Michał Sznurowski
package/dist/cli.js CHANGED
@@ -516,8 +516,17 @@ export const REQUIREMENTS = [
516
516
  'cdal validate succeeds without errors',
517
517
  'Test cases are marked with @REQ tags',
518
518
  ],
519
- status: 'ACTIVE',
519
+ status: 'TODO',
520
520
  priority: 'CRITICAL',
521
+ source: 'cdal.config.mjs',
522
+ },
523
+ {
524
+ id: 'REQ-CORE-INIT-2',
525
+ statement: 'Every implemented requirement is proven by a test tagged with its ID.',
526
+ acceptance: ['cdal trace --enforce passes'],
527
+ status: 'TODO',
528
+ priority: 'HIGH',
529
+ source: 'cdal.config.mjs',
521
530
  },
522
531
  ];
523
532
  `;
@@ -710,6 +719,9 @@ import {
710
719
  import { dirname, isAbsolute, join as join3, relative, resolve as resolve2, sep } from "path";
711
720
  var PRO_MANIFEST_FILE = "pro.manifest.json";
712
721
  var PRO_RECORD_FILE = ".cdal/pro.json";
722
+ function proRecordFile(name) {
723
+ return name === "cdal-pro" ? PRO_RECORD_FILE : `.cdal/${name.replace(/^cdal-/, "")}.json`;
724
+ }
713
725
  var GENERATED_MARKERS = ["CDAL GENERATED", "GENERATED by cdal sync"];
714
726
  function isGeneratedFile(path2) {
715
727
  const content = readFileSync3(path2, "utf8");
@@ -793,7 +805,7 @@ function installPro(options) {
793
805
  }
794
806
  }
795
807
  if (!options.dryRun) {
796
- const recordPath = join3(targetDir, PRO_RECORD_FILE);
808
+ const recordPath = join3(targetDir, proRecordFile(manifest.name));
797
809
  mkdirSync2(dirname(recordPath), { recursive: true });
798
810
  writeFileSync3(
799
811
  recordPath,
@@ -816,6 +828,10 @@ function installPro(options) {
816
828
 
817
829
  // src/commands/pro.ts
818
830
  var PRO_REPOSITORY_URL = "https://github.com/cdalkit/cdal-pro.git";
831
+ var PRO_TEAM_REPOSITORY_URL = "https://github.com/cdalkit/cdal-pro-team.git";
832
+ function proRepositoryUrl(team) {
833
+ return team ? PRO_TEAM_REPOSITORY_URL : PRO_REPOSITORY_URL;
834
+ }
819
835
  function resolveSource(from) {
820
836
  const local = resolve3(from);
821
837
  if (existsSync4(local)) return { dir: local, cleanup: () => {
@@ -843,8 +859,12 @@ var installCommand = defineCommand7({
843
859
  args: {
844
860
  from: {
845
861
  type: "string",
846
- description: "Local copy or git URL of the cdal-pro repository",
847
- default: PRO_REPOSITORY_URL
862
+ description: "Local copy or git URL of the Pro repository (default: cdal-pro, or cdal-pro-team with --team)"
863
+ },
864
+ team: {
865
+ type: "boolean",
866
+ description: "Install CDAL Pro Team (editor guards, presets, playbook) from cdal-pro-team",
867
+ default: false
848
868
  },
849
869
  cwd: {
850
870
  type: "string",
@@ -865,7 +885,7 @@ var installCommand = defineCommand7({
865
885
  run({ args }) {
866
886
  let source;
867
887
  try {
868
- source = resolveSource(args.from);
888
+ source = resolveSource(args.from || proRepositoryUrl(args.team));
869
889
  const result = installPro({
870
890
  sourceDir: source.dir,
871
891
  targetDir: resolve3(args.cwd),
@@ -990,6 +1010,10 @@ var selftestCommand = defineCommand8({
990
1010
  `
991
1011
  )
992
1012
  );
1013
+ if (report.skippedKinds.length > 0) {
1014
+ console.log(pc7.dim(` Skipped (no contract file yet): ${report.skippedKinds.join(", ")}
1015
+ `));
1016
+ }
993
1017
  if (report.failures.length > 0) {
994
1018
  console.log(pc7.bold(pc7.red(" CRITICAL GATE FAILURES:")));
995
1019
  for (const f of report.failures) {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli.ts","../src/commands/audit.ts","../src/commands/codegen.ts","../src/kinds.ts","../src/commands/doctor.ts","../src/commands/hook.ts","../src/commands/init.ts","../src/commands/phase.ts","../src/commands/pro.ts","../src/pro/install.ts","../src/commands/selftest.ts","../src/commands/sync.ts","../src/commands/trace.ts","../src/commands/validate.ts","../src/commands/verify.ts","../src/commands/window.ts"],"sourcesContent":["import { createRequire } from 'node:module';\nimport { runMain as cittyRunMain, defineCommand } from 'citty';\nimport { auditCommand } from './commands/audit.js';\nimport { codegenCommand } from './commands/codegen.js';\nimport { doctorCommand } from './commands/doctor.js';\nimport { hookCommand } from './commands/hook.js';\nimport { initCommand } from './commands/init.js';\nimport { phaseCommand } from './commands/phase.js';\nimport { proCommand } from './commands/pro.js';\nimport { selftestCommand } from './commands/selftest.js';\nimport { syncCommand } from './commands/sync.js';\nimport { traceCommand } from './commands/trace.js';\nimport { validateCommand } from './commands/validate.js';\nimport { verifyCommand } from './commands/verify.js';\nimport { windowCommand } from './commands/window.js';\n\n// Read the version from package.json so `--version` always matches the published package.\nconst { version } = createRequire(import.meta.url)('../package.json') as { version: string };\n\nconst main = defineCommand({\n meta: {\n name: 'cdal',\n version,\n description: 'Contract-Driven Agentic Loop (CDAL) Quality Gates & Audit CLI',\n },\n subCommands: {\n init: initCommand,\n validate: validateCommand,\n codegen: codegenCommand,\n window: windowCommand,\n trace: traceCommand,\n phase: phaseCommand,\n selftest: selftestCommand,\n sync: syncCommand,\n verify: verifyCommand,\n doctor: doctorCommand,\n hook: hookCommand,\n audit: auditCommand,\n pro: proCommand,\n },\n});\n\nexport function runMain() {\n cittyRunMain(main);\n}\n","import { writeFileSync } from 'node:fs';\nimport { resolve } from 'node:path';\nimport { renderHtmlReport, renderTerminalReport, runAudit } from '@cdal/audit';\nimport type { AuditLanguage } from '@cdal/audit';\nimport { defineCommand } from 'citty';\nimport pc from 'picocolors';\n\nexport const auditCommand = defineCommand({\n meta: {\n name: 'audit',\n description:\n 'Audit repository for AI agent hygiene, type silencing, test isolation and gates (100% offline)',\n },\n args: {\n path: {\n type: 'positional',\n description: 'Path to repository root to audit',\n required: false,\n default: '.',\n },\n html: {\n type: 'string',\n description: 'Path to save standalone single-file HTML report (e.g. audit-report.html)',\n required: false,\n },\n json: {\n type: 'boolean',\n description: 'Output machine-readable JSON report (schema: audit.v1)',\n default: false,\n },\n lang: {\n type: 'string',\n description: 'Report language (en or pl)',\n default: 'en',\n },\n failUnder: {\n type: 'string',\n description: 'Exit with code 1 if audit score is below this threshold (0-100)',\n required: false,\n },\n },\n async run({ args }) {\n const targetDir = resolve(args.path || '.');\n const lang = (args.lang === 'pl' ? 'pl' : 'en') as AuditLanguage;\n\n if (!args.json) {\n console.log(pc.bold(pc.cyan('\\n🔍 Running CDAL Repository AI Hygiene Audit...\\n')));\n }\n\n const report = await runAudit({\n cwd: targetDir,\n lang,\n });\n\n if (args.html) {\n const htmlContent = renderHtmlReport(report, lang);\n const outPath = resolve(args.html);\n writeFileSync(outPath, htmlContent, 'utf8');\n if (!args.json) {\n console.log(pc.green(` ✔ Wygenerowano raport HTML: ${outPath}`));\n }\n }\n\n if (args.json) {\n console.log(JSON.stringify(report, null, 2));\n } else {\n console.log(renderTerminalReport(report, lang));\n }\n\n if (args.failUnder) {\n const threshold = Number.parseInt(args.failUnder, 10);\n if (!Number.isNaN(threshold) && report.score < threshold) {\n console.error(\n pc.red(\n `\\n❌ Audit score ${report.score} is below threshold ${threshold}. Failing quality gate.`,\n ),\n );\n process.exit(1);\n }\n }\n },\n});\n","import { runCodegen } from '@cdal/core';\nimport { defineCommand } from 'citty';\nimport pc from 'picocolors';\nimport { resolveCommandKinds } from '../kinds.js';\n\nexport const codegenCommand = defineCommand({\n meta: {\n name: 'codegen',\n description:\n 'Emit TypeScript types and documentation from contracts (with --check drift detection)',\n },\n args: {\n check: {\n type: 'boolean',\n description: 'Check for drift between contracts and generated files without modifying disk',\n default: false,\n },\n dir: {\n type: 'string',\n description: 'Custom path to contracts directory',\n },\n },\n async run({ args }) {\n try {\n const kinds = await resolveCommandKinds();\n\n const res = await runCodegen({\n contractsDir: args.dir,\n check: Boolean(args.check),\n kinds,\n });\n\n if (args.check) {\n if (!res.drift) {\n console.log(pc.green('✅ Codegen check: all generated files are in sync byte-for-byte.'));\n } else {\n console.error(pc.red('❌ Codegen check failed: drift detected in generated files:'));\n for (const f of res.files) {\n if (f.status === 'drift') {\n console.error(pc.red(` - [DRIFT] ${f.path} (${f.fullPath})`));\n } else if (f.status === 'missing') {\n console.error(pc.red(` - [MISSING] ${f.path} (${f.fullPath})`));\n }\n }\n console.error(\n pc.yellow('\\nRun `cdal codegen` to synchronize generated files with contracts.'),\n );\n process.exit(1);\n }\n } else {\n console.log(pc.green(`✅ Emitted ${res.files.length} contract artifact(s):`));\n for (const f of res.files) {\n console.log(pc.cyan(` - ${f.path} -> ${f.fullPath}`));\n }\n }\n } catch (err: unknown) {\n const msg = err instanceof Error ? err.message : String(err);\n console.error(pc.red(`❌ Fatal error during codegen: ${msg}`));\n process.exit(1);\n }\n },\n});\n","import { type ContractKind, loadConfig } from '@cdal/core';\nimport { policies, requirements, stateMachine } from '@cdal/kinds';\n\n/**\n * Contract kinds for validate/codegen: the ones registered in cdal.config.mjs\n * (built-in, CDAL Pro or custom), or the built-in kinds when the config registers none.\n */\nexport async function resolveCommandKinds(cwd: string = process.cwd()): Promise<ContractKind[]> {\n const { config } = await loadConfig(cwd);\n const configured = (config.kinds ?? []).filter(\n (kind): kind is ContractKind => typeof (kind as Partial<ContractKind>).load === 'function',\n );\n if (configured.length > 0) return configured;\n return [requirements(), stateMachine(), policies()] as ContractKind[];\n}\n","import { spawnSync } from 'node:child_process';\nimport { existsSync, readFileSync } from 'node:fs';\nimport { join } from 'node:path';\nimport { syncAdapters } from '@cdal/adapters';\nimport { type ContractKind, type ResolvedCdalConfig, loadConfig, runCodegen } from '@cdal/core';\nimport { defineCommand } from 'citty';\nimport pc from 'picocolors';\n\nexport interface DoctorCheckResult {\n name: string;\n status: 'ok' | 'warn' | 'error';\n message: string;\n recommendation?: string;\n}\n\n/**\n * Claude Code only runs hooks declared as matcher groups with typed handlers:\n * { matcher, hooks: [{ type: 'command', command }] }. A `command` placed\n * directly on the group is silently ignored.\n */\nfunction inspectClaudeHooks(settings: {\n hooks?: Record<string, unknown>;\n}): 'ok' | 'legacy-format' | 'missing' {\n const groups = settings.hooks?.PreToolUse;\n if (!Array.isArray(groups)) return 'missing';\n let legacy = false;\n for (const group of groups as Array<Record<string, unknown>>) {\n if (typeof group.command === 'string' && /cdal(kit)? hook/.test(group.command)) legacy = true;\n const handlers = Array.isArray(group.hooks)\n ? (group.hooks as Array<Record<string, unknown>>)\n : [];\n for (const handler of handlers) {\n if (\n handler.type === 'command' &&\n typeof handler.command === 'string' &&\n /cdal(kit)? hook guard-paths/.test(handler.command)\n ) {\n return 'ok';\n }\n }\n }\n return legacy ? 'legacy-format' : 'missing';\n}\n\nexport function runDoctorChecks(\n cwd: string,\n customConfig?: string,\n): {\n checks: DoctorCheckResult[];\n healthy: boolean;\n} {\n const checks: DoctorCheckResult[] = [];\n\n // 1. Node version check (requires >= 20.9.0)\n const nodeVer = process.version;\n const match = /^v(\\d+)\\.(\\d+)\\./.exec(nodeVer);\n const major = match?.[1] ? Number.parseInt(match[1], 10) : 0;\n const minor = match?.[2] ? Number.parseInt(match[2], 10) : 0;\n\n if (major > 20 || (major === 20 && minor >= 9)) {\n checks.push({\n name: 'Node.js Runtime',\n status: 'ok',\n message: `Node ${nodeVer} satisfies engines.node >= 20.9.0 LTS`,\n });\n } else {\n checks.push({\n name: 'Node.js Runtime',\n status: 'error',\n message: `Current Node ${nodeVer} is below required >= 20.9.0`,\n recommendation: 'Upgrade Node.js to Node 22 LTS or Node 20.9+.',\n });\n }\n\n // 2. Git installation and repository check\n const gitVersionRes = spawnSync('git', ['--version'], { encoding: 'utf8' });\n if (gitVersionRes.status !== 0) {\n checks.push({\n name: 'Git Binary',\n status: 'error',\n message: 'git binary is not available in PATH',\n recommendation: 'Install Git or add it to PATH.',\n });\n } else {\n checks.push({\n name: 'Git Binary',\n status: 'ok',\n message: `Git is available (${gitVersionRes.stdout.trim()})`,\n });\n\n const gitRepoRes = spawnSync('git', ['rev-parse', '--is-inside-work-tree'], {\n cwd,\n encoding: 'utf8',\n });\n if (gitRepoRes.status !== 0) {\n checks.push({\n name: 'Git Repository',\n status: 'error',\n message: 'Current directory is not inside a git working tree',\n recommendation: 'Initialize git with `git init`.',\n });\n } else {\n checks.push({\n name: 'Git Repository',\n status: 'ok',\n message: 'Inside active git working tree',\n });\n }\n }\n\n // 3. Configuration check\n let configObj: ResolvedCdalConfig | null = null;\n try {\n const loaded = loadConfigSync(cwd, customConfig);\n configObj = loaded.config;\n checks.push({\n name: 'Configuration',\n status: 'ok',\n message: `Configuration loaded cleanly (${loaded.filepath ? loaded.filepath : 'default config'})`,\n });\n } catch (err: unknown) {\n const msg = err instanceof Error ? err.message : String(err);\n checks.push({\n name: 'Configuration',\n status: 'error',\n message: `Failed to load cdal.config.mjs: ${msg}`,\n recommendation: 'Run `cdal init` or fix configuration errors.',\n });\n }\n\n // 4. Hook wiring check in .claude/settings.json\n const settingsPath = join(cwd, '.claude/settings.json');\n if (existsSync(settingsPath)) {\n try {\n const settings = JSON.parse(readFileSync(settingsPath, 'utf8')) as {\n hooks?: Record<string, unknown>;\n };\n const wiring = inspectClaudeHooks(settings);\n if (wiring === 'ok') {\n checks.push({\n name: 'Claude Code Hooks',\n status: 'ok',\n message: '.claude/settings.json correctly wires CDAL pre-tool hooks',\n });\n } else {\n checks.push({\n name: 'Claude Code Hooks',\n status: 'warn',\n message:\n wiring === 'legacy-format'\n ? '.claude/settings.json uses a hook format Claude Code ignores, so the CDAL gates never run'\n : '.claude/settings.json exists but does not wire the CDAL guard-paths hook',\n recommendation: 'Run `npx cdalkit sync` to regenerate the hook wiring.',\n });\n }\n } catch {\n checks.push({\n name: 'Claude Code Hooks',\n status: 'warn',\n message: 'Could not read .claude/settings.json',\n });\n }\n } else {\n checks.push({\n name: 'Claude Code Hooks',\n status: 'warn',\n message: 'No .claude/settings.json found in workspace',\n recommendation: 'Run `cdal init` or `cdal sync` to generate hook wiring.',\n });\n }\n\n // 5. Adapter drift check\n if (configObj) {\n try {\n const syncRes = syncAdapters({ cwd, config: configObj, check: true });\n if (syncRes.inSync) {\n checks.push({\n name: 'Runtime Adapters Sync',\n status: 'ok',\n message: `All ${syncRes.totalFiles} adapter file(s) are in sync without drift`,\n });\n } else {\n checks.push({\n name: 'Runtime Adapters Sync',\n status: 'error',\n message: `${syncRes.driftedFiles.length} adapter file(s) drifted from configuration: ${syncRes.driftedFiles.join(', ')}`,\n recommendation: 'Run `cdal sync` to synchronize runtime files.',\n });\n }\n } catch (err: unknown) {\n checks.push({\n name: 'Runtime Adapters Sync',\n status: 'warn',\n message: `Could not check adapter sync: ${String(err)}`,\n });\n }\n }\n\n const healthy = checks.every((c) => c.status !== 'error');\n return { checks, healthy };\n}\n\nfunction loadConfigSync(cwd: string, customConfig?: string) {\n const configPath = customConfig || join(cwd, 'cdal.config.mjs');\n if (existsSync(configPath)) {\n return { config: null, filepath: configPath };\n }\n return { config: null, filepath: null };\n}\n\nexport const doctorCommand = defineCommand({\n meta: {\n name: 'doctor',\n description:\n 'Diagnose CDAL installation, environment health, hook wiring, and configuration drift',\n },\n args: {\n config: {\n type: 'string',\n description: 'Path to cdal.config.mjs',\n },\n cwd: {\n type: 'string',\n description: 'Working directory path',\n },\n },\n async run({ args }) {\n const cwd = args.cwd || process.cwd();\n console.log(pc.bold(pc.cyan('\\n🩺 Running CDAL Diagnostic Doctor...\\n')));\n\n let resolvedConfig: ResolvedCdalConfig | null = null;\n try {\n const loaded = await loadConfig(args.config || cwd);\n resolvedConfig = loaded.config;\n } catch (err: unknown) {\n console.error(pc.red(`⚠️ Configuration error: ${String(err)}`));\n }\n\n const { checks, healthy } = runDoctorChecks(cwd, args.config);\n\n // If we loaded config, also test runCodegen drift\n if (resolvedConfig) {\n try {\n const codegenRes = await runCodegen({\n contractsDir: resolvedConfig.contractsDir,\n kinds: resolvedConfig.kinds as unknown as ContractKind<unknown>[],\n check: true,\n });\n if (!codegenRes.drift) {\n checks.push({\n name: 'Contract Codegen Sync',\n status: 'ok',\n message: 'Generated contract artifacts match contracts byte-for-byte',\n });\n } else {\n checks.push({\n name: 'Contract Codegen Sync',\n status: 'error',\n message: 'Generated contract code drifted from contract sources',\n recommendation: 'Run `cdal codegen` to regenerate artifacts.',\n });\n }\n } catch {\n // ignore codegen errors in doctor if contractsDir empty\n }\n }\n\n for (const check of checks) {\n if (check.status === 'ok') {\n console.log(pc.green(` ✓ [OK] ${pc.bold(check.name)}: ${check.message}`));\n } else if (check.status === 'warn') {\n console.log(pc.yellow(` ⚠️ [WARN] ${pc.bold(check.name)}: ${check.message}`));\n if (check.recommendation) {\n console.log(pc.dim(` Recommendation: ${check.recommendation}`));\n }\n } else {\n console.log(pc.red(` ❌ [FAIL] ${pc.bold(check.name)}: ${check.message}`));\n if (check.recommendation) {\n console.log(pc.yellow(` Recommendation: ${check.recommendation}`));\n }\n }\n }\n\n if (healthy) {\n console.log(\n pc.bold(pc.green('\\n✅ Doctor report: Environment and CDAL quality gates are healthy!\\n')),\n );\n } else {\n console.log(pc.bold(pc.red('\\n❌ Doctor report: Some critical diagnostic checks failed.\\n')));\n process.exit(1);\n }\n },\n});\n","import fs from 'node:fs';\nimport { type HookName, executeHook } from '@cdal/adapters';\nimport { loadConfig } from '@cdal/core';\nimport { defineCommand } from 'citty';\n\nconst VALID_HOOKS = new Set([\n 'guard-paths',\n 'guard-forbidden',\n 'guard-bash',\n 'session-context',\n 'log-subagent',\n]);\n\nexport const hookCommand = defineCommand({\n meta: {\n name: 'hook',\n description: 'Entrypoint for agent runtime hooks (Claude Code, Antigravity, etc.)',\n },\n args: {\n name: {\n type: 'positional',\n description:\n 'Hook name to execute: guard-paths, guard-forbidden, guard-bash, session-context, log-subagent',\n required: true,\n },\n role: {\n type: 'positional',\n description: 'Fallback agent role name if not specified in hook payload',\n required: false,\n },\n runtime: {\n type: 'string',\n description: 'Target runtime adapter (claude-code, antigravity)',\n default: 'claude-code',\n },\n config: {\n type: 'string',\n description: 'Path to cdal.config.mjs',\n },\n },\n async run({ args }) {\n const hookName = args.name as HookName;\n if (!VALID_HOOKS.has(hookName)) {\n process.stderr.write(\n `Unknown hook name \"${hookName}\". Valid hooks: ${Array.from(VALID_HOOKS).join(', ')}\\n`,\n );\n process.exit(1);\n }\n\n let rawPayload = '';\n try {\n rawPayload = fs.readFileSync(0, 'utf8');\n } catch {\n // stdin was not piped or not accessible\n }\n\n const cwd = process.cwd();\n const { config } = await loadConfig(args.config);\n\n const result = await executeHook(hookName, rawPayload, {\n cwd,\n config,\n fallbackRole: args.role,\n runtime: args.runtime as 'claude-code' | 'antigravity' | 'generic',\n });\n\n if (result.stdout) {\n process.stdout.write(`${result.stdout}\\n`);\n }\n\n if (result.stderr) {\n process.stderr.write(result.stderr);\n }\n\n process.exit(result.exitCode);\n },\n});\n","import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';\nimport { join } from 'node:path';\nimport { syncAdapters } from '@cdal/adapters';\nimport { resolveConfig } from '@cdal/core';\nimport { defineCommand } from 'citty';\nimport pc from 'picocolors';\n\nexport const initCommand = defineCommand({\n meta: {\n name: 'init',\n description:\n 'Initialize CDAL quality gates, starter contracts, and runtime adapters in the repository',\n },\n args: {\n yes: {\n type: 'boolean',\n description: 'Accept default recommendations non-interactively',\n alias: 'y',\n default: false,\n },\n preset: {\n type: 'string',\n description: 'Preset configuration to apply (e.g. typescript-strict, nextjs, node-service)',\n default: 'typescript-strict',\n },\n runtime: {\n type: 'string',\n description: 'Comma-separated runtimes to enable (claude-code, agents-md, antigravity)',\n default: 'claude-code,agents-md',\n },\n cwd: {\n type: 'string',\n description: 'Target directory to initialize',\n },\n },\n async run({ args }) {\n const cwd = args.cwd || process.cwd();\n console.log(pc.bold(pc.cyan('\\n🚀 Initializing Contract-Driven Agentic Loop (CDAL)...\\n')));\n\n const preset = args.preset || 'typescript-strict';\n const rawRuntimes = (args.runtime || 'claude-code,agents-md')\n .split(',')\n .map((r) => r.trim())\n .filter(Boolean);\n\n // 1. Create contracts directory and sample contract if missing\n const contractsDir = join(cwd, 'contracts');\n if (!existsSync(contractsDir)) {\n mkdirSync(contractsDir, { recursive: true });\n }\n\n const sampleContractPath = join(contractsDir, 'requirements.contract.mjs');\n if (!existsSync(sampleContractPath)) {\n const sampleContractContent = `// @origin: cdal init\nexport const REQUIREMENTS = [\n {\n id: 'REQ-CORE-INIT-1',\n statement: 'System must initialize workspace with contract-driven quality gates.',\n acceptance: [\n 'cdal validate succeeds without errors',\n 'Test cases are marked with @REQ tags',\n ],\n status: 'ACTIVE',\n priority: 'CRITICAL',\n },\n];\n`;\n writeFileSync(sampleContractPath, sampleContractContent, 'utf8');\n console.log(\n pc.green(` ✓ Created starter contract: ${pc.bold('contracts/requirements.contract.mjs')}`),\n );\n }\n\n // 2. Create cdal.config.mjs if missing\n const configPath = join(cwd, 'cdal.config.mjs');\n if (!existsSync(configPath)) {\n const runtimesFormatted = rawRuntimes.map((r) => `'${r}'`).join(', ');\n const configContent = `import { defineConfig } from '@cdal/core';\nimport { policies, requirements, stateMachine } from '@cdal/kinds';\n\nexport default defineConfig({\n contractsDir: 'contracts',\n generated: {\n ts: 'src/generated/contracts',\n docs: 'docs/generated',\n },\n kinds: [requirements(), stateMachine(), policies()],\n presets: ['${preset}'],\n runtimes: [${runtimesFormatted}],\n verify: [\n 'cdal validate --strict',\n 'cdal codegen --check',\n 'cdal trace --enforce',\n 'cdal selftest',\n ],\n});\n`;\n writeFileSync(configPath, configContent, 'utf8');\n console.log(pc.green(` ✓ Created configuration: ${pc.bold('cdal.config.mjs')}`));\n } else {\n console.log(\n pc.dim(' ℹ cdal.config.mjs already exists (preserving existing configuration).'),\n );\n }\n\n // 3. Update package.json scripts if package.json exists\n const pkgPath = join(cwd, 'package.json');\n if (existsSync(pkgPath)) {\n try {\n const pkgRaw = readFileSync(pkgPath, 'utf8');\n const pkg = JSON.parse(pkgRaw);\n pkg.scripts = pkg.scripts || {};\n let updated = false;\n\n if (!pkg.scripts.verify) {\n pkg.scripts.verify = 'cdal verify';\n updated = true;\n }\n if (!pkg.scripts.selftest) {\n pkg.scripts.selftest = 'cdal selftest';\n updated = true;\n }\n if (!pkg.scripts.trace) {\n pkg.scripts.trace = 'cdal trace';\n updated = true;\n }\n\n if (updated) {\n writeFileSync(pkgPath, `${JSON.stringify(pkg, null, 2)}\\n`, 'utf8');\n console.log(\n pc.green(` ✓ Added verify/selftest/trace scripts to ${pc.bold('package.json')}`),\n );\n }\n } catch {\n console.log(pc.yellow(' ⚠️ Could not update package.json scripts automatically.'));\n }\n }\n\n // 4. Synchronize adapter files across selected runtimes\n const resolvedConfig = resolveConfig({\n presets: [preset],\n runtimes: rawRuntimes,\n });\n\n const syncRes = syncAdapters({\n cwd,\n config: resolvedConfig,\n check: false,\n });\n\n console.log(\n pc.green(\n ` ✓ Generated ${syncRes.updatedFiles.length} runtime adapter file(s) across [${rawRuntimes.join(', ')}].`,\n ),\n );\n\n console.log(pc.bold(pc.green('\\n🎉 CDAL initialized successfully!')));\n console.log(pc.cyan('Next steps:'));\n console.log(pc.dim(' 1. Review contracts in contracts/*.contract.mjs'));\n console.log(pc.dim(' 2. Run `npx cdalkit doctor` to verify environment health'));\n console.log(pc.dim(' 3. Run `npx cdalkit verify` to test the loop gate\\n'));\n },\n});\n","import { type PhaseType, checkPhase, loadConfig } from '@cdal/core';\nimport { defineCommand } from 'citty';\nimport pc from 'picocolors';\n\nexport const phaseCommand = defineCommand({\n meta: {\n name: 'phase',\n description: 'Verify git diff against active loop phase (contract, red, green)',\n },\n args: {\n phase: {\n type: 'positional',\n description: 'Phase to verify: contract, red, green',\n required: true,\n },\n base: {\n type: 'string',\n description: 'Base git reference to compare against (e.g. main or origin/main)',\n },\n json: {\n type: 'boolean',\n description: 'Output as JSON payload',\n default: false,\n },\n config: {\n type: 'string',\n description: 'Path to cdal.config.mjs',\n },\n },\n async run({ args }) {\n const rawPhase = (args.phase || '').toLowerCase();\n if (!['contract', 'red', 'green'].includes(rawPhase)) {\n console.error(pc.red(`Invalid phase \"${rawPhase}\". Valid phases are: contract, red, green.`));\n process.exit(2);\n }\n const phase = rawPhase as PhaseType;\n\n const cwd = process.cwd();\n const { config: resolvedConfig } = await loadConfig(args.config);\n\n const result = checkPhase(phase, {\n cwd,\n base: args.base,\n protectedPaths: resolvedConfig?.protectedPaths,\n });\n\n if (args.json) {\n console.log(JSON.stringify(result, null, 2));\n process.exit(result.ok ? 0 : 1);\n }\n\n console.log(pc.bold(`\\n Phase: ${result.label}`));\n console.log(` Modified files in diff: ${result.files.length}\\n`);\n\n if (result.violations.length === 0) {\n if (result.files.length === 0) {\n if (phase === 'red') {\n console.log(\n pc.yellow(\n ' ⚠ No changes found in working tree. Phase RED requires at least one test.',\n ),\n );\n process.exit(1);\n }\n console.log(pc.dim(' No changes found in working tree.'));\n process.exit(0);\n }\n console.log(pc.green(' ✔ All changes are within active phase scopes.'));\n process.exit(0);\n }\n\n console.log(\n pc.red(` ✗ ${result.violations.length} file(s) outside of permitted phase scope:\\n`),\n );\n for (const v of result.violations) {\n console.log(` - ${v}`);\n }\n console.log(pc.dim(`\\n ${result.why}\\n`));\n process.exit(1);\n },\n});\n","import { execFileSync } from 'node:child_process';\nimport { existsSync, mkdtempSync, rmSync } from 'node:fs';\nimport { tmpdir } from 'node:os';\nimport { join, resolve } from 'node:path';\nimport { defineCommand } from 'citty';\nimport pc from 'picocolors';\nimport { ProInstallError, installPro } from '../pro/install.js';\n\nexport const PRO_REPOSITORY_URL = 'https://github.com/cdalkit/cdal-pro.git';\n\n/** Clones a git source into a temp directory; local directories are used as-is. */\nfunction resolveSource(from: string): { dir: string; cleanup: () => void } {\n const local = resolve(from);\n if (existsSync(local)) return { dir: local, cleanup: () => {} };\n\n const dir = mkdtempSync(join(tmpdir(), 'cdal-pro-'));\n const cleanup = () => rmSync(dir, { recursive: true, force: true });\n try {\n execFileSync('git', ['clone', '--depth', '1', '--quiet', from, dir], {\n stdio: ['ignore', 'ignore', 'pipe'],\n });\n } catch {\n cleanup();\n throw new ProInstallError(\n `Could not clone ${from}.\\n CDAL Pro is delivered as a private GitHub repository: accept the invitation sent after your purchase, make sure git can access GitHub as that account, then run this command again.`,\n );\n }\n return { dir, cleanup };\n}\n\nconst installCommand = defineCommand({\n meta: {\n name: 'install',\n description: 'Install CDAL Pro content (agent roles, templates, presets) into this project',\n },\n args: {\n from: {\n type: 'string',\n description: 'Local copy or git URL of the cdal-pro repository',\n default: PRO_REPOSITORY_URL,\n },\n cwd: {\n type: 'string',\n description: 'Project directory to install into',\n default: '.',\n },\n force: {\n type: 'boolean',\n description: 'Overwrite files that already exist in the project',\n default: false,\n },\n dryRun: {\n type: 'boolean',\n description: 'Show what would be installed without writing anything',\n default: false,\n },\n },\n run({ args }) {\n let source: { dir: string; cleanup: () => void } | undefined;\n try {\n source = resolveSource(args.from);\n const result = installPro({\n sourceDir: source.dir,\n targetDir: resolve(args.cwd),\n force: args.force,\n dryRun: args.dryRun,\n });\n\n const verb = args.dryRun ? 'Would install' : 'Installed';\n console.log(pc.green(`✔ ${verb} ${result.name} ${result.version}`));\n console.log(` ${result.written.length} file(s) ${args.dryRun ? 'to write' : 'written'}`);\n if (result.skipped.length > 0) {\n console.log(\n pc.yellow(\n ` ${result.skipped.length} existing file(s) kept — rerun with --force to overwrite:`,\n ),\n );\n for (const file of result.skipped) console.log(pc.dim(` ${file}`));\n }\n if (!args.dryRun) {\n console.log(pc.dim(' Run `npx cdalkit sync` to wire the new roles into your runtimes.'));\n }\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n console.error(pc.red(`✖ ${message}`));\n process.exit(1);\n } finally {\n source?.cleanup();\n }\n },\n});\n\nexport const proCommand = defineCommand({\n meta: {\n name: 'pro',\n description: 'CDAL Pro: install licensed agent roles, templates and presets',\n },\n subCommands: {\n install: installCommand,\n },\n});\n","import {\n copyFileSync,\n existsSync,\n mkdirSync,\n readFileSync,\n readdirSync,\n statSync,\n writeFileSync,\n} from 'node:fs';\nimport { dirname, isAbsolute, join, relative, resolve, sep } from 'node:path';\n\nexport const PRO_MANIFEST_FILE = 'pro.manifest.json';\nexport const PRO_RECORD_FILE = '.cdal/pro.json';\n\n// Files carrying these markers were generated by `cdalkit sync`/`init` and can be regenerated,\n// so Pro content may replace them; anything else in the project is user-owned.\nconst GENERATED_MARKERS = ['CDAL GENERATED', 'GENERATED by cdal sync'];\n\nfunction isGeneratedFile(path: string): boolean {\n const content = readFileSync(path, 'utf8');\n return GENERATED_MARKERS.some((marker) => content.includes(marker));\n}\n\nexport class ProInstallError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'ProInstallError';\n }\n}\n\nexport interface ProManifest {\n name: string;\n version: string;\n install: Array<{ from: string; to: string }>;\n}\n\nexport interface ProInstallOptions {\n /** Directory containing pro.manifest.json (a clone of cdal-pro or a local copy). */\n sourceDir: string;\n /** Project root to install into. */\n targetDir: string;\n /** Overwrite files that already exist in the project. */\n force?: boolean;\n /** Report what would be written without touching the project. */\n dryRun?: boolean;\n}\n\nexport interface ProInstallResult {\n name: string;\n version: string;\n /** Project-relative paths written (or, in dry-run mode, that would be written). */\n written: string[];\n /** Project-relative paths left untouched because they already exist. */\n skipped: string[];\n}\n\nfunction toPosix(path: string): string {\n return path.split(sep).join('/');\n}\n\n/** Resolves `rel` under `root`, refusing absolute paths and anything that escapes `root`. */\nfunction resolveInside(root: string, rel: string, label: string): string {\n if (typeof rel !== 'string' || rel.length === 0 || isAbsolute(rel)) {\n throw new ProInstallError(`Invalid ${label} path in ${PRO_MANIFEST_FILE}: \"${rel}\"`);\n }\n const full = resolve(root, rel);\n const fromRoot = relative(root, full);\n if (fromRoot.startsWith('..') || isAbsolute(fromRoot)) {\n throw new ProInstallError(`${label} path \"${rel}\" escapes its directory`);\n }\n return full;\n}\n\nexport function readProManifest(sourceDir: string): ProManifest {\n const manifestPath = join(sourceDir, PRO_MANIFEST_FILE);\n if (!existsSync(manifestPath)) {\n throw new ProInstallError(`No ${PRO_MANIFEST_FILE} found in ${sourceDir}`);\n }\n let manifest: ProManifest;\n try {\n manifest = JSON.parse(readFileSync(manifestPath, 'utf8')) as ProManifest;\n } catch (err) {\n throw new ProInstallError(\n `${PRO_MANIFEST_FILE} is not valid JSON: ${err instanceof Error ? err.message : String(err)}`,\n );\n }\n if (!manifest.name || !manifest.version || !Array.isArray(manifest.install)) {\n throw new ProInstallError(`${PRO_MANIFEST_FILE} must define name, version and install[]`);\n }\n return manifest;\n}\n\nfunction listFiles(dir: string): string[] {\n const files: string[] = [];\n for (const entry of readdirSync(dir, { withFileTypes: true })) {\n const full = join(dir, entry.name);\n if (entry.isDirectory()) files.push(...listFiles(full));\n else if (entry.isFile()) files.push(full);\n }\n return files;\n}\n\nexport function installPro(options: ProInstallOptions): ProInstallResult {\n const sourceDir = resolve(options.sourceDir);\n const targetDir = resolve(options.targetDir);\n const manifest = readProManifest(sourceDir);\n\n // Resolve every mapping before writing anything, so a bad entry aborts cleanly.\n const plan: Array<{ src: string; dest: string; rel: string }> = [];\n for (const mapping of manifest.install) {\n const from = resolveInside(sourceDir, mapping.from, 'from');\n const to = resolveInside(targetDir, mapping.to, 'to');\n if (!existsSync(from)) {\n throw new ProInstallError(`Manifest source \"${mapping.from}\" does not exist`);\n }\n const sources = statSync(from).isDirectory() ? listFiles(from) : [from];\n for (const src of sources) {\n const dest = statSync(from).isDirectory() ? join(to, relative(from, src)) : to;\n plan.push({ src, dest, rel: toPosix(relative(targetDir, dest)) });\n }\n }\n\n const written: string[] = [];\n const skipped: string[] = [];\n for (const { src, dest, rel } of plan) {\n if (existsSync(dest) && !options.force && !isGeneratedFile(dest)) {\n skipped.push(rel);\n continue;\n }\n written.push(rel);\n if (!options.dryRun) {\n mkdirSync(dirname(dest), { recursive: true });\n copyFileSync(src, dest);\n }\n }\n\n if (!options.dryRun) {\n const recordPath = join(targetDir, PRO_RECORD_FILE);\n mkdirSync(dirname(recordPath), { recursive: true });\n writeFileSync(\n recordPath,\n `${JSON.stringify(\n {\n name: manifest.name,\n version: manifest.version,\n installedAt: new Date().toISOString(),\n files: plan.map((p) => p.rel).sort(),\n },\n null,\n 2,\n )}\\n`,\n 'utf8',\n );\n }\n\n return { name: manifest.name, version: manifest.version, written, skipped };\n}\n","import { loadConfig, runSelftest } from '@cdal/core';\nimport { defineCommand } from 'citty';\nimport pc from 'picocolors';\n\nexport const selftestCommand = defineCommand({\n meta: {\n name: 'selftest',\n description: 'Run mutation testing on contract invariant rules and content guardrails',\n },\n args: {\n json: {\n type: 'boolean',\n description: 'Output as JSON payload (selftest.v1)',\n default: false,\n },\n config: {\n type: 'string',\n description: 'Path to cdal.config.mjs',\n },\n },\n async run({ args }) {\n const cwd = process.cwd();\n const { config: resolvedConfig } = await loadConfig(args.config);\n\n if (!args.json) {\n console.log(pc.bold(pc.cyan('\\n cdal selftest — mutation testing of quality gates')));\n console.log(\n pc.dim(' Testing whether validator and guardrails actually fire red when violated\\n'),\n );\n }\n\n const report = await runSelftest({\n cwd,\n config: resolvedConfig,\n });\n\n if (args.json) {\n console.log(JSON.stringify(report, null, 2));\n process.exit(report.ok ? 0 : 1);\n }\n\n // Display mutation results\n if (report.mutationResults.length > 0) {\n console.log(\n pc.bold(\n ` Contract Invariant Mutations (${report.mutationsPassed}/${report.mutationsTotal}):`,\n ),\n );\n for (const m of report.mutationResults) {\n if (m.passed) {\n console.log(\n ` ${pc.green('✔')} ${pc.cyan(m.rule.padEnd(26))} detected in ${pc.dim(m.file)}`,\n );\n } else {\n console.log(\n ` ${pc.red('✗')} ${pc.red(m.rule.padEnd(26))} ${pc.bold('MISSED')}: ${m.error ?? 'rule dead'}`,\n );\n }\n }\n console.log('');\n }\n\n // Display content probe results\n if (report.probeResults.length > 0) {\n console.log(\n pc.bold(` Forbidden Content Probes (${report.probesPassed}/${report.probesTotal}):`),\n );\n for (const p of report.probeResults) {\n const action = p.fires ? 'detected' : 'allowed';\n if (p.passed) {\n console.log(\n ` ${pc.green('✔')} ${pc.cyan(p.rule.padEnd(30))} ${pc.green(action)}: ${p.desc}`,\n );\n } else {\n console.log(\n ` ${pc.red('✗')} ${pc.red(p.rule.padEnd(30))} ${pc.bold('FAILED')}: ${p.error ?? 'unexpected behavior'}`,\n );\n }\n }\n console.log('');\n }\n\n // Summary\n console.log(\n pc.bold(\n ` Summary: ${report.mutationsPassed}/${report.mutationsTotal} contract rules verified via mutation.`,\n ),\n );\n console.log(\n pc.bold(\n ` ${report.probesPassed}/${report.probesTotal} content guardrail probes verified.\\n`,\n ),\n );\n\n if (report.failures.length > 0) {\n console.log(pc.bold(pc.red(' CRITICAL GATE FAILURES:')));\n for (const f of report.failures) {\n console.log(` - ${pc.red(f)}`);\n }\n console.log('');\n process.exit(1);\n }\n\n console.log(pc.green(pc.bold(' ✔ Every quality gate rule is verified active and firing.\\n')));\n process.exit(0);\n },\n});\n","import { syncAdapters } from '@cdal/adapters';\nimport { loadConfig } from '@cdal/core';\nimport { defineCommand } from 'citty';\nimport pc from 'picocolors';\n\nexport const syncCommand = defineCommand({\n meta: {\n name: 'sync',\n description:\n 'Synchronize agent definitions, commands, hooks and rules across configured runtimes (with --check drift detection)',\n },\n args: {\n check: {\n type: 'boolean',\n description:\n 'Check for drift between cdal.config.mjs and runtime files without modifying disk',\n default: false,\n },\n config: {\n type: 'string',\n description: 'Custom path to cdal.config.mjs',\n },\n cwd: {\n type: 'string',\n description: 'Working directory path',\n },\n },\n async run({ args }) {\n try {\n const cwd = args.cwd || process.cwd();\n const { config } = await loadConfig(args.config || cwd);\n\n const res = syncAdapters({\n cwd,\n config,\n check: Boolean(args.check),\n });\n\n if (args.check) {\n if (res.inSync) {\n console.log(\n pc.green(\n `✅ Sync check passed: all ${res.totalFiles} adapter file(s) are in sync across [${config.runtimes.join(', ')}].`,\n ),\n );\n } else {\n console.error(\n pc.red(\n `❌ Sync check failed: ${res.driftedFiles.length} adapter file(s) drifted from configuration:`,\n ),\n );\n for (const file of res.driftedFiles) {\n console.error(pc.red(` - [DRIFT] ${file}`));\n }\n console.error(\n pc.yellow(\n '\\nRun `npx cdalkit sync` to synchronize runtime files with cdal.config.mjs.',\n ),\n );\n process.exit(1);\n }\n } else {\n console.log(\n pc.green(\n `✅ Synchronized ${res.updatedFiles.length} adapter file(s) across [${config.runtimes.join(', ')}]:`,\n ),\n );\n for (const file of res.updatedFiles) {\n console.log(pc.cyan(` - ${file}`));\n }\n if (res.updatedFiles.length === 0) {\n console.log(pc.dim(' (All files were already up-to-date)'));\n }\n }\n if (res.preservedFiles.length > 0) {\n console.log(\n pc.dim(\n ` ${res.preservedFiles.length} file(s) marked cdal:preserve were left untouched.`,\n ),\n );\n }\n } catch (err: unknown) {\n const msg = err instanceof Error ? err.message : String(err);\n console.error(pc.red(`❌ Fatal error during sync: ${msg}`));\n process.exit(1);\n }\n },\n});\n","import path from 'node:path';\nimport { pathToFileURL } from 'node:url';\nimport {\n type TraceRequirement,\n formatTraceMarkdown,\n formatTraceText,\n loadConfig,\n scanTrace,\n} from '@cdal/core';\nimport { defineCommand } from 'citty';\nimport pc from 'picocolors';\n\nexport const traceCommand = defineCommand({\n meta: {\n name: 'trace',\n description: 'Inspect requirement-to-test traceability matrix (@REQ tags)',\n },\n args: {\n enforce: {\n type: 'boolean',\n description:\n 'Exit with code 1 if any implementing/done requirement lacks tests, tests fail, or unknown @REQ tags exist',\n default: false,\n },\n markdown: {\n type: 'boolean',\n description: 'Output as Markdown table ready for pull request description',\n default: false,\n },\n json: {\n type: 'boolean',\n description: 'Output as structured JSON (trace.v1)',\n default: false,\n },\n results: {\n type: 'string',\n description: 'Path to test execution JSON results file (vitest or playwright json reporter)',\n },\n config: {\n type: 'string',\n description: 'Path to cdal.config.mjs',\n },\n },\n async run({ args }) {\n const cwd = process.cwd();\n const { config: resolvedConfig } = await loadConfig(args.config);\n\n const contractsDir = resolvedConfig?.contractsDir ?? 'contracts';\n const reqContractPath = path.resolve(cwd, contractsDir, 'requirements.contract.mjs');\n\n let requirements: TraceRequirement[] = [];\n try {\n const imported = await import(pathToFileURL(reqContractPath).href);\n requirements = (imported.REQUIREMENTS ||\n imported.default?.REQUIREMENTS ||\n imported.default ||\n []) as TraceRequirement[];\n } catch (err: unknown) {\n const errorMsg = err instanceof Error ? err.message : String(err);\n console.error(pc.red(`Failed to load requirements from \"${reqContractPath}\": ${errorMsg}`));\n process.exit(1);\n }\n\n if (!Array.isArray(requirements) || requirements.length === 0) {\n console.warn(pc.yellow(`No requirements found in \"${reqContractPath}\".`));\n if (args.enforce) process.exit(1);\n return;\n }\n\n const report = scanTrace(requirements, {\n cwd,\n resultsFile: args.results,\n });\n\n if (args.json) {\n console.log(JSON.stringify(report, null, 2));\n } else if (args.markdown) {\n console.log(formatTraceMarkdown(report));\n } else {\n console.log(formatTraceText(report));\n }\n\n if (args.enforce && !report.ok) {\n process.exit(1);\n }\n },\n});\n","import { formatFindingsText, runValidation } from '@cdal/core';\nimport { defineCommand } from 'citty';\nimport pc from 'picocolors';\nimport { resolveCommandKinds } from '../kinds.js';\n\nexport const validateCommand = defineCommand({\n meta: {\n name: 'validate',\n description: 'Validate contract invariants across all registered contract kinds',\n },\n args: {\n strict: {\n type: 'boolean',\n description: 'Treat warnings as failures (exit 1)',\n default: false,\n },\n json: {\n type: 'boolean',\n description: 'Output findings using machine-readable findings.v1 JSON schema',\n default: false,\n },\n dir: {\n type: 'string',\n description: 'Custom path to contracts directory',\n },\n },\n async run({ args }) {\n try {\n const kinds = await resolveCommandKinds();\n\n const report = await runValidation({\n contractsDir: args.dir,\n strict: Boolean(args.strict),\n kinds,\n });\n\n if (args.json) {\n console.log(JSON.stringify(report, null, 2));\n } else {\n const text = formatFindingsText(report, Boolean(args.strict));\n if (report.valid) {\n console.log(pc.green(text));\n } else {\n console.error(pc.red(text));\n }\n }\n\n if (!report.valid) {\n process.exit(1);\n }\n } catch (err: unknown) {\n const msg = err instanceof Error ? err.message : String(err);\n console.error(pc.red(`❌ Fatal error during contract validation: ${msg}`));\n process.exit(1);\n }\n },\n});\n","import { spawnSync } from 'node:child_process';\nimport { loadConfig } from '@cdal/core';\nimport { defineCommand } from 'citty';\nimport pc from 'picocolors';\n\nexport const verifyCommand = defineCommand({\n meta: {\n name: 'verify',\n description: 'Run deterministic CDAL verification pipeline defined in configuration',\n },\n args: {\n fast: {\n type: 'boolean',\n description: 'Run fast subset of verification steps (contract checks & selftest)',\n default: false,\n },\n full: {\n type: 'boolean',\n description: 'Force execution of all verification steps',\n default: false,\n },\n clean: {\n type: 'boolean',\n description: 'Clear temporary caches before running verification',\n default: false,\n },\n config: {\n type: 'string',\n description: 'Path to cdal.config.mjs',\n },\n cwd: {\n type: 'string',\n description: 'Working directory path',\n },\n },\n async run({ args }) {\n const cwd = args.cwd || process.cwd();\n const { config } = await loadConfig(args.config || cwd);\n\n let steps = [...config.verify];\n\n if (args.fast) {\n // In fast mode, run contract validation, codegen drift check, and selftest\n steps = steps.filter(\n (s) =>\n s.includes('validate') ||\n s.includes('codegen') ||\n s.includes('selftest') ||\n s.includes('typecheck'),\n );\n if (steps.length === 0) {\n steps = [config.verify[0] ?? 'cdal validate --strict'];\n }\n }\n\n console.log(\n pc.bold(pc.cyan(`\\n⚡ Running CDAL Verification Pipeline (${steps.length} step(s))...\\n`)),\n );\n\n for (let i = 0; i < steps.length; i++) {\n const step = steps[i];\n if (!step) continue;\n console.log(pc.bold(pc.blue(`[${i + 1}/${steps.length}] ▶ ${step}`)));\n\n const start = Date.now();\n const res = spawnSync(step, {\n cwd,\n shell: true,\n stdio: 'inherit',\n });\n const duration = Date.now() - start;\n\n if (res.status !== 0) {\n console.error(\n pc.bold(\n pc.red(\n `\\n❌ Verification failed at step: \"${step}\" (exit code ${res.status ?? 1}, took ${duration}ms)`,\n ),\n ),\n );\n process.exit(res.status ?? 1);\n }\n\n console.log(pc.green(` ✓ Step passed in ${duration}ms\\n`));\n }\n\n console.log(\n pc.bold(\n pc.green(`✅ Full verification pipeline succeeded (${steps.length} step(s) passed).`),\n ),\n );\n },\n});\n","import { closeContractWindow, getContractWindowStatus, openContractWindow } from '@cdal/core';\nimport { defineCommand } from 'citty';\nimport pc from 'picocolors';\n\nexport const windowCommand = defineCommand({\n meta: {\n name: 'window',\n description: 'Manage contract window for protected path modifications',\n },\n args: {\n action: {\n type: 'positional',\n description: 'Action to perform: open, close, status',\n required: true,\n },\n ticket: {\n type: 'positional',\n description: 'Ticket or reason ID (required for open)',\n required: false,\n },\n duration: {\n type: 'string',\n description: 'Window duration in minutes (default: 60)',\n default: '60',\n },\n },\n run({ args }) {\n const action = args.action.toLowerCase();\n\n if (action === 'open') {\n const ticket = args.ticket;\n if (!ticket) {\n console.error(\n pc.red(\n 'Error: \"cdal window open\" requires a ticket or work order argument. Example: cdal window open WO-123',\n ),\n );\n process.exit(1);\n }\n const durationMinutes = Number.parseInt(args.duration, 10) || 60;\n const status = openContractWindow(ticket, { durationMinutes });\n console.log(pc.green(`✔ Contract window opened for ticket: ${pc.bold(status.ticket)}`));\n console.log(pc.dim(` Expires at: ${status.expiresAt}`));\n return;\n }\n\n if (action === 'close') {\n closeContractWindow();\n console.log(pc.green('✔ Contract window closed. Protected paths are locked.'));\n return;\n }\n\n if (action === 'status') {\n const status = getContractWindowStatus();\n if (status.open) {\n console.log(pc.green(`Contract window is ${pc.bold('OPEN')}`));\n console.log(` Ticket: ${status.ticket ?? 'none'}`);\n console.log(` Opened at: ${status.openedAt ?? 'unknown'}`);\n console.log(` Expires at: ${status.expiresAt ?? 'unknown'}`);\n } else {\n console.log(pc.yellow(`Contract window is ${pc.bold('CLOSED')}`));\n }\n return;\n }\n\n console.error(pc.red(`Unknown action \"${action}\". Available actions: open, close, status`));\n process.exit(1);\n },\n});\n"],"mappings":";AAAA,SAAS,qBAAqB;AAC9B,SAAS,WAAW,cAAc,iBAAAA,uBAAqB;;;ACDvD,SAAS,qBAAqB;AAC9B,SAAS,eAAe;AACxB,SAAS,kBAAkB,sBAAsB,gBAAgB;AAEjE,SAAS,qBAAqB;AAC9B,OAAO,QAAQ;AAER,IAAM,eAAe,cAAc;AAAA,EACxC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aACE;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACJ,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,MACV,SAAS;AAAA,IACX;AAAA,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,IACZ;AAAA,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS;AAAA,IACX;AAAA,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS;AAAA,IACX;AAAA,IACA,WAAW;AAAA,MACT,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA,MAAM,IAAI,EAAE,KAAK,GAAG;AAClB,UAAM,YAAY,QAAQ,KAAK,QAAQ,GAAG;AAC1C,UAAM,OAAQ,KAAK,SAAS,OAAO,OAAO;AAE1C,QAAI,CAAC,KAAK,MAAM;AACd,cAAQ,IAAI,GAAG,KAAK,GAAG,KAAK,2DAAoD,CAAC,CAAC;AAAA,IACpF;AAEA,UAAM,SAAS,MAAM,SAAS;AAAA,MAC5B,KAAK;AAAA,MACL;AAAA,IACF,CAAC;AAED,QAAI,KAAK,MAAM;AACb,YAAM,cAAc,iBAAiB,QAAQ,IAAI;AACjD,YAAM,UAAU,QAAQ,KAAK,IAAI;AACjC,oBAAc,SAAS,aAAa,MAAM;AAC1C,UAAI,CAAC,KAAK,MAAM;AACd,gBAAQ,IAAI,GAAG,MAAM,sCAAiC,OAAO,EAAE,CAAC;AAAA,MAClE;AAAA,IACF;AAEA,QAAI,KAAK,MAAM;AACb,cAAQ,IAAI,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAAA,IAC7C,OAAO;AACL,cAAQ,IAAI,qBAAqB,QAAQ,IAAI,CAAC;AAAA,IAChD;AAEA,QAAI,KAAK,WAAW;AAClB,YAAM,YAAY,OAAO,SAAS,KAAK,WAAW,EAAE;AACpD,UAAI,CAAC,OAAO,MAAM,SAAS,KAAK,OAAO,QAAQ,WAAW;AACxD,gBAAQ;AAAA,UACN,GAAG;AAAA,YACD;AAAA,qBAAmB,OAAO,KAAK,uBAAuB,SAAS;AAAA,UACjE;AAAA,QACF;AACA,gBAAQ,KAAK,CAAC;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AACF,CAAC;;;ACjFD,SAAS,kBAAkB;AAC3B,SAAS,iBAAAC,sBAAqB;AAC9B,OAAOC,SAAQ;;;ACFf,SAA4B,kBAAkB;AAC9C,SAAS,UAAU,cAAc,oBAAoB;AAMrD,eAAsB,oBAAoB,MAAc,QAAQ,IAAI,GAA4B;AAC9F,QAAM,EAAE,OAAO,IAAI,MAAM,WAAW,GAAG;AACvC,QAAM,cAAc,OAAO,SAAS,CAAC,GAAG;AAAA,IACtC,CAAC,SAA+B,OAAQ,KAA+B,SAAS;AAAA,EAClF;AACA,MAAI,WAAW,SAAS,EAAG,QAAO;AAClC,SAAO,CAAC,aAAa,GAAG,aAAa,GAAG,SAAS,CAAC;AACpD;;;ADTO,IAAM,iBAAiBC,eAAc;AAAA,EAC1C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aACE;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACJ,OAAO;AAAA,MACL,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS;AAAA,IACX;AAAA,IACA,KAAK;AAAA,MACH,MAAM;AAAA,MACN,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA,MAAM,IAAI,EAAE,KAAK,GAAG;AAClB,QAAI;AACF,YAAM,QAAQ,MAAM,oBAAoB;AAExC,YAAM,MAAM,MAAM,WAAW;AAAA,QAC3B,cAAc,KAAK;AAAA,QACnB,OAAO,QAAQ,KAAK,KAAK;AAAA,QACzB;AAAA,MACF,CAAC;AAED,UAAI,KAAK,OAAO;AACd,YAAI,CAAC,IAAI,OAAO;AACd,kBAAQ,IAAIC,IAAG,MAAM,sEAAiE,CAAC;AAAA,QACzF,OAAO;AACL,kBAAQ,MAAMA,IAAG,IAAI,iEAA4D,CAAC;AAClF,qBAAW,KAAK,IAAI,OAAO;AACzB,gBAAI,EAAE,WAAW,SAAS;AACxB,sBAAQ,MAAMA,IAAG,IAAI,eAAe,EAAE,IAAI,KAAK,EAAE,QAAQ,GAAG,CAAC;AAAA,YAC/D,WAAW,EAAE,WAAW,WAAW;AACjC,sBAAQ,MAAMA,IAAG,IAAI,iBAAiB,EAAE,IAAI,KAAK,EAAE,QAAQ,GAAG,CAAC;AAAA,YACjE;AAAA,UACF;AACA,kBAAQ;AAAA,YACNA,IAAG,OAAO,qEAAqE;AAAA,UACjF;AACA,kBAAQ,KAAK,CAAC;AAAA,QAChB;AAAA,MACF,OAAO;AACL,gBAAQ,IAAIA,IAAG,MAAM,kBAAa,IAAI,MAAM,MAAM,wBAAwB,CAAC;AAC3E,mBAAW,KAAK,IAAI,OAAO;AACzB,kBAAQ,IAAIA,IAAG,KAAK,OAAO,EAAE,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;AAAA,QACvD;AAAA,MACF;AAAA,IACF,SAAS,KAAc;AACrB,YAAM,MAAM,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAC3D,cAAQ,MAAMA,IAAG,IAAI,sCAAiC,GAAG,EAAE,CAAC;AAC5D,cAAQ,KAAK,CAAC;AAAA,IAChB;AAAA,EACF;AACF,CAAC;;;AE7DD,SAAS,iBAAiB;AAC1B,SAAS,YAAY,oBAAoB;AACzC,SAAS,YAAY;AACrB,SAAS,oBAAoB;AAC7B,SAAqD,cAAAC,aAAY,cAAAC,mBAAkB;AACnF,SAAS,iBAAAC,sBAAqB;AAC9B,OAAOC,SAAQ;AAcf,SAAS,mBAAmB,UAEW;AACrC,QAAM,SAAS,SAAS,OAAO;AAC/B,MAAI,CAAC,MAAM,QAAQ,MAAM,EAAG,QAAO;AACnC,MAAI,SAAS;AACb,aAAW,SAAS,QAA0C;AAC5D,QAAI,OAAO,MAAM,YAAY,YAAY,kBAAkB,KAAK,MAAM,OAAO,EAAG,UAAS;AACzF,UAAM,WAAW,MAAM,QAAQ,MAAM,KAAK,IACrC,MAAM,QACP,CAAC;AACL,eAAW,WAAW,UAAU;AAC9B,UACE,QAAQ,SAAS,aACjB,OAAO,QAAQ,YAAY,YAC3B,8BAA8B,KAAK,QAAQ,OAAO,GAClD;AACA,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACA,SAAO,SAAS,kBAAkB;AACpC;AAEO,SAAS,gBACd,KACA,cAIA;AACA,QAAM,SAA8B,CAAC;AAGrC,QAAM,UAAU,QAAQ;AACxB,QAAM,QAAQ,mBAAmB,KAAK,OAAO;AAC7C,QAAM,QAAQ,QAAQ,CAAC,IAAI,OAAO,SAAS,MAAM,CAAC,GAAG,EAAE,IAAI;AAC3D,QAAM,QAAQ,QAAQ,CAAC,IAAI,OAAO,SAAS,MAAM,CAAC,GAAG,EAAE,IAAI;AAE3D,MAAI,QAAQ,MAAO,UAAU,MAAM,SAAS,GAAI;AAC9C,WAAO,KAAK;AAAA,MACV,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,SAAS,QAAQ,OAAO;AAAA,IAC1B,CAAC;AAAA,EACH,OAAO;AACL,WAAO,KAAK;AAAA,MACV,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,SAAS,gBAAgB,OAAO;AAAA,MAChC,gBAAgB;AAAA,IAClB,CAAC;AAAA,EACH;AAGA,QAAM,gBAAgB,UAAU,OAAO,CAAC,WAAW,GAAG,EAAE,UAAU,OAAO,CAAC;AAC1E,MAAI,cAAc,WAAW,GAAG;AAC9B,WAAO,KAAK;AAAA,MACV,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,gBAAgB;AAAA,IAClB,CAAC;AAAA,EACH,OAAO;AACL,WAAO,KAAK;AAAA,MACV,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,SAAS,qBAAqB,cAAc,OAAO,KAAK,CAAC;AAAA,IAC3D,CAAC;AAED,UAAM,aAAa,UAAU,OAAO,CAAC,aAAa,uBAAuB,GAAG;AAAA,MAC1E;AAAA,MACA,UAAU;AAAA,IACZ,CAAC;AACD,QAAI,WAAW,WAAW,GAAG;AAC3B,aAAO,KAAK;AAAA,QACV,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,gBAAgB;AAAA,MAClB,CAAC;AAAA,IACH,OAAO;AACL,aAAO,KAAK;AAAA,QACV,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,EACF;AAGA,MAAI,YAAuC;AAC3C,MAAI;AACF,UAAM,SAAS,eAAe,KAAK,YAAY;AAC/C,gBAAY,OAAO;AACnB,WAAO,KAAK;AAAA,MACV,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,SAAS,iCAAiC,OAAO,WAAW,OAAO,WAAW,gBAAgB;AAAA,IAChG,CAAC;AAAA,EACH,SAAS,KAAc;AACrB,UAAM,MAAM,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAC3D,WAAO,KAAK;AAAA,MACV,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,SAAS,mCAAmC,GAAG;AAAA,MAC/C,gBAAgB;AAAA,IAClB,CAAC;AAAA,EACH;AAGA,QAAM,eAAe,KAAK,KAAK,uBAAuB;AACtD,MAAI,WAAW,YAAY,GAAG;AAC5B,QAAI;AACF,YAAM,WAAW,KAAK,MAAM,aAAa,cAAc,MAAM,CAAC;AAG9D,YAAM,SAAS,mBAAmB,QAAQ;AAC1C,UAAI,WAAW,MAAM;AACnB,eAAO,KAAK;AAAA,UACV,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,SAAS;AAAA,QACX,CAAC;AAAA,MACH,OAAO;AACL,eAAO,KAAK;AAAA,UACV,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,SACE,WAAW,kBACP,8FACA;AAAA,UACN,gBAAgB;AAAA,QAClB,CAAC;AAAA,MACH;AAAA,IACF,QAAQ;AACN,aAAO,KAAK;AAAA,QACV,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,EACF,OAAO;AACL,WAAO,KAAK;AAAA,MACV,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,gBAAgB;AAAA,IAClB,CAAC;AAAA,EACH;AAGA,MAAI,WAAW;AACb,QAAI;AACF,YAAM,UAAU,aAAa,EAAE,KAAK,QAAQ,WAAW,OAAO,KAAK,CAAC;AACpE,UAAI,QAAQ,QAAQ;AAClB,eAAO,KAAK;AAAA,UACV,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,SAAS,OAAO,QAAQ,UAAU;AAAA,QACpC,CAAC;AAAA,MACH,OAAO;AACL,eAAO,KAAK;AAAA,UACV,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,SAAS,GAAG,QAAQ,aAAa,MAAM,gDAAgD,QAAQ,aAAa,KAAK,IAAI,CAAC;AAAA,UACtH,gBAAgB;AAAA,QAClB,CAAC;AAAA,MACH;AAAA,IACF,SAAS,KAAc;AACrB,aAAO,KAAK;AAAA,QACV,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,SAAS,iCAAiC,OAAO,GAAG,CAAC;AAAA,MACvD,CAAC;AAAA,IACH;AAAA,EACF;AAEA,QAAM,UAAU,OAAO,MAAM,CAAC,MAAM,EAAE,WAAW,OAAO;AACxD,SAAO,EAAE,QAAQ,QAAQ;AAC3B;AAEA,SAAS,eAAe,KAAa,cAAuB;AAC1D,QAAM,aAAa,gBAAgB,KAAK,KAAK,iBAAiB;AAC9D,MAAI,WAAW,UAAU,GAAG;AAC1B,WAAO,EAAE,QAAQ,MAAM,UAAU,WAAW;AAAA,EAC9C;AACA,SAAO,EAAE,QAAQ,MAAM,UAAU,KAAK;AACxC;AAEO,IAAM,gBAAgBD,eAAc;AAAA,EACzC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aACE;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACJ,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,IACf;AAAA,IACA,KAAK;AAAA,MACH,MAAM;AAAA,MACN,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA,MAAM,IAAI,EAAE,KAAK,GAAG;AAClB,UAAM,MAAM,KAAK,OAAO,QAAQ,IAAI;AACpC,YAAQ,IAAIC,IAAG,KAAKA,IAAG,KAAK,iDAA0C,CAAC,CAAC;AAExE,QAAI,iBAA4C;AAChD,QAAI;AACF,YAAM,SAAS,MAAMH,YAAW,KAAK,UAAU,GAAG;AAClD,uBAAiB,OAAO;AAAA,IAC1B,SAAS,KAAc;AACrB,cAAQ,MAAMG,IAAG,IAAI,sCAA4B,OAAO,GAAG,CAAC,EAAE,CAAC;AAAA,IACjE;AAEA,UAAM,EAAE,QAAQ,QAAQ,IAAI,gBAAgB,KAAK,KAAK,MAAM;AAG5D,QAAI,gBAAgB;AAClB,UAAI;AACF,cAAM,aAAa,MAAMF,YAAW;AAAA,UAClC,cAAc,eAAe;AAAA,UAC7B,OAAO,eAAe;AAAA,UACtB,OAAO;AAAA,QACT,CAAC;AACD,YAAI,CAAC,WAAW,OAAO;AACrB,iBAAO,KAAK;AAAA,YACV,MAAM;AAAA,YACN,QAAQ;AAAA,YACR,SAAS;AAAA,UACX,CAAC;AAAA,QACH,OAAO;AACL,iBAAO,KAAK;AAAA,YACV,MAAM;AAAA,YACN,QAAQ;AAAA,YACR,SAAS;AAAA,YACT,gBAAgB;AAAA,UAClB,CAAC;AAAA,QACH;AAAA,MACF,QAAQ;AAAA,MAER;AAAA,IACF;AAEA,eAAW,SAAS,QAAQ;AAC1B,UAAI,MAAM,WAAW,MAAM;AACzB,gBAAQ,IAAIE,IAAG,MAAM,iBAAYA,IAAG,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM,OAAO,EAAE,CAAC;AAAA,MAC3E,WAAW,MAAM,WAAW,QAAQ;AAClC,gBAAQ,IAAIA,IAAG,OAAO,0BAAgBA,IAAG,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM,OAAO,EAAE,CAAC;AAC9E,YAAI,MAAM,gBAAgB;AACxB,kBAAQ,IAAIA,IAAG,IAAI,yBAAyB,MAAM,cAAc,EAAE,CAAC;AAAA,QACrE;AAAA,MACF,OAAO;AACL,gBAAQ,IAAIA,IAAG,IAAI,mBAAcA,IAAG,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM,OAAO,EAAE,CAAC;AACzE,YAAI,MAAM,gBAAgB;AACxB,kBAAQ,IAAIA,IAAG,OAAO,yBAAyB,MAAM,cAAc,EAAE,CAAC;AAAA,QACxE;AAAA,MACF;AAAA,IACF;AAEA,QAAI,SAAS;AACX,cAAQ;AAAA,QACNA,IAAG,KAAKA,IAAG,MAAM,2EAAsE,CAAC;AAAA,MAC1F;AAAA,IACF,OAAO;AACL,cAAQ,IAAIA,IAAG,KAAKA,IAAG,IAAI,mEAA8D,CAAC,CAAC;AAC3F,cAAQ,KAAK,CAAC;AAAA,IAChB;AAAA,EACF;AACF,CAAC;;;ACpSD,OAAO,QAAQ;AACf,SAAwB,mBAAmB;AAC3C,SAAS,cAAAC,mBAAkB;AAC3B,SAAS,iBAAAC,sBAAqB;AAE9B,IAAM,cAAc,oBAAI,IAAI;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,cAAcA,eAAc;AAAA,EACvC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,EACf;AAAA,EACA,MAAM;AAAA,IACJ,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,aACE;AAAA,MACF,UAAU;AAAA,IACZ;AAAA,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,IACZ;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA,MAAM,IAAI,EAAE,KAAK,GAAG;AAClB,UAAM,WAAW,KAAK;AACtB,QAAI,CAAC,YAAY,IAAI,QAAQ,GAAG;AAC9B,cAAQ,OAAO;AAAA,QACb,sBAAsB,QAAQ,mBAAmB,MAAM,KAAK,WAAW,EAAE,KAAK,IAAI,CAAC;AAAA;AAAA,MACrF;AACA,cAAQ,KAAK,CAAC;AAAA,IAChB;AAEA,QAAI,aAAa;AACjB,QAAI;AACF,mBAAa,GAAG,aAAa,GAAG,MAAM;AAAA,IACxC,QAAQ;AAAA,IAER;AAEA,UAAM,MAAM,QAAQ,IAAI;AACxB,UAAM,EAAE,OAAO,IAAI,MAAMD,YAAW,KAAK,MAAM;AAE/C,UAAM,SAAS,MAAM,YAAY,UAAU,YAAY;AAAA,MACrD;AAAA,MACA;AAAA,MACA,cAAc,KAAK;AAAA,MACnB,SAAS,KAAK;AAAA,IAChB,CAAC;AAED,QAAI,OAAO,QAAQ;AACjB,cAAQ,OAAO,MAAM,GAAG,OAAO,MAAM;AAAA,CAAI;AAAA,IAC3C;AAEA,QAAI,OAAO,QAAQ;AACjB,cAAQ,OAAO,MAAM,OAAO,MAAM;AAAA,IACpC;AAEA,YAAQ,KAAK,OAAO,QAAQ;AAAA,EAC9B;AACF,CAAC;;;AC5ED,SAAS,cAAAE,aAAY,WAAW,gBAAAC,eAAc,iBAAAC,sBAAqB;AACnE,SAAS,QAAAC,aAAY;AACrB,SAAS,gBAAAC,qBAAoB;AAC7B,SAAS,qBAAqB;AAC9B,SAAS,iBAAAC,sBAAqB;AAC9B,OAAOC,SAAQ;AAER,IAAM,cAAcD,eAAc;AAAA,EACvC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aACE;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACJ,KAAK;AAAA,MACH,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO;AAAA,MACP,SAAS;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS;AAAA,IACX;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS;AAAA,IACX;AAAA,IACA,KAAK;AAAA,MACH,MAAM;AAAA,MACN,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA,MAAM,IAAI,EAAE,KAAK,GAAG;AAClB,UAAM,MAAM,KAAK,OAAO,QAAQ,IAAI;AACpC,YAAQ,IAAIC,IAAG,KAAKA,IAAG,KAAK,mEAA4D,CAAC,CAAC;AAE1F,UAAM,SAAS,KAAK,UAAU;AAC9B,UAAM,eAAe,KAAK,WAAW,yBAClC,MAAM,GAAG,EACT,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EACnB,OAAO,OAAO;AAGjB,UAAM,eAAeH,MAAK,KAAK,WAAW;AAC1C,QAAI,CAACH,YAAW,YAAY,GAAG;AAC7B,gBAAU,cAAc,EAAE,WAAW,KAAK,CAAC;AAAA,IAC7C;AAEA,UAAM,qBAAqBG,MAAK,cAAc,2BAA2B;AACzE,QAAI,CAACH,YAAW,kBAAkB,GAAG;AACnC,YAAM,wBAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAc9B,MAAAE,eAAc,oBAAoB,uBAAuB,MAAM;AAC/D,cAAQ;AAAA,QACNI,IAAG,MAAM,sCAAiCA,IAAG,KAAK,qCAAqC,CAAC,EAAE;AAAA,MAC5F;AAAA,IACF;AAGA,UAAM,aAAaH,MAAK,KAAK,iBAAiB;AAC9C,QAAI,CAACH,YAAW,UAAU,GAAG;AAC3B,YAAM,oBAAoB,YAAY,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,KAAK,IAAI;AACpE,YAAM,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAUb,MAAM;AAAA,eACN,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAS1B,MAAAE,eAAc,YAAY,eAAe,MAAM;AAC/C,cAAQ,IAAII,IAAG,MAAM,mCAA8BA,IAAG,KAAK,iBAAiB,CAAC,EAAE,CAAC;AAAA,IAClF,OAAO;AACL,cAAQ;AAAA,QACNA,IAAG,IAAI,8EAAyE;AAAA,MAClF;AAAA,IACF;AAGA,UAAM,UAAUH,MAAK,KAAK,cAAc;AACxC,QAAIH,YAAW,OAAO,GAAG;AACvB,UAAI;AACF,cAAM,SAASC,cAAa,SAAS,MAAM;AAC3C,cAAM,MAAM,KAAK,MAAM,MAAM;AAC7B,YAAI,UAAU,IAAI,WAAW,CAAC;AAC9B,YAAI,UAAU;AAEd,YAAI,CAAC,IAAI,QAAQ,QAAQ;AACvB,cAAI,QAAQ,SAAS;AACrB,oBAAU;AAAA,QACZ;AACA,YAAI,CAAC,IAAI,QAAQ,UAAU;AACzB,cAAI,QAAQ,WAAW;AACvB,oBAAU;AAAA,QACZ;AACA,YAAI,CAAC,IAAI,QAAQ,OAAO;AACtB,cAAI,QAAQ,QAAQ;AACpB,oBAAU;AAAA,QACZ;AAEA,YAAI,SAAS;AACX,UAAAC,eAAc,SAAS,GAAG,KAAK,UAAU,KAAK,MAAM,CAAC,CAAC;AAAA,GAAM,MAAM;AAClE,kBAAQ;AAAA,YACNI,IAAG,MAAM,mDAA8CA,IAAG,KAAK,cAAc,CAAC,EAAE;AAAA,UAClF;AAAA,QACF;AAAA,MACF,QAAQ;AACN,gBAAQ,IAAIA,IAAG,OAAO,sEAA4D,CAAC;AAAA,MACrF;AAAA,IACF;AAGA,UAAM,iBAAiB,cAAc;AAAA,MACnC,SAAS,CAAC,MAAM;AAAA,MAChB,UAAU;AAAA,IACZ,CAAC;AAED,UAAM,UAAUF,cAAa;AAAA,MAC3B;AAAA,MACA,QAAQ;AAAA,MACR,OAAO;AAAA,IACT,CAAC;AAED,YAAQ;AAAA,MACNE,IAAG;AAAA,QACD,sBAAiB,QAAQ,aAAa,MAAM,oCAAoC,YAAY,KAAK,IAAI,CAAC;AAAA,MACxG;AAAA,IACF;AAEA,YAAQ,IAAIA,IAAG,KAAKA,IAAG,MAAM,4CAAqC,CAAC,CAAC;AACpE,YAAQ,IAAIA,IAAG,KAAK,aAAa,CAAC;AAClC,YAAQ,IAAIA,IAAG,IAAI,mDAAmD,CAAC;AACvE,YAAQ,IAAIA,IAAG,IAAI,4DAA4D,CAAC;AAChF,YAAQ,IAAIA,IAAG,IAAI,uDAAuD,CAAC;AAAA,EAC7E;AACF,CAAC;;;AClKD,SAAyB,YAAY,cAAAC,mBAAkB;AACvD,SAAS,iBAAAC,sBAAqB;AAC9B,OAAOC,SAAQ;AAER,IAAM,eAAeD,eAAc;AAAA,EACxC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,EACf;AAAA,EACA,MAAM;AAAA,IACJ,OAAO;AAAA,MACL,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,IACZ;AAAA,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,aAAa;AAAA,IACf;AAAA,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA,MAAM,IAAI,EAAE,KAAK,GAAG;AAClB,UAAM,YAAY,KAAK,SAAS,IAAI,YAAY;AAChD,QAAI,CAAC,CAAC,YAAY,OAAO,OAAO,EAAE,SAAS,QAAQ,GAAG;AACpD,cAAQ,MAAMC,IAAG,IAAI,kBAAkB,QAAQ,4CAA4C,CAAC;AAC5F,cAAQ,KAAK,CAAC;AAAA,IAChB;AACA,UAAM,QAAQ;AAEd,UAAM,MAAM,QAAQ,IAAI;AACxB,UAAM,EAAE,QAAQ,eAAe,IAAI,MAAMF,YAAW,KAAK,MAAM;AAE/D,UAAM,SAAS,WAAW,OAAO;AAAA,MAC/B;AAAA,MACA,MAAM,KAAK;AAAA,MACX,gBAAgB,gBAAgB;AAAA,IAClC,CAAC;AAED,QAAI,KAAK,MAAM;AACb,cAAQ,IAAI,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAC3C,cAAQ,KAAK,OAAO,KAAK,IAAI,CAAC;AAAA,IAChC;AAEA,YAAQ,IAAIE,IAAG,KAAK;AAAA,WAAc,OAAO,KAAK,EAAE,CAAC;AACjD,YAAQ,IAAI,6BAA6B,OAAO,MAAM,MAAM;AAAA,CAAI;AAEhE,QAAI,OAAO,WAAW,WAAW,GAAG;AAClC,UAAI,OAAO,MAAM,WAAW,GAAG;AAC7B,YAAI,UAAU,OAAO;AACnB,kBAAQ;AAAA,YACNA,IAAG;AAAA,cACD;AAAA,YACF;AAAA,UACF;AACA,kBAAQ,KAAK,CAAC;AAAA,QAChB;AACA,gBAAQ,IAAIA,IAAG,IAAI,qCAAqC,CAAC;AACzD,gBAAQ,KAAK,CAAC;AAAA,MAChB;AACA,cAAQ,IAAIA,IAAG,MAAM,sDAAiD,CAAC;AACvE,cAAQ,KAAK,CAAC;AAAA,IAChB;AAEA,YAAQ;AAAA,MACNA,IAAG,IAAI,YAAO,OAAO,WAAW,MAAM;AAAA,CAA8C;AAAA,IACtF;AACA,eAAW,KAAK,OAAO,YAAY;AACjC,cAAQ,IAAI,SAAS,CAAC,EAAE;AAAA,IAC1B;AACA,YAAQ,IAAIA,IAAG,IAAI;AAAA,IAAO,OAAO,GAAG;AAAA,CAAI,CAAC;AACzC,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF,CAAC;;;AChFD,SAAS,oBAAoB;AAC7B,SAAS,cAAAC,aAAY,aAAa,cAAc;AAChD,SAAS,cAAc;AACvB,SAAS,QAAAC,OAAM,WAAAC,gBAAe;AAC9B,SAAS,iBAAAC,sBAAqB;AAC9B,OAAOC,SAAQ;;;ACLf;AAAA,EACE;AAAA,EACA,cAAAC;AAAA,EACA,aAAAC;AAAA,EACA,gBAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA,iBAAAC;AAAA,OACK;AACP,SAAS,SAAS,YAAY,QAAAC,OAAM,UAAU,WAAAC,UAAS,WAAW;AAE3D,IAAM,oBAAoB;AAC1B,IAAM,kBAAkB;AAI/B,IAAM,oBAAoB,CAAC,kBAAkB,wBAAwB;AAErE,SAAS,gBAAgBC,OAAuB;AAC9C,QAAM,UAAUJ,cAAaI,OAAM,MAAM;AACzC,SAAO,kBAAkB,KAAK,CAAC,WAAW,QAAQ,SAAS,MAAM,CAAC;AACpE;AAEO,IAAM,kBAAN,cAA8B,MAAM;AAAA,EACzC,YAAY,SAAiB;AAC3B,UAAM,OAAO;AACb,SAAK,OAAO;AAAA,EACd;AACF;AA4BA,SAAS,QAAQA,OAAsB;AACrC,SAAOA,MAAK,MAAM,GAAG,EAAE,KAAK,GAAG;AACjC;AAGA,SAAS,cAAc,MAAc,KAAa,OAAuB;AACvE,MAAI,OAAO,QAAQ,YAAY,IAAI,WAAW,KAAK,WAAW,GAAG,GAAG;AAClE,UAAM,IAAI,gBAAgB,WAAW,KAAK,YAAY,iBAAiB,MAAM,GAAG,GAAG;AAAA,EACrF;AACA,QAAM,OAAOD,SAAQ,MAAM,GAAG;AAC9B,QAAM,WAAW,SAAS,MAAM,IAAI;AACpC,MAAI,SAAS,WAAW,IAAI,KAAK,WAAW,QAAQ,GAAG;AACrD,UAAM,IAAI,gBAAgB,GAAG,KAAK,UAAU,GAAG,yBAAyB;AAAA,EAC1E;AACA,SAAO;AACT;AAEO,SAAS,gBAAgB,WAAgC;AAC9D,QAAM,eAAeD,MAAK,WAAW,iBAAiB;AACtD,MAAI,CAACJ,YAAW,YAAY,GAAG;AAC7B,UAAM,IAAI,gBAAgB,MAAM,iBAAiB,aAAa,SAAS,EAAE;AAAA,EAC3E;AACA,MAAI;AACJ,MAAI;AACF,eAAW,KAAK,MAAME,cAAa,cAAc,MAAM,CAAC;AAAA,EAC1D,SAAS,KAAK;AACZ,UAAM,IAAI;AAAA,MACR,GAAG,iBAAiB,uBAAuB,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG,CAAC;AAAA,IAC7F;AAAA,EACF;AACA,MAAI,CAAC,SAAS,QAAQ,CAAC,SAAS,WAAW,CAAC,MAAM,QAAQ,SAAS,OAAO,GAAG;AAC3E,UAAM,IAAI,gBAAgB,GAAG,iBAAiB,0CAA0C;AAAA,EAC1F;AACA,SAAO;AACT;AAEA,SAAS,UAAU,KAAuB;AACxC,QAAM,QAAkB,CAAC;AACzB,aAAW,SAAS,YAAY,KAAK,EAAE,eAAe,KAAK,CAAC,GAAG;AAC7D,UAAM,OAAOE,MAAK,KAAK,MAAM,IAAI;AACjC,QAAI,MAAM,YAAY,EAAG,OAAM,KAAK,GAAG,UAAU,IAAI,CAAC;AAAA,aAC7C,MAAM,OAAO,EAAG,OAAM,KAAK,IAAI;AAAA,EAC1C;AACA,SAAO;AACT;AAEO,SAAS,WAAW,SAA8C;AACvE,QAAM,YAAYC,SAAQ,QAAQ,SAAS;AAC3C,QAAM,YAAYA,SAAQ,QAAQ,SAAS;AAC3C,QAAM,WAAW,gBAAgB,SAAS;AAG1C,QAAM,OAA0D,CAAC;AACjE,aAAW,WAAW,SAAS,SAAS;AACtC,UAAM,OAAO,cAAc,WAAW,QAAQ,MAAM,MAAM;AAC1D,UAAM,KAAK,cAAc,WAAW,QAAQ,IAAI,IAAI;AACpD,QAAI,CAACL,YAAW,IAAI,GAAG;AACrB,YAAM,IAAI,gBAAgB,oBAAoB,QAAQ,IAAI,kBAAkB;AAAA,IAC9E;AACA,UAAM,UAAU,SAAS,IAAI,EAAE,YAAY,IAAI,UAAU,IAAI,IAAI,CAAC,IAAI;AACtE,eAAW,OAAO,SAAS;AACzB,YAAM,OAAO,SAAS,IAAI,EAAE,YAAY,IAAII,MAAK,IAAI,SAAS,MAAM,GAAG,CAAC,IAAI;AAC5E,WAAK,KAAK,EAAE,KAAK,MAAM,KAAK,QAAQ,SAAS,WAAW,IAAI,CAAC,EAAE,CAAC;AAAA,IAClE;AAAA,EACF;AAEA,QAAM,UAAoB,CAAC;AAC3B,QAAM,UAAoB,CAAC;AAC3B,aAAW,EAAE,KAAK,MAAM,IAAI,KAAK,MAAM;AACrC,QAAIJ,YAAW,IAAI,KAAK,CAAC,QAAQ,SAAS,CAAC,gBAAgB,IAAI,GAAG;AAChE,cAAQ,KAAK,GAAG;AAChB;AAAA,IACF;AACA,YAAQ,KAAK,GAAG;AAChB,QAAI,CAAC,QAAQ,QAAQ;AACnB,MAAAC,WAAU,QAAQ,IAAI,GAAG,EAAE,WAAW,KAAK,CAAC;AAC5C,mBAAa,KAAK,IAAI;AAAA,IACxB;AAAA,EACF;AAEA,MAAI,CAAC,QAAQ,QAAQ;AACnB,UAAM,aAAaG,MAAK,WAAW,eAAe;AAClD,IAAAH,WAAU,QAAQ,UAAU,GAAG,EAAE,WAAW,KAAK,CAAC;AAClD,IAAAE;AAAA,MACE;AAAA,MACA,GAAG,KAAK;AAAA,QACN;AAAA,UACE,MAAM,SAAS;AAAA,UACf,SAAS,SAAS;AAAA,UAClB,cAAa,oBAAI,KAAK,GAAE,YAAY;AAAA,UACpC,OAAO,KAAK,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK;AAAA,QACrC;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AAAA;AAAA,MACD;AAAA,IACF;AAAA,EACF;AAEA,SAAO,EAAE,MAAM,SAAS,MAAM,SAAS,SAAS,SAAS,SAAS,QAAQ;AAC5E;;;ADpJO,IAAM,qBAAqB;AAGlC,SAAS,cAAc,MAAoD;AACzE,QAAM,QAAQI,SAAQ,IAAI;AAC1B,MAAIC,YAAW,KAAK,EAAG,QAAO,EAAE,KAAK,OAAO,SAAS,MAAM;AAAA,EAAC,EAAE;AAE9D,QAAM,MAAM,YAAYC,MAAK,OAAO,GAAG,WAAW,CAAC;AACnD,QAAM,UAAU,MAAM,OAAO,KAAK,EAAE,WAAW,MAAM,OAAO,KAAK,CAAC;AAClE,MAAI;AACF,iBAAa,OAAO,CAAC,SAAS,WAAW,KAAK,WAAW,MAAM,GAAG,GAAG;AAAA,MACnE,OAAO,CAAC,UAAU,UAAU,MAAM;AAAA,IACpC,CAAC;AAAA,EACH,QAAQ;AACN,YAAQ;AACR,UAAM,IAAI;AAAA,MACR,mBAAmB,IAAI;AAAA;AAAA,IACzB;AAAA,EACF;AACA,SAAO,EAAE,KAAK,QAAQ;AACxB;AAEA,IAAM,iBAAiBC,eAAc;AAAA,EACnC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,EACf;AAAA,EACA,MAAM;AAAA,IACJ,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS;AAAA,IACX;AAAA,IACA,KAAK;AAAA,MACH,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS;AAAA,IACX;AAAA,IACA,OAAO;AAAA,MACL,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA,IAAI,EAAE,KAAK,GAAG;AACZ,QAAI;AACJ,QAAI;AACF,eAAS,cAAc,KAAK,IAAI;AAChC,YAAM,SAAS,WAAW;AAAA,QACxB,WAAW,OAAO;AAAA,QAClB,WAAWH,SAAQ,KAAK,GAAG;AAAA,QAC3B,OAAO,KAAK;AAAA,QACZ,QAAQ,KAAK;AAAA,MACf,CAAC;AAED,YAAM,OAAO,KAAK,SAAS,kBAAkB;AAC7C,cAAQ,IAAII,IAAG,MAAM,UAAK,IAAI,IAAI,OAAO,IAAI,IAAI,OAAO,OAAO,EAAE,CAAC;AAClE,cAAQ,IAAI,KAAK,OAAO,QAAQ,MAAM,YAAY,KAAK,SAAS,aAAa,SAAS,EAAE;AACxF,UAAI,OAAO,QAAQ,SAAS,GAAG;AAC7B,gBAAQ;AAAA,UACNA,IAAG;AAAA,YACD,KAAK,OAAO,QAAQ,MAAM;AAAA,UAC5B;AAAA,QACF;AACA,mBAAW,QAAQ,OAAO,QAAS,SAAQ,IAAIA,IAAG,IAAI,OAAO,IAAI,EAAE,CAAC;AAAA,MACtE;AACA,UAAI,CAAC,KAAK,QAAQ;AAChB,gBAAQ,IAAIA,IAAG,IAAI,oEAAoE,CAAC;AAAA,MAC1F;AAAA,IACF,SAAS,KAAK;AACZ,YAAM,UAAU,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAC/D,cAAQ,MAAMA,IAAG,IAAI,UAAK,OAAO,EAAE,CAAC;AACpC,cAAQ,KAAK,CAAC;AAAA,IAChB,UAAE;AACA,cAAQ,QAAQ;AAAA,IAClB;AAAA,EACF;AACF,CAAC;AAEM,IAAM,aAAaD,eAAc;AAAA,EACtC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,EACf;AAAA,EACA,aAAa;AAAA,IACX,SAAS;AAAA,EACX;AACF,CAAC;;;AEpGD,SAAS,cAAAE,aAAY,mBAAmB;AACxC,SAAS,iBAAAC,sBAAqB;AAC9B,OAAOC,SAAQ;AAER,IAAM,kBAAkBD,eAAc;AAAA,EAC3C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,EACf;AAAA,EACA,MAAM;AAAA,IACJ,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA,MAAM,IAAI,EAAE,KAAK,GAAG;AAClB,UAAM,MAAM,QAAQ,IAAI;AACxB,UAAM,EAAE,QAAQ,eAAe,IAAI,MAAMD,YAAW,KAAK,MAAM;AAE/D,QAAI,CAAC,KAAK,MAAM;AACd,cAAQ,IAAIE,IAAG,KAAKA,IAAG,KAAK,4DAAuD,CAAC,CAAC;AACrF,cAAQ;AAAA,QACNA,IAAG,IAAI,8EAA8E;AAAA,MACvF;AAAA,IACF;AAEA,UAAM,SAAS,MAAM,YAAY;AAAA,MAC/B;AAAA,MACA,QAAQ;AAAA,IACV,CAAC;AAED,QAAI,KAAK,MAAM;AACb,cAAQ,IAAI,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAC3C,cAAQ,KAAK,OAAO,KAAK,IAAI,CAAC;AAAA,IAChC;AAGA,QAAI,OAAO,gBAAgB,SAAS,GAAG;AACrC,cAAQ;AAAA,QACNA,IAAG;AAAA,UACD,mCAAmC,OAAO,eAAe,IAAI,OAAO,cAAc;AAAA,QACpF;AAAA,MACF;AACA,iBAAW,KAAK,OAAO,iBAAiB;AACtC,YAAI,EAAE,QAAQ;AACZ,kBAAQ;AAAA,YACN,KAAKA,IAAG,MAAM,QAAG,CAAC,IAAIA,IAAG,KAAK,EAAE,KAAK,OAAO,EAAE,CAAC,CAAC,gBAAgBA,IAAG,IAAI,EAAE,IAAI,CAAC;AAAA,UAChF;AAAA,QACF,OAAO;AACL,kBAAQ;AAAA,YACN,KAAKA,IAAG,IAAI,QAAG,CAAC,IAAIA,IAAG,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC,CAAC,IAAIA,IAAG,KAAK,QAAQ,CAAC,KAAK,EAAE,SAAS,WAAW;AAAA,UAC/F;AAAA,QACF;AAAA,MACF;AACA,cAAQ,IAAI,EAAE;AAAA,IAChB;AAGA,QAAI,OAAO,aAAa,SAAS,GAAG;AAClC,cAAQ;AAAA,QACNA,IAAG,KAAK,+BAA+B,OAAO,YAAY,IAAI,OAAO,WAAW,IAAI;AAAA,MACtF;AACA,iBAAW,KAAK,OAAO,cAAc;AACnC,cAAM,SAAS,EAAE,QAAQ,aAAa;AACtC,YAAI,EAAE,QAAQ;AACZ,kBAAQ;AAAA,YACN,KAAKA,IAAG,MAAM,QAAG,CAAC,IAAIA,IAAG,KAAK,EAAE,KAAK,OAAO,EAAE,CAAC,CAAC,IAAIA,IAAG,MAAM,MAAM,CAAC,KAAK,EAAE,IAAI;AAAA,UACjF;AAAA,QACF,OAAO;AACL,kBAAQ;AAAA,YACN,KAAKA,IAAG,IAAI,QAAG,CAAC,IAAIA,IAAG,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC,CAAC,IAAIA,IAAG,KAAK,QAAQ,CAAC,KAAK,EAAE,SAAS,qBAAqB;AAAA,UACzG;AAAA,QACF;AAAA,MACF;AACA,cAAQ,IAAI,EAAE;AAAA,IAChB;AAGA,YAAQ;AAAA,MACNA,IAAG;AAAA,QACD,cAAc,OAAO,eAAe,IAAI,OAAO,cAAc;AAAA,MAC/D;AAAA,IACF;AACA,YAAQ;AAAA,MACNA,IAAG;AAAA,QACD,cAAc,OAAO,YAAY,IAAI,OAAO,WAAW;AAAA;AAAA,MACzD;AAAA,IACF;AAEA,QAAI,OAAO,SAAS,SAAS,GAAG;AAC9B,cAAQ,IAAIA,IAAG,KAAKA,IAAG,IAAI,2BAA2B,CAAC,CAAC;AACxD,iBAAW,KAAK,OAAO,UAAU;AAC/B,gBAAQ,IAAI,SAASA,IAAG,IAAI,CAAC,CAAC,EAAE;AAAA,MAClC;AACA,cAAQ,IAAI,EAAE;AACd,cAAQ,KAAK,CAAC;AAAA,IAChB;AAEA,YAAQ,IAAIA,IAAG,MAAMA,IAAG,KAAK,mEAA8D,CAAC,CAAC;AAC7F,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF,CAAC;;;AC1GD,SAAS,gBAAAC,qBAAoB;AAC7B,SAAS,cAAAC,mBAAkB;AAC3B,SAAS,iBAAAC,sBAAqB;AAC9B,OAAOC,SAAQ;AAER,IAAM,cAAcD,eAAc;AAAA,EACvC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aACE;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACJ,OAAO;AAAA,MACL,MAAM;AAAA,MACN,aACE;AAAA,MACF,SAAS;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,IACf;AAAA,IACA,KAAK;AAAA,MACH,MAAM;AAAA,MACN,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA,MAAM,IAAI,EAAE,KAAK,GAAG;AAClB,QAAI;AACF,YAAM,MAAM,KAAK,OAAO,QAAQ,IAAI;AACpC,YAAM,EAAE,OAAO,IAAI,MAAMD,YAAW,KAAK,UAAU,GAAG;AAEtD,YAAM,MAAMD,cAAa;AAAA,QACvB;AAAA,QACA;AAAA,QACA,OAAO,QAAQ,KAAK,KAAK;AAAA,MAC3B,CAAC;AAED,UAAI,KAAK,OAAO;AACd,YAAI,IAAI,QAAQ;AACd,kBAAQ;AAAA,YACNG,IAAG;AAAA,cACD,iCAA4B,IAAI,UAAU,wCAAwC,OAAO,SAAS,KAAK,IAAI,CAAC;AAAA,YAC9G;AAAA,UACF;AAAA,QACF,OAAO;AACL,kBAAQ;AAAA,YACNA,IAAG;AAAA,cACD,6BAAwB,IAAI,aAAa,MAAM;AAAA,YACjD;AAAA,UACF;AACA,qBAAW,QAAQ,IAAI,cAAc;AACnC,oBAAQ,MAAMA,IAAG,IAAI,eAAe,IAAI,EAAE,CAAC;AAAA,UAC7C;AACA,kBAAQ;AAAA,YACNA,IAAG;AAAA,cACD;AAAA,YACF;AAAA,UACF;AACA,kBAAQ,KAAK,CAAC;AAAA,QAChB;AAAA,MACF,OAAO;AACL,gBAAQ;AAAA,UACNA,IAAG;AAAA,YACD,uBAAkB,IAAI,aAAa,MAAM,4BAA4B,OAAO,SAAS,KAAK,IAAI,CAAC;AAAA,UACjG;AAAA,QACF;AACA,mBAAW,QAAQ,IAAI,cAAc;AACnC,kBAAQ,IAAIA,IAAG,KAAK,OAAO,IAAI,EAAE,CAAC;AAAA,QACpC;AACA,YAAI,IAAI,aAAa,WAAW,GAAG;AACjC,kBAAQ,IAAIA,IAAG,IAAI,uCAAuC,CAAC;AAAA,QAC7D;AAAA,MACF;AACA,UAAI,IAAI,eAAe,SAAS,GAAG;AACjC,gBAAQ;AAAA,UACNA,IAAG;AAAA,YACD,KAAK,IAAI,eAAe,MAAM;AAAA,UAChC;AAAA,QACF;AAAA,MACF;AAAA,IACF,SAAS,KAAc;AACrB,YAAM,MAAM,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAC3D,cAAQ,MAAMA,IAAG,IAAI,mCAA8B,GAAG,EAAE,CAAC;AACzD,cAAQ,KAAK,CAAC;AAAA,IAChB;AAAA,EACF;AACF,CAAC;;;ACvFD,OAAO,UAAU;AACjB,SAAS,qBAAqB;AAC9B;AAAA,EAEE;AAAA,EACA;AAAA,EACA,cAAAC;AAAA,EACA;AAAA,OACK;AACP,SAAS,iBAAAC,uBAAqB;AAC9B,OAAOC,SAAQ;AAER,IAAM,eAAeD,gBAAc;AAAA,EACxC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,EACf;AAAA,EACA,MAAM;AAAA,IACJ,SAAS;AAAA,MACP,MAAM;AAAA,MACN,aACE;AAAA,MACF,SAAS;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS;AAAA,IACX;AAAA,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS;AAAA,IACX;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,aAAa;AAAA,IACf;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA,MAAM,IAAI,EAAE,KAAK,GAAG;AAClB,UAAM,MAAM,QAAQ,IAAI;AACxB,UAAM,EAAE,QAAQ,eAAe,IAAI,MAAMD,YAAW,KAAK,MAAM;AAE/D,UAAM,eAAe,gBAAgB,gBAAgB;AACrD,UAAM,kBAAkB,KAAK,QAAQ,KAAK,cAAc,2BAA2B;AAEnF,QAAIG,gBAAmC,CAAC;AACxC,QAAI;AACF,YAAM,WAAW,MAAM,OAAO,cAAc,eAAe,EAAE;AAC7D,MAAAA,gBAAgB,SAAS,gBACvB,SAAS,SAAS,gBAClB,SAAS,WACT,CAAC;AAAA,IACL,SAAS,KAAc;AACrB,YAAM,WAAW,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAChE,cAAQ,MAAMD,IAAG,IAAI,qCAAqC,eAAe,MAAM,QAAQ,EAAE,CAAC;AAC1F,cAAQ,KAAK,CAAC;AAAA,IAChB;AAEA,QAAI,CAAC,MAAM,QAAQC,aAAY,KAAKA,cAAa,WAAW,GAAG;AAC7D,cAAQ,KAAKD,IAAG,OAAO,6BAA6B,eAAe,IAAI,CAAC;AACxE,UAAI,KAAK,QAAS,SAAQ,KAAK,CAAC;AAChC;AAAA,IACF;AAEA,UAAM,SAAS,UAAUC,eAAc;AAAA,MACrC;AAAA,MACA,aAAa,KAAK;AAAA,IACpB,CAAC;AAED,QAAI,KAAK,MAAM;AACb,cAAQ,IAAI,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAAA,IAC7C,WAAW,KAAK,UAAU;AACxB,cAAQ,IAAI,oBAAoB,MAAM,CAAC;AAAA,IACzC,OAAO;AACL,cAAQ,IAAI,gBAAgB,MAAM,CAAC;AAAA,IACrC;AAEA,QAAI,KAAK,WAAW,CAAC,OAAO,IAAI;AAC9B,cAAQ,KAAK,CAAC;AAAA,IAChB;AAAA,EACF;AACF,CAAC;;;ACtFD,SAAS,oBAAoB,qBAAqB;AAClD,SAAS,iBAAAC,uBAAqB;AAC9B,OAAOC,UAAQ;AAGR,IAAM,kBAAkBC,gBAAc;AAAA,EAC3C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,EACf;AAAA,EACA,MAAM;AAAA,IACJ,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS;AAAA,IACX;AAAA,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS;AAAA,IACX;AAAA,IACA,KAAK;AAAA,MACH,MAAM;AAAA,MACN,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA,MAAM,IAAI,EAAE,KAAK,GAAG;AAClB,QAAI;AACF,YAAM,QAAQ,MAAM,oBAAoB;AAExC,YAAM,SAAS,MAAM,cAAc;AAAA,QACjC,cAAc,KAAK;AAAA,QACnB,QAAQ,QAAQ,KAAK,MAAM;AAAA,QAC3B;AAAA,MACF,CAAC;AAED,UAAI,KAAK,MAAM;AACb,gBAAQ,IAAI,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAAA,MAC7C,OAAO;AACL,cAAM,OAAO,mBAAmB,QAAQ,QAAQ,KAAK,MAAM,CAAC;AAC5D,YAAI,OAAO,OAAO;AAChB,kBAAQ,IAAIC,KAAG,MAAM,IAAI,CAAC;AAAA,QAC5B,OAAO;AACL,kBAAQ,MAAMA,KAAG,IAAI,IAAI,CAAC;AAAA,QAC5B;AAAA,MACF;AAEA,UAAI,CAAC,OAAO,OAAO;AACjB,gBAAQ,KAAK,CAAC;AAAA,MAChB;AAAA,IACF,SAAS,KAAc;AACrB,YAAM,MAAM,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAC3D,cAAQ,MAAMA,KAAG,IAAI,kDAA6C,GAAG,EAAE,CAAC;AACxE,cAAQ,KAAK,CAAC;AAAA,IAChB;AAAA,EACF;AACF,CAAC;;;ACxDD,SAAS,aAAAC,kBAAiB;AAC1B,SAAS,cAAAC,mBAAkB;AAC3B,SAAS,iBAAAC,uBAAqB;AAC9B,OAAOC,UAAQ;AAER,IAAM,gBAAgBD,gBAAc;AAAA,EACzC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,EACf;AAAA,EACA,MAAM;AAAA,IACJ,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS;AAAA,IACX;AAAA,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS;AAAA,IACX;AAAA,IACA,OAAO;AAAA,MACL,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,IACf;AAAA,IACA,KAAK;AAAA,MACH,MAAM;AAAA,MACN,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA,MAAM,IAAI,EAAE,KAAK,GAAG;AAClB,UAAM,MAAM,KAAK,OAAO,QAAQ,IAAI;AACpC,UAAM,EAAE,OAAO,IAAI,MAAMD,YAAW,KAAK,UAAU,GAAG;AAEtD,QAAI,QAAQ,CAAC,GAAG,OAAO,MAAM;AAE7B,QAAI,KAAK,MAAM;AAEb,cAAQ,MAAM;AAAA,QACZ,CAAC,MACC,EAAE,SAAS,UAAU,KACrB,EAAE,SAAS,SAAS,KACpB,EAAE,SAAS,UAAU,KACrB,EAAE,SAAS,WAAW;AAAA,MAC1B;AACA,UAAI,MAAM,WAAW,GAAG;AACtB,gBAAQ,CAAC,OAAO,OAAO,CAAC,KAAK,wBAAwB;AAAA,MACvD;AAAA,IACF;AAEA,YAAQ;AAAA,MACNE,KAAG,KAAKA,KAAG,KAAK;AAAA,6CAA2C,MAAM,MAAM;AAAA,CAAgB,CAAC;AAAA,IAC1F;AAEA,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,YAAM,OAAO,MAAM,CAAC;AACpB,UAAI,CAAC,KAAM;AACX,cAAQ,IAAIA,KAAG,KAAKA,KAAG,KAAK,IAAI,IAAI,CAAC,IAAI,MAAM,MAAM,YAAO,IAAI,EAAE,CAAC,CAAC;AAEpE,YAAM,QAAQ,KAAK,IAAI;AACvB,YAAM,MAAMH,WAAU,MAAM;AAAA,QAC1B;AAAA,QACA,OAAO;AAAA,QACP,OAAO;AAAA,MACT,CAAC;AACD,YAAM,WAAW,KAAK,IAAI,IAAI;AAE9B,UAAI,IAAI,WAAW,GAAG;AACpB,gBAAQ;AAAA,UACNG,KAAG;AAAA,YACDA,KAAG;AAAA,cACD;AAAA,uCAAqC,IAAI,gBAAgB,IAAI,UAAU,CAAC,UAAU,QAAQ;AAAA,YAC5F;AAAA,UACF;AAAA,QACF;AACA,gBAAQ,KAAK,IAAI,UAAU,CAAC;AAAA,MAC9B;AAEA,cAAQ,IAAIA,KAAG,MAAM,2BAAsB,QAAQ;AAAA,CAAM,CAAC;AAAA,IAC5D;AAEA,YAAQ;AAAA,MACNA,KAAG;AAAA,QACDA,KAAG,MAAM,gDAA2C,MAAM,MAAM,mBAAmB;AAAA,MACrF;AAAA,IACF;AAAA,EACF;AACF,CAAC;;;AC5FD,SAAS,qBAAqB,yBAAyB,0BAA0B;AACjF,SAAS,iBAAAC,uBAAqB;AAC9B,OAAOC,UAAQ;AAER,IAAM,gBAAgBD,gBAAc;AAAA,EACzC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,EACf;AAAA,EACA,MAAM;AAAA,IACJ,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,IACZ;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,IACZ;AAAA,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA,IAAI,EAAE,KAAK,GAAG;AACZ,UAAM,SAAS,KAAK,OAAO,YAAY;AAEvC,QAAI,WAAW,QAAQ;AACrB,YAAM,SAAS,KAAK;AACpB,UAAI,CAAC,QAAQ;AACX,gBAAQ;AAAA,UACNC,KAAG;AAAA,YACD;AAAA,UACF;AAAA,QACF;AACA,gBAAQ,KAAK,CAAC;AAAA,MAChB;AACA,YAAM,kBAAkB,OAAO,SAAS,KAAK,UAAU,EAAE,KAAK;AAC9D,YAAM,SAAS,mBAAmB,QAAQ,EAAE,gBAAgB,CAAC;AAC7D,cAAQ,IAAIA,KAAG,MAAM,6CAAwCA,KAAG,KAAK,OAAO,MAAM,CAAC,EAAE,CAAC;AACtF,cAAQ,IAAIA,KAAG,IAAI,iBAAiB,OAAO,SAAS,EAAE,CAAC;AACvD;AAAA,IACF;AAEA,QAAI,WAAW,SAAS;AACtB,0BAAoB;AACpB,cAAQ,IAAIA,KAAG,MAAM,4DAAuD,CAAC;AAC7E;AAAA,IACF;AAEA,QAAI,WAAW,UAAU;AACvB,YAAM,SAAS,wBAAwB;AACvC,UAAI,OAAO,MAAM;AACf,gBAAQ,IAAIA,KAAG,MAAM,sBAAsBA,KAAG,KAAK,MAAM,CAAC,EAAE,CAAC;AAC7D,gBAAQ,IAAI,iBAAiB,OAAO,UAAU,MAAM,EAAE;AACtD,gBAAQ,IAAI,iBAAiB,OAAO,YAAY,SAAS,EAAE;AAC3D,gBAAQ,IAAI,iBAAiB,OAAO,aAAa,SAAS,EAAE;AAAA,MAC9D,OAAO;AACL,gBAAQ,IAAIA,KAAG,OAAO,sBAAsBA,KAAG,KAAK,QAAQ,CAAC,EAAE,CAAC;AAAA,MAClE;AACA;AAAA,IACF;AAEA,YAAQ,MAAMA,KAAG,IAAI,mBAAmB,MAAM,2CAA2C,CAAC;AAC1F,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF,CAAC;;;AfnDD,IAAM,EAAE,QAAQ,IAAI,cAAc,YAAY,GAAG,EAAE,iBAAiB;AAEpE,IAAM,OAAOC,gBAAc;AAAA,EACzB,MAAM;AAAA,IACJ,MAAM;AAAA,IACN;AAAA,IACA,aAAa;AAAA,EACf;AAAA,EACA,aAAa;AAAA,IACX,MAAM;AAAA,IACN,UAAU;AAAA,IACV,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,KAAK;AAAA,EACP;AACF,CAAC;AAEM,SAAS,UAAU;AACxB,eAAa,IAAI;AACnB;","names":["defineCommand","defineCommand","pc","defineCommand","pc","loadConfig","runCodegen","defineCommand","pc","loadConfig","defineCommand","existsSync","readFileSync","writeFileSync","join","syncAdapters","defineCommand","pc","loadConfig","defineCommand","pc","existsSync","join","resolve","defineCommand","pc","existsSync","mkdirSync","readFileSync","writeFileSync","join","resolve","path","resolve","existsSync","join","defineCommand","pc","loadConfig","defineCommand","pc","syncAdapters","loadConfig","defineCommand","pc","loadConfig","defineCommand","pc","requirements","defineCommand","pc","defineCommand","pc","spawnSync","loadConfig","defineCommand","pc","defineCommand","pc","defineCommand"]}
1
+ {"version":3,"sources":["../src/cli.ts","../src/commands/audit.ts","../src/commands/codegen.ts","../src/kinds.ts","../src/commands/doctor.ts","../src/commands/hook.ts","../src/commands/init.ts","../src/commands/phase.ts","../src/commands/pro.ts","../src/pro/install.ts","../src/commands/selftest.ts","../src/commands/sync.ts","../src/commands/trace.ts","../src/commands/validate.ts","../src/commands/verify.ts","../src/commands/window.ts"],"sourcesContent":["import { createRequire } from 'node:module';\nimport { runMain as cittyRunMain, defineCommand } from 'citty';\nimport { auditCommand } from './commands/audit.js';\nimport { codegenCommand } from './commands/codegen.js';\nimport { doctorCommand } from './commands/doctor.js';\nimport { hookCommand } from './commands/hook.js';\nimport { initCommand } from './commands/init.js';\nimport { phaseCommand } from './commands/phase.js';\nimport { proCommand } from './commands/pro.js';\nimport { selftestCommand } from './commands/selftest.js';\nimport { syncCommand } from './commands/sync.js';\nimport { traceCommand } from './commands/trace.js';\nimport { validateCommand } from './commands/validate.js';\nimport { verifyCommand } from './commands/verify.js';\nimport { windowCommand } from './commands/window.js';\n\n// Read the version from package.json so `--version` always matches the published package.\nconst { version } = createRequire(import.meta.url)('../package.json') as { version: string };\n\nconst main = defineCommand({\n meta: {\n name: 'cdal',\n version,\n description: 'Contract-Driven Agentic Loop (CDAL) Quality Gates & Audit CLI',\n },\n subCommands: {\n init: initCommand,\n validate: validateCommand,\n codegen: codegenCommand,\n window: windowCommand,\n trace: traceCommand,\n phase: phaseCommand,\n selftest: selftestCommand,\n sync: syncCommand,\n verify: verifyCommand,\n doctor: doctorCommand,\n hook: hookCommand,\n audit: auditCommand,\n pro: proCommand,\n },\n});\n\nexport function runMain() {\n cittyRunMain(main);\n}\n","import { writeFileSync } from 'node:fs';\nimport { resolve } from 'node:path';\nimport { renderHtmlReport, renderTerminalReport, runAudit } from '@cdal/audit';\nimport type { AuditLanguage } from '@cdal/audit';\nimport { defineCommand } from 'citty';\nimport pc from 'picocolors';\n\nexport const auditCommand = defineCommand({\n meta: {\n name: 'audit',\n description:\n 'Audit repository for AI agent hygiene, type silencing, test isolation and gates (100% offline)',\n },\n args: {\n path: {\n type: 'positional',\n description: 'Path to repository root to audit',\n required: false,\n default: '.',\n },\n html: {\n type: 'string',\n description: 'Path to save standalone single-file HTML report (e.g. audit-report.html)',\n required: false,\n },\n json: {\n type: 'boolean',\n description: 'Output machine-readable JSON report (schema: audit.v1)',\n default: false,\n },\n lang: {\n type: 'string',\n description: 'Report language (en or pl)',\n default: 'en',\n },\n failUnder: {\n type: 'string',\n description: 'Exit with code 1 if audit score is below this threshold (0-100)',\n required: false,\n },\n },\n async run({ args }) {\n const targetDir = resolve(args.path || '.');\n const lang = (args.lang === 'pl' ? 'pl' : 'en') as AuditLanguage;\n\n if (!args.json) {\n console.log(pc.bold(pc.cyan('\\n🔍 Running CDAL Repository AI Hygiene Audit...\\n')));\n }\n\n const report = await runAudit({\n cwd: targetDir,\n lang,\n });\n\n if (args.html) {\n const htmlContent = renderHtmlReport(report, lang);\n const outPath = resolve(args.html);\n writeFileSync(outPath, htmlContent, 'utf8');\n if (!args.json) {\n console.log(pc.green(` ✔ Wygenerowano raport HTML: ${outPath}`));\n }\n }\n\n if (args.json) {\n console.log(JSON.stringify(report, null, 2));\n } else {\n console.log(renderTerminalReport(report, lang));\n }\n\n if (args.failUnder) {\n const threshold = Number.parseInt(args.failUnder, 10);\n if (!Number.isNaN(threshold) && report.score < threshold) {\n console.error(\n pc.red(\n `\\n❌ Audit score ${report.score} is below threshold ${threshold}. Failing quality gate.`,\n ),\n );\n process.exit(1);\n }\n }\n },\n});\n","import { runCodegen } from '@cdal/core';\nimport { defineCommand } from 'citty';\nimport pc from 'picocolors';\nimport { resolveCommandKinds } from '../kinds.js';\n\nexport const codegenCommand = defineCommand({\n meta: {\n name: 'codegen',\n description:\n 'Emit TypeScript types and documentation from contracts (with --check drift detection)',\n },\n args: {\n check: {\n type: 'boolean',\n description: 'Check for drift between contracts and generated files without modifying disk',\n default: false,\n },\n dir: {\n type: 'string',\n description: 'Custom path to contracts directory',\n },\n },\n async run({ args }) {\n try {\n const kinds = await resolveCommandKinds();\n\n const res = await runCodegen({\n contractsDir: args.dir,\n check: Boolean(args.check),\n kinds,\n });\n\n if (args.check) {\n if (!res.drift) {\n console.log(pc.green('✅ Codegen check: all generated files are in sync byte-for-byte.'));\n } else {\n console.error(pc.red('❌ Codegen check failed: drift detected in generated files:'));\n for (const f of res.files) {\n if (f.status === 'drift') {\n console.error(pc.red(` - [DRIFT] ${f.path} (${f.fullPath})`));\n } else if (f.status === 'missing') {\n console.error(pc.red(` - [MISSING] ${f.path} (${f.fullPath})`));\n }\n }\n console.error(\n pc.yellow('\\nRun `cdal codegen` to synchronize generated files with contracts.'),\n );\n process.exit(1);\n }\n } else {\n console.log(pc.green(`✅ Emitted ${res.files.length} contract artifact(s):`));\n for (const f of res.files) {\n console.log(pc.cyan(` - ${f.path} -> ${f.fullPath}`));\n }\n }\n } catch (err: unknown) {\n const msg = err instanceof Error ? err.message : String(err);\n console.error(pc.red(`❌ Fatal error during codegen: ${msg}`));\n process.exit(1);\n }\n },\n});\n","import { type ContractKind, loadConfig } from '@cdal/core';\nimport { policies, requirements, stateMachine } from '@cdal/kinds';\n\n/**\n * Contract kinds for validate/codegen: the ones registered in cdal.config.mjs\n * (built-in, CDAL Pro or custom), or the built-in kinds when the config registers none.\n */\nexport async function resolveCommandKinds(cwd: string = process.cwd()): Promise<ContractKind[]> {\n const { config } = await loadConfig(cwd);\n const configured = (config.kinds ?? []).filter(\n (kind): kind is ContractKind => typeof (kind as Partial<ContractKind>).load === 'function',\n );\n if (configured.length > 0) return configured;\n return [requirements(), stateMachine(), policies()] as ContractKind[];\n}\n","import { spawnSync } from 'node:child_process';\nimport { existsSync, readFileSync } from 'node:fs';\nimport { join } from 'node:path';\nimport { syncAdapters } from '@cdal/adapters';\nimport { type ContractKind, type ResolvedCdalConfig, loadConfig, runCodegen } from '@cdal/core';\nimport { defineCommand } from 'citty';\nimport pc from 'picocolors';\n\nexport interface DoctorCheckResult {\n name: string;\n status: 'ok' | 'warn' | 'error';\n message: string;\n recommendation?: string;\n}\n\n/**\n * Claude Code only runs hooks declared as matcher groups with typed handlers:\n * { matcher, hooks: [{ type: 'command', command }] }. A `command` placed\n * directly on the group is silently ignored.\n */\nfunction inspectClaudeHooks(settings: {\n hooks?: Record<string, unknown>;\n}): 'ok' | 'legacy-format' | 'missing' {\n const groups = settings.hooks?.PreToolUse;\n if (!Array.isArray(groups)) return 'missing';\n let legacy = false;\n for (const group of groups as Array<Record<string, unknown>>) {\n if (typeof group.command === 'string' && /cdal(kit)? hook/.test(group.command)) legacy = true;\n const handlers = Array.isArray(group.hooks)\n ? (group.hooks as Array<Record<string, unknown>>)\n : [];\n for (const handler of handlers) {\n if (\n handler.type === 'command' &&\n typeof handler.command === 'string' &&\n /cdal(kit)? hook guard-paths/.test(handler.command)\n ) {\n return 'ok';\n }\n }\n }\n return legacy ? 'legacy-format' : 'missing';\n}\n\nexport function runDoctorChecks(\n cwd: string,\n customConfig?: string,\n): {\n checks: DoctorCheckResult[];\n healthy: boolean;\n} {\n const checks: DoctorCheckResult[] = [];\n\n // 1. Node version check (requires >= 20.9.0)\n const nodeVer = process.version;\n const match = /^v(\\d+)\\.(\\d+)\\./.exec(nodeVer);\n const major = match?.[1] ? Number.parseInt(match[1], 10) : 0;\n const minor = match?.[2] ? Number.parseInt(match[2], 10) : 0;\n\n if (major > 20 || (major === 20 && minor >= 9)) {\n checks.push({\n name: 'Node.js Runtime',\n status: 'ok',\n message: `Node ${nodeVer} satisfies engines.node >= 20.9.0 LTS`,\n });\n } else {\n checks.push({\n name: 'Node.js Runtime',\n status: 'error',\n message: `Current Node ${nodeVer} is below required >= 20.9.0`,\n recommendation: 'Upgrade Node.js to Node 22 LTS or Node 20.9+.',\n });\n }\n\n // 2. Git installation and repository check\n const gitVersionRes = spawnSync('git', ['--version'], { encoding: 'utf8' });\n if (gitVersionRes.status !== 0) {\n checks.push({\n name: 'Git Binary',\n status: 'error',\n message: 'git binary is not available in PATH',\n recommendation: 'Install Git or add it to PATH.',\n });\n } else {\n checks.push({\n name: 'Git Binary',\n status: 'ok',\n message: `Git is available (${gitVersionRes.stdout.trim()})`,\n });\n\n const gitRepoRes = spawnSync('git', ['rev-parse', '--is-inside-work-tree'], {\n cwd,\n encoding: 'utf8',\n });\n if (gitRepoRes.status !== 0) {\n checks.push({\n name: 'Git Repository',\n status: 'error',\n message: 'Current directory is not inside a git working tree',\n recommendation: 'Initialize git with `git init`.',\n });\n } else {\n checks.push({\n name: 'Git Repository',\n status: 'ok',\n message: 'Inside active git working tree',\n });\n }\n }\n\n // 3. Configuration check\n let configObj: ResolvedCdalConfig | null = null;\n try {\n const loaded = loadConfigSync(cwd, customConfig);\n configObj = loaded.config;\n checks.push({\n name: 'Configuration',\n status: 'ok',\n message: `Configuration loaded cleanly (${loaded.filepath ? loaded.filepath : 'default config'})`,\n });\n } catch (err: unknown) {\n const msg = err instanceof Error ? err.message : String(err);\n checks.push({\n name: 'Configuration',\n status: 'error',\n message: `Failed to load cdal.config.mjs: ${msg}`,\n recommendation: 'Run `cdal init` or fix configuration errors.',\n });\n }\n\n // 4. Hook wiring check in .claude/settings.json\n const settingsPath = join(cwd, '.claude/settings.json');\n if (existsSync(settingsPath)) {\n try {\n const settings = JSON.parse(readFileSync(settingsPath, 'utf8')) as {\n hooks?: Record<string, unknown>;\n };\n const wiring = inspectClaudeHooks(settings);\n if (wiring === 'ok') {\n checks.push({\n name: 'Claude Code Hooks',\n status: 'ok',\n message: '.claude/settings.json correctly wires CDAL pre-tool hooks',\n });\n } else {\n checks.push({\n name: 'Claude Code Hooks',\n status: 'warn',\n message:\n wiring === 'legacy-format'\n ? '.claude/settings.json uses a hook format Claude Code ignores, so the CDAL gates never run'\n : '.claude/settings.json exists but does not wire the CDAL guard-paths hook',\n recommendation: 'Run `npx cdalkit sync` to regenerate the hook wiring.',\n });\n }\n } catch {\n checks.push({\n name: 'Claude Code Hooks',\n status: 'warn',\n message: 'Could not read .claude/settings.json',\n });\n }\n } else {\n checks.push({\n name: 'Claude Code Hooks',\n status: 'warn',\n message: 'No .claude/settings.json found in workspace',\n recommendation: 'Run `cdal init` or `cdal sync` to generate hook wiring.',\n });\n }\n\n // 5. Adapter drift check\n if (configObj) {\n try {\n const syncRes = syncAdapters({ cwd, config: configObj, check: true });\n if (syncRes.inSync) {\n checks.push({\n name: 'Runtime Adapters Sync',\n status: 'ok',\n message: `All ${syncRes.totalFiles} adapter file(s) are in sync without drift`,\n });\n } else {\n checks.push({\n name: 'Runtime Adapters Sync',\n status: 'error',\n message: `${syncRes.driftedFiles.length} adapter file(s) drifted from configuration: ${syncRes.driftedFiles.join(', ')}`,\n recommendation: 'Run `cdal sync` to synchronize runtime files.',\n });\n }\n } catch (err: unknown) {\n checks.push({\n name: 'Runtime Adapters Sync',\n status: 'warn',\n message: `Could not check adapter sync: ${String(err)}`,\n });\n }\n }\n\n const healthy = checks.every((c) => c.status !== 'error');\n return { checks, healthy };\n}\n\nfunction loadConfigSync(cwd: string, customConfig?: string) {\n const configPath = customConfig || join(cwd, 'cdal.config.mjs');\n if (existsSync(configPath)) {\n return { config: null, filepath: configPath };\n }\n return { config: null, filepath: null };\n}\n\nexport const doctorCommand = defineCommand({\n meta: {\n name: 'doctor',\n description:\n 'Diagnose CDAL installation, environment health, hook wiring, and configuration drift',\n },\n args: {\n config: {\n type: 'string',\n description: 'Path to cdal.config.mjs',\n },\n cwd: {\n type: 'string',\n description: 'Working directory path',\n },\n },\n async run({ args }) {\n const cwd = args.cwd || process.cwd();\n console.log(pc.bold(pc.cyan('\\n🩺 Running CDAL Diagnostic Doctor...\\n')));\n\n let resolvedConfig: ResolvedCdalConfig | null = null;\n try {\n const loaded = await loadConfig(args.config || cwd);\n resolvedConfig = loaded.config;\n } catch (err: unknown) {\n console.error(pc.red(`⚠️ Configuration error: ${String(err)}`));\n }\n\n const { checks, healthy } = runDoctorChecks(cwd, args.config);\n\n // If we loaded config, also test runCodegen drift\n if (resolvedConfig) {\n try {\n const codegenRes = await runCodegen({\n contractsDir: resolvedConfig.contractsDir,\n kinds: resolvedConfig.kinds as unknown as ContractKind<unknown>[],\n check: true,\n });\n if (!codegenRes.drift) {\n checks.push({\n name: 'Contract Codegen Sync',\n status: 'ok',\n message: 'Generated contract artifacts match contracts byte-for-byte',\n });\n } else {\n checks.push({\n name: 'Contract Codegen Sync',\n status: 'error',\n message: 'Generated contract code drifted from contract sources',\n recommendation: 'Run `cdal codegen` to regenerate artifacts.',\n });\n }\n } catch {\n // ignore codegen errors in doctor if contractsDir empty\n }\n }\n\n for (const check of checks) {\n if (check.status === 'ok') {\n console.log(pc.green(` ✓ [OK] ${pc.bold(check.name)}: ${check.message}`));\n } else if (check.status === 'warn') {\n console.log(pc.yellow(` ⚠️ [WARN] ${pc.bold(check.name)}: ${check.message}`));\n if (check.recommendation) {\n console.log(pc.dim(` Recommendation: ${check.recommendation}`));\n }\n } else {\n console.log(pc.red(` ❌ [FAIL] ${pc.bold(check.name)}: ${check.message}`));\n if (check.recommendation) {\n console.log(pc.yellow(` Recommendation: ${check.recommendation}`));\n }\n }\n }\n\n if (healthy) {\n console.log(\n pc.bold(pc.green('\\n✅ Doctor report: Environment and CDAL quality gates are healthy!\\n')),\n );\n } else {\n console.log(pc.bold(pc.red('\\n❌ Doctor report: Some critical diagnostic checks failed.\\n')));\n process.exit(1);\n }\n },\n});\n","import fs from 'node:fs';\nimport { type HookName, executeHook } from '@cdal/adapters';\nimport { loadConfig } from '@cdal/core';\nimport { defineCommand } from 'citty';\n\nconst VALID_HOOKS = new Set([\n 'guard-paths',\n 'guard-forbidden',\n 'guard-bash',\n 'session-context',\n 'log-subagent',\n]);\n\nexport const hookCommand = defineCommand({\n meta: {\n name: 'hook',\n description: 'Entrypoint for agent runtime hooks (Claude Code, Antigravity, etc.)',\n },\n args: {\n name: {\n type: 'positional',\n description:\n 'Hook name to execute: guard-paths, guard-forbidden, guard-bash, session-context, log-subagent',\n required: true,\n },\n role: {\n type: 'positional',\n description: 'Fallback agent role name if not specified in hook payload',\n required: false,\n },\n runtime: {\n type: 'string',\n description: 'Target runtime adapter (claude-code, antigravity)',\n default: 'claude-code',\n },\n config: {\n type: 'string',\n description: 'Path to cdal.config.mjs',\n },\n },\n async run({ args }) {\n const hookName = args.name as HookName;\n if (!VALID_HOOKS.has(hookName)) {\n process.stderr.write(\n `Unknown hook name \"${hookName}\". Valid hooks: ${Array.from(VALID_HOOKS).join(', ')}\\n`,\n );\n process.exit(1);\n }\n\n let rawPayload = '';\n try {\n rawPayload = fs.readFileSync(0, 'utf8');\n } catch {\n // stdin was not piped or not accessible\n }\n\n const cwd = process.cwd();\n const { config } = await loadConfig(args.config);\n\n const result = await executeHook(hookName, rawPayload, {\n cwd,\n config,\n fallbackRole: args.role,\n runtime: args.runtime as 'claude-code' | 'antigravity' | 'generic',\n });\n\n if (result.stdout) {\n process.stdout.write(`${result.stdout}\\n`);\n }\n\n if (result.stderr) {\n process.stderr.write(result.stderr);\n }\n\n process.exit(result.exitCode);\n },\n});\n","import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';\nimport { join } from 'node:path';\nimport { syncAdapters } from '@cdal/adapters';\nimport { resolveConfig } from '@cdal/core';\nimport { defineCommand } from 'citty';\nimport pc from 'picocolors';\n\nexport const initCommand = defineCommand({\n meta: {\n name: 'init',\n description:\n 'Initialize CDAL quality gates, starter contracts, and runtime adapters in the repository',\n },\n args: {\n yes: {\n type: 'boolean',\n description: 'Accept default recommendations non-interactively',\n alias: 'y',\n default: false,\n },\n preset: {\n type: 'string',\n description: 'Preset configuration to apply (e.g. typescript-strict, nextjs, node-service)',\n default: 'typescript-strict',\n },\n runtime: {\n type: 'string',\n description: 'Comma-separated runtimes to enable (claude-code, agents-md, antigravity)',\n default: 'claude-code,agents-md',\n },\n cwd: {\n type: 'string',\n description: 'Target directory to initialize',\n },\n },\n async run({ args }) {\n const cwd = args.cwd || process.cwd();\n console.log(pc.bold(pc.cyan('\\n🚀 Initializing Contract-Driven Agentic Loop (CDAL)...\\n')));\n\n const preset = args.preset || 'typescript-strict';\n const rawRuntimes = (args.runtime || 'claude-code,agents-md')\n .split(',')\n .map((r) => r.trim())\n .filter(Boolean);\n\n // 1. Create contracts directory and sample contract if missing\n const contractsDir = join(cwd, 'contracts');\n if (!existsSync(contractsDir)) {\n mkdirSync(contractsDir, { recursive: true });\n }\n\n const sampleContractPath = join(contractsDir, 'requirements.contract.mjs');\n if (!existsSync(sampleContractPath)) {\n const sampleContractContent = `// @origin: cdal init\nexport const REQUIREMENTS = [\n {\n id: 'REQ-CORE-INIT-1',\n statement: 'System must initialize workspace with contract-driven quality gates.',\n acceptance: [\n 'cdal validate succeeds without errors',\n 'Test cases are marked with @REQ tags',\n ],\n status: 'TODO',\n priority: 'CRITICAL',\n source: 'cdal.config.mjs',\n },\n {\n id: 'REQ-CORE-INIT-2',\n statement: 'Every implemented requirement is proven by a test tagged with its ID.',\n acceptance: ['cdal trace --enforce passes'],\n status: 'TODO',\n priority: 'HIGH',\n source: 'cdal.config.mjs',\n },\n];\n`;\n writeFileSync(sampleContractPath, sampleContractContent, 'utf8');\n console.log(\n pc.green(` ✓ Created starter contract: ${pc.bold('contracts/requirements.contract.mjs')}`),\n );\n }\n\n // 2. Create cdal.config.mjs if missing\n const configPath = join(cwd, 'cdal.config.mjs');\n if (!existsSync(configPath)) {\n const runtimesFormatted = rawRuntimes.map((r) => `'${r}'`).join(', ');\n const configContent = `import { defineConfig } from '@cdal/core';\nimport { policies, requirements, stateMachine } from '@cdal/kinds';\n\nexport default defineConfig({\n contractsDir: 'contracts',\n generated: {\n ts: 'src/generated/contracts',\n docs: 'docs/generated',\n },\n kinds: [requirements(), stateMachine(), policies()],\n presets: ['${preset}'],\n runtimes: [${runtimesFormatted}],\n verify: [\n 'cdal validate --strict',\n 'cdal codegen --check',\n 'cdal trace --enforce',\n 'cdal selftest',\n ],\n});\n`;\n writeFileSync(configPath, configContent, 'utf8');\n console.log(pc.green(` ✓ Created configuration: ${pc.bold('cdal.config.mjs')}`));\n } else {\n console.log(\n pc.dim(' ℹ cdal.config.mjs already exists (preserving existing configuration).'),\n );\n }\n\n // 3. Update package.json scripts if package.json exists\n const pkgPath = join(cwd, 'package.json');\n if (existsSync(pkgPath)) {\n try {\n const pkgRaw = readFileSync(pkgPath, 'utf8');\n const pkg = JSON.parse(pkgRaw);\n pkg.scripts = pkg.scripts || {};\n let updated = false;\n\n if (!pkg.scripts.verify) {\n pkg.scripts.verify = 'cdal verify';\n updated = true;\n }\n if (!pkg.scripts.selftest) {\n pkg.scripts.selftest = 'cdal selftest';\n updated = true;\n }\n if (!pkg.scripts.trace) {\n pkg.scripts.trace = 'cdal trace';\n updated = true;\n }\n\n if (updated) {\n writeFileSync(pkgPath, `${JSON.stringify(pkg, null, 2)}\\n`, 'utf8');\n console.log(\n pc.green(` ✓ Added verify/selftest/trace scripts to ${pc.bold('package.json')}`),\n );\n }\n } catch {\n console.log(pc.yellow(' ⚠️ Could not update package.json scripts automatically.'));\n }\n }\n\n // 4. Synchronize adapter files across selected runtimes\n const resolvedConfig = resolveConfig({\n presets: [preset],\n runtimes: rawRuntimes,\n });\n\n const syncRes = syncAdapters({\n cwd,\n config: resolvedConfig,\n check: false,\n });\n\n console.log(\n pc.green(\n ` ✓ Generated ${syncRes.updatedFiles.length} runtime adapter file(s) across [${rawRuntimes.join(', ')}].`,\n ),\n );\n\n console.log(pc.bold(pc.green('\\n🎉 CDAL initialized successfully!')));\n console.log(pc.cyan('Next steps:'));\n console.log(pc.dim(' 1. Review contracts in contracts/*.contract.mjs'));\n console.log(pc.dim(' 2. Run `npx cdalkit doctor` to verify environment health'));\n console.log(pc.dim(' 3. Run `npx cdalkit verify` to test the loop gate\\n'));\n },\n});\n","import { type PhaseType, checkPhase, loadConfig } from '@cdal/core';\nimport { defineCommand } from 'citty';\nimport pc from 'picocolors';\n\nexport const phaseCommand = defineCommand({\n meta: {\n name: 'phase',\n description: 'Verify git diff against active loop phase (contract, red, green)',\n },\n args: {\n phase: {\n type: 'positional',\n description: 'Phase to verify: contract, red, green',\n required: true,\n },\n base: {\n type: 'string',\n description: 'Base git reference to compare against (e.g. main or origin/main)',\n },\n json: {\n type: 'boolean',\n description: 'Output as JSON payload',\n default: false,\n },\n config: {\n type: 'string',\n description: 'Path to cdal.config.mjs',\n },\n },\n async run({ args }) {\n const rawPhase = (args.phase || '').toLowerCase();\n if (!['contract', 'red', 'green'].includes(rawPhase)) {\n console.error(pc.red(`Invalid phase \"${rawPhase}\". Valid phases are: contract, red, green.`));\n process.exit(2);\n }\n const phase = rawPhase as PhaseType;\n\n const cwd = process.cwd();\n const { config: resolvedConfig } = await loadConfig(args.config);\n\n const result = checkPhase(phase, {\n cwd,\n base: args.base,\n protectedPaths: resolvedConfig?.protectedPaths,\n });\n\n if (args.json) {\n console.log(JSON.stringify(result, null, 2));\n process.exit(result.ok ? 0 : 1);\n }\n\n console.log(pc.bold(`\\n Phase: ${result.label}`));\n console.log(` Modified files in diff: ${result.files.length}\\n`);\n\n if (result.violations.length === 0) {\n if (result.files.length === 0) {\n if (phase === 'red') {\n console.log(\n pc.yellow(\n ' ⚠ No changes found in working tree. Phase RED requires at least one test.',\n ),\n );\n process.exit(1);\n }\n console.log(pc.dim(' No changes found in working tree.'));\n process.exit(0);\n }\n console.log(pc.green(' ✔ All changes are within active phase scopes.'));\n process.exit(0);\n }\n\n console.log(\n pc.red(` ✗ ${result.violations.length} file(s) outside of permitted phase scope:\\n`),\n );\n for (const v of result.violations) {\n console.log(` - ${v}`);\n }\n console.log(pc.dim(`\\n ${result.why}\\n`));\n process.exit(1);\n },\n});\n","import { execFileSync } from 'node:child_process';\nimport { existsSync, mkdtempSync, rmSync } from 'node:fs';\nimport { tmpdir } from 'node:os';\nimport { join, resolve } from 'node:path';\nimport { defineCommand } from 'citty';\nimport pc from 'picocolors';\nimport { ProInstallError, installPro } from '../pro/install.js';\n\nexport const PRO_REPOSITORY_URL = 'https://github.com/cdalkit/cdal-pro.git';\nexport const PRO_TEAM_REPOSITORY_URL = 'https://github.com/cdalkit/cdal-pro-team.git';\n\n/** The private repository to install from: cdal-pro, or cdal-pro-team with --team. */\nexport function proRepositoryUrl(team: boolean): string {\n return team ? PRO_TEAM_REPOSITORY_URL : PRO_REPOSITORY_URL;\n}\n\n/** Clones a git source into a temp directory; local directories are used as-is. */\nfunction resolveSource(from: string): { dir: string; cleanup: () => void } {\n const local = resolve(from);\n if (existsSync(local)) return { dir: local, cleanup: () => {} };\n\n const dir = mkdtempSync(join(tmpdir(), 'cdal-pro-'));\n const cleanup = () => rmSync(dir, { recursive: true, force: true });\n try {\n execFileSync('git', ['clone', '--depth', '1', '--quiet', from, dir], {\n stdio: ['ignore', 'ignore', 'pipe'],\n });\n } catch {\n cleanup();\n throw new ProInstallError(\n `Could not clone ${from}.\\n CDAL Pro is delivered as a private GitHub repository: accept the invitation sent after your purchase, make sure git can access GitHub as that account, then run this command again.`,\n );\n }\n return { dir, cleanup };\n}\n\nconst installCommand = defineCommand({\n meta: {\n name: 'install',\n description: 'Install CDAL Pro content (agent roles, templates, presets) into this project',\n },\n args: {\n from: {\n type: 'string',\n description:\n 'Local copy or git URL of the Pro repository (default: cdal-pro, or cdal-pro-team with --team)',\n },\n team: {\n type: 'boolean',\n description: 'Install CDAL Pro Team (editor guards, presets, playbook) from cdal-pro-team',\n default: false,\n },\n cwd: {\n type: 'string',\n description: 'Project directory to install into',\n default: '.',\n },\n force: {\n type: 'boolean',\n description: 'Overwrite files that already exist in the project',\n default: false,\n },\n dryRun: {\n type: 'boolean',\n description: 'Show what would be installed without writing anything',\n default: false,\n },\n },\n run({ args }) {\n let source: { dir: string; cleanup: () => void } | undefined;\n try {\n source = resolveSource(args.from || proRepositoryUrl(args.team));\n const result = installPro({\n sourceDir: source.dir,\n targetDir: resolve(args.cwd),\n force: args.force,\n dryRun: args.dryRun,\n });\n\n const verb = args.dryRun ? 'Would install' : 'Installed';\n console.log(pc.green(`✔ ${verb} ${result.name} ${result.version}`));\n console.log(` ${result.written.length} file(s) ${args.dryRun ? 'to write' : 'written'}`);\n if (result.skipped.length > 0) {\n console.log(\n pc.yellow(\n ` ${result.skipped.length} existing file(s) kept — rerun with --force to overwrite:`,\n ),\n );\n for (const file of result.skipped) console.log(pc.dim(` ${file}`));\n }\n if (!args.dryRun) {\n console.log(pc.dim(' Run `npx cdalkit sync` to wire the new roles into your runtimes.'));\n }\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n console.error(pc.red(`✖ ${message}`));\n process.exit(1);\n } finally {\n source?.cleanup();\n }\n },\n});\n\nexport const proCommand = defineCommand({\n meta: {\n name: 'pro',\n description: 'CDAL Pro: install licensed agent roles, templates and presets',\n },\n subCommands: {\n install: installCommand,\n },\n});\n","import {\n copyFileSync,\n existsSync,\n mkdirSync,\n readFileSync,\n readdirSync,\n statSync,\n writeFileSync,\n} from 'node:fs';\nimport { dirname, isAbsolute, join, relative, resolve, sep } from 'node:path';\n\nexport const PRO_MANIFEST_FILE = 'pro.manifest.json';\nexport const PRO_RECORD_FILE = '.cdal/pro.json';\n\n/** Where an installed Pro package records its version: .cdal/pro.json for cdal-pro, .cdal/<name>.json otherwise. */\nexport function proRecordFile(name: string): string {\n return name === 'cdal-pro' ? PRO_RECORD_FILE : `.cdal/${name.replace(/^cdal-/, '')}.json`;\n}\n\n// Files carrying these markers were generated by `cdalkit sync`/`init` and can be regenerated,\n// so Pro content may replace them; anything else in the project is user-owned.\nconst GENERATED_MARKERS = ['CDAL GENERATED', 'GENERATED by cdal sync'];\n\nfunction isGeneratedFile(path: string): boolean {\n const content = readFileSync(path, 'utf8');\n return GENERATED_MARKERS.some((marker) => content.includes(marker));\n}\n\nexport class ProInstallError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'ProInstallError';\n }\n}\n\nexport interface ProManifest {\n name: string;\n version: string;\n install: Array<{ from: string; to: string }>;\n}\n\nexport interface ProInstallOptions {\n /** Directory containing pro.manifest.json (a clone of cdal-pro or a local copy). */\n sourceDir: string;\n /** Project root to install into. */\n targetDir: string;\n /** Overwrite files that already exist in the project. */\n force?: boolean;\n /** Report what would be written without touching the project. */\n dryRun?: boolean;\n}\n\nexport interface ProInstallResult {\n name: string;\n version: string;\n /** Project-relative paths written (or, in dry-run mode, that would be written). */\n written: string[];\n /** Project-relative paths left untouched because they already exist. */\n skipped: string[];\n}\n\nfunction toPosix(path: string): string {\n return path.split(sep).join('/');\n}\n\n/** Resolves `rel` under `root`, refusing absolute paths and anything that escapes `root`. */\nfunction resolveInside(root: string, rel: string, label: string): string {\n if (typeof rel !== 'string' || rel.length === 0 || isAbsolute(rel)) {\n throw new ProInstallError(`Invalid ${label} path in ${PRO_MANIFEST_FILE}: \"${rel}\"`);\n }\n const full = resolve(root, rel);\n const fromRoot = relative(root, full);\n if (fromRoot.startsWith('..') || isAbsolute(fromRoot)) {\n throw new ProInstallError(`${label} path \"${rel}\" escapes its directory`);\n }\n return full;\n}\n\nexport function readProManifest(sourceDir: string): ProManifest {\n const manifestPath = join(sourceDir, PRO_MANIFEST_FILE);\n if (!existsSync(manifestPath)) {\n throw new ProInstallError(`No ${PRO_MANIFEST_FILE} found in ${sourceDir}`);\n }\n let manifest: ProManifest;\n try {\n manifest = JSON.parse(readFileSync(manifestPath, 'utf8')) as ProManifest;\n } catch (err) {\n throw new ProInstallError(\n `${PRO_MANIFEST_FILE} is not valid JSON: ${err instanceof Error ? err.message : String(err)}`,\n );\n }\n if (!manifest.name || !manifest.version || !Array.isArray(manifest.install)) {\n throw new ProInstallError(`${PRO_MANIFEST_FILE} must define name, version and install[]`);\n }\n return manifest;\n}\n\nfunction listFiles(dir: string): string[] {\n const files: string[] = [];\n for (const entry of readdirSync(dir, { withFileTypes: true })) {\n const full = join(dir, entry.name);\n if (entry.isDirectory()) files.push(...listFiles(full));\n else if (entry.isFile()) files.push(full);\n }\n return files;\n}\n\nexport function installPro(options: ProInstallOptions): ProInstallResult {\n const sourceDir = resolve(options.sourceDir);\n const targetDir = resolve(options.targetDir);\n const manifest = readProManifest(sourceDir);\n\n // Resolve every mapping before writing anything, so a bad entry aborts cleanly.\n const plan: Array<{ src: string; dest: string; rel: string }> = [];\n for (const mapping of manifest.install) {\n const from = resolveInside(sourceDir, mapping.from, 'from');\n const to = resolveInside(targetDir, mapping.to, 'to');\n if (!existsSync(from)) {\n throw new ProInstallError(`Manifest source \"${mapping.from}\" does not exist`);\n }\n const sources = statSync(from).isDirectory() ? listFiles(from) : [from];\n for (const src of sources) {\n const dest = statSync(from).isDirectory() ? join(to, relative(from, src)) : to;\n plan.push({ src, dest, rel: toPosix(relative(targetDir, dest)) });\n }\n }\n\n const written: string[] = [];\n const skipped: string[] = [];\n for (const { src, dest, rel } of plan) {\n if (existsSync(dest) && !options.force && !isGeneratedFile(dest)) {\n skipped.push(rel);\n continue;\n }\n written.push(rel);\n if (!options.dryRun) {\n mkdirSync(dirname(dest), { recursive: true });\n copyFileSync(src, dest);\n }\n }\n\n if (!options.dryRun) {\n const recordPath = join(targetDir, proRecordFile(manifest.name));\n mkdirSync(dirname(recordPath), { recursive: true });\n writeFileSync(\n recordPath,\n `${JSON.stringify(\n {\n name: manifest.name,\n version: manifest.version,\n installedAt: new Date().toISOString(),\n files: plan.map((p) => p.rel).sort(),\n },\n null,\n 2,\n )}\\n`,\n 'utf8',\n );\n }\n\n return { name: manifest.name, version: manifest.version, written, skipped };\n}\n","import { loadConfig, runSelftest } from '@cdal/core';\nimport { defineCommand } from 'citty';\nimport pc from 'picocolors';\n\nexport const selftestCommand = defineCommand({\n meta: {\n name: 'selftest',\n description: 'Run mutation testing on contract invariant rules and content guardrails',\n },\n args: {\n json: {\n type: 'boolean',\n description: 'Output as JSON payload (selftest.v1)',\n default: false,\n },\n config: {\n type: 'string',\n description: 'Path to cdal.config.mjs',\n },\n },\n async run({ args }) {\n const cwd = process.cwd();\n const { config: resolvedConfig } = await loadConfig(args.config);\n\n if (!args.json) {\n console.log(pc.bold(pc.cyan('\\n cdal selftest — mutation testing of quality gates')));\n console.log(\n pc.dim(' Testing whether validator and guardrails actually fire red when violated\\n'),\n );\n }\n\n const report = await runSelftest({\n cwd,\n config: resolvedConfig,\n });\n\n if (args.json) {\n console.log(JSON.stringify(report, null, 2));\n process.exit(report.ok ? 0 : 1);\n }\n\n // Display mutation results\n if (report.mutationResults.length > 0) {\n console.log(\n pc.bold(\n ` Contract Invariant Mutations (${report.mutationsPassed}/${report.mutationsTotal}):`,\n ),\n );\n for (const m of report.mutationResults) {\n if (m.passed) {\n console.log(\n ` ${pc.green('✔')} ${pc.cyan(m.rule.padEnd(26))} detected in ${pc.dim(m.file)}`,\n );\n } else {\n console.log(\n ` ${pc.red('✗')} ${pc.red(m.rule.padEnd(26))} ${pc.bold('MISSED')}: ${m.error ?? 'rule dead'}`,\n );\n }\n }\n console.log('');\n }\n\n // Display content probe results\n if (report.probeResults.length > 0) {\n console.log(\n pc.bold(` Forbidden Content Probes (${report.probesPassed}/${report.probesTotal}):`),\n );\n for (const p of report.probeResults) {\n const action = p.fires ? 'detected' : 'allowed';\n if (p.passed) {\n console.log(\n ` ${pc.green('✔')} ${pc.cyan(p.rule.padEnd(30))} ${pc.green(action)}: ${p.desc}`,\n );\n } else {\n console.log(\n ` ${pc.red('✗')} ${pc.red(p.rule.padEnd(30))} ${pc.bold('FAILED')}: ${p.error ?? 'unexpected behavior'}`,\n );\n }\n }\n console.log('');\n }\n\n // Summary\n console.log(\n pc.bold(\n ` Summary: ${report.mutationsPassed}/${report.mutationsTotal} contract rules verified via mutation.`,\n ),\n );\n console.log(\n pc.bold(\n ` ${report.probesPassed}/${report.probesTotal} content guardrail probes verified.\\n`,\n ),\n );\n if (report.skippedKinds.length > 0) {\n console.log(pc.dim(` Skipped (no contract file yet): ${report.skippedKinds.join(', ')}\\n`));\n }\n\n if (report.failures.length > 0) {\n console.log(pc.bold(pc.red(' CRITICAL GATE FAILURES:')));\n for (const f of report.failures) {\n console.log(` - ${pc.red(f)}`);\n }\n console.log('');\n process.exit(1);\n }\n\n console.log(pc.green(pc.bold(' ✔ Every quality gate rule is verified active and firing.\\n')));\n process.exit(0);\n },\n});\n","import { syncAdapters } from '@cdal/adapters';\nimport { loadConfig } from '@cdal/core';\nimport { defineCommand } from 'citty';\nimport pc from 'picocolors';\n\nexport const syncCommand = defineCommand({\n meta: {\n name: 'sync',\n description:\n 'Synchronize agent definitions, commands, hooks and rules across configured runtimes (with --check drift detection)',\n },\n args: {\n check: {\n type: 'boolean',\n description:\n 'Check for drift between cdal.config.mjs and runtime files without modifying disk',\n default: false,\n },\n config: {\n type: 'string',\n description: 'Custom path to cdal.config.mjs',\n },\n cwd: {\n type: 'string',\n description: 'Working directory path',\n },\n },\n async run({ args }) {\n try {\n const cwd = args.cwd || process.cwd();\n const { config } = await loadConfig(args.config || cwd);\n\n const res = syncAdapters({\n cwd,\n config,\n check: Boolean(args.check),\n });\n\n if (args.check) {\n if (res.inSync) {\n console.log(\n pc.green(\n `✅ Sync check passed: all ${res.totalFiles} adapter file(s) are in sync across [${config.runtimes.join(', ')}].`,\n ),\n );\n } else {\n console.error(\n pc.red(\n `❌ Sync check failed: ${res.driftedFiles.length} adapter file(s) drifted from configuration:`,\n ),\n );\n for (const file of res.driftedFiles) {\n console.error(pc.red(` - [DRIFT] ${file}`));\n }\n console.error(\n pc.yellow(\n '\\nRun `npx cdalkit sync` to synchronize runtime files with cdal.config.mjs.',\n ),\n );\n process.exit(1);\n }\n } else {\n console.log(\n pc.green(\n `✅ Synchronized ${res.updatedFiles.length} adapter file(s) across [${config.runtimes.join(', ')}]:`,\n ),\n );\n for (const file of res.updatedFiles) {\n console.log(pc.cyan(` - ${file}`));\n }\n if (res.updatedFiles.length === 0) {\n console.log(pc.dim(' (All files were already up-to-date)'));\n }\n }\n if (res.preservedFiles.length > 0) {\n console.log(\n pc.dim(\n ` ${res.preservedFiles.length} file(s) marked cdal:preserve were left untouched.`,\n ),\n );\n }\n } catch (err: unknown) {\n const msg = err instanceof Error ? err.message : String(err);\n console.error(pc.red(`❌ Fatal error during sync: ${msg}`));\n process.exit(1);\n }\n },\n});\n","import path from 'node:path';\nimport { pathToFileURL } from 'node:url';\nimport {\n type TraceRequirement,\n formatTraceMarkdown,\n formatTraceText,\n loadConfig,\n scanTrace,\n} from '@cdal/core';\nimport { defineCommand } from 'citty';\nimport pc from 'picocolors';\n\nexport const traceCommand = defineCommand({\n meta: {\n name: 'trace',\n description: 'Inspect requirement-to-test traceability matrix (@REQ tags)',\n },\n args: {\n enforce: {\n type: 'boolean',\n description:\n 'Exit with code 1 if any implementing/done requirement lacks tests, tests fail, or unknown @REQ tags exist',\n default: false,\n },\n markdown: {\n type: 'boolean',\n description: 'Output as Markdown table ready for pull request description',\n default: false,\n },\n json: {\n type: 'boolean',\n description: 'Output as structured JSON (trace.v1)',\n default: false,\n },\n results: {\n type: 'string',\n description: 'Path to test execution JSON results file (vitest or playwright json reporter)',\n },\n config: {\n type: 'string',\n description: 'Path to cdal.config.mjs',\n },\n },\n async run({ args }) {\n const cwd = process.cwd();\n const { config: resolvedConfig } = await loadConfig(args.config);\n\n const contractsDir = resolvedConfig?.contractsDir ?? 'contracts';\n const reqContractPath = path.resolve(cwd, contractsDir, 'requirements.contract.mjs');\n\n let requirements: TraceRequirement[] = [];\n try {\n const imported = await import(pathToFileURL(reqContractPath).href);\n requirements = (imported.REQUIREMENTS ||\n imported.default?.REQUIREMENTS ||\n imported.default ||\n []) as TraceRequirement[];\n } catch (err: unknown) {\n const errorMsg = err instanceof Error ? err.message : String(err);\n console.error(pc.red(`Failed to load requirements from \"${reqContractPath}\": ${errorMsg}`));\n process.exit(1);\n }\n\n if (!Array.isArray(requirements) || requirements.length === 0) {\n console.warn(pc.yellow(`No requirements found in \"${reqContractPath}\".`));\n if (args.enforce) process.exit(1);\n return;\n }\n\n const report = scanTrace(requirements, {\n cwd,\n resultsFile: args.results,\n });\n\n if (args.json) {\n console.log(JSON.stringify(report, null, 2));\n } else if (args.markdown) {\n console.log(formatTraceMarkdown(report));\n } else {\n console.log(formatTraceText(report));\n }\n\n if (args.enforce && !report.ok) {\n process.exit(1);\n }\n },\n});\n","import { formatFindingsText, runValidation } from '@cdal/core';\nimport { defineCommand } from 'citty';\nimport pc from 'picocolors';\nimport { resolveCommandKinds } from '../kinds.js';\n\nexport const validateCommand = defineCommand({\n meta: {\n name: 'validate',\n description: 'Validate contract invariants across all registered contract kinds',\n },\n args: {\n strict: {\n type: 'boolean',\n description: 'Treat warnings as failures (exit 1)',\n default: false,\n },\n json: {\n type: 'boolean',\n description: 'Output findings using machine-readable findings.v1 JSON schema',\n default: false,\n },\n dir: {\n type: 'string',\n description: 'Custom path to contracts directory',\n },\n },\n async run({ args }) {\n try {\n const kinds = await resolveCommandKinds();\n\n const report = await runValidation({\n contractsDir: args.dir,\n strict: Boolean(args.strict),\n kinds,\n });\n\n if (args.json) {\n console.log(JSON.stringify(report, null, 2));\n } else {\n const text = formatFindingsText(report, Boolean(args.strict));\n if (report.valid) {\n console.log(pc.green(text));\n } else {\n console.error(pc.red(text));\n }\n }\n\n if (!report.valid) {\n process.exit(1);\n }\n } catch (err: unknown) {\n const msg = err instanceof Error ? err.message : String(err);\n console.error(pc.red(`❌ Fatal error during contract validation: ${msg}`));\n process.exit(1);\n }\n },\n});\n","import { spawnSync } from 'node:child_process';\nimport { loadConfig } from '@cdal/core';\nimport { defineCommand } from 'citty';\nimport pc from 'picocolors';\n\nexport const verifyCommand = defineCommand({\n meta: {\n name: 'verify',\n description: 'Run deterministic CDAL verification pipeline defined in configuration',\n },\n args: {\n fast: {\n type: 'boolean',\n description: 'Run fast subset of verification steps (contract checks & selftest)',\n default: false,\n },\n full: {\n type: 'boolean',\n description: 'Force execution of all verification steps',\n default: false,\n },\n clean: {\n type: 'boolean',\n description: 'Clear temporary caches before running verification',\n default: false,\n },\n config: {\n type: 'string',\n description: 'Path to cdal.config.mjs',\n },\n cwd: {\n type: 'string',\n description: 'Working directory path',\n },\n },\n async run({ args }) {\n const cwd = args.cwd || process.cwd();\n const { config } = await loadConfig(args.config || cwd);\n\n let steps = [...config.verify];\n\n if (args.fast) {\n // In fast mode, run contract validation, codegen drift check, and selftest\n steps = steps.filter(\n (s) =>\n s.includes('validate') ||\n s.includes('codegen') ||\n s.includes('selftest') ||\n s.includes('typecheck'),\n );\n if (steps.length === 0) {\n steps = [config.verify[0] ?? 'cdal validate --strict'];\n }\n }\n\n console.log(\n pc.bold(pc.cyan(`\\n⚡ Running CDAL Verification Pipeline (${steps.length} step(s))...\\n`)),\n );\n\n for (let i = 0; i < steps.length; i++) {\n const step = steps[i];\n if (!step) continue;\n console.log(pc.bold(pc.blue(`[${i + 1}/${steps.length}] ▶ ${step}`)));\n\n const start = Date.now();\n const res = spawnSync(step, {\n cwd,\n shell: true,\n stdio: 'inherit',\n });\n const duration = Date.now() - start;\n\n if (res.status !== 0) {\n console.error(\n pc.bold(\n pc.red(\n `\\n❌ Verification failed at step: \"${step}\" (exit code ${res.status ?? 1}, took ${duration}ms)`,\n ),\n ),\n );\n process.exit(res.status ?? 1);\n }\n\n console.log(pc.green(` ✓ Step passed in ${duration}ms\\n`));\n }\n\n console.log(\n pc.bold(\n pc.green(`✅ Full verification pipeline succeeded (${steps.length} step(s) passed).`),\n ),\n );\n },\n});\n","import { closeContractWindow, getContractWindowStatus, openContractWindow } from '@cdal/core';\nimport { defineCommand } from 'citty';\nimport pc from 'picocolors';\n\nexport const windowCommand = defineCommand({\n meta: {\n name: 'window',\n description: 'Manage contract window for protected path modifications',\n },\n args: {\n action: {\n type: 'positional',\n description: 'Action to perform: open, close, status',\n required: true,\n },\n ticket: {\n type: 'positional',\n description: 'Ticket or reason ID (required for open)',\n required: false,\n },\n duration: {\n type: 'string',\n description: 'Window duration in minutes (default: 60)',\n default: '60',\n },\n },\n run({ args }) {\n const action = args.action.toLowerCase();\n\n if (action === 'open') {\n const ticket = args.ticket;\n if (!ticket) {\n console.error(\n pc.red(\n 'Error: \"cdal window open\" requires a ticket or work order argument. Example: cdal window open WO-123',\n ),\n );\n process.exit(1);\n }\n const durationMinutes = Number.parseInt(args.duration, 10) || 60;\n const status = openContractWindow(ticket, { durationMinutes });\n console.log(pc.green(`✔ Contract window opened for ticket: ${pc.bold(status.ticket)}`));\n console.log(pc.dim(` Expires at: ${status.expiresAt}`));\n return;\n }\n\n if (action === 'close') {\n closeContractWindow();\n console.log(pc.green('✔ Contract window closed. Protected paths are locked.'));\n return;\n }\n\n if (action === 'status') {\n const status = getContractWindowStatus();\n if (status.open) {\n console.log(pc.green(`Contract window is ${pc.bold('OPEN')}`));\n console.log(` Ticket: ${status.ticket ?? 'none'}`);\n console.log(` Opened at: ${status.openedAt ?? 'unknown'}`);\n console.log(` Expires at: ${status.expiresAt ?? 'unknown'}`);\n } else {\n console.log(pc.yellow(`Contract window is ${pc.bold('CLOSED')}`));\n }\n return;\n }\n\n console.error(pc.red(`Unknown action \"${action}\". Available actions: open, close, status`));\n process.exit(1);\n },\n});\n"],"mappings":"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","names":["defineCommand","defineCommand","pc","defineCommand","pc","loadConfig","runCodegen","defineCommand","pc","loadConfig","defineCommand","existsSync","readFileSync","writeFileSync","join","syncAdapters","defineCommand","pc","loadConfig","defineCommand","pc","existsSync","join","resolve","defineCommand","pc","existsSync","mkdirSync","readFileSync","writeFileSync","join","resolve","path","resolve","existsSync","join","defineCommand","pc","loadConfig","defineCommand","pc","syncAdapters","loadConfig","defineCommand","pc","loadConfig","defineCommand","pc","requirements","defineCommand","pc","defineCommand","pc","spawnSync","loadConfig","defineCommand","pc","defineCommand","pc","defineCommand"]}
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "cdalkit",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "description": "Command-line interface and hook router for CDAL (Contract-Driven Agentic Loop)",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Michał Sznurowski",
7
- "homepage": "https://cdal-henna.vercel.app",
7
+ "homepage": "https://cdalkit.tech",
8
8
  "repository": {
9
9
  "type": "git",
10
10
  "url": "git+https://github.com/aiprojectmanagersznurowski-afk/cdal.git",
@@ -48,10 +48,10 @@
48
48
  "citty": "^0.1.6",
49
49
  "picocolors": "^1.1.1",
50
50
  "tinyglobby": "^0.2.10",
51
- "@cdal/adapters": "0.1.3",
52
- "@cdal/core": "0.1.1",
53
- "@cdal/kinds": "0.1.1",
54
- "@cdal/audit": "0.1.1"
51
+ "@cdal/adapters": "0.1.4",
52
+ "@cdal/audit": "0.1.2",
53
+ "@cdal/core": "0.1.2",
54
+ "@cdal/kinds": "0.1.2"
55
55
  },
56
56
  "devDependencies": {
57
57
  "tsup": "^8.3.6",