@antomanc/aginit 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.md +108 -28
  3. package/THIRD_PARTY_NOTICES.md +92 -16
  4. package/dist/adapters/agent-docs.d.ts +32 -0
  5. package/dist/adapters/agent-docs.d.ts.map +1 -0
  6. package/dist/adapters/agent-docs.js +146 -0
  7. package/dist/adapters/agent-docs.js.map +1 -0
  8. package/dist/adapters/agents-md.d.ts +13 -1
  9. package/dist/adapters/agents-md.d.ts.map +1 -1
  10. package/dist/adapters/agents-md.js +137 -120
  11. package/dist/adapters/agents-md.js.map +1 -1
  12. package/dist/adapters/e2e.d.ts +15 -0
  13. package/dist/adapters/e2e.d.ts.map +1 -0
  14. package/dist/adapters/e2e.js +55 -0
  15. package/dist/adapters/e2e.js.map +1 -0
  16. package/dist/adapters/skills.d.ts +5 -0
  17. package/dist/adapters/skills.d.ts.map +1 -1
  18. package/dist/adapters/skills.js +17 -0
  19. package/dist/adapters/skills.js.map +1 -1
  20. package/dist/adapters/tool-ignores.d.ts +9 -0
  21. package/dist/adapters/tool-ignores.d.ts.map +1 -0
  22. package/dist/adapters/tool-ignores.js +121 -0
  23. package/dist/adapters/tool-ignores.js.map +1 -0
  24. package/dist/cli/capabilities.d.ts +17 -0
  25. package/dist/cli/capabilities.d.ts.map +1 -0
  26. package/dist/cli/capabilities.js +149 -0
  27. package/dist/cli/capabilities.js.map +1 -0
  28. package/dist/cli/doctor.d.ts +16 -0
  29. package/dist/cli/doctor.d.ts.map +1 -1
  30. package/dist/cli/doctor.js +104 -70
  31. package/dist/cli/doctor.js.map +1 -1
  32. package/dist/cli/init.js +1 -1
  33. package/dist/cli/init.js.map +1 -1
  34. package/dist/cli/main.d.ts.map +1 -1
  35. package/dist/cli/main.js +123 -20
  36. package/dist/cli/main.js.map +1 -1
  37. package/dist/cli/new.d.ts +15 -1
  38. package/dist/cli/new.d.ts.map +1 -1
  39. package/dist/cli/new.js +163 -67
  40. package/dist/cli/new.js.map +1 -1
  41. package/dist/cli/wizard.d.ts +5 -0
  42. package/dist/cli/wizard.d.ts.map +1 -1
  43. package/dist/cli/wizard.js +104 -102
  44. package/dist/cli/wizard.js.map +1 -1
  45. package/dist/config/defaults.d.ts +14 -6
  46. package/dist/config/defaults.d.ts.map +1 -1
  47. package/dist/config/defaults.js +38 -174
  48. package/dist/config/defaults.js.map +1 -1
  49. package/dist/config/schema.d.ts +14 -0
  50. package/dist/config/schema.d.ts.map +1 -1
  51. package/dist/config/schema.js.map +1 -1
  52. package/dist/config/validation.d.ts +1 -0
  53. package/dist/config/validation.d.ts.map +1 -1
  54. package/dist/config/validation.js +63 -0
  55. package/dist/config/validation.js.map +1 -1
  56. package/dist/detect/index.d.ts +18 -0
  57. package/dist/detect/index.d.ts.map +1 -0
  58. package/dist/detect/index.js +120 -0
  59. package/dist/detect/index.js.map +1 -0
  60. package/dist/index.d.ts +5 -0
  61. package/dist/index.d.ts.map +1 -1
  62. package/dist/index.js +5 -0
  63. package/dist/index.js.map +1 -1
  64. package/dist/presets/cli.d.ts.map +1 -1
  65. package/dist/presets/cli.js +7 -0
  66. package/dist/presets/cli.js.map +1 -1
  67. package/dist/presets/generic.d.ts.map +1 -1
  68. package/dist/presets/generic.js +4 -1
  69. package/dist/presets/generic.js.map +1 -1
  70. package/dist/presets/testing.d.ts +1 -1
  71. package/dist/presets/testing.d.ts.map +1 -1
  72. package/dist/presets/testing.js +22 -8
  73. package/dist/presets/testing.js.map +1 -1
  74. package/dist/presets/web.d.ts.map +1 -1
  75. package/dist/presets/web.js +39 -5
  76. package/dist/presets/web.js.map +1 -1
  77. package/dist/registry/catalog.d.ts +13 -0
  78. package/dist/registry/catalog.d.ts.map +1 -0
  79. package/dist/registry/catalog.js +544 -0
  80. package/dist/registry/catalog.js.map +1 -0
  81. package/dist/registry/index.d.ts +84 -0
  82. package/dist/registry/index.d.ts.map +1 -0
  83. package/dist/registry/index.js +309 -0
  84. package/dist/registry/index.js.map +1 -0
  85. package/dist/registry/setup.d.ts +14 -0
  86. package/dist/registry/setup.d.ts.map +1 -0
  87. package/dist/registry/setup.js +25 -0
  88. package/dist/registry/setup.js.map +1 -0
  89. package/dist/registry/types.d.ts +115 -0
  90. package/dist/registry/types.d.ts.map +1 -0
  91. package/dist/registry/types.js +2 -0
  92. package/dist/registry/types.js.map +1 -0
  93. package/package.json +3 -2
  94. package/src/adapters/agent-docs.ts +184 -0
  95. package/src/adapters/agents-md.ts +160 -137
  96. package/src/adapters/e2e.ts +58 -0
  97. package/src/adapters/skills.ts +18 -0
  98. package/src/adapters/tool-ignores.ts +158 -0
  99. package/src/cli/capabilities.ts +176 -0
  100. package/src/cli/doctor.ts +100 -66
  101. package/src/cli/init.ts +1 -1
  102. package/src/cli/main.ts +130 -20
  103. package/src/cli/new.ts +199 -73
  104. package/src/cli/wizard.ts +130 -103
  105. package/src/config/defaults.ts +57 -179
  106. package/src/config/schema.ts +15 -0
  107. package/src/config/validation.ts +56 -0
  108. package/src/detect/index.ts +134 -0
  109. package/src/index.ts +5 -0
  110. package/src/presets/cli.ts +6 -0
  111. package/src/presets/generic.ts +4 -1
  112. package/src/presets/testing.ts +29 -12
  113. package/src/presets/web.ts +39 -5
  114. package/src/registry/catalog.ts +569 -0
  115. package/src/registry/index.ts +395 -0
  116. package/src/registry/setup.ts +40 -0
  117. package/src/registry/types.ts +109 -0
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;AACnD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;AACjE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;AAE7D,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB;;;WAGG;QACH,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,MAAM,EAAE;QACN;;;;WAIG;QACH,QAAQ,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;QAC9B,OAAO,EAAE,iBAAiB,EAAE,CAAC;KAC9B,CAAC;IACF,QAAQ,EAAE;QACR,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,OAAO,EAAE;QACP,WAAW,EAAE,OAAO,CAAC;QACrB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,IAAI,EAAE;QACJ,GAAG,EAAE,OAAO,CAAC;KACd,CAAC;IACF,MAAM,EAAE;QACN,EAAE,EAAE,OAAO,CAAC;KACb,CAAC;CACH;AAGD,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC;AAE3C,eAAO,MAAM,sBAAsB,uBAAuB,CAAC;AAC3D,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;AACvD,eAAO,MAAM,kBAAkB,uBAAyB,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAEpF,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;AACnD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;AACjE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;AAE7D,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB;;;WAGG;QACH,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,MAAM,EAAE;QACN;;;;WAIG;QACH,QAAQ,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;QAC9B,OAAO,EAAE,iBAAiB,EAAE,CAAC;KAC9B,CAAC;IACF,QAAQ,EAAE;QACR,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,OAAO,EAAE;QACP,WAAW,EAAE,OAAO,CAAC;QACrB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,IAAI,EAAE;QACJ,GAAG,EAAE,OAAO,CAAC;KACd,CAAC;IACF,MAAM,EAAE;QACN,EAAE,EAAE,OAAO,CAAC;KACb,CAAC;IACF,kFAAkF;IAClF,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,iFAAiF;IACjF,KAAK,CAAC,EAAE,KAAK,CAAC;IACd;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,uFAAuF;IACvF,kBAAkB,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAC9C,4FAA4F;IAC5F,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC;AAGD,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC;AAE3C,eAAO,MAAM,sBAAsB,uBAAuB,CAAC;AAC3D,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;AACvD,eAAO,MAAM,kBAAkB,uBAAyB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAmDA,MAAM,CAAC,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AAC3D,MAAM,CAAC,MAAM,sBAAsB,GAAG,gBAAgB,CAAC;AACvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,sBAAsB,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAkEA,MAAM,CAAC,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AAC3D,MAAM,CAAC,MAAM,sBAAsB,GAAG,gBAAgB,CAAC;AACvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,sBAAsB,CAAC"}
@@ -2,6 +2,7 @@ import { AginitConfig } from './schema.js';
2
2
  export declare const PRESETS: readonly ['web', 'cli', 'generic'];
3
3
  export declare const FRAMEWORKS: readonly ['none', 'vite', 'next', 'existing'];
4
4
  export declare const SUPPORTED_PACKAGE_MANAGERS: readonly ['pnpm', 'npm', 'yarn', 'bun'];
5
+ export declare const STACKS: readonly ['node', 'react-native', 'flutter', 'swift', 'kotlin', 'rust', 'python', 'go', 'unknown'];
5
6
  export declare function isRecord(value: unknown): value is Record<string, any>;
6
7
  export declare function validateProjectName(name: string): void;
7
8
  export declare function validateUpstreamArgument(value: unknown, label: string): asserts value is string;
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/config/validation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAkD,MAAM,aAAa,CAAC;AAE3F,eAAO,MAAM,OAAO,YAAI,KAAK,EAAE,KAAK,EAAE,SAAS,CAAU,CAAC;AAC1D,eAAO,MAAM,UAAU,YAAI,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAU,CAAC;AACxE,eAAO,MAAM,0BAA0B,YAAI,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAU,CAAC;AAClF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAErE;AACD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAMtD;AACD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAW/F;AACD,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAsC3D;AACD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAYlE;AACD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAgB3E"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/config/validation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAkD,MAAM,aAAa,CAAC;AAI3F,eAAO,MAAM,OAAO,YAAI,KAAK,EAAE,KAAK,EAAE,SAAS,CAAU,CAAC;AAC1D,eAAO,MAAM,UAAU,YAAI,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAU,CAAC;AACxE,eAAO,MAAM,0BAA0B,YAAI,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAU,CAAC;AAClF,eAAO,MAAM,MAAM,YACjB,MAAM,EACN,cAAc,EACd,SAAS,EACT,OAAO,EACP,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,SAAS,CACD,CAAC;AAWX,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAErE;AACD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAMtD;AACD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAW/F;AACD,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAuE3D;AACD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAYlE;AACD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAgB3E"}
@@ -1,9 +1,32 @@
1
1
  import path from 'node:path';
2
2
  import { fileExists, readJsonFile } from '../utils/fs.js';
3
3
  import { AGINIT_CONFIG_FILENAME, LEGACY_CONFIG_FILENAME } from './schema.js';
4
+ import { CATALOG } from '../registry/catalog.js';
5
+ import { PLATFORMS } from '../registry/index.js';
4
6
  export const PRESETS = ['web', 'cli', 'generic'];
5
7
  export const FRAMEWORKS = ['none', 'vite', 'next', 'existing'];
6
8
  export const SUPPORTED_PACKAGE_MANAGERS = ['pnpm', 'npm', 'yarn', 'bun'];
9
+ export const STACKS = [
10
+ 'node',
11
+ 'react-native',
12
+ 'flutter',
13
+ 'swift',
14
+ 'kotlin',
15
+ 'rust',
16
+ 'python',
17
+ 'go',
18
+ 'unknown'
19
+ ];
20
+ const CATEGORIES = [
21
+ 'methodology',
22
+ 'discipline',
23
+ 'design',
24
+ 'codebase-graph',
25
+ 'ui-driver',
26
+ 'testing-engine',
27
+ 'context-guard',
28
+ 'custom'
29
+ ];
7
30
  export function isRecord(value) {
8
31
  return typeof value === 'object' && value !== null && !Array.isArray(value);
9
32
  }
@@ -54,6 +77,46 @@ export function validateConfig(value) {
54
77
  for (const skill of source.skills)
55
78
  validateUpstreamArgument(skill, 'skill name');
56
79
  }
80
+ if (value.platform !== undefined && !PLATFORMS.includes(value.platform))
81
+ fail('platform');
82
+ if (value.stack !== undefined && !STACKS.includes(value.stack))
83
+ fail('stack');
84
+ for (const key of ['capabilities', 'disabledCapabilities']) {
85
+ if (value[key] === undefined)
86
+ continue;
87
+ if (!Array.isArray(value[key]))
88
+ fail(key);
89
+ for (const id of value[key])
90
+ validateUpstreamArgument(id, `${key} entry`);
91
+ }
92
+ if (value.customCapabilities !== undefined) {
93
+ if (!Array.isArray(value.customCapabilities))
94
+ fail('customCapabilities');
95
+ const seen = new Set();
96
+ for (const custom of value.customCapabilities) {
97
+ if (!isRecord(custom))
98
+ fail('customCapabilities entry');
99
+ validateUpstreamArgument(custom.id, 'custom capability id');
100
+ if (seen.has(custom.id) || CATALOG.some((entry) => entry.id === custom.id))
101
+ fail(`customCapabilities: duplicate id "${custom.id}"`);
102
+ seen.add(custom.id);
103
+ if (typeof custom.repo !== 'string' || !/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/.test(custom.repo))
104
+ fail(`customCapabilities.${custom.id}.repo (expected owner/repo)`);
105
+ if (custom.skills !== undefined) {
106
+ if (!Array.isArray(custom.skills))
107
+ fail(`customCapabilities.${custom.id}.skills`);
108
+ for (const skill of custom.skills)
109
+ validateUpstreamArgument(skill, 'skill name');
110
+ }
111
+ if (custom.category !== undefined && !CATEGORIES.includes(custom.category))
112
+ fail(`customCapabilities.${custom.id}.category`);
113
+ if (custom.binary !== undefined &&
114
+ (!isRecord(custom.binary) ||
115
+ typeof custom.binary.install !== 'string' ||
116
+ !/^[a-zA-Z0-9._-]+$/.test(String(custom.binary.bin))))
117
+ fail(`customCapabilities.${custom.id}.binary`);
118
+ }
119
+ }
57
120
  for (const [section, keys] of Object.entries({
58
121
  codebase: ['graft'],
59
122
  browser: ['visualAgent', 'playwright'],
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/config/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/config/validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { PackageManager } from '../config/schema.js';
2
+ import { Platform, ProjectCommands, Stack } from '../registry/types.js';
3
+ export interface DetectedProject {
4
+ /** null when nothing marks the platform (empty directory). */
5
+ platform: Platform | null;
6
+ stack: Stack;
7
+ }
8
+ /** Read the project's markers (pubspec.yaml, Package.swift, gradle, package.json, ...). */
9
+ export declare function detectProject(dir: string): DetectedProject;
10
+ /**
11
+ * The project's own commands: package scripts for Node projects, the host
12
+ * toolchain otherwise. Commands that would be guesses are left out.
13
+ */
14
+ export declare function projectCommands(dir: string, stack: Stack, options?: {
15
+ packageManager?: PackageManager;
16
+ scripts?: Record<string, string>;
17
+ }): ProjectCommands;
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/detect/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAExE,MAAM,WAAW,eAAe;IAC9B,8DAA8D;IAC9D,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,KAAK,CAAC;CACd;AAkCD,2FAA2F;AAC3F,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CA4B1D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,cAAc,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAO,GAClF,eAAe,CAiDjB"}
@@ -0,0 +1,120 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { readJsonFile, readTextFile } from '../utils/fs.js';
4
+ import { getPackageManagerAdapter } from '../adapters/package-manager.js';
5
+ const WEB_FRAMEWORKS = [
6
+ 'next',
7
+ 'vite',
8
+ 'astro',
9
+ 'react',
10
+ 'react-dom',
11
+ 'vue',
12
+ 'nuxt',
13
+ 'svelte',
14
+ '@sveltejs/kit',
15
+ '@angular/core',
16
+ 'solid-js',
17
+ '@remix-run/react',
18
+ 'preact'
19
+ ];
20
+ function entries(dir) {
21
+ try {
22
+ return fs.readdirSync(dir);
23
+ }
24
+ catch {
25
+ return [];
26
+ }
27
+ }
28
+ const hasXcodeProject = (dir) => entries(dir).some((name) => name.endsWith('.xcodeproj'));
29
+ function gradleFiles(dir) {
30
+ return ['build.gradle', 'build.gradle.kts', 'settings.gradle', 'settings.gradle.kts']
31
+ .map((name) => readTextFile(path.join(dir, name)))
32
+ .filter((text) => text !== null);
33
+ }
34
+ /** Read the project's markers (pubspec.yaml, Package.swift, gradle, package.json, ...). */
35
+ export function detectProject(dir) {
36
+ const exists = (file) => fs.existsSync(path.join(dir, file));
37
+ const pkg = readJsonFile(path.join(dir, 'package.json'));
38
+ const deps = { ...pkg?.dependencies, ...pkg?.devDependencies };
39
+ if (exists('pubspec.yaml'))
40
+ return { platform: 'mobile-native', stack: 'flutter' };
41
+ const expoApp = /"expo"\s*:/.test(readTextFile(path.join(dir, 'app.json')) ?? '');
42
+ if (deps['react-native'] || deps.expo || expoApp)
43
+ return { platform: 'mobile-rn', stack: 'react-native' };
44
+ if (exists('Package.swift') || hasXcodeProject(dir) || hasXcodeProject(path.join(dir, 'ios'))) {
45
+ const manifest = readTextFile(path.join(dir, 'Package.swift')) ?? '';
46
+ const apple = !exists('Package.swift') || /\.(iOS|macOS|tvOS|watchOS|visionOS)\(/.test(manifest);
47
+ return { platform: apple ? 'mobile-native' : 'cli', stack: 'swift' };
48
+ }
49
+ const androidGradle = gradleFiles(path.join(dir, 'android'));
50
+ const rootGradle = gradleFiles(dir);
51
+ if (androidGradle.length > 0 || rootGradle.some((text) => /com\.android|android\s*\{/.test(text)))
52
+ return { platform: 'mobile-native', stack: 'kotlin' };
53
+ if (pkg) {
54
+ const web = WEB_FRAMEWORKS.some((name) => deps[name]);
55
+ return { platform: web ? 'web' : 'cli', stack: 'node' };
56
+ }
57
+ if (rootGradle.length > 0)
58
+ return { platform: 'backend', stack: 'kotlin' };
59
+ if (exists('Cargo.toml'))
60
+ return { platform: 'cli', stack: 'rust' };
61
+ if (exists('go.mod'))
62
+ return { platform: 'backend', stack: 'go' };
63
+ if (exists('pyproject.toml') || exists('requirements.txt'))
64
+ return { platform: 'backend', stack: 'python' };
65
+ return { platform: null, stack: 'unknown' };
66
+ }
67
+ /**
68
+ * The project's own commands: package scripts for Node projects, the host
69
+ * toolchain otherwise. Commands that would be guesses are left out.
70
+ */
71
+ export function projectCommands(dir, stack, options = {}) {
72
+ const exists = (file) => fs.existsSync(path.join(dir, file));
73
+ switch (stack) {
74
+ case 'node':
75
+ case 'react-native': {
76
+ const scripts = options.scripts ??
77
+ readJsonFile(path.join(dir, 'package.json'))?.scripts ??
78
+ {};
79
+ const pm = getPackageManagerAdapter(options.packageManager);
80
+ const run = (name) => (Object.hasOwn(scripts, name) ? pm.runCmd(name) : undefined);
81
+ return {
82
+ dev: run('dev'),
83
+ build: run('build'),
84
+ typecheck: run('typecheck'),
85
+ lint: run('lint'),
86
+ test: run('test'),
87
+ unitTest: run('test:unit'),
88
+ e2e: run('test:e2e')
89
+ };
90
+ }
91
+ case 'flutter':
92
+ return { lint: 'flutter analyze', test: 'flutter test' };
93
+ case 'swift':
94
+ return exists('Package.swift')
95
+ ? { build: 'swift build', test: 'swift test' }
96
+ : {
97
+ build: 'xcodebuild build -scheme <Scheme>',
98
+ test: "xcodebuild test -scheme <Scheme> -destination 'platform=iOS Simulator,name=<Device>'"
99
+ };
100
+ case 'kotlin': {
101
+ const nested = fs.existsSync(path.join(dir, 'android'));
102
+ const android = nested || gradleFiles(dir).some((text) => /com\.android|android\s*\{/.test(text));
103
+ const gradlew = nested ? 'cd android && ./gradlew' : './gradlew';
104
+ return {
105
+ build: `${gradlew} build`,
106
+ ...(android ? { lint: `${gradlew} lint` } : {}),
107
+ test: `${gradlew} test`
108
+ };
109
+ }
110
+ case 'rust':
111
+ return { build: 'cargo build', typecheck: 'cargo check', lint: 'cargo clippy', test: 'cargo test' };
112
+ case 'go':
113
+ return { build: 'go build ./...', lint: 'go vet ./...', test: 'go test ./...' };
114
+ case 'python':
115
+ return { test: exists('uv.lock') ? 'uv run pytest' : 'pytest' };
116
+ case 'unknown':
117
+ return {};
118
+ }
119
+ }
120
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/detect/index.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -14,4 +14,9 @@ export * from './cli/new.js';
14
14
  export * from './cli/init.js';
15
15
  export * from './cli/doctor.js';
16
16
  export * from './cli/wizard.js';
17
+ export * from './registry/index.js';
18
+ export * from './detect/index.js';
19
+ export * from './adapters/agent-docs.js';
20
+ export * from './adapters/e2e.js';
21
+ export * from './cli/capabilities.js';
17
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC"}
package/dist/index.js CHANGED
@@ -14,4 +14,9 @@ export * from './cli/new.js';
14
14
  export * from './cli/init.js';
15
15
  export * from './cli/doctor.js';
16
16
  export * from './cli/wizard.js';
17
+ export * from './registry/index.js';
18
+ export * from './detect/index.js';
19
+ export * from './adapters/agent-docs.js';
20
+ export * from './adapters/e2e.js';
21
+ export * from './cli/capabilities.js';
17
22
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/presets/cli.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,aAAa,EAAE,MAAM,YAAY,CAAC;AAK1D,eAAO,MAAM,SAAS,EAAE,aAgIvB,CAAC"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/presets/cli.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,aAAa,EAAE,MAAM,YAAY,CAAC;AAM1D,eAAO,MAAM,SAAS,EAAE,aAqIvB,CAAC"}
@@ -3,6 +3,7 @@ import { fileExists, safeWriteFile, writeJsonFile } from '../utils/fs.js';
3
3
  import { readPackageManifest } from '../config/validation.js';
4
4
  import { addTestingDependencies, setupTesting, VITEST_VERSION } from './testing.js';
5
5
  import { setupAdr } from './adr.js';
6
+ import { activeIds } from '../registry/index.js';
6
7
  export const cliPreset = {
7
8
  name: 'cli',
8
9
  description: 'AI-first TypeScript CLI application with Commander, Picocolors, and Vitest',
@@ -11,6 +12,12 @@ export const cliPreset = {
11
12
  const pm = ctx.config.packageManager || 'pnpm';
12
13
  const existing = readPackageManifest(targetDir);
13
14
  if (existing) {
15
+ // An existing project keeps its own runner unless Vitest is a selected capability.
16
+ if (!activeIds(ctx.config).has('vitest')) {
17
+ if (ctx.config.docs.adr)
18
+ setupAdr(targetDir, { dryRun, silent });
19
+ return;
20
+ }
14
21
  const hadVitestScript = Object.values(existing.scripts || {}).some((script) => typeof script === 'string' && /^vitest(?:\s|$)/.test(script));
15
22
  addTestingDependencies(existing);
16
23
  writeJsonFile(path.join(targetDir, 'package.json'), existing, {
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/presets/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/presets/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../src/presets/generic.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,aAAa,EAAE,MAAM,YAAY,CAAC;AAI1D,eAAO,MAAM,aAAa,EAAE,aAyB3B,CAAC"}
1
+ {"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../src/presets/generic.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,aAAa,EAAE,MAAM,YAAY,CAAC;AAK1D,eAAO,MAAM,aAAa,EAAE,aA2B3B,CAAC"}
@@ -2,13 +2,16 @@ import path from 'node:path';
2
2
  import { fileExists, writeJsonFile } from '../utils/fs.js';
3
3
  import { addTestingDependencies, setupTesting } from './testing.js';
4
4
  import { setupAdr } from './adr.js';
5
+ import { activeIds } from '../registry/index.js';
5
6
  export const genericPreset = {
6
7
  name: 'generic',
7
8
  description: 'Minimal, unopinionated project skeleton with AI skills, Git, and ADR structure',
8
9
  async scaffold(ctx) {
9
10
  const { targetDir, projectName, dryRun, silent } = ctx;
11
+ // Only a Vitest harness needs a root package.json; Flutter, Swift, Kotlin,
12
+ // Rust, Go and Python projects stay free of Node files.
10
13
  const pkgPath = path.join(targetDir, 'package.json');
11
- if (!fileExists(pkgPath)) {
14
+ if (!fileExists(pkgPath) && activeIds(ctx.config).has('vitest')) {
12
15
  const pkg = {
13
16
  name: projectName,
14
17
  version: '0.1.0',
@@ -1 +1 @@
1
- {"version":3,"file":"generic.js","sourceRoot":"","sources":["../../src/presets/generic.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE3D,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,gFAAgF;IAC7F,KAAK,CAAC,QAAQ,CAAC,GAAkB;QAC/B,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;QAEvD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG;gBACV,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE;oBACP,IAAI,EAAE,YAAY;iBACnB;aACF,CAAC;YACF,sBAAsB,CAAC,GAAG,CAAC,CAAC;YAC5B,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YAChD,YAAY,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACxB,QAAQ,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"generic.js","sourceRoot":"","sources":["../../src/presets/generic.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE3D,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,gFAAgF;IAC7F,KAAK,CAAC,QAAQ,CAAC,GAAkB;QAC/B,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;QAEvD,2EAA2E;QAC3E,wDAAwD;QACxD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChE,MAAM,GAAG,GAAG;gBACV,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE;oBACP,IAAI,EAAE,YAAY;iBACnB;aACF,CAAC;YACF,sBAAsB,CAAC,GAAG,CAAC,CAAC;YAC5B,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YAChD,YAAY,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACxB,QAAQ,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;CACF,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { PresetContext } from './types.js';
2
2
  export declare const VITEST_VERSION = "^4.1.11";
3
- export declare function addTestingDependencies(pkg: Record<string, any>, playwright?: boolean): void;
3
+ export declare function addTestingDependencies(pkg: Record<string, any>, playwright?: boolean, vitest?: boolean): void;
4
4
  /** A starter harness checks package metadata without assuming application exports. */
5
5
  export declare function setupTesting(ctx: PresetContext, preserveViteTestConfig?: boolean): void;
6
6
  //# sourceMappingURL=testing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/presets/testing.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,eAAO,MAAM,cAAc,YAAY,CAAC;AACxC,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,UAAQ,GAAG,IAAI,CAczF;AAED,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,GAAG,EAAE,aAAa,EAAE,sBAAsB,UAAQ,GAAG,IAAI,CAiCrF"}
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/presets/testing.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,eAAO,MAAM,cAAc,YAAY,CAAC;AACxC,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACxB,UAAU,UAAQ,EAClB,MAAM,UAAO,GACZ,IAAI,CAgBN;AAED,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,GAAG,EAAE,aAAa,EAAE,sBAAsB,UAAQ,GAAG,IAAI,CA2CrF"}
@@ -1,15 +1,18 @@
1
+ import fs from 'node:fs';
1
2
  import path from 'node:path';
2
3
  import { safeWriteFile, fileExists } from '../utils/fs.js';
3
4
  export const VITEST_VERSION = '^4.1.11';
4
- export function addTestingDependencies(pkg, playwright = false) {
5
+ export function addTestingDependencies(pkg, playwright = false, vitest = true) {
5
6
  pkg.scripts ??= {};
6
7
  pkg.devDependencies ??= {};
7
- if (!pkg.dependencies?.vitest && !pkg.devDependencies.vitest)
8
- pkg.devDependencies.vitest = VITEST_VERSION;
9
- const customTest = pkg.scripts.test && !/^vitest(?:\s|$)/.test(pkg.scripts.test);
10
- const testScript = customTest ? 'test:unit' : 'test';
11
- pkg.scripts[testScript] ??= 'vitest run';
12
- pkg.scripts[customTest ? 'test:unit:watch' : 'test:watch'] ??= 'vitest';
8
+ if (vitest) {
9
+ if (!pkg.dependencies?.vitest && !pkg.devDependencies.vitest)
10
+ pkg.devDependencies.vitest = VITEST_VERSION;
11
+ const customTest = pkg.scripts.test && !/^vitest(?:\s|$)/.test(pkg.scripts.test);
12
+ const testScript = customTest ? 'test:unit' : 'test';
13
+ pkg.scripts[testScript] ??= 'vitest run';
14
+ pkg.scripts[customTest ? 'test:unit:watch' : 'test:watch'] ??= 'vitest';
15
+ }
13
16
  if (playwright) {
14
17
  pkg.scripts['test:e2e'] ??= 'playwright test';
15
18
  if (!pkg.dependencies?.['@playwright/test'] && !pkg.devDependencies['@playwright/test'])
@@ -32,7 +35,18 @@ export function setupTesting(ctx, preserveViteTestConfig = false) {
32
35
  ].some((name) => fileExists(path.join(targetDir, name)));
33
36
  if (!hasConfig)
34
37
  safeWriteFile(path.join(targetDir, 'vitest.config.mts'), `import { defineConfig } from 'vitest/config';\n\nexport default defineConfig({\n test: { include: ['tests/**/*.test.{js,ts}'] }\n});\n`, { dryRun, silent });
35
- safeWriteFile(path.join(targetDir, 'tests', 'aginit.test.js'), `import { it, expect } from 'vitest';
38
+ // A project that already has tests needs no placeholder.
39
+ let hasTests = false;
40
+ try {
41
+ hasTests = fs
42
+ .readdirSync(path.join(targetDir, 'tests'))
43
+ .some((name) => /\.(test|spec)\.[cm]?[jt]sx?$/.test(name) && name !== 'aginit.test.js');
44
+ }
45
+ catch {
46
+ // no tests/ directory yet
47
+ }
48
+ if (!hasTests)
49
+ safeWriteFile(path.join(targetDir, 'tests', 'aginit.test.js'), `import { it, expect } from 'vitest';
36
50
  import { readFileSync } from 'node:fs';
37
51
 
38
52
  // Starter harness: add application behavior tests as the project takes shape.
@@ -1 +1 @@
1
- {"version":3,"file":"testing.js","sourceRoot":"","sources":["../../src/presets/testing.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG3D,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAC;AACxC,MAAM,UAAU,sBAAsB,CAAC,GAAwB,EAAE,UAAU,GAAG,KAAK;IACjF,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC;IACnB,GAAG,CAAC,eAAe,KAAK,EAAE,CAAC;IAC3B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM;QAC1D,GAAG,CAAC,eAAe,CAAC,MAAM,GAAG,cAAc,CAAC;IAC9C,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjF,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;IACrD,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,YAAY,CAAC;IACzC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,QAAQ,CAAC;IACxE,IAAI,UAAU,EAAE,CAAC;QACf,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,iBAAiB,CAAC;QAC9C,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,kBAAkB,CAAC;YACrF,GAAG,CAAC,eAAe,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAC;IACxD,CAAC;AACH,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,YAAY,CAAC,GAAkB,EAAE,sBAAsB,GAAG,KAAK;IAC7E,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAC1C,MAAM,SAAS,GAAG;QAChB,kBAAkB;QAClB,kBAAkB;QAClB,mBAAmB;QACnB,mBAAmB;QACnB,mBAAmB;QACnB,mBAAmB;QACnB,GAAG,CAAC,sBAAsB;YACxB,CAAC,CAAC,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,CAAC;YAC5E,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACzD,IAAI,CAAC,SAAS;QACZ,aAAa,CACX,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,EACzC,yIAAyI,EACzI,EAAE,MAAM,EAAE,MAAM,EAAE,CACnB,CAAC;IACJ,aAAa,CACX,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,gBAAgB,CAAC,EAC/C;;;;;;;;;CASH,EACG,EAAE,MAAM,EAAE,MAAM,EAAE,CACnB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"testing.js","sourceRoot":"","sources":["../../src/presets/testing.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/presets/web.ts"],"names":[],"mappings":"AAIA,OAAO,EAAiB,aAAa,EAAE,MAAM,YAAY,CAAC;AAM1D,eAAO,MAAM,SAAS,EAAE,aAwFvB,CAAC"}
1
+ {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/presets/web.ts"],"names":[],"mappings":"AAIA,OAAO,EAAiB,aAAa,EAAE,MAAM,YAAY,CAAC;AAmC1D,eAAO,MAAM,SAAS,EAAE,aA6FvB,CAAC"}
@@ -1,11 +1,39 @@
1
1
  import path from 'node:path';
2
- import { fileExists, safeWriteFile, writeJsonFile } from '../utils/fs.js';
2
+ import { fileExists, readTextFile, safeWriteFile, writeJsonFile } from '../utils/fs.js';
3
3
  import { readPackageManifest } from '../config/validation.js';
4
4
  import { runExecutable } from '../utils/shell.js';
5
5
  import { setupBrowserTesting } from '../adapters/browser.js';
6
6
  import { setupAdr } from './adr.js';
7
7
  import { scaffoldCommand } from '../adapters/package-manager.js';
8
8
  import { addTestingDependencies, setupTesting } from './testing.js';
9
+ import { activeIds } from '../registry/index.js';
10
+ /** Plain tsc cannot resolve framework virtual modules or single-file components,
11
+ * so those frameworks get their own checker (and the package that provides it). */
12
+ function typecheckFor(pkg, targetDir, freshNext) {
13
+ const has = (name) => Boolean(pkg.dependencies?.[name] || pkg.devDependencies?.[name]);
14
+ if (freshNext)
15
+ return { script: 'next typegen && tsc --noEmit' };
16
+ if (has('astro'))
17
+ return { script: 'astro check', checker: ['@astrojs/check', '^0.9.10'] };
18
+ if (has('nuxt'))
19
+ return { script: 'nuxi typecheck', checker: ['vue-tsc', '^3.3.13'] };
20
+ if (has('@sveltejs/kit'))
21
+ return {
22
+ script: 'svelte-kit sync && svelte-check --tsconfig ./tsconfig.json',
23
+ checker: ['svelte-check', '^4.7.6']
24
+ };
25
+ if (has('svelte'))
26
+ return { script: 'svelte-check', checker: ['svelte-check', '^4.7.6'] };
27
+ // A solution-style tsconfig (Vite templates) has no files of its own: only build mode checks
28
+ // the referenced projects.
29
+ const build = /"references"\s*:/.test(readTextFile(path.join(targetDir, 'tsconfig.json')) || '');
30
+ if (has('vue'))
31
+ return {
32
+ script: build ? 'vue-tsc -b --noEmit' : 'vue-tsc --noEmit',
33
+ checker: ['vue-tsc', '^3.3.13']
34
+ };
35
+ return { script: build ? 'tsc -b --noEmit' : 'tsc --noEmit' };
36
+ }
9
37
  export const webPreset = {
10
38
  name: 'web',
11
39
  description: 'Framework-agnostic web project with upstream scaffolding, Vitest and optional Playwright',
@@ -47,10 +75,15 @@ export const webPreset = {
47
75
  };
48
76
  }
49
77
  const hadVitestScript = Object.values(pkg.scripts || {}).some((script) => typeof script === 'string' && /^vitest(?:\s|$)/.test(script));
50
- addTestingDependencies(pkg, config.browser.playwright);
78
+ const vitest = activeIds(config).has('vitest');
79
+ addTestingDependencies(pkg, config.browser.playwright, vitest);
51
80
  if (fileExists(path.join(targetDir, 'tsconfig.json'))) {
52
- pkg.scripts.typecheck ??=
53
- fresh && framework === 'next' ? 'next typegen && tsc --noEmit' : 'tsc --noEmit';
81
+ if (pkg.scripts.typecheck === undefined) {
82
+ const { script, checker } = typecheckFor(pkg, targetDir, fresh && framework === 'next');
83
+ pkg.scripts.typecheck = script;
84
+ if (checker && !pkg.dependencies?.[checker[0]] && !pkg.devDependencies[checker[0]])
85
+ pkg.devDependencies[checker[0]] = checker[1];
86
+ }
54
87
  if (!pkg.dependencies?.typescript && !pkg.devDependencies.typescript)
55
88
  pkg.devDependencies.typescript = '^5.6.3';
56
89
  }
@@ -74,7 +107,8 @@ export const webPreset = {
74
107
  writeJsonFile(pkgPath, pkg, { overwrite: true, dryRun, silent });
75
108
  if (pm === 'pnpm')
76
109
  safeWriteFile(path.join(targetDir, 'pnpm-workspace.yaml'), 'allowBuilds:\n esbuild: true\n', { dryRun, silent });
77
- setupTesting(ctx, hadVitestScript);
110
+ if (vitest)
111
+ setupTesting(ctx, hadVitestScript);
78
112
  if (config.browser.playwright)
79
113
  setupBrowserTesting(targetDir, { dryRun, silent });
80
114
  if (config.docs.adr)
@@ -1 +1 @@
1
- {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/presets/web.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/presets/web.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { CapabilityDescriptor } from './types.js';
2
+ /**
3
+ * The stable skill set from mattpocock/skills installed by default:
4
+ * every skill in the `engineering` and `productivity` categories.
5
+ *
6
+ * The `misc` (rarely used) and `in-progress` categories are deliberately
7
+ * excluded. Re-evaluate when the upstream repository reshuffles categories
8
+ * (`pnpm check:skills` reports drift).
9
+ */
10
+ export declare const MATT_POCOCK_SKILLS: readonly ['ask-matt', 'code-review', 'codebase-design', 'diagnosing-bugs', 'domain-modeling', 'grill-with-docs', 'implement', 'implement-spec', 'improve-codebase-architecture', 'pr', 'prototype', 'research', 'retro', 'setup-matt-pocock-skills', 'tdd', 'to-spec', 'to-tickets', 'triage', 'wayfinder', 'wizard', 'grill-me', 'grilling', 'handoff', 'teach', 'to-questionnaire', 'wait-what', 'writing-for-agents'];
11
+ export declare const SUPERPOWERS_SKILLS: readonly ['brainstorming', 'dispatching-parallel-agents', 'executing-plans', 'finishing-a-development-branch', 'receiving-code-review', 'requesting-code-review', 'subagent-driven-development', 'systematic-debugging', 'test-driven-development', 'using-git-worktrees', 'using-superpowers', 'verification-before-completion', 'writing-plans', 'writing-skills'];
12
+ export declare const CATALOG: CapabilityDescriptor[];
13
+ //# sourceMappingURL=catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/registry/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAgB,MAAM,YAAY,CAAC;AAEhE;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,YAE7B,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,+BAA+B,EAC/B,IAAI,EACJ,WAAW,EACX,UAAU,EACV,OAAO,EACP,0BAA0B,EAC1B,KAAK,EACL,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,QAAQ,EAER,UAAU,EACV,UAAU,EACV,SAAS,EACT,OAAO,EACP,kBAAkB,EAClB,WAAW,EACX,oBAAoB,CACZ,CAAC;AAEX,eAAO,MAAM,kBAAkB,YAC7B,eAAe,EACf,6BAA6B,EAC7B,iBAAiB,EACjB,gCAAgC,EAChC,uBAAuB,EACvB,wBAAwB,EACxB,6BAA6B,EAC7B,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,mBAAmB,EACnB,gCAAgC,EAChC,eAAe,EACf,gBAAgB,CACR,CAAC;AAUX,eAAO,MAAM,OAAO,EAAE,oBAAoB,EAqfzC,CAAC"}