@zik000/archai 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 (70) hide show
  1. package/README.md +378 -0
  2. package/dist/bin/cli.d.ts +3 -0
  3. package/dist/bin/cli.d.ts.map +1 -0
  4. package/dist/bin/cli.js +28 -0
  5. package/dist/bin/cli.js.map +1 -0
  6. package/dist/commands/doctor.d.ts +2 -0
  7. package/dist/commands/doctor.d.ts.map +1 -0
  8. package/dist/commands/doctor.js +128 -0
  9. package/dist/commands/doctor.js.map +1 -0
  10. package/dist/commands/generate.d.ts +7 -0
  11. package/dist/commands/generate.d.ts.map +1 -0
  12. package/dist/commands/generate.js +165 -0
  13. package/dist/commands/generate.js.map +1 -0
  14. package/dist/commands/init.d.ts +7 -0
  15. package/dist/commands/init.d.ts.map +1 -0
  16. package/dist/commands/init.js +160 -0
  17. package/dist/commands/init.js.map +1 -0
  18. package/dist/generator/claude-cli.d.ts +19 -0
  19. package/dist/generator/claude-cli.d.ts.map +1 -0
  20. package/dist/generator/claude-cli.js +168 -0
  21. package/dist/generator/claude-cli.js.map +1 -0
  22. package/dist/generator/prompt-builder.d.ts +18 -0
  23. package/dist/generator/prompt-builder.d.ts.map +1 -0
  24. package/dist/generator/prompt-builder.js +122 -0
  25. package/dist/generator/prompt-builder.js.map +1 -0
  26. package/dist/index.d.ts +13 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +15 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/scaffold/copy-core-agents.d.ts +2 -0
  31. package/dist/scaffold/copy-core-agents.d.ts.map +1 -0
  32. package/dist/scaffold/copy-core-agents.js +74 -0
  33. package/dist/scaffold/copy-core-agents.js.map +1 -0
  34. package/dist/scaffold/create-config.d.ts +12 -0
  35. package/dist/scaffold/create-config.d.ts.map +1 -0
  36. package/dist/scaffold/create-config.js +154 -0
  37. package/dist/scaffold/create-config.js.map +1 -0
  38. package/dist/scaffold/create-project-description.d.ts +12 -0
  39. package/dist/scaffold/create-project-description.d.ts.map +1 -0
  40. package/dist/scaffold/create-project-description.js +104 -0
  41. package/dist/scaffold/create-project-description.js.map +1 -0
  42. package/dist/scaffold/create-structure.d.ts +2 -0
  43. package/dist/scaffold/create-structure.d.ts.map +1 -0
  44. package/dist/scaffold/create-structure.js +146 -0
  45. package/dist/scaffold/create-structure.js.map +1 -0
  46. package/dist/utils/detect-project.d.ts +11 -0
  47. package/dist/utils/detect-project.d.ts.map +1 -0
  48. package/dist/utils/detect-project.js +124 -0
  49. package/dist/utils/detect-project.js.map +1 -0
  50. package/dist/utils/logger.d.ts +10 -0
  51. package/dist/utils/logger.d.ts.map +1 -0
  52. package/dist/utils/logger.js +30 -0
  53. package/dist/utils/logger.js.map +1 -0
  54. package/dist/utils/validate-config.d.ts +23 -0
  55. package/dist/utils/validate-config.d.ts.map +1 -0
  56. package/dist/utils/validate-config.js +109 -0
  57. package/dist/utils/validate-config.js.map +1 -0
  58. package/package.json +59 -0
  59. package/templates/ARCHAI_README.md +326 -0
  60. package/templates/PROMPTS.md +480 -0
  61. package/templates/core-agents/cleanup-agent.md +132 -0
  62. package/templates/core-agents/code-reviewer.md +191 -0
  63. package/templates/core-agents/deep-analyst.md +170 -0
  64. package/templates/core-agents/finalization-agent.md +175 -0
  65. package/templates/core-agents/implementation-agent.md +173 -0
  66. package/templates/core-agents/iteration-controller.md +320 -0
  67. package/templates/core-agents/plan-validator.md +125 -0
  68. package/templates/core-agents/task-orchestrator.md +191 -0
  69. package/templates/core-agents/tdd-designer.md +205 -0
  70. package/templates/specialist-meta.md +275 -0
@@ -0,0 +1,146 @@
1
+ import fs from 'fs-extra';
2
+ import path from 'path';
3
+ import { fileURLToPath } from 'url';
4
+ const __filename = fileURLToPath(import.meta.url);
5
+ const __dirname = path.dirname(__filename);
6
+ const FOLDERS = [
7
+ // Claude agent system
8
+ '.claude/agents',
9
+ '.claude/state',
10
+ '.claude/state/archived',
11
+ '.claude/plans',
12
+ '.claude/plans/archived',
13
+ '.claude/templates',
14
+ // Knowledge base
15
+ '.knowledge/context',
16
+ '.knowledge/decisions',
17
+ '.knowledge/learnings',
18
+ '.knowledge/planning',
19
+ '.knowledge/status',
20
+ // Task management
21
+ '.tasks/inbox',
22
+ '.tasks/done',
23
+ '.tasks/epics',
24
+ '.tasks/review',
25
+ '.tasks/blocked',
26
+ '.tasks/templates',
27
+ // Supervisor (coordination)
28
+ '.supervisor',
29
+ // Agent scratch space
30
+ '.agents/plans',
31
+ '.agents/scratch',
32
+ '.agents/thoughts',
33
+ ];
34
+ export async function scaffoldProject() {
35
+ // Create all folders
36
+ for (const folder of FOLDERS) {
37
+ await fs.ensureDir(folder);
38
+ // Add .gitkeep to preserve empty folders
39
+ await fs.writeFile(`${folder}/.gitkeep`, '');
40
+ }
41
+ // Create supervisor files
42
+ await fs.writeFile('.supervisor/assignments.md', '# Assignments\n\nNo active assignments.\n');
43
+ await fs.writeFile('.supervisor/merge-queue.md', '# Merge Queue\n\nNo branches in queue.\n');
44
+ await fs.writeFile('.supervisor/conflicts.md', '# Conflicts\n\nNo conflicts to resolve.\n');
45
+ // Create task templates
46
+ await createTaskTemplates();
47
+ // Update .gitignore
48
+ await updateGitignore();
49
+ // Copy template files to project root
50
+ await copyTemplateFiles();
51
+ }
52
+ async function copyTemplateFiles() {
53
+ const templateFiles = [
54
+ { src: 'PROMPTS.md', dest: 'PROMPTS.md' },
55
+ { src: 'ARCHAI_README.md', dest: 'ARCHAI_README.md' },
56
+ ];
57
+ for (const file of templateFiles) {
58
+ const templatePath = path.join(__dirname, '../../templates', file.src);
59
+ const destPath = file.dest;
60
+ // Only copy if file doesn't already exist
61
+ if (await fs.pathExists(destPath)) {
62
+ continue;
63
+ }
64
+ if (await fs.pathExists(templatePath)) {
65
+ await fs.copyFile(templatePath, destPath);
66
+ }
67
+ }
68
+ }
69
+ async function createTaskTemplates() {
70
+ const epicTemplate = `---
71
+ id: TASK-XXX
72
+ title: "[Epic Title]"
73
+ type: epic
74
+ priority: medium
75
+ status: inbox
76
+ created: YYYY-MM-DD
77
+ due: null
78
+ depends_on: []
79
+ blocks: []
80
+ assignee: null
81
+ branch: null
82
+ ---
83
+
84
+ ## Description
85
+
86
+ [Describe the feature, bug fix, or task in detail]
87
+
88
+ ## Acceptance Criteria
89
+
90
+ - [ ] Criterion 1
91
+ - [ ] Criterion 2
92
+ - [ ] Criterion 3
93
+
94
+ ## Context
95
+
96
+ [Links to relevant documentation, designs, related issues]
97
+
98
+ ## Technical Notes
99
+
100
+ [Any technical considerations or constraints]
101
+ `;
102
+ const subtaskTemplate = `---
103
+ id: SUBTASK-XXX
104
+ parent: TASK-XXX
105
+ title: "[Subtask Title]"
106
+ status: pending
107
+ ---
108
+
109
+ ## Description
110
+
111
+ [Brief description]
112
+
113
+ ## Acceptance Criteria
114
+
115
+ - [ ] Criterion 1
116
+ `;
117
+ await fs.writeFile('.tasks/templates/epic-template.md', epicTemplate);
118
+ await fs.writeFile('.tasks/templates/subtask-template.md', subtaskTemplate);
119
+ }
120
+ async function updateGitignore() {
121
+ const gitignoreAdditions = `
122
+ # archai - Agent scratch space (temporary files)
123
+ .agents/scratch/*
124
+ !.agents/scratch/.gitkeep
125
+ .agents/thoughts/*
126
+ !.agents/thoughts/.gitkeep
127
+ .agents/plans/*
128
+ !.agents/plans/.gitkeep
129
+
130
+ # archai - Working state (cleared after tasks complete)
131
+ .claude/state/*
132
+ !.claude/state/.gitkeep
133
+ !.claude/state/archived/
134
+ `;
135
+ const gitignorePath = '.gitignore';
136
+ let content = '';
137
+ if (await fs.pathExists(gitignorePath)) {
138
+ content = await fs.readFile(gitignorePath, 'utf-8');
139
+ if (content.includes('# archai')) {
140
+ // Already has archai entries
141
+ return;
142
+ }
143
+ }
144
+ await fs.writeFile(gitignorePath, content + gitignoreAdditions);
145
+ }
146
+ //# sourceMappingURL=create-structure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-structure.js","sourceRoot":"","sources":["../../src/scaffold/create-structure.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ interface DetectedProject {
2
+ name: string;
3
+ languages: string[];
4
+ packageManager: string | null;
5
+ isMonorepo: boolean;
6
+ frameworks: string[];
7
+ testFramework: string | null;
8
+ }
9
+ export declare function detectProject(): Promise<DetectedProject>;
10
+ export {};
11
+ //# sourceMappingURL=detect-project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect-project.d.ts","sourceRoot":"","sources":["../../src/utils/detect-project.ts"],"names":[],"mappings":"AAGA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,eAAe,CAAC,CA6G9D"}
@@ -0,0 +1,124 @@
1
+ import fs from 'fs-extra';
2
+ import path from 'path';
3
+ export async function detectProject() {
4
+ const detected = {
5
+ name: path.basename(process.cwd()),
6
+ languages: [],
7
+ packageManager: null,
8
+ isMonorepo: false,
9
+ frameworks: [],
10
+ testFramework: null,
11
+ };
12
+ // Detect package.json (Node.js projects)
13
+ if (await fs.pathExists('package.json')) {
14
+ try {
15
+ const pkg = await fs.readJson('package.json');
16
+ detected.name = pkg.name || detected.name;
17
+ // Detect languages
18
+ if (pkg.devDependencies?.typescript || pkg.dependencies?.typescript) {
19
+ detected.languages.push('TypeScript');
20
+ }
21
+ else {
22
+ detected.languages.push('JavaScript');
23
+ }
24
+ // Detect frameworks
25
+ const deps = { ...pkg.dependencies, ...pkg.devDependencies };
26
+ if (deps.react)
27
+ detected.frameworks.push('React');
28
+ if (deps.vue)
29
+ detected.frameworks.push('Vue');
30
+ if (deps.angular)
31
+ detected.frameworks.push('Angular');
32
+ if (deps.svelte)
33
+ detected.frameworks.push('Svelte');
34
+ if (deps.next)
35
+ detected.frameworks.push('Next.js');
36
+ if (deps.express)
37
+ detected.frameworks.push('Express');
38
+ if (deps.fastify)
39
+ detected.frameworks.push('Fastify');
40
+ if (deps.nestjs || deps['@nestjs/core'])
41
+ detected.frameworks.push('NestJS');
42
+ // Detect test frameworks
43
+ if (deps.vitest)
44
+ detected.testFramework = 'vitest';
45
+ else if (deps.jest)
46
+ detected.testFramework = 'jest';
47
+ else if (deps.mocha)
48
+ detected.testFramework = 'mocha';
49
+ else if (deps.ava)
50
+ detected.testFramework = 'ava';
51
+ else if (deps.playwright || deps['@playwright/test'])
52
+ detected.testFramework = 'playwright';
53
+ else if (deps.cypress)
54
+ detected.testFramework = 'cypress';
55
+ // Detect package manager
56
+ if (await fs.pathExists('pnpm-lock.yaml')) {
57
+ detected.packageManager = 'pnpm';
58
+ }
59
+ else if (await fs.pathExists('yarn.lock')) {
60
+ detected.packageManager = 'yarn';
61
+ }
62
+ else if (await fs.pathExists('bun.lockb')) {
63
+ detected.packageManager = 'bun';
64
+ }
65
+ else if (await fs.pathExists('package-lock.json')) {
66
+ detected.packageManager = 'npm';
67
+ }
68
+ // Detect monorepo
69
+ if (pkg.workspaces || await fs.pathExists('pnpm-workspace.yaml') || await fs.pathExists('turbo.json') || await fs.pathExists('nx.json')) {
70
+ detected.isMonorepo = true;
71
+ }
72
+ }
73
+ catch {
74
+ // Ignore JSON parse errors
75
+ }
76
+ }
77
+ // Detect Python projects
78
+ if (await fs.pathExists('requirements.txt') || await fs.pathExists('pyproject.toml') || await fs.pathExists('setup.py')) {
79
+ detected.languages.push('Python');
80
+ detected.packageManager = 'pip';
81
+ if (await fs.pathExists('pyproject.toml')) {
82
+ try {
83
+ const content = await fs.readFile('pyproject.toml', 'utf-8');
84
+ if (content.includes('fastapi'))
85
+ detected.frameworks.push('FastAPI');
86
+ if (content.includes('django'))
87
+ detected.frameworks.push('Django');
88
+ if (content.includes('flask'))
89
+ detected.frameworks.push('Flask');
90
+ }
91
+ catch {
92
+ // Ignore read errors
93
+ }
94
+ }
95
+ }
96
+ // Detect Go projects
97
+ if (await fs.pathExists('go.mod')) {
98
+ detected.languages.push('Go');
99
+ detected.packageManager = 'go';
100
+ }
101
+ // Detect Rust projects
102
+ if (await fs.pathExists('Cargo.toml')) {
103
+ detected.languages.push('Rust');
104
+ detected.packageManager = 'cargo';
105
+ }
106
+ // Detect Java/Kotlin projects
107
+ if (await fs.pathExists('pom.xml') || await fs.pathExists('build.gradle') || await fs.pathExists('build.gradle.kts')) {
108
+ if (await fs.pathExists('build.gradle.kts')) {
109
+ detected.languages.push('Kotlin');
110
+ }
111
+ else {
112
+ detected.languages.push('Java');
113
+ }
114
+ detected.packageManager = await fs.pathExists('pom.xml') ? 'maven' : 'gradle';
115
+ }
116
+ // Detect .NET projects
117
+ const csprojFiles = await fs.readdir('.').catch(() => []);
118
+ if (csprojFiles.some((f) => f.endsWith('.csproj') || f.endsWith('.fsproj'))) {
119
+ detected.languages.push('C#');
120
+ detected.packageManager = 'dotnet';
121
+ }
122
+ return detected;
123
+ }
124
+ //# sourceMappingURL=detect-project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect-project.js","sourceRoot":"","sources":["../../src/utils/detect-project.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export declare const logger: {
2
+ banner(): void;
3
+ section(title: string): void;
4
+ divider(): void;
5
+ success(message: string): void;
6
+ error(message: string): void;
7
+ warn(message: string): void;
8
+ info(message: string): void;
9
+ };
10
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM;;mBAUF,MAAM;;qBAQJ,MAAM;mBAIR,MAAM;kBAIP,MAAM;kBAIN,MAAM;CAGrB,CAAC"}
@@ -0,0 +1,30 @@
1
+ import chalk from 'chalk';
2
+ export const logger = {
3
+ banner() {
4
+ console.log('');
5
+ console.log(chalk.cyan.bold(' ╔═══════════════════════════════════════╗'));
6
+ console.log(chalk.cyan.bold(' ║') + chalk.white.bold(' archai v0.1.0 ') + chalk.cyan.bold('║'));
7
+ console.log(chalk.cyan.bold(' ║') + chalk.gray(' Multi-Agent Development Workflow ') + chalk.cyan.bold('║'));
8
+ console.log(chalk.cyan.bold(' ╚═══════════════════════════════════════╝'));
9
+ console.log('');
10
+ },
11
+ section(title) {
12
+ console.log(chalk.cyan.bold(`━━━ ${title} ━━━`));
13
+ },
14
+ divider() {
15
+ console.log(chalk.gray('━'.repeat(50)));
16
+ },
17
+ success(message) {
18
+ console.log(chalk.green.bold('✓ ' + message));
19
+ },
20
+ error(message) {
21
+ console.log(chalk.red.bold('✗ ' + message));
22
+ },
23
+ warn(message) {
24
+ console.log(chalk.yellow('⚠ ' + message));
25
+ },
26
+ info(message) {
27
+ console.log(chalk.blue('ℹ ' + message));
28
+ },
29
+ };
30
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,MAAM;QACJ,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACxH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAClH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,KAAa;QACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,OAAO;QACL,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,CAAC,OAAe;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,OAAe;QACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC;IAC1C,CAAC;CACF,CAAC"}
@@ -0,0 +1,23 @@
1
+ interface Specialist {
2
+ name: string;
3
+ focus: string;
4
+ key_concerns: string[];
5
+ }
6
+ interface Config {
7
+ projectName: string;
8
+ projectType: string;
9
+ languages: string;
10
+ frameworks: string;
11
+ testing: string;
12
+ packageManager: string;
13
+ specialists: Specialist[];
14
+ rawContent: string;
15
+ }
16
+ interface ValidationResult {
17
+ valid: boolean;
18
+ errors: string[];
19
+ config: Config;
20
+ }
21
+ export declare function validateConfig(): Promise<ValidationResult>;
22
+ export {};
23
+ //# sourceMappingURL=validate-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-config.d.ts","sourceRoot":"","sources":["../../src/utils/validate-config.ts"],"names":[],"mappings":"AAEA,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,UAAU,MAAM;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,gBAAgB;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAuChE"}
@@ -0,0 +1,109 @@
1
+ import fs from 'fs-extra';
2
+ export async function validateConfig() {
3
+ const errors = [];
4
+ // Read config file
5
+ let configContent;
6
+ try {
7
+ configContent = await fs.readFile('archai.config.md', 'utf-8');
8
+ }
9
+ catch {
10
+ return {
11
+ valid: false,
12
+ errors: ['Could not read archai.config.md'],
13
+ config: {},
14
+ };
15
+ }
16
+ // Parse markdown config
17
+ const config = parseMarkdownConfig(configContent);
18
+ // Validate required fields
19
+ if (!config.projectName || config.projectName === '[TODO') {
20
+ errors.push('Project name is required');
21
+ }
22
+ if (!config.projectType || config.projectType.includes('[TODO')) {
23
+ errors.push('Project type is required (edit archai.config.md)');
24
+ }
25
+ if (!config.languages || config.languages.includes('[TODO')) {
26
+ errors.push('Languages are required (edit archai.config.md)');
27
+ }
28
+ // Parse specialists from markdown
29
+ config.specialists = parseSpecialists(configContent);
30
+ return {
31
+ valid: errors.length === 0,
32
+ errors,
33
+ config,
34
+ };
35
+ }
36
+ function parseMarkdownConfig(content) {
37
+ const config = {
38
+ projectName: '',
39
+ projectType: '',
40
+ languages: '',
41
+ frameworks: '',
42
+ testing: '',
43
+ packageManager: '',
44
+ specialists: [],
45
+ rawContent: content,
46
+ };
47
+ // Extract values using regex patterns
48
+ const nameMatch = content.match(/\*\*Name:\*\*\s*(.+)/);
49
+ if (nameMatch)
50
+ config.projectName = nameMatch[1].trim();
51
+ const typeMatch = content.match(/\*\*Type:\*\*\s*(.+)/);
52
+ if (typeMatch)
53
+ config.projectType = typeMatch[1].trim();
54
+ const langMatch = content.match(/\*\*Languages:\*\*\s*(.+)/);
55
+ if (langMatch)
56
+ config.languages = langMatch[1].trim();
57
+ const frameworkMatch = content.match(/\*\*Frameworks:\*\*\s*(.+)/);
58
+ if (frameworkMatch)
59
+ config.frameworks = frameworkMatch[1].trim();
60
+ const testMatch = content.match(/\*\*Testing:\*\*\s*(.+)/);
61
+ if (testMatch)
62
+ config.testing = testMatch[1].trim();
63
+ const pmMatch = content.match(/\*\*Package Manager:\*\*\s*(.+)/);
64
+ if (pmMatch)
65
+ config.packageManager = pmMatch[1].trim();
66
+ return config;
67
+ }
68
+ function parseSpecialists(content) {
69
+ const specialists = [];
70
+ // Find the Specialists section - look for the header and capture until next ## header or ---
71
+ const specialistsSection = content.match(/## Specialists to Generate[\s\S]*?(?=\n---|\n## [A-Z]|$)/);
72
+ if (!specialistsSection)
73
+ return specialists;
74
+ const sectionContent = specialistsSection[0];
75
+ // Match each specialist (### 1. Name, ### 2. Name, etc.)
76
+ // Use a more flexible pattern that captures until next ### or end of section
77
+ const specialistPattern = /###\s*\d+\.\s*([^\n]+)\n([\s\S]*?)(?=\n###\s*\d+\.|\n---|\n## |$)/g;
78
+ const specialistMatches = sectionContent.matchAll(specialistPattern);
79
+ for (const match of specialistMatches) {
80
+ const name = match[1].trim();
81
+ const details = match[2];
82
+ // Skip placeholder entries
83
+ if (name.includes('[TODO') || name.includes('[Add more'))
84
+ continue;
85
+ // Extract focus
86
+ const focusMatch = details.match(/\*\*Focus:\*\*\s*(.+)/);
87
+ const focus = focusMatch ? focusMatch[1].trim() : '';
88
+ // Skip if focus is empty or placeholder
89
+ if (!focus || focus.includes('['))
90
+ continue;
91
+ // Extract key concerns
92
+ const key_concerns = [];
93
+ const concernsMatch = details.match(/\*\*Key Concerns:\*\*([\s\S]*?)(?=\n\n|\n###|\n---|$)/);
94
+ if (concernsMatch) {
95
+ const concernLines = concernsMatch[1].match(/^-\s*(.+)/gm);
96
+ if (concernLines) {
97
+ concernLines.forEach(line => {
98
+ const concern = line.replace(/^-\s*/, '').trim();
99
+ if (concern && !concern.includes('[')) {
100
+ key_concerns.push(concern);
101
+ }
102
+ });
103
+ }
104
+ }
105
+ specialists.push({ name, focus, key_concerns });
106
+ }
107
+ return specialists;
108
+ }
109
+ //# sourceMappingURL=validate-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-config.js","sourceRoot":"","sources":["../../src/utils/validate-config.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "@zik000/archai",
3
+ "version": "0.1.0",
4
+ "description": "Multi-agent AI development workflow setup for any project",
5
+ "keywords": [
6
+ "claude",
7
+ "ai",
8
+ "agents",
9
+ "development",
10
+ "workflow",
11
+ "automation",
12
+ "claude-code"
13
+ ],
14
+ "author": "",
15
+ "license": "MIT",
16
+ "repository": {
17
+ "type": "git",
18
+ "url": ""
19
+ },
20
+ "type": "module",
21
+ "bin": {
22
+ "archai": "./dist/bin/cli.js"
23
+ },
24
+ "main": "./dist/index.js",
25
+ "types": "./dist/index.d.ts",
26
+ "files": [
27
+ "dist",
28
+ "templates"
29
+ ],
30
+ "scripts": {
31
+ "build": "tsc",
32
+ "dev": "tsc --watch",
33
+ "start": "node dist/bin/cli.js",
34
+ "test": "vitest",
35
+ "lint": "eslint src --ext .ts",
36
+ "prepublishOnly": "npm run build"
37
+ },
38
+ "dependencies": {
39
+ "chalk": "^5.3.0",
40
+ "commander": "^12.1.0",
41
+ "fs-extra": "^11.2.0",
42
+ "inquirer": "^9.2.15",
43
+ "ora": "^8.0.1",
44
+ "yaml": "^2.4.1"
45
+ },
46
+ "devDependencies": {
47
+ "@types/fs-extra": "^11.0.4",
48
+ "@types/inquirer": "^9.0.9",
49
+ "@types/node": "^20.11.0",
50
+ "@typescript-eslint/eslint-plugin": "^6.19.0",
51
+ "@typescript-eslint/parser": "^6.19.0",
52
+ "eslint": "^8.56.0",
53
+ "typescript": "^5.3.3",
54
+ "vitest": "^1.2.0"
55
+ },
56
+ "engines": {
57
+ "node": ">=18.0.0"
58
+ }
59
+ }