multi-agents-cli 1.0.51 → 1.0.53
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/core/templates/.agents/backend/API.md +259 -0
- package/core/templates/.agents/backend/AUTH.md +246 -0
- package/core/templates/.agents/backend/DB.md +257 -0
- package/core/templates/.agents/backend/EVENTS.md +253 -0
- package/core/templates/.agents/backend/INIT.md +239 -0
- package/core/templates/.agents/backend/JOBS.md +256 -0
- package/core/templates/.agents/backend/LOGIC.md +291 -0
- package/core/templates/.agents/backend/TESTING.md +266 -0
- package/core/templates/.agents/client/ACCESSIBILITY.md +266 -0
- package/core/templates/.agents/client/FORMS.md +234 -0
- package/core/templates/.agents/client/LOGIC.md +277 -0
- package/core/templates/.agents/client/ROUTING.md +235 -0
- package/core/templates/.agents/client/TESTING.md +241 -0
- package/core/templates/.agents/client/UI.md +226 -0
- package/core/templates/.agents/shared/CLOUD.md +229 -0
- package/core/templates/.agents/shared/CLOUD_TEARDOWN.md +158 -0
- package/core/templates/.agents/shared/SECURITY.md +286 -0
- package/core/templates/.frameworks/backend/django.md +55 -0
- package/core/templates/.frameworks/backend/express.md +74 -0
- package/core/templates/.frameworks/backend/fastapi.md +107 -0
- package/core/templates/.frameworks/backend/fastify.md +74 -0
- package/core/templates/.frameworks/backend/nestjs.md +75 -0
- package/core/templates/.frameworks/client/angular.md +80 -0
- package/core/templates/.frameworks/client/nextjs.md +47 -0
- package/core/templates/.frameworks/client/nuxt.md +45 -0
- package/core/templates/.frameworks/client/remix.md +44 -0
- package/core/templates/.frameworks/client/sveltekit.md +44 -0
- package/core/templates/.frameworks/client/vite-react.md +45 -0
- package/core/templates/CLAUDE.md +531 -0
- package/core/templates/CLOUD_STATE.md +55 -0
- package/core/templates/CONTRACTS.md +16 -0
- package/core/templates/TASKS_HISTORY.md +6 -0
- package/core/templates/backend/CLAUDE.md +207 -0
- package/core/templates/client/CLAUDE.md +213 -0
- package/core/templates/shared/.gitkeep +0 -0
- package/core/templates/shared/wiring.config.json +14 -0
- package/core/workflow/agent.js +1404 -0
- package/core/workflow/complete.js +354 -0
- package/core/workflow/guards.js +643 -0
- package/core/workflow/reset.js +246 -0
- package/core/workflow/restart.js +243 -0
- package/core/workflow/tasks_history.js +120 -0
- package/init.js +35 -32
- package/package.json +2 -1
package/init.js
CHANGED
|
@@ -200,9 +200,9 @@ const FRAMEWORK_VERSION_FALLBACK = {
|
|
|
200
200
|
'Nuxt': ['3', '2', null],
|
|
201
201
|
'SvelteKit': ['2', '1', null],
|
|
202
202
|
'Remix': ['2', '1', null],
|
|
203
|
-
'Vite+React': ['
|
|
203
|
+
'Vite+React': ['8', '7', '6'],
|
|
204
204
|
'NestJS': ['11', '10', '9' ],
|
|
205
|
-
'Express': ['5', '4'
|
|
205
|
+
'Express': ['5', '4'],
|
|
206
206
|
'Fastify': ['5', '4', null],
|
|
207
207
|
'FastAPI': ['0.115', '0.111', '0.104'],
|
|
208
208
|
'Django': ['5.1', '4.2', '3.2'],
|
|
@@ -268,7 +268,7 @@ const STATE_OPTIONS = {
|
|
|
268
268
|
|
|
269
269
|
const UI_OPTIONS = {
|
|
270
270
|
'Next.js': ['shadcn/ui', 'Radix UI', 'MUI', 'Chakra UI', 'Ant Design'],
|
|
271
|
-
'Vite+React': ['
|
|
271
|
+
'Vite+React': ['Radix UI', 'MUI', 'Chakra UI', 'Ant Design'],
|
|
272
272
|
'Remix': ['shadcn/ui', 'Radix UI', 'MUI', 'Chakra UI', 'Ant Design'],
|
|
273
273
|
'Angular': ['Angular Material', 'PrimeNG', 'Clarity'],
|
|
274
274
|
'Nuxt': ['Vuetify', 'PrimeVue', 'Naive UI'],
|
|
@@ -283,6 +283,15 @@ const STYLING_OPTIONS = [
|
|
|
283
283
|
'UnoCSS',
|
|
284
284
|
];
|
|
285
285
|
|
|
286
|
+
const DB_OPTIONS = ['PostgreSQL', 'MySQL', 'MongoDB', 'SQLite', 'Skip (agent will propose when needed)'];
|
|
287
|
+
|
|
288
|
+
const ORM_OPTIONS_BY_DB = {
|
|
289
|
+
'PostgreSQL': ['Prisma', 'TypeORM', 'Drizzle', 'Sequelize', 'raw pg driver', 'Skip (agent will propose when needed)'],
|
|
290
|
+
'MySQL': ['Prisma', 'TypeORM', 'Drizzle', 'Sequelize', 'raw mysql2 driver', 'Skip (agent will propose when needed)'],
|
|
291
|
+
'MongoDB': ['Mongoose', 'Prisma', 'raw MongoDB driver', 'Skip (agent will propose when needed)'],
|
|
292
|
+
'SQLite': ['Prisma', 'Drizzle', 'better-sqlite3', 'Skip (agent will propose when needed)'],
|
|
293
|
+
};
|
|
294
|
+
|
|
286
295
|
const ORM_OPTIONS = {
|
|
287
296
|
'NestJS': ['TypeORM', 'Prisma', 'MikroORM', 'Drizzle'],
|
|
288
297
|
'Express': ['Prisma', 'TypeORM', 'Drizzle', 'Sequelize'],
|
|
@@ -857,7 +866,8 @@ const main = async () => {
|
|
|
857
866
|
label: i === 0 ? `v${v} ${dim('(latest)')}` : `v${v}`,
|
|
858
867
|
value: v,
|
|
859
868
|
}));
|
|
860
|
-
const
|
|
869
|
+
const versionLabel = clientFw.value === 'Vite+React' ? '* Vite version:' : `* ${clientFw.value} version:`;
|
|
870
|
+
const vIdx = await arrowSelect(versionLabel, versionChoices, rl, true);
|
|
861
871
|
if (vIdx === versionChoices.length) { restartIfBack(BACK); return; }
|
|
862
872
|
clientFwVersion = clientVersions[vIdx];
|
|
863
873
|
}
|
|
@@ -922,8 +932,19 @@ const main = async () => {
|
|
|
922
932
|
}
|
|
923
933
|
}
|
|
924
934
|
|
|
925
|
-
|
|
926
|
-
|
|
935
|
+
// DB type
|
|
936
|
+
let backendDb = null;
|
|
937
|
+
if (backendFw) {
|
|
938
|
+
backendDb = await selectOptional('Database type:', DB_OPTIONS);
|
|
939
|
+
if (restartIfBack(backendDb)) return;
|
|
940
|
+
}
|
|
941
|
+
// ORM / query layer (filtered by DB type)
|
|
942
|
+
backendOrm = null;
|
|
943
|
+
if (backendFw && backendDb && backendDb !== 'Skip (agent will propose when needed)') {
|
|
944
|
+
const ormChoices = ORM_OPTIONS_BY_DB[backendDb] || ORM_OPTIONS[backendFw] || [];
|
|
945
|
+
backendOrm = await selectOptional('ORM / query layer:', ormChoices);
|
|
946
|
+
if (restartIfBack(backendOrm)) return;
|
|
947
|
+
}
|
|
927
948
|
backendAuth = backendFw ? await selectOptional('Auth strategy:', AUTH_OPTIONS[backendFw] || []) : null;
|
|
928
949
|
if (restartIfBack(backendAuth)) return;
|
|
929
950
|
backendType = backendFw ? 'separate' : null;
|
|
@@ -1039,20 +1060,11 @@ const main = async () => {
|
|
|
1039
1060
|
separator();
|
|
1040
1061
|
console.log(`\n${bold('Setting up your project...')}\n`);
|
|
1041
1062
|
|
|
1042
|
-
// ──
|
|
1063
|
+
// ── Load bundled core ───────────────────────────────────────────────────────
|
|
1043
1064
|
|
|
1044
|
-
const
|
|
1045
|
-
const CORE_DIR = path.join(ROOT, '.agents-core');
|
|
1065
|
+
const CORE_DIR = path.join(__dirname, 'core');
|
|
1046
1066
|
|
|
1047
|
-
console.log(`
|
|
1048
|
-
try {
|
|
1049
|
-
execSync(`git clone "${CORE_REPO}" "${CORE_DIR}"`, { stdio: 'pipe' });
|
|
1050
|
-
console.log(` ${green('✓')} Templates fetched`);
|
|
1051
|
-
} catch (err) {
|
|
1052
|
-
console.log(` ${red('✗')} Failed to fetch templates. Check your internet connection.`);
|
|
1053
|
-
rl.close();
|
|
1054
|
-
process.exit(1);
|
|
1055
|
-
}
|
|
1067
|
+
console.log(` ${green('✓')} Templates ready`);
|
|
1056
1068
|
|
|
1057
1069
|
const TEMPLATES = path.join(CORE_DIR, 'templates');
|
|
1058
1070
|
|
|
@@ -1102,8 +1114,6 @@ const main = async () => {
|
|
|
1102
1114
|
fs.mkdirSync(WORKFLOW_DEST, { recursive: true });
|
|
1103
1115
|
copyDir(WORKFLOW_SRC, WORKFLOW_DEST);
|
|
1104
1116
|
console.log(` ${green('✓')} Workflow scripts copied (.workflow/)`);
|
|
1105
|
-
|
|
1106
|
-
execSync(`rm -rf "${CORE_DIR}"`);
|
|
1107
1117
|
console.log(` ${green('✓')} Temporary files cleaned up`);
|
|
1108
1118
|
|
|
1109
1119
|
// ── Write @config values ─────────────────────────────────────────────────────
|
|
@@ -1138,7 +1148,6 @@ const main = async () => {
|
|
|
1138
1148
|
}
|
|
1139
1149
|
|
|
1140
1150
|
ensureGitignore('worktrees/');
|
|
1141
|
-
ensureGitignore('.agents-core/');
|
|
1142
1151
|
ensureGitignore('.scaffold/');
|
|
1143
1152
|
ensureGitignore('.workflow/');
|
|
1144
1153
|
ensureGitignore('node_modules/');
|
|
@@ -1500,17 +1509,11 @@ fi
|
|
|
1500
1509
|
} catch { /* best-effort */ }
|
|
1501
1510
|
|
|
1502
1511
|
if (selected.next === 'launch') {
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
stdio: 'inherit',
|
|
1509
|
-
cwd: ROOT,
|
|
1510
|
-
});
|
|
1511
|
-
child.on('exit', (code) => process.exit(code));
|
|
1512
|
-
return;
|
|
1513
|
-
}
|
|
1512
|
+
separator();
|
|
1513
|
+
console.log(`\n ${bold(green(' Project ready!'))}\n`);
|
|
1514
|
+
console.log(` Run ${cyan('npm run agent')} to start your first task.\n`);
|
|
1515
|
+
rl.close();
|
|
1516
|
+
return;
|
|
1514
1517
|
}
|
|
1515
1518
|
|
|
1516
1519
|
console.log('');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "multi-agents-cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.53",
|
|
4
4
|
"description": "Multi-agent workflow orchestration for Claude Code — isolated git worktrees, structured state tracking, autonomous task chaining",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"claude-code",
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
},
|
|
22
22
|
"files": [
|
|
23
23
|
"init.js",
|
|
24
|
+
"core/",
|
|
24
25
|
"README.md",
|
|
25
26
|
"LICENSE"
|
|
26
27
|
],
|