metacoding 1.5.1 → 2.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 (95) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/README.md +108 -514
  3. package/lib/cli.d.ts.map +1 -1
  4. package/lib/cli.js +18 -19
  5. package/lib/cli.js.map +1 -1
  6. package/lib/commands/init.d.ts +8 -14
  7. package/lib/commands/init.d.ts.map +1 -1
  8. package/lib/commands/init.js +105 -387
  9. package/lib/commands/init.js.map +1 -1
  10. package/lib/commands/update.d.ts +9 -9
  11. package/lib/commands/update.d.ts.map +1 -1
  12. package/lib/commands/update.js +141 -320
  13. package/lib/commands/update.js.map +1 -1
  14. package/lib/services/backup.d.ts +1 -1
  15. package/lib/services/backup.d.ts.map +1 -1
  16. package/lib/services/backup.js +10 -6
  17. package/lib/services/backup.js.map +1 -1
  18. package/lib/services/filesystem.d.ts.map +1 -1
  19. package/lib/services/filesystem.js +11 -5
  20. package/lib/services/filesystem.js.map +1 -1
  21. package/lib/services/gitignore-manager.js +5 -5
  22. package/lib/services/gitignore-manager.js.map +1 -1
  23. package/lib/services/project-detector.d.ts +9 -8
  24. package/lib/services/project-detector.d.ts.map +1 -1
  25. package/lib/services/project-detector.js +79 -197
  26. package/lib/services/project-detector.js.map +1 -1
  27. package/lib/services/skill-manager.d.ts +23 -0
  28. package/lib/services/skill-manager.d.ts.map +1 -0
  29. package/lib/services/skill-manager.js +212 -0
  30. package/lib/services/skill-manager.js.map +1 -0
  31. package/lib/types/index.d.ts +5 -15
  32. package/lib/types/index.d.ts.map +1 -1
  33. package/package.json +9 -17
  34. package/skills/metacoding-workflow/SKILL.md +52 -0
  35. package/skills/metacoding-workflow/agents/openai.yaml +4 -0
  36. package/skills/metacoding-workflow/assets/templates/changelog-entry.md +6 -0
  37. package/skills/metacoding-workflow/assets/templates/project-context.md +18 -0
  38. package/skills/metacoding-workflow/assets/templates/repeated-task-checklist.md +8 -0
  39. package/skills/metacoding-workflow/assets/templates/task-entry.md +9 -0
  40. package/skills/metacoding-workflow/assets/templates/test-plan.md +8 -0
  41. package/skills/metacoding-workflow/references/javascript.md +7 -0
  42. package/skills/metacoding-workflow/references/node.md +7 -0
  43. package/skills/metacoding-workflow/references/platform-adaptation.md +37 -0
  44. package/skills/metacoding-workflow/references/python.md +7 -0
  45. package/skills/metacoding-workflow/references/react.md +7 -0
  46. package/skills/metacoding-workflow/references/repository-organization.md +84 -0
  47. package/skills/metacoding-workflow/references/typescript.md +7 -0
  48. package/skills/metacoding-workflow/references/workflow-rules.md +54 -0
  49. package/skills/vendor-templates/claude-agent.md.template +41 -0
  50. package/lib/services/assistant-adapter.d.ts +0 -18
  51. package/lib/services/assistant-adapter.d.ts.map +0 -1
  52. package/lib/services/assistant-adapter.js +0 -246
  53. package/lib/services/assistant-adapter.js.map +0 -1
  54. package/lib/services/cursor.d.ts +0 -47
  55. package/lib/services/cursor.d.ts.map +0 -1
  56. package/lib/services/cursor.js +0 -314
  57. package/lib/services/cursor.js.map +0 -1
  58. package/lib/services/template-manager.d.ts +0 -23
  59. package/lib/services/template-manager.d.ts.map +0 -1
  60. package/lib/services/template-manager.js +0 -374
  61. package/lib/services/template-manager.js.map +0 -1
  62. package/lib/services/vscode.d.ts +0 -10
  63. package/lib/services/vscode.d.ts.map +0 -1
  64. package/lib/services/vscode.js +0 -108
  65. package/lib/services/vscode.js.map +0 -1
  66. package/templates/assistants/AGENTS.md +0 -203
  67. package/templates/assistants/CLAUDE.md +0 -156
  68. package/templates/assistants/GEMINI.md +0 -193
  69. package/templates/general/code-review.instructions.md +0 -265
  70. package/templates/general/copilot-instructions.md +0 -427
  71. package/templates/general/docs-update.instructions.md +0 -275
  72. package/templates/general/release.instructions.md +0 -242
  73. package/templates/general/template.json +0 -9
  74. package/templates/general/test-runner.instructions.md +0 -188
  75. package/templates/javascript/javascript.coding.instructions.md +0 -500
  76. package/templates/javascript/javascript.docs.instructions.md +0 -563
  77. package/templates/javascript/javascript.testing.instructions.md +0 -686
  78. package/templates/javascript/template.json +0 -36
  79. package/templates/node/nodejs.coding.instructions.md +0 -249
  80. package/templates/node/nodejs.docs.instructions.md +0 -261
  81. package/templates/node/nodejs.testing.instructions.md +0 -373
  82. package/templates/node/template.json +0 -23
  83. package/templates/python/python.coding.instructions.md +0 -338
  84. package/templates/python/python.docs.instructions.md +0 -1178
  85. package/templates/python/python.testing.instructions.md +0 -1073
  86. package/templates/python/template.json +0 -75
  87. package/templates/react/react.coding.instructions.md +0 -694
  88. package/templates/react/react.docs.instructions.md +0 -451
  89. package/templates/react/react.testing.instructions.md +0 -192
  90. package/templates/react/template.json +0 -14
  91. package/templates/react/test-runner.instructions.md +0 -135
  92. package/templates/typescript/template.json +0 -16
  93. package/templates/typescript/typescript.coding.instructions.md +0 -368
  94. package/templates/typescript/typescript.docs.instructions.md +0 -760
  95. package/templates/typescript/typescript.testing.instructions.md +0 -739
@@ -1 +1 @@
1
- {"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/services/backup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/services/backup.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../../src/services/filesystem.ts"],"names":[],"mappings":"AAMA,qBAAa,iBAAiB;IAItB,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAcrC,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrD,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3D,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO3C,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAO9C,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ5D,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAU7C,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUnD,mBAAmB,IAAI,MAAM;IAO7B,uBAAuB,IAAI,MAAM;CAGlC"}
1
+ {"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../../src/services/filesystem.ts"],"names":[],"mappings":"AAMA,qBAAa,iBAAiB;IAItB,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAmBrC,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrD,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3D,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO3C,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAO9C,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ5D,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAU7C,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUnD,mBAAmB,IAAI,MAAM;IAO7B,uBAAuB,IAAI,MAAM;CAGlC"}
@@ -38,11 +38,17 @@ const fs = __importStar(require("fs-extra"));
38
38
  const path = __importStar(require("path"));
39
39
  class FileSystemService {
40
40
  async isMetaCodingSetup() {
41
- const githubDir = '.github';
42
- const copilotInstructions = path.join(githubDir, 'copilot-instructions.md');
43
- const instructionsDir = path.join(githubDir, 'instructions');
44
- return ((await fs.pathExists(copilotInstructions)) &&
45
- (await fs.pathExists(instructionsDir)));
41
+ const knownEntryPoints = [
42
+ path.join('.codex', 'skills', 'metacoding-workflow', 'SKILL.md'),
43
+ path.join('.claude', 'agents', 'metacoding-workflow.md'),
44
+ path.join('.agents', 'skills', 'metacoding-workflow', 'SKILL.md'),
45
+ ];
46
+ for (const entry of knownEntryPoints) {
47
+ if (await fs.pathExists(entry)) {
48
+ return true;
49
+ }
50
+ }
51
+ return false;
46
52
  }
47
53
  async ensureDirectoryExists(dirPath) {
48
54
  await fs.ensureDir(dirPath);
@@ -1 +1 @@
1
- {"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../../src/services/filesystem.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,2CAA6B;AAK7B,MAAa,iBAAiB;IAI5B,KAAK,CAAC,iBAAiB;QACrB,MAAM,SAAS,GAAG,SAAS,CAAC;QAC5B,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;QAC5E,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAE7D,OAAO,CACL,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;YAC1C,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CACvC,CAAC;IACJ,CAAC;IAKD,KAAK,CAAC,qBAAqB,CAAC,OAAe;QACzC,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAKD,KAAK,CAAC,SAAS,CAAC,QAAgB,EAAE,OAAe;QAC/C,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3C,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAKD,KAAK,CAAC,QAAQ,CAAC,QAAgB;QAC7B,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAKD,KAAK,CAAC,UAAU,CAAC,QAAgB;QAC/B,OAAO,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAKD,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,WAAmB;QAChD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QAC9C,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACrC,CAAC;IAKD,KAAK,CAAC,SAAS,CAAC,OAAe;QAC7B,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YACpC,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAKD,KAAK,CAAC,UAAU,CAAC,QAAgB;QAC/B,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACjE,MAAM,UAAU,GAAG,GAAG,QAAQ,WAAW,SAAS,EAAE,CAAC;QACrD,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACpC,OAAO,UAAU,CAAC;IACpB,CAAC;IAKD,mBAAmB;QACjB,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;IACvB,CAAC;IAKD,uBAAuB;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACnD,CAAC;CACF;AArFD,8CAqFC"}
1
+ {"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../../src/services/filesystem.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,2CAA6B;AAK7B,MAAa,iBAAiB;IAI5B,KAAK,CAAC,iBAAiB;QACrB,MAAM,gBAAgB,GAAG;YACvB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,qBAAqB,EAAE,UAAU,CAAC;YAChE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,wBAAwB,CAAC;YACxD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,qBAAqB,EAAE,UAAU,CAAC;SAClE,CAAC;QAEF,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;YACrC,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/B,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAKD,KAAK,CAAC,qBAAqB,CAAC,OAAe;QACzC,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAKD,KAAK,CAAC,SAAS,CAAC,QAAgB,EAAE,OAAe;QAC/C,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3C,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAKD,KAAK,CAAC,QAAQ,CAAC,QAAgB;QAC7B,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAKD,KAAK,CAAC,UAAU,CAAC,QAAgB;QAC/B,OAAO,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAKD,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,WAAmB;QAChD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QAC9C,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACrC,CAAC;IAKD,KAAK,CAAC,SAAS,CAAC,OAAe;QAC7B,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YACpC,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAKD,KAAK,CAAC,UAAU,CAAC,QAAgB;QAC/B,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACjE,MAAM,UAAU,GAAG,GAAG,QAAQ,WAAW,SAAS,EAAE,CAAC;QACrD,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACpC,OAAO,UAAU,CAAC;IACpB,CAAC;IAKD,mBAAmB;QACjB,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;IACvB,CAAC;IAKD,uBAAuB;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACnD,CAAC;CACF;AA1FD,8CA0FC"}
@@ -40,11 +40,11 @@ class GitIgnoreManager {
40
40
  static getAIAssistantPatterns() {
41
41
  return [
42
42
  '# metacoding: AI coding assistant exclusions',
43
- '.github/copilot-instructions.md',
44
- '.github/instructions/',
45
- '.vscode/copilot-instructions.md',
46
- '.idea/copilot-instructions.md',
47
- '.cursor/',
43
+ '.codex/skills/metacoding-workflow/',
44
+ '.claude/agents/metacoding-workflow.md',
45
+ '.claude/metacoding-workflow/',
46
+ '.agents/skills/metacoding-workflow/',
47
+ '.backup/',
48
48
  ];
49
49
  }
50
50
  async updateGitIgnore(projectPath) {
@@ -1 +1 @@
1
- {"version":3,"file":"gitignore-manager.js","sourceRoot":"","sources":["../../src/services/gitignore-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,2CAA6B;AAK7B,MAAa,gBAAgB;IAK3B,MAAM,CAAC,sBAAsB;QAC3B,OAAO;YACL,8CAA8C;YAC9C,iCAAiC;YACjC,uBAAuB;YACvB,iCAAiC;YACjC,+BAA+B;YAC/B,UAAU;SACX,CAAC;IACJ,CAAC;IAMD,KAAK,CAAC,eAAe,CAAC,WAAmB;QACvC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,gBAAgB,CAAC,sBAAsB,EAAE,CAAC;QAE3D,IAAI,CAAC;YACH,IAAI,eAAe,GAAG,EAAE,CAAC;YACzB,IAAI,eAAe,GAAG,KAAK,CAAC;YAG5B,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBACvC,eAAe,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;gBAC3D,eAAe,GAAG,IAAI,CAAC;YACzB,CAAC;YAGD,MAAM,oBAAoB,GAAG,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;YAEvE,IAAI,oBAAoB,EAAE,CAAC;gBAEzB,OAAO;YACT,CAAC;YAGD,IAAI,eAAe,GAAG,EAAE,CAAC;YAGzB,IACE,eAAe;gBACf,eAAe,CAAC,MAAM,GAAG,CAAC;gBAC1B,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,EAC/B,CAAC;gBACD,eAAe,GAAG,MAAM,CAAC;YAC3B,CAAC;iBAAM,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzD,eAAe,GAAG,IAAI,CAAC;YACzB,CAAC;YAGD,eAAe,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YAG9C,IAAI,eAAe,EAAE,CAAC;gBACpB,MAAM,EAAE,CAAC,UAAU,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;YACtD,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,gCAAgC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAC3F,CAAC;QACJ,CAAC;IACH,CAAC;IAKD,KAAK,CAAC,qBAAqB,CAAC,WAAmB;QAC7C,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAE3D,IAAI,CAAC;YACH,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;gBAC1C,OAAO,KAAK,CAAC;YACf,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YACzD,OAAO,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YAEP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAKD,MAAM,CAAC,qBAAqB;QAC1B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,sBAAsB,EAAE,CAAC;QAE3D,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0CT,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;CACpB,CAAC;IACA,CAAC;CACF;AA9ID,4CA8IC"}
1
+ {"version":3,"file":"gitignore-manager.js","sourceRoot":"","sources":["../../src/services/gitignore-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,2CAA6B;AAK7B,MAAa,gBAAgB;IAK3B,MAAM,CAAC,sBAAsB;QAC3B,OAAO;YACL,8CAA8C;YAC9C,oCAAoC;YACpC,uCAAuC;YACvC,8BAA8B;YAC9B,qCAAqC;YACrC,UAAU;SACX,CAAC;IACJ,CAAC;IAMD,KAAK,CAAC,eAAe,CAAC,WAAmB;QACvC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,gBAAgB,CAAC,sBAAsB,EAAE,CAAC;QAE3D,IAAI,CAAC;YACH,IAAI,eAAe,GAAG,EAAE,CAAC;YACzB,IAAI,eAAe,GAAG,KAAK,CAAC;YAG5B,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBACvC,eAAe,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;gBAC3D,eAAe,GAAG,IAAI,CAAC;YACzB,CAAC;YAGD,MAAM,oBAAoB,GAAG,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;YAEvE,IAAI,oBAAoB,EAAE,CAAC;gBAEzB,OAAO;YACT,CAAC;YAGD,IAAI,eAAe,GAAG,EAAE,CAAC;YAGzB,IACE,eAAe;gBACf,eAAe,CAAC,MAAM,GAAG,CAAC;gBAC1B,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,EAC/B,CAAC;gBACD,eAAe,GAAG,MAAM,CAAC;YAC3B,CAAC;iBAAM,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzD,eAAe,GAAG,IAAI,CAAC;YACzB,CAAC;YAGD,eAAe,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YAG9C,IAAI,eAAe,EAAE,CAAC;gBACpB,MAAM,EAAE,CAAC,UAAU,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;YACtD,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,gCAAgC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAC3F,CAAC;QACJ,CAAC;IACH,CAAC;IAKD,KAAK,CAAC,qBAAqB,CAAC,WAAmB;QAC7C,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAE3D,IAAI,CAAC;YACH,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;gBAC1C,OAAO,KAAK,CAAC;YACf,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YACzD,OAAO,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YAEP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAKD,MAAM,CAAC,qBAAqB;QAC1B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,sBAAsB,EAAE,CAAC;QAE3D,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0CT,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;CACpB,CAAC;IACA,CAAC;CACF;AA9ID,4CA8IC"}
@@ -1,13 +1,14 @@
1
1
  export declare class ProjectDetector {
2
- detectProject(): Promise<any>;
2
+ detectProject(): Promise<{
3
+ name: string;
4
+ type: string;
5
+ hasGit: boolean;
6
+ techStack: string[];
7
+ }>;
3
8
  private detectProjectType;
4
- private hasReactIndicators;
5
- private hasNodeIndicators;
6
- private hasJavaScriptIndicators;
7
- private hasPythonIndicators;
8
- private hasGitRepository;
9
- private hasVSCodeConfiguration;
10
- private hasPackageJson;
11
9
  private detectTechStack;
10
+ private collectDependencies;
11
+ private readPackageJson;
12
+ private hasAnyFile;
12
13
  }
13
14
  //# sourceMappingURL=project-detector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-detector.d.ts","sourceRoot":"","sources":["../../src/services/project-detector.ts"],"names":[],"mappings":"AAMA,qBAAa,eAAe;IAIpB,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC;YAiBrB,iBAAiB;YA2BjB,kBAAkB;YAsClB,iBAAiB;YAuEjB,uBAAuB;YAsFvB,mBAAmB;YAuBnB,gBAAgB;YAOhB,sBAAsB;YAOtB,cAAc;YAOd,eAAe;CAqC9B"}
1
+ {"version":3,"file":"project-detector.d.ts","sourceRoot":"","sources":["../../src/services/project-detector.ts"],"names":[],"mappings":"AAWA,qBAAa,eAAe;IACpB,aAAa,IAAI,OAAO,CAAC;QAC7B,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,OAAO,CAAC;QAChB,SAAS,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;YAaY,iBAAiB;IAoD/B,OAAO,CAAC,eAAe;IAwCvB,OAAO,CAAC,mBAAmB;YAOb,eAAe;YAYf,UAAU;CAIzB"}
@@ -39,229 +39,111 @@ const path = __importStar(require("path"));
39
39
  class ProjectDetector {
40
40
  async detectProject() {
41
41
  const currentDir = process.cwd();
42
- const projectName = path.basename(currentDir);
42
+ const packageJson = await this.readPackageJson();
43
+ const type = await this.detectProjectType(packageJson);
43
44
  return {
44
- name: projectName,
45
- type: await this.detectProjectType(),
46
- hasGit: await this.hasGitRepository(),
47
- hasVSCode: await this.hasVSCodeConfiguration(),
48
- hasPackageJson: await this.hasPackageJson(),
49
- techStack: await this.detectTechStack(),
45
+ name: path.basename(currentDir),
46
+ type,
47
+ hasGit: await fs.pathExists('.git'),
48
+ techStack: this.detectTechStack(packageJson, type),
50
49
  };
51
50
  }
52
- async detectProjectType() {
53
- if (await this.hasReactIndicators()) {
51
+ async detectProjectType(packageJson) {
52
+ const deps = this.collectDependencies(packageJson);
53
+ if (deps.react || deps['react-dom']) {
54
54
  return 'react';
55
55
  }
56
- if (await this.hasNodeIndicators()) {
56
+ if (await this.hasAnyFile([
57
+ 'requirements.txt',
58
+ 'pyproject.toml',
59
+ 'setup.py',
60
+ 'Pipfile',
61
+ 'main.py',
62
+ 'app.py',
63
+ ])) {
64
+ return 'python';
65
+ }
66
+ if (deps.express ||
67
+ deps.fastify ||
68
+ deps.koa ||
69
+ (await this.hasAnyFile(['server.ts', 'server.js', 'app.ts', 'app.js']))) {
57
70
  return 'node';
58
71
  }
59
- if (await this.hasJavaScriptIndicators()) {
72
+ if ((deps.webpack ||
73
+ deps.parcel ||
74
+ deps.rollup ||
75
+ deps.vite ||
76
+ (await this.hasAnyFile([
77
+ 'index.js',
78
+ 'main.js',
79
+ 'src/index.js',
80
+ 'src/main.js',
81
+ ]))) &&
82
+ !deps.typescript) {
60
83
  return 'javascript';
61
84
  }
62
- if (await this.hasPythonIndicators()) {
63
- return 'python';
85
+ if (deps.typescript) {
86
+ return 'typescript';
64
87
  }
65
88
  return 'general';
66
89
  }
67
- async hasReactIndicators() {
68
- const packageJsonPath = 'package.json';
69
- if (await fs.pathExists(packageJsonPath)) {
70
- try {
71
- const packageJson = await fs.readJson(packageJsonPath);
72
- const deps = {
73
- ...packageJson.dependencies,
74
- ...packageJson.devDependencies,
75
- };
76
- return !!(deps.react || deps['@types/react'] || deps['react-dom']);
77
- }
78
- catch {
79
- }
90
+ detectTechStack(packageJson, type) {
91
+ const deps = this.collectDependencies(packageJson);
92
+ const techStack = [];
93
+ if (type === 'python') {
94
+ techStack.push('Python');
80
95
  }
81
- const reactFiles = [
82
- 'src/App.tsx',
83
- 'src/App.jsx',
84
- 'public/index.html',
85
- 'vite.config.ts',
86
- 'vite.config.js',
87
- ];
88
- for (const file of reactFiles) {
89
- if (await fs.pathExists(file)) {
90
- return true;
91
- }
96
+ if (deps.react) {
97
+ techStack.push('React');
92
98
  }
93
- return false;
94
- }
95
- async hasNodeIndicators() {
96
- const packageJsonPath = 'package.json';
97
- if (await fs.pathExists(packageJsonPath)) {
98
- try {
99
- const packageJson = await fs.readJson(packageJsonPath);
100
- const deps = {
101
- ...packageJson.dependencies,
102
- ...packageJson.devDependencies,
103
- };
104
- const nodeIndicators = [
105
- 'express',
106
- 'fastify',
107
- 'koa',
108
- '@types/node',
109
- 'nodemon',
110
- ];
111
- return nodeIndicators.some((indicator) => deps[indicator]);
112
- }
113
- catch {
114
- }
99
+ if (deps.typescript || deps['@types/node']) {
100
+ techStack.push('TypeScript');
115
101
  }
116
- const nodeFiles = ['server.js', 'server.ts', 'app.js', 'app.ts'];
117
- for (const file of nodeFiles) {
118
- if (await fs.pathExists(file)) {
119
- return true;
120
- }
102
+ if (deps.express) {
103
+ techStack.push('Express');
121
104
  }
122
- const indexFiles = ['index.js', 'index.ts'];
123
- for (const file of indexFiles) {
124
- if (await fs.pathExists(file)) {
125
- try {
126
- const content = await fs.readFile(file, 'utf-8');
127
- const nodePatterns = [
128
- 'require\\(.*express.*\\)',
129
- 'require\\(.*http.*\\)',
130
- 'require\\(.*fs.*\\)',
131
- 'require\\(.*path.*\\)',
132
- 'process\\.env',
133
- 'module\\.exports',
134
- '__dirname',
135
- '__filename',
136
- 'createServer',
137
- 'app\\.listen',
138
- ];
139
- if (nodePatterns.some((pattern) => new RegExp(pattern).test(content))) {
140
- return true;
141
- }
142
- }
143
- catch {
144
- }
145
- }
105
+ if (deps.fastify) {
106
+ techStack.push('Fastify');
146
107
  }
147
- return false;
148
- }
149
- async hasJavaScriptIndicators() {
150
- const packageJsonPath = 'package.json';
151
- if (await fs.pathExists(packageJsonPath)) {
152
- try {
153
- const packageJson = await fs.readJson(packageJsonPath);
154
- const deps = {
155
- ...packageJson.dependencies,
156
- ...packageJson.devDependencies,
157
- };
158
- const jsIndicators = [
159
- 'webpack',
160
- 'parcel',
161
- 'rollup',
162
- 'browserify',
163
- 'lodash',
164
- 'moment',
165
- 'axios',
166
- 'jquery',
167
- '@babel/core',
168
- 'babel-core',
169
- ];
170
- const hasJsIndicators = jsIndicators.some((indicator) => deps[indicator]);
171
- const hasBackendIndicators = ['express', 'fastify', 'koa'].some((indicator) => deps[indicator]);
172
- const hasReactIndicators = ['react', 'react-dom'].some((indicator) => deps[indicator]);
173
- if (hasJsIndicators && !hasBackendIndicators && !hasReactIndicators) {
174
- return true;
175
- }
176
- if (packageJson.main || packageJson.browser) {
177
- return !hasBackendIndicators && !hasReactIndicators;
178
- }
179
- }
180
- catch {
181
- }
108
+ if (deps.jest) {
109
+ techStack.push('Jest');
182
110
  }
183
- const jsFiles = [
184
- 'index.js',
185
- 'main.js',
186
- 'app.js',
187
- 'src/index.js',
188
- 'src/main.js',
189
- ];
190
- const tsFiles = [
191
- 'index.ts',
192
- 'main.ts',
193
- 'app.ts',
194
- 'src/index.ts',
195
- 'src/main.ts',
196
- ];
197
- const hasJsFiles = await Promise.all(jsFiles.map((file) => fs.pathExists(file)));
198
- const hasTsFiles = await Promise.all(tsFiles.map((file) => fs.pathExists(file)));
199
- if (hasJsFiles.some((exists) => exists) &&
200
- !hasTsFiles.some((exists) => exists)) {
201
- return true;
111
+ if (deps.vite) {
112
+ techStack.push('Vite');
202
113
  }
203
- return false;
204
- }
205
- async hasPythonIndicators() {
206
- const pythonFiles = [
207
- 'requirements.txt',
208
- 'pyproject.toml',
209
- 'setup.py',
210
- 'Pipfile',
211
- 'poetry.lock',
212
- 'main.py',
213
- 'app.py',
214
- ];
215
- for (const file of pythonFiles) {
216
- if (await fs.pathExists(file)) {
217
- return true;
114
+ if (deps.pytest) {
115
+ techStack.push('Pytest');
116
+ }
117
+ if (techStack.length === 0) {
118
+ if (type === 'javascript') {
119
+ techStack.push('JavaScript');
120
+ }
121
+ else {
122
+ techStack.push('TypeScript');
218
123
  }
219
124
  }
220
- return false;
221
- }
222
- async hasGitRepository() {
223
- return await fs.pathExists('.git');
224
- }
225
- async hasVSCodeConfiguration() {
226
- return await fs.pathExists('.vscode');
125
+ return techStack;
227
126
  }
228
- async hasPackageJson() {
229
- return await fs.pathExists('package.json');
127
+ collectDependencies(packageJson) {
128
+ return {
129
+ ...(packageJson?.dependencies || {}),
130
+ ...(packageJson?.devDependencies || {}),
131
+ };
230
132
  }
231
- async detectTechStack() {
232
- const techStack = [];
233
- if (await fs.pathExists('package.json')) {
234
- try {
235
- const packageJson = await fs.readJson('package.json');
236
- const deps = {
237
- ...packageJson.dependencies,
238
- ...packageJson.devDependencies,
239
- };
240
- if (deps.react)
241
- techStack.push('React');
242
- if (deps.typescript || deps['@types/node'])
243
- techStack.push('TypeScript');
244
- if (deps.express)
245
- techStack.push('Express');
246
- if (deps.jest)
247
- techStack.push('Jest');
248
- if (deps.vite)
249
- techStack.push('Vite');
250
- if (deps.webpack)
251
- techStack.push('Webpack');
252
- if (deps.next)
253
- techStack.push('Next.js');
254
- }
255
- catch {
256
- }
133
+ async readPackageJson() {
134
+ if (!(await fs.pathExists('package.json'))) {
135
+ return null;
257
136
  }
258
- if (await this.hasPythonIndicators()) {
259
- techStack.push('Python');
137
+ try {
138
+ return await fs.readJson('package.json');
260
139
  }
261
- if (techStack.length === 0) {
262
- techStack.push('TypeScript', 'Jest');
140
+ catch {
141
+ return null;
263
142
  }
264
- return techStack;
143
+ }
144
+ async hasAnyFile(filePaths) {
145
+ const results = await Promise.all(filePaths.map((filePath) => fs.pathExists(filePath)));
146
+ return results.some(Boolean);
265
147
  }
266
148
  }
267
149
  exports.ProjectDetector = ProjectDetector;
@@ -1 +1 @@
1
- {"version":3,"file":"project-detector.js","sourceRoot":"","sources":["../../src/services/project-detector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,2CAA6B;AAK7B,MAAa,eAAe;IAI1B,KAAK,CAAC,aAAa;QACjB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAE9C,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;YACpC,MAAM,EAAE,MAAM,IAAI,CAAC,gBAAgB,EAAE;YACrC,SAAS,EAAE,MAAM,IAAI,CAAC,sBAAsB,EAAE;YAC9C,cAAc,EAAE,MAAM,IAAI,CAAC,cAAc,EAAE;YAC3C,SAAS,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE;SACxC,CAAC;IACJ,CAAC;IAKO,KAAK,CAAC,iBAAiB;QAE7B,IAAI,MAAM,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YACpC,OAAO,OAAO,CAAC;QACjB,CAAC;QAGD,IAAI,MAAM,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;YACnC,OAAO,MAAM,CAAC;QAChB,CAAC;QAGD,IAAI,MAAM,IAAI,CAAC,uBAAuB,EAAE,EAAE,CAAC;YACzC,OAAO,YAAY,CAAC;QACtB,CAAC;QAGD,IAAI,MAAM,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC;YACrC,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAKO,KAAK,CAAC,kBAAkB;QAC9B,MAAM,eAAe,GAAG,cAAc,CAAC;QAEvC,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;gBACvD,MAAM,IAAI,GAAG;oBACX,GAAG,WAAW,CAAC,YAAY;oBAC3B,GAAG,WAAW,CAAC,eAAe;iBAC/B,CAAC;gBAEF,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YACrE,CAAC;YAAC,MAAM,CAAC;YAET,CAAC;QACH,CAAC;QAGD,MAAM,UAAU,GAAG;YACjB,aAAa;YACb,aAAa;YACb,mBAAmB;YACnB,gBAAgB;YAChB,gBAAgB;SACjB,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAKO,KAAK,CAAC,iBAAiB;QAC7B,MAAM,eAAe,GAAG,cAAc,CAAC;QAEvC,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;gBACvD,MAAM,IAAI,GAAG;oBACX,GAAG,WAAW,CAAC,YAAY;oBAC3B,GAAG,WAAW,CAAC,eAAe;iBAC/B,CAAC;gBAGF,MAAM,cAAc,GAAG;oBACrB,SAAS;oBACT,SAAS;oBACT,KAAK;oBACL,aAAa;oBACb,SAAS;iBACV,CAAC;gBACF,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YAC7D,CAAC;YAAC,MAAM,CAAC;YAET,CAAC;QACH,CAAC;QAGD,MAAM,SAAS,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAEjE,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAGD,MAAM,UAAU,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC5C,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBAEjD,MAAM,YAAY,GAAG;wBACnB,0BAA0B;wBAC1B,uBAAuB;wBACvB,qBAAqB;wBACrB,uBAAuB;wBACvB,eAAe;wBACf,kBAAkB;wBAClB,WAAW;wBACX,YAAY;wBACZ,cAAc;wBACd,cAAc;qBACf,CAAC;oBAEF,IACE,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EACjE,CAAC;wBACD,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;gBAET,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAKO,KAAK,CAAC,uBAAuB;QACnC,MAAM,eAAe,GAAG,cAAc,CAAC;QAEvC,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;gBACvD,MAAM,IAAI,GAAG;oBACX,GAAG,WAAW,CAAC,YAAY;oBAC3B,GAAG,WAAW,CAAC,eAAe;iBAC/B,CAAC;gBAGF,MAAM,YAAY,GAAG;oBACnB,SAAS;oBACT,QAAQ;oBACR,QAAQ;oBACR,YAAY;oBACZ,QAAQ;oBACR,QAAQ;oBACR,OAAO;oBACP,QAAQ;oBACR,aAAa;oBACb,YAAY;iBACb,CAAC;gBAGF,MAAM,eAAe,GAAG,YAAY,CAAC,IAAI,CACvC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAC/B,CAAC;gBACF,MAAM,oBAAoB,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,IAAI,CAC7D,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAC/B,CAAC;gBACF,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,IAAI,CACpD,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAC/B,CAAC;gBAEF,IAAI,eAAe,IAAI,CAAC,oBAAoB,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBACpE,OAAO,IAAI,CAAC;gBACd,CAAC;gBAGD,IAAI,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;oBAC5C,OAAO,CAAC,oBAAoB,IAAI,CAAC,kBAAkB,CAAC;gBACtD,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;YAET,CAAC;QACH,CAAC;QAGD,MAAM,OAAO,GAAG;YACd,UAAU;YACV,SAAS;YACT,QAAQ;YACR,cAAc;YACd,aAAa;SACd,CAAC;QACF,MAAM,OAAO,GAAG;YACd,UAAU;YACV,SAAS;YACT,QAAQ;YACR,cAAc;YACd,aAAa;SACd,CAAC;QAGF,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAC3C,CAAC;QACF,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAC3C,CAAC;QAEF,IACE,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC;YACnC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EACpC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAKO,KAAK,CAAC,mBAAmB;QAC/B,MAAM,WAAW,GAAG;YAClB,kBAAkB;YAClB,gBAAgB;YAChB,UAAU;YACV,SAAS;YACT,aAAa;YACb,SAAS;YACT,QAAQ;SACT,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAKO,KAAK,CAAC,gBAAgB;QAC5B,OAAO,MAAM,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAKO,KAAK,CAAC,sBAAsB;QAClC,OAAO,MAAM,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAKO,KAAK,CAAC,cAAc;QAC1B,OAAO,MAAM,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IAC7C,CAAC;IAKO,KAAK,CAAC,eAAe;QAC3B,MAAM,SAAS,GAAa,EAAE,CAAC;QAG/B,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;gBACtD,MAAM,IAAI,GAAG;oBACX,GAAG,WAAW,CAAC,YAAY;oBAC3B,GAAG,WAAW,CAAC,eAAe;iBAC/B,CAAC;gBAEF,IAAI,IAAI,CAAC,KAAK;oBAAE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACxC,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,aAAa,CAAC;oBACxC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC/B,IAAI,IAAI,CAAC,OAAO;oBAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC5C,IAAI,IAAI,CAAC,IAAI;oBAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtC,IAAI,IAAI,CAAC,IAAI;oBAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtC,IAAI,IAAI,CAAC,OAAO;oBAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC5C,IAAI,IAAI,CAAC,IAAI;oBAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3C,CAAC;YAAC,MAAM,CAAC;YAET,CAAC;QACH,CAAC;QAGD,IAAI,MAAM,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC;YACrC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;QAGD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AApUD,0CAoUC"}
1
+ {"version":3,"file":"project-detector.js","sourceRoot":"","sources":["../../src/services/project-detector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { AgentVendor, ProjectConfig } from '../types';
2
+ export declare class SkillManager {
3
+ private readonly sourceSkillDir;
4
+ private readonly claudeAgentTemplatePath;
5
+ private readonly vendorDefinitions;
6
+ isInstalled(vendor?: AgentVendor): Promise<boolean>;
7
+ getInstalledVendors(): Promise<AgentVendor[]>;
8
+ getInstallDirectory(vendor: AgentVendor): string;
9
+ getBackupTargets(vendor: AgentVendor): string[];
10
+ installSkill(config: ProjectConfig): Promise<string[]>;
11
+ generateInstallationFiles(config: ProjectConfig): Promise<Array<{
12
+ path: string;
13
+ content: string;
14
+ }>>;
15
+ getInstalledFiles(vendor: AgentVendor): Promise<string[]>;
16
+ private hasVendorInstall;
17
+ private readCoreSupportFiles;
18
+ private renderClaudeAgentFile;
19
+ private listFilesRecursively;
20
+ private renderProjectContext;
21
+ private getRecommendedReferences;
22
+ }
23
+ //# sourceMappingURL=skill-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-manager.d.ts","sourceRoot":"","sources":["../../src/services/skill-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAWtD,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAG7B;IACF,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAGtC;IACF,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAgBhC;IAEI,WAAW,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAKnD,mBAAmB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAYnD,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM;IAIhD,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,EAAE;IAWzC,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAWtD,yBAAyB,CAC7B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAsB9C,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAajD,gBAAgB;YAahB,oBAAoB;YAyBpB,qBAAqB;YAIrB,oBAAoB;YAoBpB,oBAAoB;IAwBlC,OAAO,CAAC,wBAAwB;CAiCjC"}