syntra 0.1.2

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 (170) hide show
  1. package/README.md +239 -0
  2. package/dist/adapters/claude.d.ts +3 -0
  3. package/dist/adapters/claude.d.ts.map +1 -0
  4. package/dist/adapters/claude.js +19 -0
  5. package/dist/adapters/claude.js.map +1 -0
  6. package/dist/adapters/common.d.ts +14 -0
  7. package/dist/adapters/common.d.ts.map +1 -0
  8. package/dist/adapters/common.js +38 -0
  9. package/dist/adapters/common.js.map +1 -0
  10. package/dist/adapters/copilot.d.ts +5 -0
  11. package/dist/adapters/copilot.d.ts.map +1 -0
  12. package/dist/adapters/copilot.js +25 -0
  13. package/dist/adapters/copilot.js.map +1 -0
  14. package/dist/adapters/cursor.d.ts +3 -0
  15. package/dist/adapters/cursor.d.ts.map +1 -0
  16. package/dist/adapters/cursor.js +26 -0
  17. package/dist/adapters/cursor.js.map +1 -0
  18. package/dist/adapters/index.d.ts +12 -0
  19. package/dist/adapters/index.d.ts.map +1 -0
  20. package/dist/adapters/index.js +27 -0
  21. package/dist/adapters/index.js.map +1 -0
  22. package/dist/commands/add.d.ts +2 -0
  23. package/dist/commands/add.d.ts.map +1 -0
  24. package/dist/commands/add.js +154 -0
  25. package/dist/commands/add.js.map +1 -0
  26. package/dist/commands/done.d.ts +2 -0
  27. package/dist/commands/done.d.ts.map +1 -0
  28. package/dist/commands/done.js +20 -0
  29. package/dist/commands/done.js.map +1 -0
  30. package/dist/commands/init.d.ts +2 -0
  31. package/dist/commands/init.d.ts.map +1 -0
  32. package/dist/commands/init.js +129 -0
  33. package/dist/commands/init.js.map +1 -0
  34. package/dist/commands/sync.d.ts +8 -0
  35. package/dist/commands/sync.d.ts.map +1 -0
  36. package/dist/commands/sync.js +31 -0
  37. package/dist/commands/sync.js.map +1 -0
  38. package/dist/commands/template.d.ts +3 -0
  39. package/dist/commands/template.d.ts.map +1 -0
  40. package/dist/commands/template.js +51 -0
  41. package/dist/commands/template.js.map +1 -0
  42. package/dist/commands/validate.d.ts +6 -0
  43. package/dist/commands/validate.d.ts.map +1 -0
  44. package/dist/commands/validate.js +101 -0
  45. package/dist/commands/validate.js.map +1 -0
  46. package/dist/detectors/cicd.d.ts +2 -0
  47. package/dist/detectors/cicd.d.ts.map +1 -0
  48. package/dist/detectors/cicd.js +24 -0
  49. package/dist/detectors/cicd.js.map +1 -0
  50. package/dist/detectors/existingAi.d.ts +6 -0
  51. package/dist/detectors/existingAi.d.ts.map +1 -0
  52. package/dist/detectors/existingAi.js +10 -0
  53. package/dist/detectors/existingAi.js.map +1 -0
  54. package/dist/detectors/framework.d.ts +3 -0
  55. package/dist/detectors/framework.d.ts.map +1 -0
  56. package/dist/detectors/framework.js +75 -0
  57. package/dist/detectors/framework.js.map +1 -0
  58. package/dist/detectors/index.d.ts +9 -0
  59. package/dist/detectors/index.d.ts.map +1 -0
  60. package/dist/detectors/index.js +29 -0
  61. package/dist/detectors/index.js.map +1 -0
  62. package/dist/detectors/language.d.ts +3 -0
  63. package/dist/detectors/language.d.ts.map +1 -0
  64. package/dist/detectors/language.js +34 -0
  65. package/dist/detectors/language.js.map +1 -0
  66. package/dist/detectors/monorepo.d.ts +2 -0
  67. package/dist/detectors/monorepo.d.ts.map +1 -0
  68. package/dist/detectors/monorepo.js +31 -0
  69. package/dist/detectors/monorepo.js.map +1 -0
  70. package/dist/detectors/packageManager.d.ts +3 -0
  71. package/dist/detectors/packageManager.d.ts.map +1 -0
  72. package/dist/detectors/packageManager.js +42 -0
  73. package/dist/detectors/packageManager.js.map +1 -0
  74. package/dist/index.d.ts +3 -0
  75. package/dist/index.d.ts.map +1 -0
  76. package/dist/index.js +125 -0
  77. package/dist/index.js.map +1 -0
  78. package/dist/templates/agents/bugFixer.d.ts +2 -0
  79. package/dist/templates/agents/bugFixer.d.ts.map +1 -0
  80. package/dist/templates/agents/bugFixer.js +37 -0
  81. package/dist/templates/agents/bugFixer.js.map +1 -0
  82. package/dist/templates/agents/codeGenerator.d.ts +2 -0
  83. package/dist/templates/agents/codeGenerator.d.ts.map +1 -0
  84. package/dist/templates/agents/codeGenerator.js +41 -0
  85. package/dist/templates/agents/codeGenerator.js.map +1 -0
  86. package/dist/templates/agents/codeReviewer.d.ts +2 -0
  87. package/dist/templates/agents/codeReviewer.d.ts.map +1 -0
  88. package/dist/templates/agents/codeReviewer.js +43 -0
  89. package/dist/templates/agents/codeReviewer.js.map +1 -0
  90. package/dist/templates/agents/index.d.ts +5 -0
  91. package/dist/templates/agents/index.d.ts.map +1 -0
  92. package/dist/templates/agents/index.js +5 -0
  93. package/dist/templates/agents/index.js.map +1 -0
  94. package/dist/templates/agents/taskPlanner.d.ts +2 -0
  95. package/dist/templates/agents/taskPlanner.d.ts.map +1 -0
  96. package/dist/templates/agents/taskPlanner.js +47 -0
  97. package/dist/templates/agents/taskPlanner.js.map +1 -0
  98. package/dist/templates/engine.d.ts +9 -0
  99. package/dist/templates/engine.d.ts.map +1 -0
  100. package/dist/templates/engine.js +16 -0
  101. package/dist/templates/engine.js.map +1 -0
  102. package/dist/templates/files/index.d.ts +3 -0
  103. package/dist/templates/files/index.d.ts.map +1 -0
  104. package/dist/templates/files/index.js +51 -0
  105. package/dist/templates/files/index.js.map +1 -0
  106. package/dist/templates/instructions/architecture.d.ts +2 -0
  107. package/dist/templates/instructions/architecture.d.ts.map +1 -0
  108. package/dist/templates/instructions/architecture.js +50 -0
  109. package/dist/templates/instructions/architecture.js.map +1 -0
  110. package/dist/templates/instructions/deploy.d.ts +2 -0
  111. package/dist/templates/instructions/deploy.d.ts.map +1 -0
  112. package/dist/templates/instructions/deploy.js +53 -0
  113. package/dist/templates/instructions/deploy.js.map +1 -0
  114. package/dist/templates/instructions/index.d.ts +6 -0
  115. package/dist/templates/instructions/index.d.ts.map +1 -0
  116. package/dist/templates/instructions/index.js +6 -0
  117. package/dist/templates/instructions/index.js.map +1 -0
  118. package/dist/templates/instructions/security.d.ts +2 -0
  119. package/dist/templates/instructions/security.d.ts.map +1 -0
  120. package/dist/templates/instructions/security.js +43 -0
  121. package/dist/templates/instructions/security.js.map +1 -0
  122. package/dist/templates/instructions/style.d.ts +2 -0
  123. package/dist/templates/instructions/style.d.ts.map +1 -0
  124. package/dist/templates/instructions/style.js +45 -0
  125. package/dist/templates/instructions/style.js.map +1 -0
  126. package/dist/templates/instructions/testing.d.ts +2 -0
  127. package/dist/templates/instructions/testing.d.ts.map +1 -0
  128. package/dist/templates/instructions/testing.js +61 -0
  129. package/dist/templates/instructions/testing.js.map +1 -0
  130. package/dist/templates/registry.d.ts +13 -0
  131. package/dist/templates/registry.d.ts.map +1 -0
  132. package/dist/templates/registry.js +89 -0
  133. package/dist/templates/registry.js.map +1 -0
  134. package/dist/utils/fs.d.ts +16 -0
  135. package/dist/utils/fs.d.ts.map +1 -0
  136. package/dist/utils/fs.js +88 -0
  137. package/dist/utils/fs.js.map +1 -0
  138. package/dist/utils/logger.d.ts +16 -0
  139. package/dist/utils/logger.d.ts.map +1 -0
  140. package/dist/utils/logger.js +68 -0
  141. package/dist/utils/logger.js.map +1 -0
  142. package/dist/utils/prompt.d.ts +9 -0
  143. package/dist/utils/prompt.d.ts.map +1 -0
  144. package/dist/utils/prompt.js +48 -0
  145. package/dist/utils/prompt.js.map +1 -0
  146. package/dist/utils/types.d.ts +68 -0
  147. package/dist/utils/types.d.ts.map +1 -0
  148. package/dist/utils/types.js +2 -0
  149. package/dist/utils/types.js.map +1 -0
  150. package/dist/validators/agents.d.ts +3 -0
  151. package/dist/validators/agents.d.ts.map +1 -0
  152. package/dist/validators/agents.js +40 -0
  153. package/dist/validators/agents.js.map +1 -0
  154. package/dist/validators/config.d.ts +12 -0
  155. package/dist/validators/config.d.ts.map +1 -0
  156. package/dist/validators/config.js +114 -0
  157. package/dist/validators/config.js.map +1 -0
  158. package/dist/validators/instructions.d.ts +10 -0
  159. package/dist/validators/instructions.d.ts.map +1 -0
  160. package/dist/validators/instructions.js +34 -0
  161. package/dist/validators/instructions.js.map +1 -0
  162. package/dist/validators/syncStatus.d.ts +9 -0
  163. package/dist/validators/syncStatus.d.ts.map +1 -0
  164. package/dist/validators/syncStatus.js +92 -0
  165. package/dist/validators/syncStatus.js.map +1 -0
  166. package/dist/validators/tasks.d.ts +3 -0
  167. package/dist/validators/tasks.d.ts.map +1 -0
  168. package/dist/validators/tasks.js +72 -0
  169. package/dist/validators/tasks.js.map +1 -0
  170. package/package.json +52 -0
@@ -0,0 +1,34 @@
1
+ import { fsUtils } from '../utils/fs.js';
2
+ import path from 'path';
3
+ export function detectLanguage(rootPath) {
4
+ // Check for TypeScript/JavaScript
5
+ const packageJsonPath = path.join(rootPath, 'package.json');
6
+ if (fsUtils.exists(packageJsonPath)) {
7
+ try {
8
+ const pkg = fsUtils.readJSON(packageJsonPath);
9
+ if (pkg.devDependencies?.typescript || pkg.dependencies?.typescript) {
10
+ return 'typescript';
11
+ }
12
+ return 'javascript';
13
+ }
14
+ catch {
15
+ // Fall through
16
+ }
17
+ }
18
+ // Check for Python
19
+ if (fsUtils.exists(path.join(rootPath, 'pyproject.toml')) ||
20
+ fsUtils.exists(path.join(rootPath, 'setup.py')) ||
21
+ fsUtils.exists(path.join(rootPath, 'requirements.txt'))) {
22
+ return 'python';
23
+ }
24
+ // Check for Go
25
+ if (fsUtils.exists(path.join(rootPath, 'go.mod'))) {
26
+ return 'go';
27
+ }
28
+ // Check for Rust
29
+ if (fsUtils.exists(path.join(rootPath, 'Cargo.toml'))) {
30
+ return 'rust';
31
+ }
32
+ return 'other';
33
+ }
34
+ //# sourceMappingURL=language.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"language.js","sourceRoot":"","sources":["../../src/detectors/language.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,kCAAkC;IAClC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC5D,IAAI,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;YAC5C,IAAK,GAAW,CAAC,eAAe,EAAE,UAAU,IAAK,GAAW,CAAC,YAAY,EAAE,UAAU,EAAE,CAAC;gBACxF,OAAO,YAAY,CAAC;YACtB,CAAC;YACD,OAAO,YAAY,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,eAAe;QACjB,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QACrD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC/C,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC;QAC5D,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,eAAe;IACf,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iBAAiB;IACjB,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;QACtD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function detectMonorepo(rootPath: string): boolean;
2
+ //# sourceMappingURL=monorepo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monorepo.d.ts","sourceRoot":"","sources":["../../src/detectors/monorepo.ts"],"names":[],"mappings":"AAGA,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CA8BxD"}
@@ -0,0 +1,31 @@
1
+ import { fsUtils } from '../utils/fs.js';
2
+ import path from 'path';
3
+ export function detectMonorepo(rootPath) {
4
+ // npm workspaces
5
+ const packageJsonPath = path.join(rootPath, 'package.json');
6
+ if (fsUtils.exists(packageJsonPath)) {
7
+ try {
8
+ const pkg = fsUtils.readJSON(packageJsonPath);
9
+ if (pkg.workspaces) {
10
+ return true;
11
+ }
12
+ }
13
+ catch {
14
+ // Fall through
15
+ }
16
+ }
17
+ // Lerna
18
+ if (fsUtils.exists(path.join(rootPath, 'lerna.json'))) {
19
+ return true;
20
+ }
21
+ // Nx
22
+ if (fsUtils.exists(path.join(rootPath, 'nx.json'))) {
23
+ return true;
24
+ }
25
+ // Turbo
26
+ if (fsUtils.exists(path.join(rootPath, 'turbo.json'))) {
27
+ return true;
28
+ }
29
+ return false;
30
+ }
31
+ //# sourceMappingURL=monorepo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monorepo.js","sourceRoot":"","sources":["../../src/detectors/monorepo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,iBAAiB;IACjB,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC5D,IAAI,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;YAC9C,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;gBACnB,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,eAAe;QACjB,CAAC;IACH,CAAC;IAED,QAAQ;IACR,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;IACL,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ;IACR,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ProjectProfile } from '../utils/types.js';
2
+ export declare function detectPackageManager(rootPath: string, language: ProjectProfile['language']): ProjectProfile['packageManager'];
3
+ //# sourceMappingURL=packageManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packageManager.d.ts","sourceRoot":"","sources":["../../src/detectors/packageManager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,GACnC,cAAc,CAAC,gBAAgB,CAAC,CA4ClC"}
@@ -0,0 +1,42 @@
1
+ import { fsUtils } from '../utils/fs.js';
2
+ import path from 'path';
3
+ export function detectPackageManager(rootPath, language) {
4
+ // JavaScript/TypeScript package managers
5
+ if (language === 'typescript' || language === 'javascript') {
6
+ // npm (package-lock.json)
7
+ if (fsUtils.exists(path.join(rootPath, 'package-lock.json'))) {
8
+ return 'npm';
9
+ }
10
+ // yarn (yarn.lock)
11
+ if (fsUtils.exists(path.join(rootPath, 'yarn.lock'))) {
12
+ return 'yarn';
13
+ }
14
+ // pnpm (pnpm-lock.yaml)
15
+ if (fsUtils.exists(path.join(rootPath, 'pnpm-lock.yaml'))) {
16
+ return 'pnpm';
17
+ }
18
+ // bun (bun.lockb)
19
+ if (fsUtils.exists(path.join(rootPath, 'bun.lockb'))) {
20
+ return 'bun';
21
+ }
22
+ // Default to npm if package.json exists
23
+ if (fsUtils.exists(path.join(rootPath, 'package.json'))) {
24
+ return 'npm';
25
+ }
26
+ }
27
+ // Python package managers
28
+ if (language === 'python') {
29
+ if (fsUtils.exists(path.join(rootPath, 'poetry.lock'))) {
30
+ return 'python';
31
+ }
32
+ if (fsUtils.exists(path.join(rootPath, 'pipenv.lock'))) {
33
+ return 'python';
34
+ }
35
+ if (fsUtils.exists(path.join(rootPath, 'requirements.txt'))) {
36
+ return 'python';
37
+ }
38
+ return 'python';
39
+ }
40
+ return 'other';
41
+ }
42
+ //# sourceMappingURL=packageManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packageManager.js","sourceRoot":"","sources":["../../src/detectors/packageManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,MAAM,UAAU,oBAAoB,CAClC,QAAgB,EAChB,QAAoC;IAEpC,yCAAyC;IACzC,IAAI,QAAQ,KAAK,YAAY,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC3D,0BAA0B;QAC1B,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC;YAC7D,OAAO,KAAK,CAAC;QACf,CAAC;QAED,mBAAmB;QACnB,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;YACrD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,wBAAwB;QACxB,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC;YAC1D,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,kBAAkB;QAClB,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;YACrD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,wCAAwC;QACxC,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;YACxD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC;YACvD,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC;YACvD,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC;YAC5D,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,125 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from 'commander';
3
+ import { initCommand } from './commands/init.js';
4
+ import { addCommand } from './commands/add.js';
5
+ import { doneCommand } from './commands/done.js';
6
+ import { syncCommand } from './commands/sync.js';
7
+ import { validateCommand } from './commands/validate.js';
8
+ import { templateSaveCommand, templateListCommand } from './commands/template.js';
9
+ import { logger } from './utils/logger.js';
10
+ const program = new Command();
11
+ program
12
+ .name('syntra')
13
+ .description('AI-assisted development framework CLI')
14
+ .version('0.1.0');
15
+ // Init command
16
+ program
17
+ .command('init')
18
+ .description('Initialize AI framework in project')
19
+ .action(async () => {
20
+ try {
21
+ await initCommand();
22
+ }
23
+ catch (e) {
24
+ process.exit(1);
25
+ }
26
+ });
27
+ // Add command
28
+ program
29
+ .command('add <type> [name]')
30
+ .description('Add framework file (instruction, agent, task, skill)')
31
+ .action(async (type, name) => {
32
+ try {
33
+ if (!['instruction', 'agent', 'task', 'skill'].includes(type)) {
34
+ logger.error(`Unknown type: ${type}`);
35
+ logger.info('Valid types: instruction, agent, task, skill');
36
+ process.exit(1);
37
+ }
38
+ await addCommand(type, name);
39
+ }
40
+ catch (e) {
41
+ process.exit(1);
42
+ }
43
+ });
44
+ // Done command
45
+ program
46
+ .command('done <taskId>')
47
+ .description('Mark task as done')
48
+ .action((taskId) => {
49
+ try {
50
+ doneCommand(taskId);
51
+ }
52
+ catch (e) {
53
+ logger.error(`Failed: ${e}`);
54
+ process.exit(1);
55
+ }
56
+ });
57
+ // Sync command
58
+ program
59
+ .command('sync')
60
+ .description('Sync canonical ai/ files to configured AI tool adapters')
61
+ .option('--copilot', 'Sync only GitHub Copilot adapter')
62
+ .option('--claude', 'Sync only Claude Code adapter')
63
+ .option('--cursor', 'Sync only Cursor adapter')
64
+ .action((options) => {
65
+ try {
66
+ syncCommand(process.cwd(), {
67
+ copilot: options.copilot,
68
+ claude: options.claude,
69
+ cursor: options.cursor,
70
+ });
71
+ }
72
+ catch (e) {
73
+ logger.error(`Failed: ${e}`);
74
+ process.exit(1);
75
+ }
76
+ });
77
+ // Validate command
78
+ program
79
+ .command('validate')
80
+ .description('Validate framework setup and sync status')
81
+ .action(() => {
82
+ try {
83
+ const result = validateCommand(process.cwd());
84
+ if (result.errors > 0) {
85
+ process.exitCode = 1;
86
+ }
87
+ }
88
+ catch (e) {
89
+ logger.error(`Failed: ${e}`);
90
+ process.exit(1);
91
+ }
92
+ });
93
+ // Template commands
94
+ const template = program
95
+ .command('template')
96
+ .description('Manage reusable framework templates');
97
+ template
98
+ .command('save <name>')
99
+ .description('Save current ai/ setup as a reusable template')
100
+ .action((name) => {
101
+ try {
102
+ templateSaveCommand(name, process.cwd());
103
+ }
104
+ catch (e) {
105
+ logger.error(`Failed: ${e}`);
106
+ process.exit(1);
107
+ }
108
+ });
109
+ template
110
+ .command('list')
111
+ .description('List saved templates')
112
+ .action(() => {
113
+ try {
114
+ templateListCommand();
115
+ }
116
+ catch (e) {
117
+ logger.error(`Failed: ${e}`);
118
+ process.exit(1);
119
+ }
120
+ });
121
+ program.parse(process.argv);
122
+ if (!process.argv.slice(2).length) {
123
+ program.outputHelp();
124
+ }
125
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const bugFixerTemplate = "# Bug Fixer Agent\n\n## Purpose\nDiagnoses and fixes bugs using project context and instructions.\n\n## Responsibilities\n1. Understand the bug description\n2. Locate the problematic code\n3. Diagnose the root cause\n4. Implement a fix\n5. Verify the fix doesn't break other tests\n6. Document what was wrong and how it was fixed\n\n## Debugging Process\n1. **Reproduce**: Can you reproduce the issue?\n2. **Isolate**: Narrow down which component/function is broken\n3. **Root cause**: Why is it broken?\n4. **Fix**: Implement the smallest fix that works\n5. **Verify**: Does it fix the issue without breaking tests?\n6. **Prevent**: Could we add a test to prevent regression?\n\n## Root Cause Categories\n- **Logic error**: Wrong business logic\n- **Edge case**: Unhandled edge case\n- **Type error**: Type mismatch or incorrect usage\n- **State error**: Wrong state management\n- **Dependency**: Wrong dependency or missing import\n- **Performance**: Too slow or too much memory\n\n## Fix Quality\n- **Minimal change**: Don't refactor unrelated code\n- **No side effects**: Fix should only affect the broken behavior\n- **With test**: Add test that would have caught this bug\n- **Well documented**: Explain what was wrong\n\n";
2
+ //# sourceMappingURL=bugFixer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bugFixer.d.ts","sourceRoot":"","sources":["../../../src/templates/agents/bugFixer.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,itCAmC5B,CAAC"}
@@ -0,0 +1,37 @@
1
+ export const bugFixerTemplate = `# Bug Fixer Agent
2
+
3
+ ## Purpose
4
+ Diagnoses and fixes bugs using project context and instructions.
5
+
6
+ ## Responsibilities
7
+ 1. Understand the bug description
8
+ 2. Locate the problematic code
9
+ 3. Diagnose the root cause
10
+ 4. Implement a fix
11
+ 5. Verify the fix doesn't break other tests
12
+ 6. Document what was wrong and how it was fixed
13
+
14
+ ## Debugging Process
15
+ 1. **Reproduce**: Can you reproduce the issue?
16
+ 2. **Isolate**: Narrow down which component/function is broken
17
+ 3. **Root cause**: Why is it broken?
18
+ 4. **Fix**: Implement the smallest fix that works
19
+ 5. **Verify**: Does it fix the issue without breaking tests?
20
+ 6. **Prevent**: Could we add a test to prevent regression?
21
+
22
+ ## Root Cause Categories
23
+ - **Logic error**: Wrong business logic
24
+ - **Edge case**: Unhandled edge case
25
+ - **Type error**: Type mismatch or incorrect usage
26
+ - **State error**: Wrong state management
27
+ - **Dependency**: Wrong dependency or missing import
28
+ - **Performance**: Too slow or too much memory
29
+
30
+ ## Fix Quality
31
+ - **Minimal change**: Don't refactor unrelated code
32
+ - **No side effects**: Fix should only affect the broken behavior
33
+ - **With test**: Add test that would have caught this bug
34
+ - **Well documented**: Explain what was wrong
35
+
36
+ `;
37
+ //# sourceMappingURL=bugFixer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bugFixer.js","sourceRoot":"","sources":["../../../src/templates/agents/bugFixer.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmC/B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const codeGeneratorTemplate = "# Code Generator Agent\n\n## Purpose\nGenerates code following project instructions, step by step.\n\n## Responsibilities\n1. Understand the task requirements\n2. Review relevant architecture and style instructions\n3. Break down the work into logical steps\n4. Generate code that follows all guidelines\n5. Test the generated code\n6. Provide clear explanations of changes\n\n## Guidelines\n- Always follow the project's architecture instructions\n- Adhere strictly to code style and naming conventions\n- Implement comprehensive error handling\n- Write self-documenting code with clear comments\n- Ensure all generated code is tested\n\n## Before Starting\n- [ ] Review the task description completely\n- [ ] Check architecture instructions\n- [ ] Check style instructions\n- [ ] Check testing instructions\n- [ ] Identify any existing code patterns to follow\n\n## During Implementation\n- [ ] Implement one step at a time\n- [ ] Explain what each step does\n- [ ] Ask for clarification if requirements are unclear\n- [ ] Suggest improvements if you spot issues\n\n## After Implementation\n- [ ] Run tests to verify functionality\n- [ ] Check code against style guidelines\n- [ ] Request human review\n- [ ] Incorporate feedback\n\n";
2
+ //# sourceMappingURL=codeGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeGenerator.d.ts","sourceRoot":"","sources":["../../../src/templates/agents/codeGenerator.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,wtCAuCjC,CAAC"}
@@ -0,0 +1,41 @@
1
+ export const codeGeneratorTemplate = `# Code Generator Agent
2
+
3
+ ## Purpose
4
+ Generates code following project instructions, step by step.
5
+
6
+ ## Responsibilities
7
+ 1. Understand the task requirements
8
+ 2. Review relevant architecture and style instructions
9
+ 3. Break down the work into logical steps
10
+ 4. Generate code that follows all guidelines
11
+ 5. Test the generated code
12
+ 6. Provide clear explanations of changes
13
+
14
+ ## Guidelines
15
+ - Always follow the project's architecture instructions
16
+ - Adhere strictly to code style and naming conventions
17
+ - Implement comprehensive error handling
18
+ - Write self-documenting code with clear comments
19
+ - Ensure all generated code is tested
20
+
21
+ ## Before Starting
22
+ - [ ] Review the task description completely
23
+ - [ ] Check architecture instructions
24
+ - [ ] Check style instructions
25
+ - [ ] Check testing instructions
26
+ - [ ] Identify any existing code patterns to follow
27
+
28
+ ## During Implementation
29
+ - [ ] Implement one step at a time
30
+ - [ ] Explain what each step does
31
+ - [ ] Ask for clarification if requirements are unclear
32
+ - [ ] Suggest improvements if you spot issues
33
+
34
+ ## After Implementation
35
+ - [ ] Run tests to verify functionality
36
+ - [ ] Check code against style guidelines
37
+ - [ ] Request human review
38
+ - [ ] Incorporate feedback
39
+
40
+ `;
41
+ //# sourceMappingURL=codeGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeGenerator.js","sourceRoot":"","sources":["../../../src/templates/agents/codeGenerator.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCpC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const codeReviewerTemplate = "# Code Reviewer Agent\n\n## Purpose\nReviews code against project instructions and suggests improvements.\n\n## Responsibilities\n1. Review code for architectural compliance\n2. Check adherence to style guidelines\n3. Verify test coverage\n4. Check for security issues\n5. Provide constructive feedback\n6. Suggest refactoring opportunities\n\n## Review Checklist\n- [ ] Does code follow architecture instructions?\n- [ ] Does code follow style conventions?\n- [ ] Are error cases handled properly?\n- [ ] Is there adequate test coverage?\n- [ ] Are there security concerns?\n- [ ] Is the code efficient?\n- [ ] Is the code maintainable?\n\n## Feedback Format\n- **Issue**: Description of the problem\n- **Location**: File and line number\n- **Severity**: Minor / Major / Critical\n- **Suggestion**: How to fix it\n- **Why**: Explanation of why this matters\n\n## Major Issues (Blocker)\n- Security vulnerabilities\n- Breaking architecture rules\n- Missing error handling\n- Failing tests\n\n## Minor Issues (Polish)\n- Style violations\n- Naming inconsistencies\n- Missing documentation\n- Performance improvements\n\n";
2
+ //# sourceMappingURL=codeReviewer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeReviewer.d.ts","sourceRoot":"","sources":["../../../src/templates/agents/codeReviewer.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,omCAyChC,CAAC"}
@@ -0,0 +1,43 @@
1
+ export const codeReviewerTemplate = `# Code Reviewer Agent
2
+
3
+ ## Purpose
4
+ Reviews code against project instructions and suggests improvements.
5
+
6
+ ## Responsibilities
7
+ 1. Review code for architectural compliance
8
+ 2. Check adherence to style guidelines
9
+ 3. Verify test coverage
10
+ 4. Check for security issues
11
+ 5. Provide constructive feedback
12
+ 6. Suggest refactoring opportunities
13
+
14
+ ## Review Checklist
15
+ - [ ] Does code follow architecture instructions?
16
+ - [ ] Does code follow style conventions?
17
+ - [ ] Are error cases handled properly?
18
+ - [ ] Is there adequate test coverage?
19
+ - [ ] Are there security concerns?
20
+ - [ ] Is the code efficient?
21
+ - [ ] Is the code maintainable?
22
+
23
+ ## Feedback Format
24
+ - **Issue**: Description of the problem
25
+ - **Location**: File and line number
26
+ - **Severity**: Minor / Major / Critical
27
+ - **Suggestion**: How to fix it
28
+ - **Why**: Explanation of why this matters
29
+
30
+ ## Major Issues (Blocker)
31
+ - Security vulnerabilities
32
+ - Breaking architecture rules
33
+ - Missing error handling
34
+ - Failing tests
35
+
36
+ ## Minor Issues (Polish)
37
+ - Style violations
38
+ - Naming inconsistencies
39
+ - Missing documentation
40
+ - Performance improvements
41
+
42
+ `;
43
+ //# sourceMappingURL=codeReviewer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeReviewer.js","sourceRoot":"","sources":["../../../src/templates/agents/codeReviewer.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCnC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { codeGeneratorTemplate } from './codeGenerator.js';
2
+ export { codeReviewerTemplate } from './codeReviewer.js';
3
+ export { taskPlannerTemplate } from './taskPlanner.js';
4
+ export { bugFixerTemplate } from './bugFixer.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/agents/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { codeGeneratorTemplate } from './codeGenerator.js';
2
+ export { codeReviewerTemplate } from './codeReviewer.js';
3
+ export { taskPlannerTemplate } from './taskPlanner.js';
4
+ export { bugFixerTemplate } from './bugFixer.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/agents/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const taskPlannerTemplate = "# Task Planner Agent\n\n## Purpose\nBreaks down features into structured task files that other agents can execute.\n\n## Responsibilities\n1. Understand the feature request or requirement\n2. Break it down into logical, independent tasks\n3. Create task files with clear requirements\n4. Assign relevant instructions and agents\n5. Estimate effort and dependencies\n\n## Task Breakdown Process\n1. **Understand scope**: Read the full requirement\n2. **Identify dependencies**: What must be done first?\n3. **Create chunks**: Break into 2-4 hour work items\n4. **Assign agents**: Which agent should execute each task?\n5. **Link instructions**: Which guidelines apply?\n6. **Define acceptance criteria**: How do we know it's done?\n\n## Good Task Characteristics\n- **Single responsibility**: One clear goal\n- **Independent**: Can be done without waiting for others\n- **Clear requirements**: No ambiguity\n- **Effort**: 2-4 hours of work\n- **Testable**: Acceptance criteria are clear\n- **Estimable**: Team can estimate effort\n\n## Bad Task Characteristics\n- Too large (should be broken down further)\n- Blocked by other work\n- Unclear requirements\n- Missing acceptance criteria\n- Impossible to test\n\n## Task File Structure\nEach task file should include:\n- Task ID and description\n- Context about what this task accomplishes\n- Step-by-step instructions\n- Relevant instruction files to follow\n- Which agent should execute\n- Acceptance criteria\n- Estimated effort\n\n";
2
+ //# sourceMappingURL=taskPlanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taskPlanner.d.ts","sourceRoot":"","sources":["../../../src/templates/agents/taskPlanner.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,+8CA6C/B,CAAC"}
@@ -0,0 +1,47 @@
1
+ export const taskPlannerTemplate = `# Task Planner Agent
2
+
3
+ ## Purpose
4
+ Breaks down features into structured task files that other agents can execute.
5
+
6
+ ## Responsibilities
7
+ 1. Understand the feature request or requirement
8
+ 2. Break it down into logical, independent tasks
9
+ 3. Create task files with clear requirements
10
+ 4. Assign relevant instructions and agents
11
+ 5. Estimate effort and dependencies
12
+
13
+ ## Task Breakdown Process
14
+ 1. **Understand scope**: Read the full requirement
15
+ 2. **Identify dependencies**: What must be done first?
16
+ 3. **Create chunks**: Break into 2-4 hour work items
17
+ 4. **Assign agents**: Which agent should execute each task?
18
+ 5. **Link instructions**: Which guidelines apply?
19
+ 6. **Define acceptance criteria**: How do we know it's done?
20
+
21
+ ## Good Task Characteristics
22
+ - **Single responsibility**: One clear goal
23
+ - **Independent**: Can be done without waiting for others
24
+ - **Clear requirements**: No ambiguity
25
+ - **Effort**: 2-4 hours of work
26
+ - **Testable**: Acceptance criteria are clear
27
+ - **Estimable**: Team can estimate effort
28
+
29
+ ## Bad Task Characteristics
30
+ - Too large (should be broken down further)
31
+ - Blocked by other work
32
+ - Unclear requirements
33
+ - Missing acceptance criteria
34
+ - Impossible to test
35
+
36
+ ## Task File Structure
37
+ Each task file should include:
38
+ - Task ID and description
39
+ - Context about what this task accomplishes
40
+ - Step-by-step instructions
41
+ - Relevant instruction files to follow
42
+ - Which agent should execute
43
+ - Acceptance criteria
44
+ - Estimated effort
45
+
46
+ `;
47
+ //# sourceMappingURL=taskPlanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taskPlanner.js","sourceRoot":"","sources":["../../../src/templates/agents/taskPlanner.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6ClC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { ProjectProfile } from '../utils/types.js';
2
+ export interface TemplateData {
3
+ projectProfile: ProjectProfile;
4
+ projectName: string;
5
+ [key: string]: unknown;
6
+ }
7
+ export declare function compileTemplate(template: string, data: TemplateData): string;
8
+ export declare function registerHelper(name: string, fn: (...args: unknown[]) => string): void;
9
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/templates/engine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,cAAc,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,MAAM,CAG5E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,MAAM,GAAG,IAAI,CAErF"}
@@ -0,0 +1,16 @@
1
+ import Handlebars from 'handlebars';
2
+ export function compileTemplate(template, data) {
3
+ const compiled = Handlebars.compile(template);
4
+ return compiled(data);
5
+ }
6
+ export function registerHelper(name, fn) {
7
+ Handlebars.registerHelper(name, fn);
8
+ }
9
+ // Register default helpers
10
+ registerHelper('if-equals', (a, b, options) => {
11
+ return a === b ? options.fn({}) : options.inverse({});
12
+ });
13
+ registerHelper('if-includes', (arr, item, options) => {
14
+ return Array.isArray(arr) && arr.includes(item) ? options.fn({}) : options.inverse({});
15
+ });
16
+ //# sourceMappingURL=engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/templates/engine.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AASpC,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,IAAkB;IAClE,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9C,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,EAAkC;IAC7E,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,2BAA2B;AAC3B,cAAc,CAAC,WAAW,EAAE,CAAC,CAAU,EAAE,CAAU,EAAE,OAAY,EAAU,EAAE;IAC3E,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,aAAa,EAAE,CAAC,GAAY,EAAE,IAAa,EAAE,OAAY,EAAU,EAAE;IAClF,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAK,GAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACxG,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const taskTemplate = "# {{taskId}}: {{description}}\n\n## Context\n<!-- What this task is about and why it's important -->\n\n## References\n{{#each instructions}}\n- [{{this}}.instructions.md](../instructions/{{this}}.instructions.md)\n{{/each}}\n- [{{agent}}.agent.md](../agents/{{agent}}.agent.md)\n\n## Steps\n{{#each steps}}\n{{ @index }. [ ] {{this}}\n{{/each}}\n\n## Acceptance Criteria\n{{#each acceptanceCriteria}}\n- [ ] {{this}}\n{{/each}}\n\n## Status\n- [ ] In progress\n- [ ] Human review\n- [ ] Done\n\n## Notes\n<!-- Add any notes, decisions, or context here -->\n\n";
2
+ export declare const skillTemplate = "# {{skillName}}\n\n## Purpose\n<!-- What this skill does and when to use it -->\n\n## Usage\n```\nHow to invoke or use this skill\n```\n\n## Details\n<!-- Detailed information about this skill -->\n\n## Examples\n<!-- Practical examples of using this skill -->\n\n## Related Skills\n<!-- Links to related skills -->\n\n";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/files/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,qjBA6BxB,CAAC;AAEF,eAAO,MAAM,aAAa,oUAmBzB,CAAC"}
@@ -0,0 +1,51 @@
1
+ export const taskTemplate = `# {{taskId}}: {{description}}
2
+
3
+ ## Context
4
+ <!-- What this task is about and why it's important -->
5
+
6
+ ## References
7
+ {{#each instructions}}
8
+ - [{{this}}.instructions.md](../instructions/{{this}}.instructions.md)
9
+ {{/each}}
10
+ - [{{agent}}.agent.md](../agents/{{agent}}.agent.md)
11
+
12
+ ## Steps
13
+ {{#each steps}}
14
+ {{ @index }. [ ] {{this}}
15
+ {{/each}}
16
+
17
+ ## Acceptance Criteria
18
+ {{#each acceptanceCriteria}}
19
+ - [ ] {{this}}
20
+ {{/each}}
21
+
22
+ ## Status
23
+ - [ ] In progress
24
+ - [ ] Human review
25
+ - [ ] Done
26
+
27
+ ## Notes
28
+ <!-- Add any notes, decisions, or context here -->
29
+
30
+ `;
31
+ export const skillTemplate = `# {{skillName}}
32
+
33
+ ## Purpose
34
+ <!-- What this skill does and when to use it -->
35
+
36
+ ## Usage
37
+ \`\`\`
38
+ How to invoke or use this skill
39
+ \`\`\`
40
+
41
+ ## Details
42
+ <!-- Detailed information about this skill -->
43
+
44
+ ## Examples
45
+ <!-- Practical examples of using this skill -->
46
+
47
+ ## Related Skills
48
+ <!-- Links to related skills -->
49
+
50
+ `;
51
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/files/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6B3B,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;CAmB5B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const architectureTemplate = "# Architecture Instructions\n\n## Project Type\n{{#if-includes projectProfile.language 'typescript'}}\nThis is a {{projectProfile.framework}} project written in TypeScript.\n{{else}}\nThis is a {{projectProfile.framework}} project written in {{projectProfile.language}}.\n{{/if-includes}}\n\n## Language Standards\n{{#if-includes projectProfile.language 'typescript'}}\n- **Language**: TypeScript\n- **Strict Mode**: Enabled\n- **No `any` types**: Unless explicitly justified with a comment\n- **Type Safety**: All public APIs must be fully typed\n{{else if-includes projectProfile.language 'javascript'}}\n- **Language**: JavaScript (Modern ES2020+)\n- **JSDoc**: Use for documenting complex functions\n{{else if-includes projectProfile.language 'python'}}\n- **Language**: Python 3.8+\n- **Type Hints**: Required for all functions and class methods\n- **Docstrings**: Use Google-style docstrings\n{{/if-includes}}\n\n## Project Structure\n<!-- Describe your project's folder structure and conventions -->\n\n```\n{{projectName}}/\n\u251C\u2500\u2500 src/\n\u251C\u2500\u2500 tests/\n\u251C\u2500\u2500 docs/\n\u2514\u2500\u2500 README.md\n```\n\n## Module Organization\n- **Single Responsibility**: Each module has one clear purpose\n- **Clear dependencies**: No circular dependencies\n- **Exports**: Only export what's meant to be public\n\n## Conventions\n<!-- Document any custom conventions for this project -->\n\n## Code Patterns\n- **Error Handling**: [Describe your error handling strategy]\n- **Logging**: [Describe logging conventions]\n- **Configuration**: [Describe how configuration is managed]\n\n";
2
+ //# sourceMappingURL=architecture.d.ts.map