@defai.digital/ax-cli 3.15.26 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/README.md +67 -21
  2. package/config-defaults/prompts.yaml +5 -0
  3. package/dist/agent/execution/tool-executor.js +47 -1
  4. package/dist/agent/execution/tool-executor.js.map +1 -1
  5. package/dist/agent/llm-agent.js +4 -4
  6. package/dist/agent/llm-agent.js.map +1 -1
  7. package/dist/agent/parallel-tools.js +1 -0
  8. package/dist/agent/parallel-tools.js.map +1 -1
  9. package/dist/commands/cache.js +37 -34
  10. package/dist/commands/cache.js.map +1 -1
  11. package/dist/commands/doctor.js +111 -65
  12. package/dist/commands/doctor.js.map +1 -1
  13. package/dist/commands/init/wizard.js +10 -12
  14. package/dist/commands/init/wizard.js.map +1 -1
  15. package/dist/commands/init.d.ts +3 -3
  16. package/dist/commands/init.js +173 -25
  17. package/dist/commands/init.js.map +1 -1
  18. package/dist/commands/mcp.js +106 -55
  19. package/dist/commands/mcp.js.map +1 -1
  20. package/dist/commands/setup.d.ts +0 -1
  21. package/dist/commands/setup.js +33 -194
  22. package/dist/commands/setup.js.map +1 -1
  23. package/dist/commands/usage.js +45 -51
  24. package/dist/commands/usage.js.map +1 -1
  25. package/dist/index.js +3 -0
  26. package/dist/index.js.map +1 -1
  27. package/dist/llm/tools.d.ts +2 -9
  28. package/dist/llm/tools.js +8 -579
  29. package/dist/llm/tools.js.map +1 -1
  30. package/dist/mcp/content-length-transport.d.ts +18 -0
  31. package/dist/mcp/content-length-transport.js +121 -3
  32. package/dist/mcp/content-length-transport.js.map +1 -1
  33. package/dist/mcp/error-remediation.js +54 -17
  34. package/dist/mcp/error-remediation.js.map +1 -1
  35. package/dist/planner/types.d.ts +4 -4
  36. package/dist/tools/ax-agent.d.ts +32 -0
  37. package/dist/tools/ax-agent.js +105 -0
  38. package/dist/tools/ax-agent.js.map +1 -1
  39. package/dist/tools/definitions/ask-user.d.ts +8 -0
  40. package/dist/tools/definitions/ask-user.js +168 -0
  41. package/dist/tools/definitions/ask-user.js.map +1 -0
  42. package/dist/tools/definitions/ax-agent.d.ts +8 -0
  43. package/dist/tools/definitions/ax-agent.js +276 -0
  44. package/dist/tools/definitions/ax-agent.js.map +1 -0
  45. package/dist/tools/definitions/bash-output.d.ts +7 -0
  46. package/dist/tools/definitions/bash-output.js +78 -0
  47. package/dist/tools/definitions/bash-output.js.map +1 -0
  48. package/dist/tools/definitions/bash.d.ts +8 -0
  49. package/dist/tools/definitions/bash.js +152 -0
  50. package/dist/tools/definitions/bash.js.map +1 -0
  51. package/dist/tools/definitions/create-file.d.ts +7 -0
  52. package/dist/tools/definitions/create-file.js +129 -0
  53. package/dist/tools/definitions/create-file.js.map +1 -0
  54. package/dist/tools/definitions/design.d.ts +12 -0
  55. package/dist/tools/definitions/design.js +368 -0
  56. package/dist/tools/definitions/design.js.map +1 -0
  57. package/dist/tools/definitions/index.d.ts +49 -0
  58. package/dist/tools/definitions/index.js +87 -0
  59. package/dist/tools/definitions/index.js.map +1 -0
  60. package/dist/tools/definitions/multi-edit.d.ts +7 -0
  61. package/dist/tools/definitions/multi-edit.js +123 -0
  62. package/dist/tools/definitions/multi-edit.js.map +1 -0
  63. package/dist/tools/definitions/search.d.ts +7 -0
  64. package/dist/tools/definitions/search.js +159 -0
  65. package/dist/tools/definitions/search.js.map +1 -0
  66. package/dist/tools/definitions/str-replace-editor.d.ts +7 -0
  67. package/dist/tools/definitions/str-replace-editor.js +145 -0
  68. package/dist/tools/definitions/str-replace-editor.js.map +1 -0
  69. package/dist/tools/definitions/todo.d.ts +8 -0
  70. package/dist/tools/definitions/todo.js +261 -0
  71. package/dist/tools/definitions/todo.js.map +1 -0
  72. package/dist/tools/definitions/view-file.d.ts +7 -0
  73. package/dist/tools/definitions/view-file.js +111 -0
  74. package/dist/tools/definitions/view-file.js.map +1 -0
  75. package/dist/tools/format-generators.d.ts +62 -0
  76. package/dist/tools/format-generators.js +291 -0
  77. package/dist/tools/format-generators.js.map +1 -0
  78. package/dist/tools/index.d.ts +3 -0
  79. package/dist/tools/index.js +5 -0
  80. package/dist/tools/index.js.map +1 -1
  81. package/dist/tools/types.d.ts +175 -0
  82. package/dist/tools/types.js +11 -0
  83. package/dist/tools/types.js.map +1 -0
  84. package/dist/ui/utils/image-handler.js +3 -0
  85. package/dist/ui/utils/image-handler.js.map +1 -1
  86. package/dist/utils/enhanced-error-messages.js +43 -23
  87. package/dist/utils/enhanced-error-messages.js.map +1 -1
  88. package/dist/utils/init-validator.d.ts +4 -0
  89. package/dist/utils/init-validator.js +17 -13
  90. package/dist/utils/init-validator.js.map +1 -1
  91. package/dist/utils/llm-optimized-instruction-generator.js +97 -136
  92. package/dist/utils/llm-optimized-instruction-generator.js.map +1 -1
  93. package/dist/utils/project-analyzer.d.ts +6 -0
  94. package/dist/utils/project-analyzer.js +92 -189
  95. package/dist/utils/project-analyzer.js.map +1 -1
  96. package/dist/utils/template-manager.d.ts +8 -0
  97. package/dist/utils/template-manager.js +54 -110
  98. package/dist/utils/template-manager.js.map +1 -1
  99. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"llm-optimized-instruction-generator.js","sourceRoot":"","sources":["../../src/utils/llm-optimized-instruction-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm-optimized-instruction-generator.js","sourceRoot":"","sources":["../../src/utils/llm-optimized-instruction-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,MAAM,OAAO,gCAAgC;IACnC,MAAM,CAAqB;IAEnC,YAAY,SAAsC,EAAE;QAClD,IAAI,CAAC,MAAM,GAAG;YACZ,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,UAAU;YACvD,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,IAAI;YACjD,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,IAAI,CAAC;YAClD,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,IAAI;YAC3C,sBAAsB,EAAE,MAAM,CAAC,sBAAsB,IAAI,IAAI;SAC9D,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,WAAwB;QAC3C,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,sBAAsB;QACtB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;QAEhD,gCAAgC;QAChC,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YACjC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC;QACzD,CAAC;QAED,gDAAgD;QAChD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC;QAE/C,gCAAgC;QAChC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC;QAEzD,8BAA8B;QAC9B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC;QAEtD,mDAAmD;QACnD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;QAElD,kBAAkB;QAClB,IAAI,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;YACvC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IAEO,cAAc,CAAC,WAAwB;QAC7C,8DAA8D;QAC9D,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;YAC5C,CAAC,CAAC,gBAAgB,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACpD,CAAC,CAAC,EAAE,CAAC;QAEP,OAAO,KAAK,WAAW,CAAC,IAAI;;YAEpB,WAAW,CAAC,WAAW,gBAAgB,WAAW,CAAC,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;IACjI,CAAC;IAEO,qBAAqB,CAAC,WAAwB;QACpD,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;QAC9D,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,6CAA6C;QAC7C,IAAI,WAAW,CAAC,eAAe,KAAK,KAAK,EAAE,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC;QAC5F,CAAC;QACD,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,uBAAuB,WAAW,CAAC,UAAU,0BAA0B,CAAC,CAAC;QACtF,CAAC;QACD,IAAI,eAAe,KAAK,YAAY,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,WAAW,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;YACvC,KAAK,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;QAChF,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;QAElF,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7E,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAErC,OAAO,2BAA2B,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAChG,CAAC;IAEO,uBAAuB,CAAC,WAAwB;QACtD,MAAM,KAAK,GAAa,CAAC,wBAAwB,CAAC,CAAC;QAEnD,4BAA4B;QAC5B,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,gBAAgB,WAAW,CAAC,UAAU,IAAI,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,WAAW,CAAC,cAAc,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,WAAW,WAAW,CAAC,cAAc,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,WAAW,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,eAAe,WAAW,CAAC,WAAW,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAClC,CAAC;QAED,2BAA2B;QAC3B,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,IAAI,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,OAAO,WAAW,CAAC,WAAW,CAAC,MAAM,mBAAmB,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,OAAO,WAAW,CAAC,WAAW,CAAC,KAAK,aAAa,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,OAAO,WAAW,CAAC,WAAW,CAAC,KAAK,aAAa,CAAC,CAAC;QAC/D,CAAC;QAED,yCAAyC;QACzC,IAAI,WAAW,CAAC,WAAW,KAAK,KAAK,IAAI,WAAW,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;YAC3E,IAAI,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;gBACnC,IAAI,CAAC,IAAI,CAAC,OAAO,WAAW,CAAC,WAAW,CAAC,MAAM,yBAAyB,CAAC,CAAC;gBAC1E,IAAI,CAAC,IAAI,CAAC,OAAO,WAAW,CAAC,WAAW,CAAC,MAAM,uBAAuB,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAEO,oBAAoB,CAAC,WAAwB;QACnD,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC;QAClE,MAAM,QAAQ,GAAa,CAAC,qBAAqB,CAAC,CAAC;QAEnD,oCAAoC;QACpC,IAAI,eAAe,KAAK,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAClE,MAAM,MAAM,GAAG;gBACb,mBAAmB;gBACnB,kDAAkD;gBAClD,GAAG,CAAC,WAAW,CAAC,eAAe,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,qCAAqC,EAAE,iCAAiC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7H,CAAC;YACF,MAAM,QAAQ,GAAG;gBACf,iBAAiB;gBACjB,oCAAoC;gBACpC,GAAG,CAAC,WAAW,CAAC,eAAe,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,4BAA4B,EAAE,oCAAoC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aACvH,CAAC;YACF,QAAQ,CAAC,IAAI,CACX,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EACjB,OAAO,EACP,eAAe,EACf,eAAe,EACf,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EACnB,KAAK,CACN,CAAC;QACJ,CAAC;QAED,sBAAsB;QACtB,IAAI,WAAW,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YACxD,QAAQ,CAAC,IAAI,CACX,mBAAmB,WAAW,CAAC,UAAU,KAAK,EAC9C,WAAW,EACX,eAAe,EACf,wCAAwC,EACxC,wBAAwB,EACxB,mDAAmD,EACnD,GAAG,EACH,KAAK,CACN,CAAC;QACJ,CAAC;QAED,4BAA4B;QAC5B,MAAM,YAAY,GAAuD;YACvE,GAAG,EAAE;gBACH,KAAK,EAAE,oCAAoC;gBAC3C,KAAK,EAAE,CAAC,iDAAiD,EAAE,iCAAiC,EAAE,8BAA8B,EAAE,6CAA6C,CAAC;aAC7K;YACD,GAAG,EAAE;gBACH,KAAK,EAAE,sCAAsC;gBAC7C,KAAK,EAAE,CAAC,8BAA8B,EAAE,8BAA8B,EAAE,sCAAsC,EAAE,+BAA+B,CAAC;aACjJ;YACD,OAAO,EAAE;gBACP,KAAK,EAAE,qCAAqC;gBAC5C,KAAK,EAAE,CAAC,8BAA8B,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,sBAAsB,CAAC;aACjH;SACF,CAAC;QAEF,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,OAAO,EAAE,CAAC;YACZ,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEO,gBAAgB,CAAC,WAAwB;QAC/C,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,WAAW,CAAC;QAChD,MAAM,QAAQ,GAAa;YACzB,gBAAgB;YAChB,aAAa;YACb,2CAA2C;YAC3C,+BAA+B;YAC/B,sCAAsC;YACtC,EAAE;YACF,cAAc;YACd,wCAAwC;YACxC,mCAAmC;YACnC,uBAAuB;YACvB,4CAA4C;SAC7C,CAAC;QAEF,cAAc;QACd,MAAM,UAAU,GAAG;YACjB,OAAO,CAAC,IAAI,IAAI,WAAW,OAAO,CAAC,IAAI,IAAI;YAC3C,OAAO,CAAC,IAAI,IAAI,WAAW,OAAO,CAAC,IAAI,IAAI;YAC3C,OAAO,CAAC,KAAK,IAAI,YAAY,OAAO,CAAC,KAAK,IAAI;SAC/C,CAAC,MAAM,CAAC,OAAO,CAAa,CAAC;QAE9B,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;QACvF,CAAC;QAED,iBAAiB;QACjB,IAAI,cAAc,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,MAAM,GAAG,GAAG,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC;YAClE,MAAM,IAAI,GAAG,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC;YAC/D,MAAM,IAAI,GAAG;gBACX,OAAO,CAAC,GAAG,IAAI,GAAG,GAAG,wBAAwB;gBAC7C,OAAO,CAAC,IAAI,IAAI,GAAG,IAAI,sBAAsB;gBAC7C,OAAO,CAAC,KAAK,IAAI,GAAG,GAAG,6BAA6B;aACrD,CAAC,MAAM,CAAC,CAAC,GAAG,EAAiB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YAE/C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,qBAAqB,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEO,uBAAuB,CAAC,WAAwB;QACtD,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,WAAW,CAAC;QAErD,MAAM,MAAM,GAAY,EAAE,CAAC;QAE3B,mDAAmD;QACnD,IAAI,WAAW,CAAC,eAAe,KAAK,KAAK,EAAE,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC;gBACV,OAAO,EAAE,2BAA2B;gBACpC,QAAQ,EAAE,kDAAkD;gBAC5D,IAAI,EAAE,mGAAmG;aAC1G,CAAC,CAAC;QACL,CAAC;QACD,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC;gBACV,OAAO,EAAE,GAAG,WAAW,CAAC,UAAU,oBAAoB;gBACtD,QAAQ,EAAE,sFAAsF;aACjG,CAAC,CAAC;QACL,CAAC;QACD,IAAI,WAAW,CAAC,aAAa,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC;gBACV,OAAO,EAAE,mCAAmC;gBAC5C,QAAQ,EAAE,yEAAyE;aACpF,CAAC,CAAC;QACL,CAAC;QACD,IAAI,eAAe,KAAK,YAAY,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC;gBACV,OAAO,EAAE,+BAA+B;gBACxC,QAAQ,EAAE,0FAA0F;aACrG,CAAC,CAAC;QACL,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEnC,MAAM,QAAQ,GAAG,CAAC,uBAAuB,CAAC,CAAC;QAC3C,KAAK,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC;YACjD,QAAQ,CAAC,IAAI,CAAC,OAAO,OAAO,EAAE,EAAE,iBAAiB,QAAQ,EAAE,CAAC,CAAC;YAC7D,IAAI,IAAI;gBAAE,QAAQ,CAAC,IAAI,CAAC,qBAAqB,IAAI,UAAU,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,WAAwB;QACpC,MAAM,KAAK,GAAG;YACZ,WAAW,EAAE,WAAW,CAAC,IAAI;YAC7B,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,eAAe,EAAE,WAAW,CAAC,eAAe;YAC5C,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,WAAW,EAAE,WAAW,CAAC,WAAW;YACpC,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,WAAW,EAAE,WAAW,CAAC,WAAW;YACpC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;YAC3C,WAAW,EAAE;gBACX,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC,YAAY;gBAClD,eAAe,EAAE,WAAW,CAAC,WAAW,CAAC,eAAe;gBACxD,aAAa,EAAE,WAAW,CAAC,WAAW,CAAC,aAAa;gBACpD,UAAU,EAAE,WAAW,CAAC,WAAW,CAAC,UAAU;aAC/C;YACD,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,cAAc,EAAE,WAAW,CAAC,cAAc;YAC1C,YAAY,EAAE,WAAW,CAAC,YAAY;SACvC,CAAC;QAEF,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACK,wBAAwB;QAC9B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6EJ,CAAC;IACN,CAAC;CAEF"}
@@ -8,6 +8,10 @@ export declare class ProjectAnalyzer {
8
8
  private packageJsonCache;
9
9
  private tsConfigCache;
10
10
  constructor(projectRoot?: string);
11
+ /** Helper to check if path exists relative to project root */
12
+ private pathExists;
13
+ /** Helper to get stat if path is directory */
14
+ private isDirectory;
11
15
  /**
12
16
  * Helper: Read and cache package.json
13
17
  * Reduces file I/O from 8 reads to 1 read
@@ -27,6 +31,8 @@ export declare class ProjectAnalyzer {
27
31
  private detectTechStack;
28
32
  private detectProjectType;
29
33
  private detectEntryPoint;
34
+ /** Helper to find first matching directory */
35
+ private findFirstDir;
30
36
  private detectDirectories;
31
37
  private detectKeyFiles;
32
38
  private detectConventions;
@@ -13,6 +13,15 @@ export class ProjectAnalyzer {
13
13
  constructor(projectRoot = process.cwd()) {
14
14
  this.projectRoot = projectRoot;
15
15
  }
16
+ /** Helper to check if path exists relative to project root */
17
+ pathExists(...segments) {
18
+ return fs.existsSync(path.join(this.projectRoot, ...segments));
19
+ }
20
+ /** Helper to get stat if path is directory */
21
+ isDirectory(...segments) {
22
+ const fullPath = path.join(this.projectRoot, ...segments);
23
+ return fs.existsSync(fullPath) && fs.statSync(fullPath).isDirectory();
24
+ }
16
25
  /**
17
26
  * Helper: Read and cache package.json
18
27
  * Reduces file I/O from 8 reads to 1 read
@@ -56,17 +65,17 @@ export class ProjectAnalyzer {
56
65
  try {
57
66
  this.warnings = [];
58
67
  const projectInfo = {
59
- name: await this.detectProjectName(),
60
- version: await this.detectVersion(),
61
- primaryLanguage: await this.detectPrimaryLanguage(),
62
- techStack: await this.detectTechStack(),
63
- projectType: await this.detectProjectType(),
64
- entryPoint: await this.detectEntryPoint(),
65
- directories: await this.detectDirectories(),
66
- keyFiles: await this.detectKeyFiles(),
67
- conventions: await this.detectConventions(),
68
- scripts: await this.detectScripts(),
69
- packageManager: await this.detectPackageManager(),
68
+ name: this.detectProjectName(),
69
+ version: this.detectVersion(),
70
+ primaryLanguage: this.detectPrimaryLanguage(),
71
+ techStack: this.detectTechStack(),
72
+ projectType: this.detectProjectType(),
73
+ entryPoint: this.detectEntryPoint(),
74
+ directories: this.detectDirectories(),
75
+ keyFiles: this.detectKeyFiles(),
76
+ conventions: this.detectConventions(),
77
+ scripts: this.detectScripts(),
78
+ packageManager: this.detectPackageManager(),
70
79
  lastAnalyzed: new Date().toISOString(),
71
80
  };
72
81
  return {
@@ -83,121 +92,54 @@ export class ProjectAnalyzer {
83
92
  };
84
93
  }
85
94
  }
86
- async detectProjectName() {
87
- const packageJson = this.getPackageJson();
88
- if (packageJson?.name) {
89
- return packageJson.name;
90
- }
91
- // Fallback to directory name
92
- return path.basename(this.projectRoot);
95
+ detectProjectName() {
96
+ return this.getPackageJson()?.name ?? path.basename(this.projectRoot);
93
97
  }
94
- async detectVersion() {
95
- const packageJson = this.getPackageJson();
96
- return packageJson?.version;
98
+ detectVersion() {
99
+ return this.getPackageJson()?.version;
97
100
  }
98
- async detectPrimaryLanguage() {
99
- // Check for config files to determine language
100
- if (fs.existsSync(path.join(this.projectRoot, 'tsconfig.json'))) {
101
+ detectPrimaryLanguage() {
102
+ if (this.pathExists('tsconfig.json'))
101
103
  return 'TypeScript';
102
- }
103
- if (fs.existsSync(path.join(this.projectRoot, 'package.json'))) {
104
+ if (this.pathExists('package.json'))
104
105
  return 'JavaScript';
105
- }
106
- if (fs.existsSync(path.join(this.projectRoot, 'requirements.txt')) ||
107
- fs.existsSync(path.join(this.projectRoot, 'setup.py')) ||
108
- fs.existsSync(path.join(this.projectRoot, 'pyproject.toml'))) {
106
+ if (this.pathExists('requirements.txt') || this.pathExists('setup.py') || this.pathExists('pyproject.toml')) {
109
107
  return 'Python';
110
108
  }
111
- if (fs.existsSync(path.join(this.projectRoot, 'go.mod'))) {
109
+ if (this.pathExists('go.mod'))
112
110
  return 'Go';
113
- }
114
- if (fs.existsSync(path.join(this.projectRoot, 'Cargo.toml'))) {
111
+ if (this.pathExists('Cargo.toml'))
115
112
  return 'Rust';
116
- }
117
113
  return 'Unknown';
118
114
  }
119
- async detectTechStack() {
115
+ detectTechStack() {
120
116
  const stack = [];
121
117
  const packageJson = this.getPackageJson();
122
118
  if (packageJson) {
123
- const allDeps = {
124
- ...packageJson.dependencies,
125
- ...packageJson.devDependencies,
119
+ const allDeps = { ...packageJson.dependencies, ...packageJson.devDependencies };
120
+ // Dependency-to-stack-name mapping
121
+ const depMap = {
122
+ 'react': 'React', 'vue': 'Vue', '@angular/core': 'Angular', 'svelte': 'Svelte',
123
+ 'next': 'Next.js', 'nuxt': 'Nuxt',
124
+ 'express': 'Express', 'fastify': 'Fastify', 'koa': 'Koa', '@nestjs/core': 'NestJS',
125
+ 'vitest': 'Vitest', 'jest': 'Jest', 'mocha': 'Mocha', 'playwright': 'Playwright', 'cypress': 'Cypress',
126
+ 'vite': 'Vite', 'webpack': 'Webpack', 'esbuild': 'ESBuild', 'rollup': 'Rollup',
127
+ 'zod': 'Zod', 'yup': 'Yup', 'joi': 'Joi',
128
+ 'commander': 'Commander', 'yargs': 'Yargs', 'ink': 'Ink',
129
+ 'prisma': 'Prisma', 'typeorm': 'TypeORM', 'mongoose': 'Mongoose',
126
130
  };
127
- // Framework detection
128
- if (allDeps['react'])
129
- stack.push('React');
130
- if (allDeps['vue'])
131
- stack.push('Vue');
132
- if (allDeps['@angular/core'])
133
- stack.push('Angular');
134
- if (allDeps['svelte'])
135
- stack.push('Svelte');
136
- if (allDeps['next'])
137
- stack.push('Next.js');
138
- if (allDeps['nuxt'])
139
- stack.push('Nuxt');
140
- // Backend frameworks
141
- if (allDeps['express'])
142
- stack.push('Express');
143
- if (allDeps['fastify'])
144
- stack.push('Fastify');
145
- if (allDeps['koa'])
146
- stack.push('Koa');
147
- if (allDeps['@nestjs/core'])
148
- stack.push('NestJS');
149
- // Testing
150
- if (allDeps['vitest'])
151
- stack.push('Vitest');
152
- if (allDeps['jest'])
153
- stack.push('Jest');
154
- if (allDeps['mocha'])
155
- stack.push('Mocha');
156
- if (allDeps['playwright'])
157
- stack.push('Playwright');
158
- if (allDeps['cypress'])
159
- stack.push('Cypress');
160
- // Build tools
161
- if (allDeps['vite'])
162
- stack.push('Vite');
163
- if (allDeps['webpack'])
164
- stack.push('Webpack');
165
- if (allDeps['esbuild'])
166
- stack.push('ESBuild');
167
- if (allDeps['rollup'])
168
- stack.push('Rollup');
169
- // Validation
170
- if (allDeps['zod'])
171
- stack.push('Zod');
172
- if (allDeps['yup'])
173
- stack.push('Yup');
174
- if (allDeps['joi'])
175
- stack.push('Joi');
176
- // CLI
177
- if (allDeps['commander'])
178
- stack.push('Commander');
179
- if (allDeps['yargs'])
180
- stack.push('Yargs');
181
- if (allDeps['ink'])
182
- stack.push('Ink');
183
- // Database
184
- if (allDeps['prisma'])
185
- stack.push('Prisma');
186
- if (allDeps['typeorm'])
187
- stack.push('TypeORM');
188
- if (allDeps['mongoose'])
189
- stack.push('Mongoose');
190
- // Runtime
131
+ for (const [dep, name] of Object.entries(depMap)) {
132
+ if (allDeps[dep])
133
+ stack.push(name);
134
+ }
191
135
  if (packageJson.type === 'module')
192
136
  stack.push('ESM');
193
137
  }
194
- // TypeScript detection
195
- if (fs.existsSync(path.join(this.projectRoot, 'tsconfig.json'))) {
138
+ if (this.pathExists('tsconfig.json'))
196
139
  stack.push('TypeScript');
197
- }
198
140
  return stack;
199
141
  }
200
- async detectProjectType() {
142
+ detectProjectType() {
201
143
  const packageJson = this.getPackageJson();
202
144
  if (packageJson) {
203
145
  // Check for bin field (CLI tool)
@@ -220,19 +162,16 @@ export class ProjectAnalyzer {
220
162
  }
221
163
  return 'application';
222
164
  }
223
- async detectEntryPoint() {
165
+ detectEntryPoint() {
224
166
  const packageJson = this.getPackageJson();
225
167
  if (packageJson) {
226
168
  // CLI tools
227
169
  if (packageJson.bin) {
228
- if (typeof packageJson.bin === 'string') {
170
+ if (typeof packageJson.bin === 'string')
229
171
  return packageJson.bin;
230
- }
231
- // Get first bin entry (with bounds check)
232
172
  const binValues = Object.values(packageJson.bin);
233
- if (binValues.length > 0) {
173
+ if (binValues.length > 0)
234
174
  return binValues[0];
235
- }
236
175
  }
237
176
  // Libraries
238
177
  if (packageJson.main)
@@ -253,53 +192,24 @@ export class ProjectAnalyzer {
253
192
  }
254
193
  // Common entry points
255
194
  const commonEntries = ['src/index.ts', 'src/index.js', 'index.ts', 'index.js', 'src/main.ts', 'src/main.js'];
256
- for (const entry of commonEntries) {
257
- if (fs.existsSync(path.join(this.projectRoot, entry))) {
258
- return entry;
259
- }
260
- }
261
- return undefined;
195
+ return commonEntries.find(entry => this.pathExists(entry));
262
196
  }
263
- async detectDirectories() {
197
+ /** Helper to find first matching directory */
198
+ findFirstDir(candidates) {
199
+ return candidates.find(dir => this.isDirectory(dir));
200
+ }
201
+ detectDirectories() {
264
202
  const dirs = {};
265
- // Source directory
266
- const sourceDirs = ['src', 'lib', 'source'];
267
- for (const dir of sourceDirs) {
268
- const dirPath = path.join(this.projectRoot, dir);
269
- if (fs.existsSync(dirPath) && fs.statSync(dirPath).isDirectory()) {
270
- dirs.source = dir;
271
- break;
272
- }
273
- }
274
- // Test directory
275
- const testDirs = ['tests', 'test', '__tests__', 'spec'];
276
- for (const dir of testDirs) {
277
- const dirPath = path.join(this.projectRoot, dir);
278
- if (fs.existsSync(dirPath) && fs.statSync(dirPath).isDirectory()) {
279
- dirs.tests = dir;
280
- break;
281
- }
282
- }
283
- // Config directory
284
- const configDirs = ['config', 'configs', '.config'];
285
- for (const dir of configDirs) {
286
- const dirPath = path.join(this.projectRoot, dir);
287
- if (fs.existsSync(dirPath) && fs.statSync(dirPath).isDirectory()) {
288
- dirs.config = dir;
289
- break;
290
- }
291
- }
292
- // Tools directory (normalize for cross-platform compatibility)
293
- if (dirs.source) {
294
- const toolsPath = path.join(this.projectRoot, dirs.source, 'tools');
295
- if (fs.existsSync(toolsPath) && fs.statSync(toolsPath).isDirectory()) {
296
- dirs.tools = normalizePath(path.join(dirs.source, 'tools'));
297
- }
203
+ dirs.source = this.findFirstDir(['src', 'lib', 'source']);
204
+ dirs.tests = this.findFirstDir(['tests', 'test', '__tests__', 'spec']);
205
+ dirs.config = this.findFirstDir(['config', 'configs', '.config']);
206
+ // Tools directory
207
+ if (dirs.source && this.isDirectory(dirs.source, 'tools')) {
208
+ dirs.tools = normalizePath(path.join(dirs.source, 'tools'));
298
209
  }
299
210
  return dirs;
300
211
  }
301
- async detectKeyFiles() {
302
- const keyFiles = {};
212
+ detectKeyFiles() {
303
213
  const fileMap = {
304
214
  'package.json': 'Node.js package configuration',
305
215
  'tsconfig.json': 'TypeScript configuration',
@@ -313,14 +223,14 @@ export class ProjectAnalyzer {
313
223
  'vite.config.ts': 'Vite build configuration',
314
224
  'webpack.config.js': 'Webpack build configuration',
315
225
  };
226
+ const keyFiles = {};
316
227
  for (const [file, description] of Object.entries(fileMap)) {
317
- if (fs.existsSync(path.join(this.projectRoot, file))) {
228
+ if (this.pathExists(file))
318
229
  keyFiles[file] = description;
319
- }
320
230
  }
321
231
  return keyFiles;
322
232
  }
323
- async detectConventions() {
233
+ detectConventions() {
324
234
  const conventions = {};
325
235
  // Module system from package.json (use cached version)
326
236
  const packageJson = this.getPackageJson();
@@ -340,52 +250,45 @@ export class ProjectAnalyzer {
340
250
  }
341
251
  }
342
252
  // Testing framework
343
- if (fs.existsSync(path.join(this.projectRoot, 'vitest.config.ts')) ||
344
- fs.existsSync(path.join(this.projectRoot, 'vitest.config.js'))) {
253
+ if (this.pathExists('vitest.config.ts') || this.pathExists('vitest.config.js')) {
345
254
  conventions.testFramework = 'vitest';
346
255
  }
347
- else if (fs.existsSync(path.join(this.projectRoot, 'jest.config.js')) ||
348
- fs.existsSync(path.join(this.projectRoot, 'jest.config.ts'))) {
256
+ else if (this.pathExists('jest.config.js') || this.pathExists('jest.config.ts')) {
349
257
  conventions.testFramework = 'jest';
350
258
  }
351
259
  // Linter
352
- if (fs.existsSync(path.join(this.projectRoot, '.eslintrc.js')) ||
353
- fs.existsSync(path.join(this.projectRoot, '.eslintrc.json')) ||
354
- fs.existsSync(path.join(this.projectRoot, 'eslint.config.js'))) {
260
+ if (this.pathExists('.eslintrc.js') || this.pathExists('.eslintrc.json') || this.pathExists('eslint.config.js')) {
355
261
  conventions.linter = 'eslint';
356
262
  }
357
- // Validation library from package.json (reuse cached packageJson)
263
+ // Validation library
358
264
  if (packageJson) {
359
265
  const deps = { ...packageJson.dependencies, ...packageJson.devDependencies };
360
- if (deps['zod'])
361
- conventions.validation = 'zod';
362
- else if (deps['yup'])
363
- conventions.validation = 'yup';
364
- else if (deps['joi'])
365
- conventions.validation = 'joi';
266
+ conventions.validation = deps['zod'] ? 'zod' : deps['yup'] ? 'yup' : deps['joi'] ? 'joi' : undefined;
366
267
  }
367
268
  return conventions;
368
269
  }
369
- async detectScripts() {
370
- const scripts = {};
270
+ detectScripts() {
371
271
  const packageJson = this.getPackageJson();
372
- if (packageJson?.scripts) {
373
- scripts.build = packageJson.scripts.build;
374
- scripts.test = packageJson.scripts.test;
375
- scripts.lint = packageJson.scripts.lint;
376
- scripts.dev = packageJson.scripts.dev || packageJson.scripts.start;
377
- }
378
- return scripts;
272
+ if (!packageJson?.scripts)
273
+ return {};
274
+ return {
275
+ build: packageJson.scripts.build,
276
+ test: packageJson.scripts.test,
277
+ lint: packageJson.scripts.lint,
278
+ dev: packageJson.scripts.dev || packageJson.scripts.start,
279
+ };
379
280
  }
380
- async detectPackageManager() {
381
- if (fs.existsSync(path.join(this.projectRoot, 'bun.lockb')))
382
- return 'bun';
383
- if (fs.existsSync(path.join(this.projectRoot, 'pnpm-lock.yaml')))
384
- return 'pnpm';
385
- if (fs.existsSync(path.join(this.projectRoot, 'yarn.lock')))
386
- return 'yarn';
387
- if (fs.existsSync(path.join(this.projectRoot, 'package-lock.json')))
388
- return 'npm';
281
+ detectPackageManager() {
282
+ const lockFiles = {
283
+ 'bun.lockb': 'bun',
284
+ 'pnpm-lock.yaml': 'pnpm',
285
+ 'yarn.lock': 'yarn',
286
+ 'package-lock.json': 'npm',
287
+ };
288
+ for (const [file, pm] of Object.entries(lockFiles)) {
289
+ if (this.pathExists(file))
290
+ return pm;
291
+ }
389
292
  return undefined;
390
293
  }
391
294
  }
@@ -1 +1 @@
1
- {"version":3,"file":"project-analyzer.js","sourceRoot":"","sources":["../../src/utils/project-analyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-analyzer.js","sourceRoot":"","sources":["../../src/utils/project-analyzer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AA0BhD,MAAM,OAAO,eAAe;IAClB,WAAW,CAAS;IACpB,QAAQ,GAAa,EAAE,CAAC;IACxB,gBAAgB,GAAmC,SAAS,CAAC;IAC7D,aAAa,GAAgC,SAAS,CAAC;IAE/D,YAAY,cAAsB,OAAO,CAAC,GAAG,EAAE;QAC7C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,8DAA8D;IACtD,UAAU,CAAC,GAAG,QAAkB;QACtC,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,8CAA8C;IACtC,WAAW,CAAC,GAAG,QAAkB;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,CAAC;QAC1D,OAAO,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IACxE,CAAC;IAED;;;OAGG;IACK,cAAc;QACpB,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC,gBAAgB,CAAC;QAC/B,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,aAAa,CAAc,eAAe,CAAC,CAAC;QAE3D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iCAAiC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACtE,CAAC;YACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC;QACpC,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,WAAW;QACjB,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,aAAa,CAAC;QAC5B,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,aAAa,CAAW,YAAY,CAAC,CAAC;QAErD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC;QACjC,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YAEnB,MAAM,WAAW,GAAgB;gBAC/B,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE;gBAC9B,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE;gBAC7B,eAAe,EAAE,IAAI,CAAC,qBAAqB,EAAE;gBAC7C,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE;gBACjC,WAAW,EAAE,IAAI,CAAC,iBAAiB,EAAE;gBACrC,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE;gBACnC,WAAW,EAAE,IAAI,CAAC,iBAAiB,EAAE;gBACrC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE;gBAC/B,WAAW,EAAE,IAAI,CAAC,iBAAiB,EAAE;gBACrC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE;gBAC7B,cAAc,EAAE,IAAI,CAAC,oBAAoB,EAAE;gBAC3C,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACvC,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,WAAW;gBACX,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;aAC/D,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB;gBACxE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;aAC/D,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,iBAAiB;QACvB,OAAO,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxE,CAAC;IAEO,aAAa;QACnB,OAAO,IAAI,CAAC,cAAc,EAAE,EAAE,OAAO,CAAC;IACxC,CAAC;IAEO,qBAAqB;QAC3B,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;YAAE,OAAO,YAAY,CAAC;QAC1D,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;YAAE,OAAO,YAAY,CAAC;QACzD,IAAI,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC5G,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAC3C,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;YAAE,OAAO,MAAM,CAAC;QACjD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,eAAe;QACrB,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAE1C,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,EAAE,GAAG,WAAW,CAAC,YAAY,EAAE,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC;YAEhF,mCAAmC;YACnC,MAAM,MAAM,GAA2B;gBACrC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ;gBAC9E,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM;gBACjC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ;gBAClF,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS;gBACtG,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ;gBAC9E,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;gBACxC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK;gBACxD,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU;aACjE,CAAC;YAEF,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjD,IAAI,OAAO,CAAC,GAAG,CAAC;oBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC;YAED,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ;gBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAE/D,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,iBAAiB;QACvB,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAE1C,IAAI,WAAW,EAAE,CAAC;YAChB,iCAAiC;YACjC,IAAI,WAAW,CAAC,GAAG;gBAAE,OAAO,KAAK,CAAC;YAElC,yCAAyC;YACzC,MAAM,IAAI,GAAG,EAAE,GAAG,WAAW,CAAC,YAAY,EAAE,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC;YAE7E,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5E,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC;oBAAE,OAAO,aAAa,CAAC;gBACvD,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC9E,OAAO,KAAK,CAAC;YACf,CAAC;YAED,+BAA+B;YAC/B,IAAI,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;gBAC5C,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAEO,gBAAgB;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAE1C,IAAI,WAAW,EAAE,CAAC;YAChB,YAAY;YACZ,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC;gBACpB,IAAI,OAAO,WAAW,CAAC,GAAG,KAAK,QAAQ;oBAAE,OAAO,WAAW,CAAC,GAAG,CAAC;gBAChE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBACjD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;oBAAE,OAAO,SAAS,CAAC,CAAC,CAAW,CAAC;YAC1D,CAAC;YAED,YAAY;YACZ,IAAI,WAAW,CAAC,IAAI;gBAAE,OAAO,WAAW,CAAC,IAAI,CAAC;YAC9C,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;gBACxB,IAAI,OAAO,WAAW,CAAC,OAAO,KAAK,QAAQ;oBAAE,OAAO,WAAW,CAAC,OAAO,CAAC;gBACxE,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC7B,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC5C,IAAI,OAAO,UAAU,KAAK,QAAQ;wBAAE,OAAO,UAAU,CAAC;oBACtD,IAAI,UAAU,CAAC,MAAM;wBAAE,OAAO,UAAU,CAAC,MAAM,CAAC;oBAChD,IAAI,UAAU,CAAC,OAAO;wBAAE,OAAO,UAAU,CAAC,OAAO,CAAC;gBACpD,CAAC;YACH,CAAC;QACH,CAAC;QAED,sBAAsB;QACtB,MAAM,aAAa,GAAG,CAAC,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;QAC7G,OAAO,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,8CAA8C;IACtC,YAAY,CAAC,UAAoB;QACvC,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IACvD,CAAC;IAEO,iBAAiB;QACvB,MAAM,IAAI,GAA+B,EAAE,CAAC;QAE5C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QAElE,kBAAkB;QAClB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;YAC1D,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,cAAc;QACpB,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,+BAA+B;YAC/C,eAAe,EAAE,0BAA0B;YAC3C,kBAAkB,EAAE,2BAA2B;YAC/C,gBAAgB,EAAE,yBAAyB;YAC3C,cAAc,EAAE,sBAAsB;YACtC,aAAa,EAAE,wBAAwB;YACvC,WAAW,EAAE,uBAAuB;YACpC,WAAW,EAAE,8BAA8B;YAC3C,mBAAmB,EAAE,4BAA4B;YACjD,gBAAgB,EAAE,0BAA0B;YAC5C,mBAAmB,EAAE,6BAA6B;SACnD,CAAC;QAEF,MAAM,QAAQ,GAA2B,EAAE,CAAC;QAC5C,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1D,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC;QAC1D,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,iBAAiB;QACvB,MAAM,WAAW,GAAoB,EAAE,CAAC;QAExC,uDAAuD;QACvD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,IAAI,WAAW,EAAE,CAAC;YAChB,WAAW,CAAC,YAAY,GAAG,WAAW,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;QAChF,CAAC;QAED,oBAAoB;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,QAAQ,EAAE,CAAC;YACb,WAAW,CAAC,WAAW,GAAG,YAAY,CAAC;YAEvC,uCAAuC;YACvC,IAAI,QAAQ,CAAC,eAAe,EAAE,MAAM,KAAK,UAAU;gBAC/C,QAAQ,CAAC,eAAe,EAAE,MAAM,KAAK,QAAQ;gBAC7C,QAAQ,CAAC,eAAe,EAAE,gBAAgB,KAAK,UAAU;gBACzD,QAAQ,CAAC,eAAe,EAAE,gBAAgB,KAAK,SAAS,EAAE,CAAC;gBAC7D,WAAW,CAAC,eAAe,GAAG,KAAK,CAAC;YACtC,CAAC;QACH,CAAC;QAED,oBAAoB;QACpB,IAAI,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC/E,WAAW,CAAC,aAAa,GAAG,QAAQ,CAAC;QACvC,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAClF,WAAW,CAAC,aAAa,GAAG,MAAM,CAAC;QACrC,CAAC;QAED,SAAS;QACT,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAChH,WAAW,CAAC,MAAM,GAAG,QAAQ,CAAC;QAChC,CAAC;QAED,qBAAqB;QACrB,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,IAAI,GAAG,EAAE,GAAG,WAAW,CAAC,YAAY,EAAE,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC;YAC7E,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QACvG,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,aAAa;QACnB,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,IAAI,CAAC,WAAW,EAAE,OAAO;YAAE,OAAO,EAAE,CAAC;QAErC,OAAO;YACL,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK;YAChC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI;YAC9B,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI;YAC9B,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,KAAK;SAC1D,CAAC;IACJ,CAAC;IAEO,oBAAoB;QAC1B,MAAM,SAAS,GAA2B;YACxC,WAAW,EAAE,KAAK;YAClB,gBAAgB,EAAE,MAAM;YACxB,WAAW,EAAE,MAAM;YACnB,mBAAmB,EAAE,KAAK;SAC3B,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YACnD,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,OAAO,EAAE,CAAC;QACvC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
@@ -11,6 +11,14 @@ export declare class TemplateManager {
11
11
  * Ensure user templates directory exists
12
12
  */
13
13
  private static ensureUserTemplatesDir;
14
+ /**
15
+ * Atomic file write - writes to temp file then renames
16
+ */
17
+ private static atomicWrite;
18
+ /**
19
+ * Load templates from a directory
20
+ */
21
+ private static loadTemplatesFromDir;
14
22
  /**
15
23
  * List all available templates (built-in + user)
16
24
  */