meto-cli 0.10.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/cli/audit/blueprint.d.ts +53 -0
  2. package/dist/cli/audit/blueprint.d.ts.map +1 -0
  3. package/dist/cli/audit/blueprint.js +386 -0
  4. package/dist/cli/audit/blueprint.js.map +1 -0
  5. package/dist/cli/audit/detect-stack.d.ts +31 -0
  6. package/dist/cli/audit/detect-stack.d.ts.map +1 -0
  7. package/dist/cli/audit/detect-stack.js +154 -0
  8. package/dist/cli/audit/detect-stack.js.map +1 -0
  9. package/dist/cli/audit/fixer.d.ts +75 -0
  10. package/dist/cli/audit/fixer.d.ts.map +1 -0
  11. package/dist/cli/audit/fixer.js +802 -0
  12. package/dist/cli/audit/fixer.js.map +1 -0
  13. package/dist/cli/audit/index.d.ts +24 -0
  14. package/dist/cli/audit/index.d.ts.map +1 -0
  15. package/dist/cli/audit/index.js +212 -0
  16. package/dist/cli/audit/index.js.map +1 -0
  17. package/dist/cli/audit/reporter.d.ts +42 -0
  18. package/dist/cli/audit/reporter.d.ts.map +1 -0
  19. package/dist/cli/audit/reporter.js +101 -0
  20. package/dist/cli/audit/reporter.js.map +1 -0
  21. package/dist/cli/audit/scanner.d.ts +48 -0
  22. package/dist/cli/audit/scanner.d.ts.map +1 -0
  23. package/dist/cli/audit/scanner.js +202 -0
  24. package/dist/cli/audit/scanner.js.map +1 -0
  25. package/dist/cli/index.js +6 -0
  26. package/dist/cli/index.js.map +1 -1
  27. package/dist/cli/renderer.d.ts.map +1 -1
  28. package/dist/cli/renderer.js +3 -1
  29. package/dist/cli/renderer.js.map +1 -1
  30. package/dist/cli/stacks.d.ts +11 -0
  31. package/dist/cli/stacks.d.ts.map +1 -1
  32. package/dist/cli/stacks.js +82 -0
  33. package/dist/cli/stacks.js.map +1 -1
  34. package/package.json +1 -1
  35. package/templates/.claude/agents/developer-agent.md +4 -1
  36. package/templates/.claude/agents/tester-agent.md +4 -1
  37. package/templates/CLAUDE.md +3 -0
  38. package/templates/ai/workflows/code-guidelines.md +46 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixer.js","sourceRoot":"","sources":["../../../src/cli/audit/fixer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EACL,0BAA0B,EAC1B,aAAa,EACb,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAkCxB,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;;GAGG;AACH,KAAK,UAAU,UAAU,CAAC,QAAgB;IACxC,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,qBAAqB,CAClC,oBAA4B,EAC5B,MAAgB;IAEhB,MAAM,YAAY,GAAG,mBAAmB,EAAE,CAAC;IAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;IAE9D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAClD,OAAO,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,kBAAkB,CAC/B,QAAgB,EAChB,OAAe;IAEf,IAAI,MAAM,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9B,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,MAAM,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,QAAQ;AACR,8EAA8E;AAE9E;;;;GAIG;AACH,SAAS,eAAe,CAAC,eAAuB,EAAE,SAAiB;IACjE,yEAAyE;IACzE,sEAAsE;IACtE,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,mFAAmF;IACnF,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,wDAAwD;IACxD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,oBAAoB,CACjC,UAAkB,EAClB,UAAsB,EACtB,MAAgB;IAEhB,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC;IAEnC,qCAAqC;IACrC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO;YACL,UAAU;YACV,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,GAAG,WAAW,CAAC,WAAW,sBAAsB;SAC1D,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IAEtD,qEAAqE;IACrE,IAAI,MAAM,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACjC,OAAO;YACL,UAAU;YACV,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,iBAAiB;SAC9C,CAAC;IACJ,CAAC;IAED,cAAc;IACd,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC;QAChC,OAAO,EAAE,UAAU,WAAW,CAAC,IAAI,MAAM,WAAW,CAAC,WAAW,GAAG;QACnE,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACxC,OAAO;YACL,UAAU;YACV,OAAO,EAAE,UAAU;YACnB,OAAO,EAAE,WAAW,WAAW,CAAC,IAAI,EAAE;SACvC,CAAC;IACJ,CAAC;IAED,4BAA4B;IAC5B,IAAI,WAAW,CAAC,SAAS,KAAK,YAAY,EAAE,CAAC;QAC3C,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7C,OAAO;gBACL,UAAU;gBACV,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,qBAAqB,WAAW,CAAC,IAAI,GAAG;aAClD,CAAC;QACJ,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACpE,OAAO;gBACL,UAAU;gBACV,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,oBAAoB,WAAW,CAAC,IAAI,MAAM,MAAM,EAAE;aAC5D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,qCAAqC;IACrC,MAAM,YAAY,GAAG,eAAe,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC9E,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO;YACL,UAAU;YACV,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,6BAA6B,WAAW,CAAC,IAAI,EAAE;SACzD,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACnE,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO;YACL,UAAU;YACV,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,0BAA0B,WAAW,CAAC,IAAI,EAAE;SACtD,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC/D,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO;gBACL,UAAU;gBACV,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,WAAW,WAAW,CAAC,IAAI,EAAE;aACvC,CAAC;QACJ,CAAC;QACD,OAAO;YACL,UAAU;YACV,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,kCAAkC;SAC/D,CAAC;IACJ,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QACpE,OAAO;YACL,UAAU;YACV,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,oBAAoB,WAAW,CAAC,IAAI,KAAK,MAAM,EAAE;SAC3D,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,UAAkB,EAClB,WAA4B,EAC5B,MAAgB;IAEhB,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAgB,EAAE,CAAC;IAE9B,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO;YACL,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE;YAC7B,KAAK;SACN,CAAC;IACJ,CAAC;IAED,CAAC,CAAC,GAAG,CAAC,IAAI,CACR,SAAS,WAAW,CAAC,KAAK,CAAC,EAAE,KAAK,WAAW,CAAC,KAAK,CAAC,IAAI,MAAM,aAAa,CAAC,MAAM,SAAS,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,CACzI,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACzE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEtB,iBAAiB;QACjB,QAAQ,SAAS,CAAC,OAAO,EAAE,CAAC;YAC1B,KAAK,SAAS;gBACZ,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBACjC,MAAM;YACR,KAAK,UAAU;gBACb,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBAC9B,MAAM;YACR,KAAK,SAAS;gBACZ,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBACjC,MAAM;YACR,KAAK,OAAO;gBACV,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBAC/B,MAAM;QACV,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE;QAC7B,KAAK;KACN,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,2CAA2C;AAC3C,8EAA8E;AAE9E,kFAAkF;AAClF,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,aAAa;IACb,oBAAoB;IACpB,iBAAiB;CAClB,CAAC,CAAC;AAEH,+EAA+E;AAC/E,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,cAAc;IACd,qBAAqB;IACrB,kBAAkB;CACnB,CAAC,CAAC;AAEH,4EAA4E;AAC5E,MAAM,qBAAqB,GAA2B;IACpD,cAAc,EAAE,wCAAwC;IACxD,qBAAqB,EAAE,+CAA+C;IACtE,kBAAkB,EAAE,4CAA4C;CACjE,CAAC;AAEF;;;GAGG;AACH,SAAS,oBAAoB,CAAC,WAA4B;IACxD,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,CAC7B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CACnE,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,oBAAoB;IACjC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC;QAC5B,OAAO,EAAE,4CAA4C;QACrD,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,QAAiB;gBACxB,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,2DAA2D;aAClE;YACD;gBACE,KAAK,EAAE,OAAgB;gBACvB,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,oDAAoD;aAC3D;SACF;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,UAAkB,EAClB,WAA4B,EAC5B,MAAgB;IAEhB,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAgB,EAAE,CAAC;IAE9B,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO;YACL,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE;YAC7B,KAAK;SACN,CAAC;IACJ,CAAC;IAED,CAAC,CAAC,GAAG,CAAC,IAAI,CACR,SAAS,WAAW,CAAC,KAAK,CAAC,EAAE,KAAK,WAAW,CAAC,KAAK,CAAC,IAAI,MAAM,aAAa,CAAC,MAAM,SAAS,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,CACzI,CAAC;IAEF,qEAAqE;IACrE,IAAI,YAAY,GAAiB,QAAQ,CAAC;IAC1C,IAAI,oBAAoB,CAAC,WAAW,CAAC,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,oBAAoB,EAAE,CAAC;QAC5C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,sCAAsC;YACtC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;gBACnC,KAAK,CAAC,IAAI,CAAC;oBACT,UAAU,EAAE,MAAM;oBAClB,OAAO,EAAE,UAAU;oBACnB,OAAO,EAAE,WAAW,MAAM,CAAC,WAAW,CAAC,IAAI,8BAA8B;iBAC1E,CAAC,CAAC;YACL,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;QAClD,CAAC;QACD,YAAY,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,wDAAwD;IACxD,MAAM,aAAa,GAAa;QAC9B,GAAG,MAAM;QACT,uBAAuB,EAAE,0BAA0B,CAAC,YAAY,CAAC;KAClE,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACnC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;QAE/B,qCAAqC;QACrC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACzB,MAAM,MAAM,GAAc;gBACxB,UAAU,EAAE,MAAM;gBAClB,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,GAAG,WAAW,CAAC,WAAW,sBAAsB;aAC1D,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC9B,SAAS;QACX,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QAEtD,iCAAiC;QACjC,IAAI,MAAM,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,MAAM,MAAM,GAAc;gBACxB,UAAU,EAAE,MAAM;gBAClB,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,iBAAiB;aAC9C,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC9B,SAAS;QACX,CAAC;QAED,4BAA4B;QAC5B,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC;YAChC,OAAO,EAAE,UAAU,WAAW,CAAC,IAAI,MAAM,WAAW,CAAC,WAAW,GAAG;YACnE,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACxC,MAAM,MAAM,GAAc;gBACxB,UAAU,EAAE,MAAM;gBAClB,OAAO,EAAE,UAAU;gBACnB,OAAO,EAAE,WAAW,WAAW,CAAC,IAAI,EAAE;aACvC,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC3B,SAAS;QACX,CAAC;QAED,mEAAmE;QACnE,IAAI,WAAW,CAAC,SAAS,KAAK,YAAY,EAAE,CAAC;YAC3C,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAE7C,+DAA+D;gBAC/D,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBACjE,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;oBACrC,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAC1C,kBAAkB,EAClB,aAAa,CACd,CAAC;oBACF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;wBAC3B,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;wBACrD,MAAM,kBAAkB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;oBACrD,CAAC;gBACH,CAAC;gBAED,MAAM,MAAM,GAAc;oBACxB,UAAU,EAAE,MAAM;oBAClB,OAAO,EAAE,SAAS;oBAClB,OAAO,EAAE,qBAAqB,WAAW,CAAC,IAAI,GAAG;iBAClD,CAAC;gBACF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAChC,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;gBACpE,MAAM,MAAM,GAAc;oBACxB,UAAU,EAAE,MAAM;oBAClB,OAAO,EAAE,OAAO;oBAChB,OAAO,EAAE,oBAAoB,WAAW,CAAC,IAAI,MAAM,MAAM,EAAE;iBAC5D,CAAC;gBACF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;YACD,SAAS;QACX,CAAC;QAED,qCAAqC;QACrC,MAAM,YAAY,GAAG,eAAe,CAClC,WAAW,CAAC,IAAI,EAChB,WAAW,CAAC,SAAS,CACtB,CAAC;QACF,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAc;gBACxB,UAAU,EAAE,MAAM;gBAClB,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,6BAA6B,WAAW,CAAC,IAAI,EAAE;aACzD,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC9B,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QAC1E,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAc;gBACxB,UAAU,EAAE,MAAM;gBAClB,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,0BAA0B,WAAW,CAAC,IAAI,EAAE;aACtD,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC5B,SAAS;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC/D,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,MAAM,GAAc;oBACxB,UAAU,EAAE,MAAM;oBAClB,OAAO,EAAE,SAAS;oBAClB,OAAO,EAAE,WAAW,WAAW,CAAC,IAAI,EAAE;iBACvC,CAAC;gBACF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAc;oBACxB,UAAU,EAAE,MAAM;oBAClB,OAAO,EAAE,SAAS;oBAClB,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,kCAAkC;iBAC/D,CAAC;gBACF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACpE,MAAM,MAAM,GAAc;gBACxB,UAAU,EAAE,MAAM;gBAClB,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,oBAAoB,WAAW,CAAC,IAAI,KAAK,MAAM,EAAE;aAC3D,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE;QAC7B,KAAK;KACN,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,8CAA8C;AAC9C,8EAA8E;AAE9E;;GAEG;AACH,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,eAAe;IACf,uBAAuB;CACxB,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,sBAAsB;IACtB,gCAAgC;IAChC,0BAA0B;IAC1B,yBAAyB;IACzB,gCAAgC;IAChC,6BAA6B;CAC9B,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,uBAAuB,GAA2B;IACtD,sBAAsB,EAAE;QACtB,EAAE;QACF,0BAA0B;QAC1B,sEAAsE;QACtE,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC;IACZ,gCAAgC,EAAE;QAChC,EAAE;QACF,uBAAuB;QACvB,sEAAsE;QACtE,0DAA0D;QAC1D,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC;IACZ,0BAA0B,EAAE;QAC1B,EAAE;QACF,0BAA0B;QAC1B,yEAAyE;QACzE,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC;IACZ,yBAAyB,EAAE;QACzB,EAAE;QACF,WAAW;QACX,kEAAkE;QAClE,kEAAkE;QAClE,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC;IACZ,gCAAgC,EAAE;QAChC,EAAE;QACF,WAAW;QACX,yEAAyE;QACzE,yEAAyE;QACzE,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC;IACZ,6BAA6B,EAAE;QAC7B,EAAE;QACF,WAAW;QACX,sEAAsE;QACtE,sEAAsE;QACtE,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC;CACb,CAAC;AAEF;;;GAGG;AACH,MAAM,wBAAwB,GAAG;IAC/B,EAAE;IACF,kBAAkB;IAClB,EAAE;IACF,KAAK;IACL,sCAAsC;IACtC,qCAAqC;IACrC,qCAAqC;IACrC,yCAAyC;IACzC,uCAAuC;IACvC,KAAK;IACL,EAAE;CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;GAGG;AACH,KAAK,UAAU,YAAY,CACzB,QAAgB,EAChB,OAAe;IAEf,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,MAAM,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,UAAkB,EAClB,WAA4B,EAC5B,MAAgB;IAEhB,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAgB,EAAE,CAAC;IAE9B,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO;YACL,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE;YAC7B,KAAK;SACN,CAAC;IACJ,CAAC;IAED,CAAC,CAAC,GAAG,CAAC,IAAI,CACR,SAAS,WAAW,CAAC,KAAK,CAAC,EAAE,KAAK,WAAW,CAAC,KAAK,CAAC,IAAI,MAAM,aAAa,CAAC,MAAM,SAAS,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,CACzI,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACnC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;QAE/B,qCAAqC;QACrC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACzB,MAAM,MAAM,GAAc;gBACxB,UAAU,EAAE,MAAM;gBAClB,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,GAAG,WAAW,CAAC,WAAW,sBAAsB;aAC1D,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC9B,SAAS;QACX,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QAEtD,gEAAgE;QAChE,IAAI,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;YAC5C,IAAI,MAAM,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACjC,MAAM,MAAM,GAAc;oBACxB,UAAU,EAAE,MAAM;oBAClB,OAAO,EAAE,SAAS;oBAClB,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,iBAAiB;iBAC9C,CAAC;gBACF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC9B,SAAS;YACX,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC;gBAChC,OAAO,EAAE,UAAU,WAAW,CAAC,IAAI,MAAM,WAAW,CAAC,WAAW,GAAG;gBACnE,YAAY,EAAE,IAAI;aACnB,CAAC,CAAC;YAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACxC,MAAM,MAAM,GAAc;oBACxB,UAAU,EAAE,MAAM;oBAClB,OAAO,EAAE,UAAU;oBACnB,OAAO,EAAE,WAAW,WAAW,CAAC,IAAI,EAAE;iBACvC,CAAC;gBACF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC3B,SAAS;YACX,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACvE,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,MAAM,GAAc;oBACxB,UAAU,EAAE,MAAM;oBAClB,OAAO,EAAE,OAAO;oBAChB,OAAO,EAAE,0BAA0B,WAAW,CAAC,IAAI,EAAE;iBACtD,CAAC;gBACF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC5B,SAAS;YACX,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBAC/D,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,MAAM,GAAc;wBACxB,UAAU,EAAE,MAAM;wBAClB,OAAO,EAAE,SAAS;wBAClB,OAAO,EAAE,WAAW,WAAW,CAAC,IAAI,EAAE;qBACvC,CAAC;oBACF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACnB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAChC,CAAC;qBAAM,CAAC;oBACN,MAAM,MAAM,GAAc;wBACxB,UAAU,EAAE,MAAM;wBAClB,OAAO,EAAE,SAAS;wBAClB,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,kCAAkC;qBAC/D,CAAC;oBACF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACnB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;gBACpE,MAAM,MAAM,GAAc;oBACxB,UAAU,EAAE,MAAM;oBAClB,OAAO,EAAE,OAAO;oBAChB,OAAO,EAAE,oBAAoB,WAAW,CAAC,IAAI,KAAK,MAAM,EAAE;iBAC3D,CAAC;gBACF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;YACD,SAAS;QACX,CAAC;QAED,qEAAqE;QACrE,IAAI,WAAW,CAAC,EAAE,KAAK,+BAA+B,EAAE,CAAC;YACvD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;gBACpC,MAAM,MAAM,GAAc;oBACxB,UAAU,EAAE,MAAM;oBAClB,OAAO,EAAE,SAAS;oBAClB,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,gDAAgD;iBAC7E,CAAC;gBACF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC9B,SAAS;YACX,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC;gBAChC,OAAO,EAAE,wCAAwC,WAAW,CAAC,IAAI,GAAG;gBACpE,YAAY,EAAE,IAAI;aACnB,CAAC,CAAC;YAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACxC,MAAM,MAAM,GAAc;oBACxB,UAAU,EAAE,MAAM;oBAClB,OAAO,EAAE,UAAU;oBACnB,OAAO,EAAE,wCAAwC,WAAW,CAAC,IAAI,EAAE;iBACpE,CAAC;gBACF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC3B,SAAS;YACX,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;gBAC1E,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,MAAM,GAAc;wBACxB,UAAU,EAAE,MAAM;wBAClB,OAAO,EAAE,SAAS;wBAClB,OAAO,EAAE,0CAA0C,WAAW,CAAC,IAAI,EAAE;qBACtE,CAAC;oBACF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACnB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAChC,CAAC;qBAAM,CAAC;oBACN,MAAM,MAAM,GAAc;wBACxB,UAAU,EAAE,MAAM;wBAClB,OAAO,EAAE,OAAO;wBAChB,OAAO,EAAE,uBAAuB,WAAW,CAAC,IAAI,EAAE;qBACnD,CAAC;oBACF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACnB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;gBACpE,MAAM,MAAM,GAAc;oBACxB,UAAU,EAAE,MAAM;oBAClB,OAAO,EAAE,OAAO;oBAChB,OAAO,EAAE,uBAAuB,WAAW,CAAC,IAAI,KAAK,MAAM,EAAE;iBAC9D,CAAC;gBACF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;YACD,SAAS;QACX,CAAC;QAED,wEAAwE;QACxE,IAAI,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;gBACpC,MAAM,MAAM,GAAc;oBACxB,UAAU,EAAE,MAAM;oBAClB,OAAO,EAAE,SAAS;oBAClB,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,gDAAgD;iBAC7E,CAAC;gBACF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC9B,SAAS;YACX,CAAC;YAED,MAAM,KAAK,GAAG,uBAAuB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACtD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAc;oBACxB,UAAU,EAAE,MAAM;oBAClB,OAAO,EAAE,SAAS;oBAClB,OAAO,EAAE,wBAAwB,WAAW,CAAC,EAAE,EAAE;iBAClD,CAAC;gBACF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC9B,SAAS;YACX,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC;gBAChC,OAAO,EAAE,UAAU,WAAW,CAAC,WAAW,CAAC,WAAW,EAAE,OAAO,WAAW,CAAC,IAAI,GAAG;gBAClF,YAAY,EAAE,IAAI;aACnB,CAAC,CAAC;YAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACxC,MAAM,MAAM,GAAc;oBACxB,UAAU,EAAE,MAAM;oBAClB,OAAO,EAAE,UAAU;oBACnB,OAAO,EAAE,oBAAoB,WAAW,CAAC,IAAI,EAAE;iBAChD,CAAC;gBACF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC3B,SAAS;YACX,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBACvD,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,MAAM,GAAc;wBACxB,UAAU,EAAE,MAAM;wBAClB,OAAO,EAAE,SAAS;wBAClB,OAAO,EAAE,YAAY,WAAW,CAAC,WAAW,CAAC,WAAW,EAAE,OAAO,WAAW,CAAC,IAAI,EAAE;qBACpF,CAAC;oBACF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACnB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAChC,CAAC;qBAAM,CAAC;oBACN,MAAM,MAAM,GAAc;wBACxB,UAAU,EAAE,MAAM;wBAClB,OAAO,EAAE,OAAO;wBAChB,OAAO,EAAE,uBAAuB,WAAW,CAAC,IAAI,EAAE;qBACnD,CAAC;oBACF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACnB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;gBACpE,MAAM,MAAM,GAAc;oBACxB,UAAU,EAAE,MAAM;oBAClB,OAAO,EAAE,OAAO;oBAChB,OAAO,EAAE,mBAAmB,WAAW,CAAC,IAAI,KAAK,MAAM,EAAE;iBAC1D,CAAC;gBACF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;YACD,SAAS;QACX,CAAC;QAED,iDAAiD;QACjD,MAAM,MAAM,GAAc;YACxB,UAAU,EAAE,MAAM;YAClB,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,uBAAuB,WAAW,CAAC,EAAE,EAAE;SACjD,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,OAAO;QACL,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE;QAC7B,KAAK;KACN,CAAC;AACJ,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { LayerScanResult } from "./scanner.js";
2
+ /**
3
+ * Result of a single audit check (legacy interface from Layer 0 scaffold).
4
+ * Retained for backward compatibility; the scanner uses ScanResult internally.
5
+ */
6
+ export interface AuditCheckResult {
7
+ /** Human-readable name of the check */
8
+ name: string;
9
+ /** Whether the check passed or failed */
10
+ status: "pass" | "fail";
11
+ /** Descriptive message explaining the result */
12
+ message: string;
13
+ }
14
+ /**
15
+ * Entry point for the `meto-cli audit` command.
16
+ *
17
+ * Runs layered checks against the project directory:
18
+ * 1. Layer 0 (Project Prerequisites) -- must all pass to continue
19
+ * 2. Layer 1 (Methodology) -- gated on Layer 0; offers interactive fixes
20
+ *
21
+ * Returns the collected scan results for use by the reporter (slice-069).
22
+ */
23
+ export declare function runAudit(): Promise<LayerScanResult[]>;
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/audit/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAQpD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;CACjB;AA4HD;;;;;;;;GAQG;AACH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAgI3D"}
@@ -0,0 +1,212 @@
1
+ import { readdir, stat } from "node:fs/promises";
2
+ import * as p from "@clack/prompts";
3
+ import { AUDIT_BLUEPRINT } from "./blueprint.js";
4
+ import { detectStack } from "./detect-stack.js";
5
+ import { scanLayer, skipLayer, layerPassed, getFailedResults, } from "./scanner.js";
6
+ import { fixLayer, fixLayerTwo, fixLayerThree } from "./fixer.js";
7
+ import { getDefinitionOfDone } from "../stacks.js";
8
+ // ---------------------------------------------------------------------------
9
+ // Display helpers
10
+ // ---------------------------------------------------------------------------
11
+ /**
12
+ * Displays a layer's scan results using @clack/prompts.
13
+ */
14
+ function displayLayerResults(layerResult) {
15
+ if (layerResult.skipped) {
16
+ p.note(`Skipped: ${layerResult.skipReason ?? "prerequisite layer failed"}`, `Layer ${layerResult.layer.id} -- ${layerResult.layer.name}`);
17
+ return;
18
+ }
19
+ for (const result of layerResult.results) {
20
+ if (result.status === "pass") {
21
+ p.log.success(`${result.expectation.description}: ${result.message}`);
22
+ }
23
+ else if (result.status === "fail") {
24
+ p.log.error(`${result.expectation.description}: ${result.message}`);
25
+ }
26
+ else {
27
+ p.log.warning(`${result.expectation.description}: ${result.message}`);
28
+ }
29
+ }
30
+ const passed = layerResult.results.filter((r) => r.status === "pass").length;
31
+ const total = layerResult.results.length;
32
+ const failed = layerResult.results.filter((r) => r.status === "fail").length;
33
+ p.note(`${passed}/${total} passed, ${failed} failed`, `Layer ${layerResult.layer.id} -- ${layerResult.layer.name}`);
34
+ }
35
+ // ---------------------------------------------------------------------------
36
+ // Help
37
+ // ---------------------------------------------------------------------------
38
+ /**
39
+ * Prints usage information for the audit command.
40
+ */
41
+ function printAuditHelp() {
42
+ p.intro("meto-cli audit");
43
+ p.note([
44
+ "Usage: meto-cli audit [options]",
45
+ "",
46
+ "Checks whether your project meets methodology standards.",
47
+ "Runs layered checks and offers to fix missing files.",
48
+ "",
49
+ "Layers (gated -- each requires the previous to pass):",
50
+ " Layer 0: Project Prerequisites (git, README, source dir)",
51
+ " Layer 1: Methodology (CLAUDE.md, ai/ structure, task board, workflows)",
52
+ " Layer 2: Agents (.claude/ settings, agent definitions, agent memory)",
53
+ " Layer 3: Governance (definition of done, commit conventions, session checkpoints)",
54
+ "",
55
+ "Options:",
56
+ " --help, -h Show this help message",
57
+ ].join("\n"), "Help");
58
+ p.outro("Run 'meto-cli audit' from your project root.");
59
+ }
60
+ // ---------------------------------------------------------------------------
61
+ // Token map for audit fixes
62
+ // ---------------------------------------------------------------------------
63
+ /**
64
+ * Builds a minimal token map for rendering templates during audit fixes.
65
+ * Uses placeholder values since we are creating missing files in an existing project
66
+ * rather than scaffolding a brand-new one.
67
+ *
68
+ * When a definition-of-done value is provided (from stack detection), it is used
69
+ * instead of the generic placeholder. This allows Layer 3 governance files to
70
+ * contain stack-appropriate done criteria.
71
+ */
72
+ function buildAuditTokenMap(projectDir, definitionOfDone) {
73
+ const projectName = projectDir.split("/").pop() ?? "my-project";
74
+ return {
75
+ PROJECT_NAME: projectName,
76
+ PRODUCT_VISION: "To be defined",
77
+ TECH_STACK: "To be defined",
78
+ TARGET_USERS: "To be defined",
79
+ PROBLEM_STATEMENT: "To be defined",
80
+ SUCCESS_CRITERIA: "To be defined",
81
+ VALUE_PROPOSITION: "To be defined",
82
+ OUT_OF_SCOPE: "To be defined",
83
+ CODE_CONVENTIONS: "To be defined",
84
+ DEFINITION_OF_DONE: definitionOfDone ?? "To be defined by @meto-pm",
85
+ STARTER_EPICS: "",
86
+ STARTER_TASKS: "",
87
+ WORKFLOW_AGENTS_SECTION: "",
88
+ };
89
+ }
90
+ // ---------------------------------------------------------------------------
91
+ // Validation helpers
92
+ // ---------------------------------------------------------------------------
93
+ /**
94
+ * Checks whether the given path is a directory.
95
+ */
96
+ async function isDirectory(dirPath) {
97
+ try {
98
+ const stats = await stat(dirPath);
99
+ return stats.isDirectory();
100
+ }
101
+ catch {
102
+ return false;
103
+ }
104
+ }
105
+ // ---------------------------------------------------------------------------
106
+ // Entry point
107
+ // ---------------------------------------------------------------------------
108
+ /**
109
+ * Entry point for the `meto-cli audit` command.
110
+ *
111
+ * Runs layered checks against the project directory:
112
+ * 1. Layer 0 (Project Prerequisites) -- must all pass to continue
113
+ * 2. Layer 1 (Methodology) -- gated on Layer 0; offers interactive fixes
114
+ *
115
+ * Returns the collected scan results for use by the reporter (slice-069).
116
+ */
117
+ export async function runAudit() {
118
+ const args = process.argv.slice(3);
119
+ if (args.includes("--help") || args.includes("-h")) {
120
+ printAuditHelp();
121
+ return [];
122
+ }
123
+ p.intro("meto-cli audit");
124
+ const projectDir = process.cwd();
125
+ const isValid = await isDirectory(projectDir);
126
+ if (!isValid) {
127
+ p.log.error("Current directory is not a valid project directory. Run this command from within your project root.");
128
+ p.outro("");
129
+ process.exit(1);
130
+ return [];
131
+ }
132
+ let entries;
133
+ try {
134
+ entries = await readdir(projectDir);
135
+ }
136
+ catch {
137
+ p.log.error("Could not read the current directory. Check permissions and try again.");
138
+ p.outro("");
139
+ process.exit(1);
140
+ return [];
141
+ }
142
+ if (entries.length === 0) {
143
+ p.log.error("Current directory is empty. Run this command from within an existing project.");
144
+ p.outro("");
145
+ process.exit(1);
146
+ return [];
147
+ }
148
+ p.log.info(`Auditing project at ${projectDir}`);
149
+ // Detect tech stack for stack-specific definition-of-done content
150
+ const detected = await detectStack(projectDir);
151
+ const stackDod = getDefinitionOfDone(detected.stack);
152
+ const allLayerResults = [];
153
+ let previousLayerPassed = true;
154
+ for (const layer of AUDIT_BLUEPRINT) {
155
+ // Gating: skip this layer if the previous layer failed
156
+ if (!previousLayerPassed) {
157
+ const skipped = skipLayer(layer, `Layer ${layer.id - 1} did not pass -- skipping Layer ${layer.id}`);
158
+ allLayerResults.push(skipped);
159
+ displayLayerResults(skipped);
160
+ continue;
161
+ }
162
+ // Scan the layer
163
+ const scanResult = await scanLayer(projectDir, layer);
164
+ displayLayerResults(scanResult);
165
+ // If there are fixable failures, run the fixer
166
+ const failures = getFailedResults(scanResult);
167
+ const fixableFailures = failures.filter((r) => r.expectation.fixable);
168
+ if (fixableFailures.length > 0) {
169
+ const tokens = buildAuditTokenMap(projectDir, stackDod);
170
+ let fixResult;
171
+ if (layer.id === 2) {
172
+ fixResult = await fixLayerTwo(projectDir, scanResult, tokens);
173
+ }
174
+ else if (layer.id === 3) {
175
+ fixResult = await fixLayerThree(projectDir, scanResult, tokens);
176
+ }
177
+ else {
178
+ fixResult = await fixLayer(projectDir, scanResult, tokens);
179
+ }
180
+ // Re-scan after fixes to get updated results
181
+ const created = fixResult.fixes.filter((f) => f.outcome === "created");
182
+ if (created.length > 0) {
183
+ p.log.info(`Fixed ${created.length} issue${created.length === 1 ? "" : "s"} in Layer ${layer.id}`);
184
+ // Re-scan to reflect fixes
185
+ const rescanResult = await scanLayer(projectDir, layer);
186
+ allLayerResults.push(rescanResult);
187
+ previousLayerPassed = layerPassed(rescanResult);
188
+ }
189
+ else {
190
+ allLayerResults.push(scanResult);
191
+ previousLayerPassed = layerPassed(scanResult);
192
+ }
193
+ }
194
+ else {
195
+ allLayerResults.push(scanResult);
196
+ previousLayerPassed = layerPassed(scanResult);
197
+ }
198
+ }
199
+ // Summary
200
+ const totalExpectations = allLayerResults.reduce((sum, lr) => sum + lr.results.length, 0);
201
+ const totalPassed = allLayerResults.reduce((sum, lr) => sum + lr.results.filter((r) => r.status === "pass").length, 0);
202
+ const totalFailed = allLayerResults.reduce((sum, lr) => sum + lr.results.filter((r) => r.status === "fail").length, 0);
203
+ if (totalFailed > 0) {
204
+ p.outro(`Audit complete: ${totalPassed}/${totalExpectations} passed, ${totalFailed} failed`);
205
+ process.exit(1);
206
+ }
207
+ else {
208
+ p.outro(`Audit complete: ${totalPassed}/${totalExpectations} checks passed`);
209
+ }
210
+ return allLayerResults;
211
+ }
212
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/audit/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Reporter for the audit command.
3
+ * Formats and displays audit results with layered progress bars,
4
+ * per-check pass/fail/skip indicators, and an overall summary.
5
+ *
6
+ * This module is display-only -- it never prompts for fixes.
7
+ */
8
+ /** The outcome of a single check within a layer. */
9
+ export type CheckStatus = "pass" | "fail" | "skip";
10
+ /** Result of evaluating one blueprint expectation. */
11
+ export interface CheckResult {
12
+ /** Human-readable description of the check */
13
+ description: string;
14
+ /** Whether the check passed, failed, or was skipped */
15
+ status: CheckStatus;
16
+ /** Optional message explaining the result (shown on fail/skip) */
17
+ message?: string;
18
+ /** Optional suggested fix action (shown on fail) */
19
+ suggestedFix?: string;
20
+ }
21
+ /** Aggregated result for one audit layer. */
22
+ export interface LayerResult {
23
+ /** Numeric layer identifier (0, 1, 2, 3) */
24
+ layerId: number;
25
+ /** Human-readable layer name */
26
+ layerName: string;
27
+ /** Whether the layer was skipped due to a prior layer failing */
28
+ skipped: boolean;
29
+ /** Individual check results (empty if skipped) */
30
+ checks: CheckResult[];
31
+ }
32
+ /**
33
+ * Displays the full audit report using @clack/prompts log methods.
34
+ *
35
+ * For each layer:
36
+ * - If skipped: shows "skipped -- previous layer incomplete"
37
+ * - Otherwise: shows a progress bar and per-check results
38
+ *
39
+ * Ends with an overall summary score.
40
+ */
41
+ export declare function reportAuditResults(results: LayerResult[]): void;
42
+ //# sourceMappingURL=reporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../../src/cli/audit/reporter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,oDAAoD;AACpD,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEnD,sDAAsD;AACtD,MAAM,WAAW,WAAW;IAC1B,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,MAAM,EAAE,WAAW,CAAC;IACpB,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,6CAA6C;AAC7C,MAAM,WAAW,WAAW;IAC1B,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,OAAO,EAAE,OAAO,CAAC;IACjB,kDAAkD;IAClD,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAsED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAqC/D"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Reporter for the audit command.
3
+ * Formats and displays audit results with layered progress bars,
4
+ * per-check pass/fail/skip indicators, and an overall summary.
5
+ *
6
+ * This module is display-only -- it never prompts for fixes.
7
+ */
8
+ import * as p from "@clack/prompts";
9
+ // ---------------------------------------------------------------------------
10
+ // Progress bar rendering
11
+ // ---------------------------------------------------------------------------
12
+ const BAR_WIDTH = 20;
13
+ const FILLED_CHAR = "\u2588"; // █
14
+ const EMPTY_CHAR = "\u2591"; // ░
15
+ /**
16
+ * Builds a text-based progress bar string.
17
+ * Example: "████████░░░░░░░░░░░░ 40% (2/5)"
18
+ */
19
+ function renderProgressBar(passed, total) {
20
+ if (total === 0) {
21
+ return `${EMPTY_CHAR.repeat(BAR_WIDTH)} 0% (0/0)`;
22
+ }
23
+ const ratio = passed / total;
24
+ const filled = Math.round(ratio * BAR_WIDTH);
25
+ const empty = BAR_WIDTH - filled;
26
+ const percentage = Math.round(ratio * 100);
27
+ return `${FILLED_CHAR.repeat(filled)}${EMPTY_CHAR.repeat(empty)} ${percentage}% (${passed}/${total})`;
28
+ }
29
+ // ---------------------------------------------------------------------------
30
+ // Check indicators
31
+ // ---------------------------------------------------------------------------
32
+ const PASS_INDICATOR = "\u2713"; // ✓
33
+ const FAIL_INDICATOR = "\u2717"; // ✗
34
+ const SKIP_INDICATOR = "-";
35
+ const FIX_ARROW = "\u2192"; // →
36
+ /**
37
+ * Formats a single check result line.
38
+ * Pass: " ✓ Description"
39
+ * Fail: " ✗ Description -- message"
40
+ * " → Suggested fix"
41
+ * Skip: " - Description"
42
+ */
43
+ function formatCheck(check) {
44
+ const lines = [];
45
+ switch (check.status) {
46
+ case "pass":
47
+ lines.push(` ${PASS_INDICATOR} ${check.description}`);
48
+ break;
49
+ case "fail": {
50
+ const suffix = check.message ? ` -- ${check.message}` : "";
51
+ lines.push(` ${FAIL_INDICATOR} ${check.description}${suffix}`);
52
+ if (check.suggestedFix) {
53
+ lines.push(` ${FIX_ARROW} ${check.suggestedFix}`);
54
+ }
55
+ break;
56
+ }
57
+ case "skip":
58
+ lines.push(` ${SKIP_INDICATOR} ${check.description}`);
59
+ break;
60
+ }
61
+ return lines.join("\n");
62
+ }
63
+ // ---------------------------------------------------------------------------
64
+ // Public API
65
+ // ---------------------------------------------------------------------------
66
+ /**
67
+ * Displays the full audit report using @clack/prompts log methods.
68
+ *
69
+ * For each layer:
70
+ * - If skipped: shows "skipped -- previous layer incomplete"
71
+ * - Otherwise: shows a progress bar and per-check results
72
+ *
73
+ * Ends with an overall summary score.
74
+ */
75
+ export function reportAuditResults(results) {
76
+ let totalPassed = 0;
77
+ let totalChecks = 0;
78
+ for (const layer of results) {
79
+ const header = `Layer ${layer.layerId} -- ${layer.layerName}`;
80
+ if (layer.skipped) {
81
+ p.log.message(`${header}: skipped -- previous layer incomplete`);
82
+ continue;
83
+ }
84
+ const passed = layer.checks.filter((c) => c.status === "pass").length;
85
+ const total = layer.checks.length;
86
+ totalPassed += passed;
87
+ totalChecks += total;
88
+ const bar = renderProgressBar(passed, total);
89
+ const checkLines = layer.checks.map(formatCheck).join("\n");
90
+ p.log.message(`${header}\n${bar}\n${checkLines}`);
91
+ }
92
+ // Overall summary
93
+ const overallPercentage = totalChecks > 0 ? Math.round((totalPassed / totalChecks) * 100) : 0;
94
+ if (totalPassed === totalChecks && totalChecks > 0) {
95
+ p.log.success(`Overall: ${totalPassed}/${totalChecks} checks passed (${overallPercentage}%)`);
96
+ }
97
+ else {
98
+ p.log.info(`Overall: ${totalPassed}/${totalChecks} checks passed (${overallPercentage}%)`);
99
+ }
100
+ }
101
+ //# sourceMappingURL=reporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../../src/cli/audit/reporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import type { BlueprintExpectation, BlueprintLayer } from "./blueprint.js";
2
+ /** Outcome of a single expectation check. */
3
+ export type CheckStatus = "pass" | "fail" | "skip";
4
+ /**
5
+ * Result of scanning a single blueprint expectation against the filesystem.
6
+ */
7
+ export interface ScanResult {
8
+ /** The expectation that was checked */
9
+ expectation: BlueprintExpectation;
10
+ /** Whether the check passed, failed, or was skipped */
11
+ status: CheckStatus;
12
+ /** Human-readable explanation of the result */
13
+ message: string;
14
+ }
15
+ /**
16
+ * Result of scanning an entire blueprint layer.
17
+ */
18
+ export interface LayerScanResult {
19
+ /** The layer that was scanned */
20
+ layer: BlueprintLayer;
21
+ /** Individual results for each expectation in the layer */
22
+ results: ScanResult[];
23
+ /** Whether this layer was skipped (e.g. due to gating) */
24
+ skipped: boolean;
25
+ /** Reason the layer was skipped, if applicable */
26
+ skipReason?: string;
27
+ }
28
+ /**
29
+ * Scans all expectations in a single blueprint layer against the project filesystem.
30
+ * Returns a LayerScanResult with individual results for each expectation.
31
+ *
32
+ * This function is layer-agnostic -- it works with any BlueprintLayer.
33
+ */
34
+ export declare function scanLayer(projectDir: string, layer: BlueprintLayer): Promise<LayerScanResult>;
35
+ /**
36
+ * Creates a skipped LayerScanResult for a layer that was gated out.
37
+ * All expectations are marked as "skip" with a reason.
38
+ */
39
+ export declare function skipLayer(layer: BlueprintLayer, reason: string): LayerScanResult;
40
+ /**
41
+ * Checks whether all expectations in a LayerScanResult passed.
42
+ */
43
+ export declare function layerPassed(layerResult: LayerScanResult): boolean;
44
+ /**
45
+ * Returns all failed results from a LayerScanResult.
46
+ */
47
+ export declare function getFailedResults(layerResult: LayerScanResult): ScanResult[];
48
+ //# sourceMappingURL=scanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../../src/cli/audit/scanner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAM3E,6CAA6C;AAC7C,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,uCAAuC;IACvC,WAAW,EAAE,oBAAoB,CAAC;IAClC,uDAAuD;IACvD,MAAM,EAAE,WAAW,CAAC;IACpB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,iCAAiC;IACjC,KAAK,EAAE,cAAc,CAAC;IACtB,2DAA2D;IAC3D,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,0DAA0D;IAC1D,OAAO,EAAE,OAAO,CAAC;IACjB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAgLD;;;;;GAKG;AACH,wBAAsB,SAAS,CAC7B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,eAAe,CAAC,CAa1B;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,MAAM,GACb,eAAe,CAajB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,eAAe,GAAG,OAAO,CAKjE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,eAAe,GAAG,UAAU,EAAE,CAE3E"}