@antomanc/aginit 0.1.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 (130) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +245 -0
  3. package/THIRD_PARTY_NOTICES.md +36 -0
  4. package/bin/aginit.js +8 -0
  5. package/dist/adapters/agents-md.d.ts +8 -0
  6. package/dist/adapters/agents-md.d.ts.map +1 -0
  7. package/dist/adapters/agents-md.js +121 -0
  8. package/dist/adapters/agents-md.js.map +1 -0
  9. package/dist/adapters/browser.d.ts +5 -0
  10. package/dist/adapters/browser.d.ts.map +1 -0
  11. package/dist/adapters/browser.js +42 -0
  12. package/dist/adapters/browser.js.map +1 -0
  13. package/dist/adapters/git.d.ts +5 -0
  14. package/dist/adapters/git.d.ts.map +1 -0
  15. package/dist/adapters/git.js +90 -0
  16. package/dist/adapters/git.js.map +1 -0
  17. package/dist/adapters/graft.d.ts +14 -0
  18. package/dist/adapters/graft.d.ts.map +1 -0
  19. package/dist/adapters/graft.js +56 -0
  20. package/dist/adapters/graft.js.map +1 -0
  21. package/dist/adapters/package-manager.d.ts +20 -0
  22. package/dist/adapters/package-manager.d.ts.map +1 -0
  23. package/dist/adapters/package-manager.js +89 -0
  24. package/dist/adapters/package-manager.js.map +1 -0
  25. package/dist/adapters/skills.d.ts +29 -0
  26. package/dist/adapters/skills.d.ts.map +1 -0
  27. package/dist/adapters/skills.js +80 -0
  28. package/dist/adapters/skills.js.map +1 -0
  29. package/dist/cli/doctor.d.ts +2 -0
  30. package/dist/cli/doctor.d.ts.map +1 -0
  31. package/dist/cli/doctor.js +212 -0
  32. package/dist/cli/doctor.js.map +1 -0
  33. package/dist/cli/init.d.ts +3 -0
  34. package/dist/cli/init.d.ts.map +1 -0
  35. package/dist/cli/init.js +32 -0
  36. package/dist/cli/init.js.map +1 -0
  37. package/dist/cli/main.d.ts +3 -0
  38. package/dist/cli/main.d.ts.map +1 -0
  39. package/dist/cli/main.js +162 -0
  40. package/dist/cli/main.js.map +1 -0
  41. package/dist/cli/new.d.ts +15 -0
  42. package/dist/cli/new.d.ts.map +1 -0
  43. package/dist/cli/new.js +161 -0
  44. package/dist/cli/new.js.map +1 -0
  45. package/dist/cli/wizard.d.ts +31 -0
  46. package/dist/cli/wizard.d.ts.map +1 -0
  47. package/dist/cli/wizard.js +260 -0
  48. package/dist/cli/wizard.js.map +1 -0
  49. package/dist/config/defaults.d.ts +8 -0
  50. package/dist/config/defaults.d.ts.map +1 -0
  51. package/dist/config/defaults.js +122 -0
  52. package/dist/config/defaults.js.map +1 -0
  53. package/dist/config/schema.d.ts +40 -0
  54. package/dist/config/schema.d.ts.map +1 -0
  55. package/dist/config/schema.js +4 -0
  56. package/dist/config/schema.js.map +1 -0
  57. package/dist/config/validation.d.ts +11 -0
  58. package/dist/config/validation.d.ts.map +1 -0
  59. package/dist/config/validation.js +99 -0
  60. package/dist/config/validation.js.map +1 -0
  61. package/dist/index.d.ts +16 -0
  62. package/dist/index.d.ts.map +1 -0
  63. package/dist/index.js +16 -0
  64. package/dist/index.js.map +1 -0
  65. package/dist/presets/adr.d.ts +5 -0
  66. package/dist/presets/adr.d.ts.map +1 -0
  67. package/dist/presets/adr.js +33 -0
  68. package/dist/presets/adr.js.map +1 -0
  69. package/dist/presets/cli.d.ts +3 -0
  70. package/dist/presets/cli.d.ts.map +1 -0
  71. package/dist/presets/cli.js +126 -0
  72. package/dist/presets/cli.js.map +1 -0
  73. package/dist/presets/generic.d.ts +3 -0
  74. package/dist/presets/generic.d.ts.map +1 -0
  75. package/dist/presets/generic.js +29 -0
  76. package/dist/presets/generic.js.map +1 -0
  77. package/dist/presets/registry.d.ts +6 -0
  78. package/dist/presets/registry.d.ts.map +1 -0
  79. package/dist/presets/registry.js +20 -0
  80. package/dist/presets/registry.js.map +1 -0
  81. package/dist/presets/testing.d.ts +6 -0
  82. package/dist/presets/testing.d.ts.map +1 -0
  83. package/dist/presets/testing.js +46 -0
  84. package/dist/presets/testing.js.map +1 -0
  85. package/dist/presets/types.d.ts +14 -0
  86. package/dist/presets/types.d.ts.map +1 -0
  87. package/dist/presets/types.js +2 -0
  88. package/dist/presets/types.js.map +1 -0
  89. package/dist/presets/web.d.ts +3 -0
  90. package/dist/presets/web.d.ts.map +1 -0
  91. package/dist/presets/web.js +84 -0
  92. package/dist/presets/web.js.map +1 -0
  93. package/dist/utils/fs.d.ts +13 -0
  94. package/dist/utils/fs.d.ts.map +1 -0
  95. package/dist/utils/fs.js +60 -0
  96. package/dist/utils/fs.js.map +1 -0
  97. package/dist/utils/logger.d.ts +10 -0
  98. package/dist/utils/logger.d.ts.map +1 -0
  99. package/dist/utils/logger.js +20 -0
  100. package/dist/utils/logger.js.map +1 -0
  101. package/dist/utils/shell.d.ts +17 -0
  102. package/dist/utils/shell.d.ts.map +1 -0
  103. package/dist/utils/shell.js +87 -0
  104. package/dist/utils/shell.js.map +1 -0
  105. package/package.json +71 -0
  106. package/src/adapters/agents-md.ts +143 -0
  107. package/src/adapters/browser.ts +49 -0
  108. package/src/adapters/git.ts +100 -0
  109. package/src/adapters/graft.ts +80 -0
  110. package/src/adapters/package-manager.ts +116 -0
  111. package/src/adapters/skills.ts +117 -0
  112. package/src/cli/doctor.ts +244 -0
  113. package/src/cli/init.ts +34 -0
  114. package/src/cli/main.ts +191 -0
  115. package/src/cli/new.ts +200 -0
  116. package/src/cli/wizard.ts +300 -0
  117. package/src/config/defaults.ts +137 -0
  118. package/src/config/schema.ts +44 -0
  119. package/src/config/validation.ts +96 -0
  120. package/src/index.ts +15 -0
  121. package/src/presets/adr.ts +37 -0
  122. package/src/presets/cli.ts +136 -0
  123. package/src/presets/generic.ts +32 -0
  124. package/src/presets/registry.ts +24 -0
  125. package/src/presets/testing.ts +56 -0
  126. package/src/presets/types.ts +15 -0
  127. package/src/presets/web.ts +99 -0
  128. package/src/utils/fs.ts +79 -0
  129. package/src/utils/logger.ts +20 -0
  130. package/src/utils/shell.ts +116 -0
@@ -0,0 +1,162 @@
1
+ import { Command } from 'commander';
2
+ import { createProject } from './new.js';
3
+ import { initCurrentDirectory } from './init.js';
4
+ import { runDoctor } from './doctor.js';
5
+ import { updateSkills } from '../adapters/skills.js';
6
+ import { buildGraft } from '../adapters/graft.js';
7
+ import { readProjectConfig } from '../config/validation.js';
8
+ import { logger } from '../utils/logger.js';
9
+ import { isInteractive, promptNewProject, promptInitProject, runInteractiveWizard } from './wizard.js';
10
+ export function createCliProgram() {
11
+ const program = new Command();
12
+ program
13
+ .name('aginit')
14
+ .description('Minimal, modular AI-first project bootstrapper for T3 Code, Antigravity, and Codex')
15
+ .version('0.1.0');
16
+ // Root action: interactive wizard when in TTY, else display help
17
+ program.action(async () => {
18
+ if (isInteractive()) {
19
+ await runInteractiveWizard();
20
+ }
21
+ else {
22
+ program.outputHelp();
23
+ }
24
+ });
25
+ // Command: new
26
+ program
27
+ .command('new [projectName]')
28
+ .description('Create a brand new AI-first project')
29
+ .option('-p, --preset <preset>', 'Project preset: web | cli | generic', 'generic')
30
+ .option('-f, --framework <framework>', 'Web framework: none | vite | next | existing', 'none')
31
+ .option('-m, --package-manager <pm>', 'Package manager: pnpm | npm | yarn | bun', 'pnpm')
32
+ .option('--spec-workflow', 'Include full spec and tickets skills (to-spec, to-tickets, implement-spec)')
33
+ .option('--no-skills', 'Skip installing AI skills')
34
+ .option('--no-graft', 'Skip codebase graph (Graft) setup')
35
+ .option('--no-git', 'Skip git repository initialization')
36
+ .option('--dry-run', 'Simulate creation without writing changes to disk')
37
+ .action(async (projectName, options, command) => {
38
+ let finalName = projectName;
39
+ let finalPreset = options.preset;
40
+ let finalFramework = options.framework;
41
+ let finalPackageManager = options.packageManager;
42
+ let finalSpecWorkflow = options.specWorkflow;
43
+ if (!finalName) {
44
+ if (!isInteractive()) {
45
+ program.error("error: missing required argument 'projectName'");
46
+ }
47
+ const answers = await promptNewProject({
48
+ preset: command.getOptionValueSource('preset') === 'cli'
49
+ ? options.preset
50
+ : undefined,
51
+ framework: command.getOptionValueSource('framework') === 'cli'
52
+ ? options.framework
53
+ : undefined,
54
+ packageManager: command.getOptionValueSource('packageManager') === 'cli'
55
+ ? options.packageManager
56
+ : undefined,
57
+ specWorkflow: command.getOptionValueSource('specWorkflow') === 'cli'
58
+ ? options.specWorkflow
59
+ : undefined
60
+ });
61
+ finalName = answers.projectName;
62
+ finalPreset = answers.preset;
63
+ finalFramework = answers.framework;
64
+ finalPackageManager = answers.packageManager;
65
+ finalSpecWorkflow = answers.specWorkflow;
66
+ }
67
+ const complete = await createProject(finalName, {
68
+ preset: finalPreset,
69
+ framework: finalFramework,
70
+ packageManager: finalPackageManager,
71
+ specWorkflow: finalSpecWorkflow,
72
+ skills: options.skills,
73
+ graft: options.graft,
74
+ git: options.git,
75
+ dryRun: options.dryRun
76
+ });
77
+ if (!complete && !options.dryRun)
78
+ process.exitCode = 1;
79
+ });
80
+ // Command: init
81
+ program
82
+ .command('init')
83
+ .description('Initialize or update AI-first capabilities in the current directory')
84
+ .option('-p, --preset <preset>', 'Project preset: web | cli | generic')
85
+ .option('-f, --framework <framework>', 'Web framework: none | vite | next | existing')
86
+ .option('-m, --package-manager <pm>', 'Package manager: pnpm | npm | yarn | bun')
87
+ .option('--spec-workflow', 'Include full spec and tickets skills (to-spec, to-tickets, implement-spec)')
88
+ .option('--no-skills', 'Skip installing AI skills')
89
+ .option('--no-graft', 'Skip codebase graph (Graft) setup')
90
+ .option('--no-git', 'Skip git repository initialization')
91
+ .option('--dry-run', 'Simulate setup without writing changes to disk')
92
+ .action(async (options, command) => {
93
+ let finalPreset = options.preset;
94
+ let finalFramework = options.framework;
95
+ let finalPackageManager = options.packageManager;
96
+ let finalSpecWorkflow = options.specWorkflow;
97
+ const isPresetExplicit = command.getOptionValueSource('preset') === 'cli';
98
+ const isFrameworkExplicit = command.getOptionValueSource('framework') === 'cli';
99
+ const isPmExplicit = command.getOptionValueSource('packageManager') === 'cli';
100
+ const isSpecExplicit = command.getOptionValueSource('specWorkflow') === 'cli';
101
+ const savedConfig = readProjectConfig(process.cwd());
102
+ if (isInteractive() && !isPresetExplicit && !options.dryRun && !savedConfig) {
103
+ const answers = await promptInitProject({
104
+ preset: isPresetExplicit ? options.preset : undefined,
105
+ framework: isFrameworkExplicit ? options.framework : undefined,
106
+ packageManager: isPmExplicit ? options.packageManager : undefined,
107
+ specWorkflow: isSpecExplicit ? options.specWorkflow : undefined
108
+ });
109
+ finalPreset = answers.preset;
110
+ finalFramework = answers.framework;
111
+ finalPackageManager = answers.packageManager;
112
+ finalSpecWorkflow = answers.specWorkflow;
113
+ }
114
+ const complete = await initCurrentDirectory({
115
+ preset: finalPreset,
116
+ framework: finalFramework,
117
+ packageManager: finalPackageManager,
118
+ specWorkflow: finalSpecWorkflow,
119
+ skills: options.skills,
120
+ graft: options.graft,
121
+ git: options.git,
122
+ dryRun: options.dryRun
123
+ });
124
+ if (!complete && !options.dryRun)
125
+ process.exitCode = 1;
126
+ });
127
+ // Command: doctor
128
+ program
129
+ .command('doctor')
130
+ .description('Run system and project diagnostics for AI agent readiness')
131
+ .option('-d, --dir <path>', 'Target directory to check', process.cwd())
132
+ .action(async (options) => {
133
+ await runDoctor(options.dir);
134
+ });
135
+ // Command: update
136
+ program
137
+ .command('update')
138
+ .description('Update installed skills and refresh codebase graph')
139
+ .option('--dry-run', 'Simulate update')
140
+ .action(async (options) => {
141
+ logger.banner('Aginit — Update');
142
+ const targetDir = process.cwd();
143
+ const config = readProjectConfig(targetDir);
144
+ const skillsOk = config?.skills.sources.length === 0
145
+ ? true
146
+ : await updateSkills(targetDir, { dryRun: options.dryRun });
147
+ const graftOk = config?.codebase.graft === false
148
+ ? true
149
+ : await buildGraft(targetDir, { dryRun: options.dryRun });
150
+ if (skillsOk && graftOk)
151
+ logger.success('Update finished.');
152
+ else {
153
+ if (!skillsOk)
154
+ logger.warn('Skills update failed. Check connectivity and the skills CLI.');
155
+ if (!graftOk)
156
+ logger.warn('Graft refresh failed or Graft is unavailable. Check installation and rerun graft build.');
157
+ process.exitCode = 1;
158
+ }
159
+ });
160
+ return program;
161
+ }
162
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { PresetType, WebFramework, PackageManager } from '../config/schema.js';
2
+ export interface NewProjectOptions {
3
+ preset?: PresetType;
4
+ framework?: WebFramework;
5
+ packageManager?: PackageManager;
6
+ specWorkflow?: boolean;
7
+ skills?: boolean;
8
+ graft?: boolean;
9
+ git?: boolean;
10
+ dryRun?: boolean;
11
+ targetDir?: string;
12
+ silent?: boolean;
13
+ }
14
+ export declare function createProject(projectName: string, options?: NewProjectOptions): Promise<boolean>;
15
+ //# sourceMappingURL=new.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../src/cli/new.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,UAAU,EACV,YAAY,EACZ,cAAc,EACf,MAAM,qBAAqB,CAAC;AAkB7B,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,OAAO,CAAC,CA6JlB"}
@@ -0,0 +1,161 @@
1
+ import path from 'node:path';
2
+ import pc from 'picocolors';
3
+ import { getDefaultConfig } from '../config/defaults.js';
4
+ import { AGINIT_CONFIG_FILENAME } from '../config/schema.js';
5
+ import { getPreset } from '../presets/registry.js';
6
+ import { setupGit } from '../adapters/git.js';
7
+ import { setupAgentsMarkdown } from '../adapters/agents-md.js';
8
+ import { installAllSkills } from '../adapters/skills.js';
9
+ import { initGraft } from '../adapters/graft.js';
10
+ import { ensureDir, writeJsonFile } from '../utils/fs.js';
11
+ import { readProjectConfig, readPackageManifest, validateConfig, validateProjectName, PRESETS, FRAMEWORKS, SUPPORTED_PACKAGE_MANAGERS } from '../config/validation.js';
12
+ import { logger } from '../utils/logger.js';
13
+ export async function createProject(projectName, options = {}) {
14
+ validateProjectName(projectName);
15
+ if (options.preset !== undefined && !PRESETS.includes(options.preset))
16
+ throw new Error('Invalid preset.');
17
+ if (options.framework !== undefined && !FRAMEWORKS.includes(options.framework))
18
+ throw new Error('Invalid framework.');
19
+ if (options.packageManager !== undefined &&
20
+ !SUPPORTED_PACKAGE_MANAGERS.includes(options.packageManager))
21
+ throw new Error('Invalid package manager.');
22
+ const defaultDir = projectName.startsWith('@') && projectName.includes('/')
23
+ ? projectName.split('/').pop()
24
+ : projectName;
25
+ const targetDir = path.resolve(options.targetDir || path.join(process.cwd(), defaultDir));
26
+ const existingConfig = readProjectConfig(targetDir);
27
+ const manifest = readPackageManifest(targetDir); // Validate before creating or modifying anything.
28
+ const presetName = options.preset ?? existingConfig?.preset ?? 'generic';
29
+ const framework = options.framework ?? (presetName === 'web' ? existingConfig?.framework : undefined);
30
+ if (presetName !== 'web' && framework && framework !== 'none' && framework !== 'existing')
31
+ throw new Error('A web framework requires --preset web.');
32
+ if (presetName === 'web' && framework === 'existing' && !manifest)
33
+ throw new Error('An existing web framework requires an existing package.json. Use --framework none for a new baseline.');
34
+ const packageManager = options.packageManager ?? existingConfig?.packageManager ?? 'pnpm';
35
+ const dryRun = !!options.dryRun;
36
+ const silent = !!options.silent;
37
+ const presetHandler = getPreset(presetName);
38
+ const defaults = getDefaultConfig(projectName, presetName, {
39
+ framework,
40
+ packageManager,
41
+ specWorkflow: options.specWorkflow
42
+ });
43
+ const config = validateConfig(existingConfig
44
+ ? {
45
+ ...existingConfig,
46
+ name: projectName,
47
+ preset: presetName,
48
+ packageManager,
49
+ ...(presetName === 'web' ? { framework: framework ?? 'none' } : {}),
50
+ browser: options.framework !== undefined || options.preset !== undefined
51
+ ? { ...existingConfig.browser, ...defaults.browser }
52
+ : existingConfig.browser,
53
+ skills: options.specWorkflow !== undefined
54
+ ? {
55
+ ...existingConfig.skills,
56
+ workflow: defaults.skills.workflow,
57
+ sources: existingConfig.skills.sources.map((source) => source.package === 'mattpocock/skills'
58
+ ? {
59
+ ...source,
60
+ skills: defaults.skills.sources.find((s) => s.package === source.package)
61
+ .skills
62
+ }
63
+ : source)
64
+ }
65
+ : existingConfig.skills
66
+ }
67
+ : defaults);
68
+ if (presetName !== 'web')
69
+ delete config.framework;
70
+ if (options.graft === false)
71
+ config.codebase = { ...config.codebase, graft: false };
72
+ if (options.skills === false && !existingConfig)
73
+ config.skills.sources = [];
74
+ if (!silent)
75
+ logger.banner(`Aginit — ${projectName}`, `Preset: ${presetName} | PM: ${packageManager} | Target: ${targetDir}${dryRun ? ' (DRY RUN)' : ''}`);
76
+ let complete = true;
77
+ const totalSteps = 6;
78
+ let currentStep = 1;
79
+ // Scaffold into the clean directory before Git adds files that upstream tools reject.
80
+ if (!silent)
81
+ logger.step(currentStep++, totalSteps, `Scaffolding preset: ${presetHandler.name}`);
82
+ ensureDir(targetDir, dryRun);
83
+ await presetHandler.scaffold({ targetDir, projectName, config, dryRun, silent: true });
84
+ if (!silent)
85
+ logger.success(`Scaffolded ${presetHandler.name} structure`);
86
+ if (!silent)
87
+ logger.step(currentStep++, totalSteps, 'Configuring Git');
88
+ if (options.git !== false) {
89
+ const gitOk = await setupGit(targetDir, { dryRun, silent: true });
90
+ complete &&= gitOk;
91
+ if (gitOk && !silent)
92
+ logger.success('Git repository initialized and .gitignore configured');
93
+ }
94
+ // Step 3: Write declarative project config
95
+ if (!silent)
96
+ logger.step(currentStep++, totalSteps, 'Writing declarative project configuration');
97
+ writeJsonFile(path.join(targetDir, AGINIT_CONFIG_FILENAME), config, {
98
+ overwrite: true,
99
+ dryRun,
100
+ silent
101
+ });
102
+ if (!silent)
103
+ logger.success(`Wrote ${AGINIT_CONFIG_FILENAME}`);
104
+ // Step 4: Write or update AGENTS.md intake contract
105
+ if (!silent)
106
+ logger.step(currentStep++, totalSteps, 'Generating AGENTS.md intake guidance');
107
+ setupAgentsMarkdown(targetDir, config, { dryRun, silent });
108
+ if (!silent)
109
+ logger.success('Configured AGENTS.md');
110
+ // Step 5: Install skills via skills.sh engine
111
+ if (!silent)
112
+ logger.step(currentStep++, totalSteps, 'Installing upstream skills via skills.sh');
113
+ if (options.skills !== false && config.skills.sources.length > 0) {
114
+ const { installed, failed } = await installAllSkills(targetDir, config.skills.sources, {
115
+ agents: [config.agents.primary, config.agents.secondary],
116
+ dryRun,
117
+ silent
118
+ });
119
+ complete &&= failed.length === 0;
120
+ if (!silent) {
121
+ if (installed.length > 0) {
122
+ logger.success(`Installed skills: ${installed.join(', ')}`);
123
+ }
124
+ if (failed.length > 0) {
125
+ logger.warn(`Failed installing: ${failed.join(', ')}`);
126
+ }
127
+ }
128
+ }
129
+ else if (!silent) {
130
+ logger.dim('Skills installation skipped (--no-skills or empty configuration)');
131
+ }
132
+ // Step 6: Codebase intelligence (Graft)
133
+ if (!silent)
134
+ logger.step(currentStep++, totalSteps, 'Configuring codebase intelligence');
135
+ if (config.codebase.graft && options.graft !== false) {
136
+ const graftOk = await initGraft(targetDir, { dryRun, silent });
137
+ complete &&= graftOk;
138
+ if (graftOk && !silent) {
139
+ logger.success('Graft context graph initialized');
140
+ }
141
+ }
142
+ else if (!silent) {
143
+ logger.dim('Graft setup skipped (--no-graft or codebase.graft: false)');
144
+ }
145
+ if (!silent) {
146
+ console.log();
147
+ if (complete)
148
+ logger.success(pc.bold(`Project "${projectName}" is ready for development!`));
149
+ else
150
+ logger.warn(`Project "${projectName}" was scaffolded with incomplete integrations. Resolve the warnings above and rerun aginit init.`);
151
+ console.log();
152
+ console.log('Next steps:');
153
+ console.log(pc.cyan(` cd ${path.relative(process.cwd(), targetDir) || '.'}`));
154
+ console.log(pc.cyan(` ${packageManager} install`));
155
+ console.log(pc.cyan(' Open the repository in T3 Code'));
156
+ console.log(pc.dim(' Prompt the agent: ') + pc.bold(pc.green('"bootstrap this project"')));
157
+ console.log();
158
+ }
159
+ return complete;
160
+ }
161
+ //# sourceMappingURL=new.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/cli/new.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EACL,sBAAsB,EAIvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACnB,OAAO,EACP,UAAU,EACV,0BAA0B,EAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAe5C,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,WAAmB,EACnB,UAA6B,EAAE;IAE/B,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACjC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACxC,IACE,OAAO,CAAC,cAAc,KAAK,SAAS;QACpC,CAAC,0BAA0B,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC;QAE5D,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,MAAM,UAAU,GACd,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC;QACtD,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG;QAC/B,CAAC,CAAC,WAAW,CAAC;IAClB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;IAC1F,MAAM,cAAc,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,kDAAkD;IACnG,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,cAAc,EAAE,MAAM,IAAI,SAAS,CAAC;IACzE,MAAM,SAAS,GACb,OAAO,CAAC,SAAS,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACtF,IAAI,UAAU,KAAK,KAAK,IAAI,SAAS,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,UAAU;QACvF,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,IAAI,UAAU,KAAK,KAAK,IAAI,SAAS,KAAK,UAAU,IAAI,CAAC,QAAQ;QAC/D,MAAM,IAAI,KAAK,CACb,uGAAuG,CACxG,CAAC;IACJ,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,cAAc,EAAE,cAAc,IAAI,MAAM,CAAC;IAC1F,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAChC,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAChC,MAAM,aAAa,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,WAAW,EAAE,UAAU,EAAE;QACzD,SAAS;QACT,cAAc;QACd,YAAY,EAAE,OAAO,CAAC,YAAY;KACnC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,cAAc,CAC3B,cAAc;QACZ,CAAC,CAAC;YACE,GAAG,cAAc;YACjB,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,UAAU;YAClB,cAAc;YACd,GAAG,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnE,OAAO,EACL,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;gBAC7D,CAAC,CAAC,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE;gBACpD,CAAC,CAAC,cAAc,CAAC,OAAO;YAC5B,MAAM,EACJ,OAAO,CAAC,YAAY,KAAK,SAAS;gBAChC,CAAC,CAAC;oBACE,GAAG,cAAc,CAAC,MAAM;oBACxB,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ;oBAClC,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACpD,MAAM,CAAC,OAAO,KAAK,mBAAmB;wBACpC,CAAC,CAAC;4BACE,GAAG,MAAM;4BACT,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAE;iCACvE,MAAM;yBACV;wBACH,CAAC,CAAC,MAAM,CACX;iBACF;gBACH,CAAC,CAAC,cAAc,CAAC,MAAM;SAC5B;QACH,CAAC,CAAC,QAAQ,CACb,CAAC;IACF,IAAI,UAAU,KAAK,KAAK;QAAE,OAAO,MAAM,CAAC,SAAS,CAAC;IAClD,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK;QAAE,MAAM,CAAC,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACpF,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,cAAc;QAAE,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;IAC5E,IAAI,CAAC,MAAM;QACT,MAAM,CAAC,MAAM,CACX,YAAY,WAAW,EAAE,EACzB,WAAW,UAAU,UAAU,cAAc,cAAc,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CACpG,CAAC;IACJ,IAAI,QAAQ,GAAG,IAAI,CAAC;IAEpB,MAAM,UAAU,GAAG,CAAC,CAAC;IACrB,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,sFAAsF;IACtF,IAAI,CAAC,MAAM;QAAE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,uBAAuB,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;IACjG,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC7B,MAAM,aAAa,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACvF,IAAI,CAAC,MAAM;QAAE,MAAM,CAAC,OAAO,CAAC,cAAc,aAAa,CAAC,IAAI,YAAY,CAAC,CAAC;IAE1E,IAAI,CAAC,MAAM;QAAE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;IACvE,IAAI,OAAO,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,QAAQ,KAAK,KAAK,CAAC;QACnB,IAAI,KAAK,IAAI,CAAC,MAAM;YAAE,MAAM,CAAC,OAAO,CAAC,sDAAsD,CAAC,CAAC;IAC/F,CAAC;IAED,2CAA2C;IAC3C,IAAI,CAAC,MAAM;QAAE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,2CAA2C,CAAC,CAAC;IACjG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,sBAAsB,CAAC,EAAE,MAAM,EAAE;QAClE,SAAS,EAAE,IAAI;QACf,MAAM;QACN,MAAM;KACP,CAAC,CAAC;IACH,IAAI,CAAC,MAAM;QAAE,MAAM,CAAC,OAAO,CAAC,SAAS,sBAAsB,EAAE,CAAC,CAAC;IAE/D,oDAAoD;IACpD,IAAI,CAAC,MAAM;QAAE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,sCAAsC,CAAC,CAAC;IAC5F,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,MAAM;QAAE,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAEpD,8CAA8C;IAC9C,IAAI,CAAC,MAAM;QAAE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,0CAA0C,CAAC,CAAC;IAChG,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;YACrF,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;YACxD,MAAM;YACN,MAAM;SACP,CAAC,CAAC;QACH,QAAQ,KAAK,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,CAAC,OAAO,CAAC,qBAAqB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9D,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;IACjF,CAAC;IAED,wCAAwC;IACxC,IAAI,CAAC,MAAM;QAAE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,mCAAmC,CAAC,CAAC;IACzF,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/D,QAAQ,KAAK,OAAO,CAAC;QACrB,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;SAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,IAAI,QAAQ;YAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,WAAW,6BAA6B,CAAC,CAAC,CAAC;;YAE1F,MAAM,CAAC,IAAI,CACT,YAAY,WAAW,kGAAkG,CAC1H,CAAC;QACJ,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;QAC/E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,cAAc,UAAU,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;QAC5F,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { PresetType, WebFramework, PackageManager } from '../config/schema.js';
2
+ export declare function isInteractive(): boolean;
3
+ export interface WizardNewAnswers {
4
+ projectName: string;
5
+ preset: PresetType;
6
+ framework: WebFramework;
7
+ packageManager: PackageManager;
8
+ specWorkflow: boolean;
9
+ }
10
+ export interface WizardInitAnswers {
11
+ preset: PresetType;
12
+ framework: WebFramework;
13
+ packageManager: PackageManager;
14
+ specWorkflow: boolean;
15
+ }
16
+ export declare function promptNewProject(defaults?: {
17
+ projectName?: string;
18
+ preset?: PresetType;
19
+ framework?: WebFramework;
20
+ packageManager?: PackageManager;
21
+ specWorkflow?: boolean;
22
+ }): Promise<WizardNewAnswers>;
23
+ export declare function promptInitProject(defaults?: {
24
+ targetDir?: string;
25
+ preset?: PresetType;
26
+ framework?: WebFramework;
27
+ packageManager?: PackageManager;
28
+ specWorkflow?: boolean;
29
+ }): Promise<WizardInitAnswers>;
30
+ export declare function runInteractiveWizard(): Promise<void>;
31
+ //# sourceMappingURL=wizard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wizard.d.ts","sourceRoot":"","sources":["../../src/cli/wizard.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAM/E,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAUD,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,YAAY,CAAC;IACxB,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,YAAY,CAAC;IACxB,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,wBAAsB,gBAAgB,CAAC,QAAQ,CAAC,EAAE;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA8G5B;AAED,wBAAsB,iBAAiB,CAAC,QAAQ,CAAC,EAAE;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAyF7B;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAiD1D"}