@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.
- package/LICENSE +21 -0
- package/README.md +245 -0
- package/THIRD_PARTY_NOTICES.md +36 -0
- package/bin/aginit.js +8 -0
- package/dist/adapters/agents-md.d.ts +8 -0
- package/dist/adapters/agents-md.d.ts.map +1 -0
- package/dist/adapters/agents-md.js +121 -0
- package/dist/adapters/agents-md.js.map +1 -0
- package/dist/adapters/browser.d.ts +5 -0
- package/dist/adapters/browser.d.ts.map +1 -0
- package/dist/adapters/browser.js +42 -0
- package/dist/adapters/browser.js.map +1 -0
- package/dist/adapters/git.d.ts +5 -0
- package/dist/adapters/git.d.ts.map +1 -0
- package/dist/adapters/git.js +90 -0
- package/dist/adapters/git.js.map +1 -0
- package/dist/adapters/graft.d.ts +14 -0
- package/dist/adapters/graft.d.ts.map +1 -0
- package/dist/adapters/graft.js +56 -0
- package/dist/adapters/graft.js.map +1 -0
- package/dist/adapters/package-manager.d.ts +20 -0
- package/dist/adapters/package-manager.d.ts.map +1 -0
- package/dist/adapters/package-manager.js +89 -0
- package/dist/adapters/package-manager.js.map +1 -0
- package/dist/adapters/skills.d.ts +29 -0
- package/dist/adapters/skills.d.ts.map +1 -0
- package/dist/adapters/skills.js +80 -0
- package/dist/adapters/skills.js.map +1 -0
- package/dist/cli/doctor.d.ts +2 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/doctor.js +212 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/init.d.ts +3 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +32 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/main.d.ts +3 -0
- package/dist/cli/main.d.ts.map +1 -0
- package/dist/cli/main.js +162 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/new.d.ts +15 -0
- package/dist/cli/new.d.ts.map +1 -0
- package/dist/cli/new.js +161 -0
- package/dist/cli/new.js.map +1 -0
- package/dist/cli/wizard.d.ts +31 -0
- package/dist/cli/wizard.d.ts.map +1 -0
- package/dist/cli/wizard.js +260 -0
- package/dist/cli/wizard.js.map +1 -0
- package/dist/config/defaults.d.ts +8 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +122 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/schema.d.ts +40 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +4 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/config/validation.d.ts +11 -0
- package/dist/config/validation.d.ts.map +1 -0
- package/dist/config/validation.js +99 -0
- package/dist/config/validation.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/presets/adr.d.ts +5 -0
- package/dist/presets/adr.d.ts.map +1 -0
- package/dist/presets/adr.js +33 -0
- package/dist/presets/adr.js.map +1 -0
- package/dist/presets/cli.d.ts +3 -0
- package/dist/presets/cli.d.ts.map +1 -0
- package/dist/presets/cli.js +126 -0
- package/dist/presets/cli.js.map +1 -0
- package/dist/presets/generic.d.ts +3 -0
- package/dist/presets/generic.d.ts.map +1 -0
- package/dist/presets/generic.js +29 -0
- package/dist/presets/generic.js.map +1 -0
- package/dist/presets/registry.d.ts +6 -0
- package/dist/presets/registry.d.ts.map +1 -0
- package/dist/presets/registry.js +20 -0
- package/dist/presets/registry.js.map +1 -0
- package/dist/presets/testing.d.ts +6 -0
- package/dist/presets/testing.d.ts.map +1 -0
- package/dist/presets/testing.js +46 -0
- package/dist/presets/testing.js.map +1 -0
- package/dist/presets/types.d.ts +14 -0
- package/dist/presets/types.d.ts.map +1 -0
- package/dist/presets/types.js +2 -0
- package/dist/presets/types.js.map +1 -0
- package/dist/presets/web.d.ts +3 -0
- package/dist/presets/web.d.ts.map +1 -0
- package/dist/presets/web.js +84 -0
- package/dist/presets/web.js.map +1 -0
- package/dist/utils/fs.d.ts +13 -0
- package/dist/utils/fs.d.ts.map +1 -0
- package/dist/utils/fs.js +60 -0
- package/dist/utils/fs.js.map +1 -0
- package/dist/utils/logger.d.ts +10 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +20 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/shell.d.ts +17 -0
- package/dist/utils/shell.d.ts.map +1 -0
- package/dist/utils/shell.js +87 -0
- package/dist/utils/shell.js.map +1 -0
- package/package.json +71 -0
- package/src/adapters/agents-md.ts +143 -0
- package/src/adapters/browser.ts +49 -0
- package/src/adapters/git.ts +100 -0
- package/src/adapters/graft.ts +80 -0
- package/src/adapters/package-manager.ts +116 -0
- package/src/adapters/skills.ts +117 -0
- package/src/cli/doctor.ts +244 -0
- package/src/cli/init.ts +34 -0
- package/src/cli/main.ts +191 -0
- package/src/cli/new.ts +200 -0
- package/src/cli/wizard.ts +300 -0
- package/src/config/defaults.ts +137 -0
- package/src/config/schema.ts +44 -0
- package/src/config/validation.ts +96 -0
- package/src/index.ts +15 -0
- package/src/presets/adr.ts +37 -0
- package/src/presets/cli.ts +136 -0
- package/src/presets/generic.ts +32 -0
- package/src/presets/registry.ts +24 -0
- package/src/presets/testing.ts +56 -0
- package/src/presets/types.ts +15 -0
- package/src/presets/web.ts +99 -0
- package/src/utils/fs.ts +79 -0
- package/src/utils/logger.ts +20 -0
- package/src/utils/shell.ts +116 -0
package/dist/cli/main.js
ADDED
|
@@ -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"}
|
package/dist/cli/new.js
ADDED
|
@@ -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":"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"}
|
|
@@ -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"}
|