citadel-ai 1.0.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 (62) hide show
  1. package/CONTRIBUTING.md +91 -0
  2. package/LICENSE +5 -0
  3. package/README.md +254 -0
  4. package/bin/citadel.js +2 -0
  5. package/dist/agents/registry.d.ts +16 -0
  6. package/dist/agents/registry.js +1108 -0
  7. package/dist/agents/registry.js.map +1 -0
  8. package/dist/cli/ide-rules.d.ts +5 -0
  9. package/dist/cli/ide-rules.js +176 -0
  10. package/dist/cli/ide-rules.js.map +1 -0
  11. package/dist/cli/index.d.ts +1 -0
  12. package/dist/cli/index.js +59 -0
  13. package/dist/cli/index.js.map +1 -0
  14. package/dist/cli/init.d.ts +1 -0
  15. package/dist/cli/init.js +110 -0
  16. package/dist/cli/init.js.map +1 -0
  17. package/dist/cli/run.d.ts +1 -0
  18. package/dist/cli/run.js +64 -0
  19. package/dist/cli/run.js.map +1 -0
  20. package/dist/core/chinese-wall.d.ts +34 -0
  21. package/dist/core/chinese-wall.js +62 -0
  22. package/dist/core/chinese-wall.js.map +1 -0
  23. package/dist/core/gates.d.ts +19 -0
  24. package/dist/core/gates.js +38 -0
  25. package/dist/core/gates.js.map +1 -0
  26. package/dist/core/loops.d.ts +20 -0
  27. package/dist/core/loops.js +83 -0
  28. package/dist/core/loops.js.map +1 -0
  29. package/dist/core/memory.d.ts +23 -0
  30. package/dist/core/memory.js +116 -0
  31. package/dist/core/memory.js.map +1 -0
  32. package/dist/core/orchestrator.d.ts +22 -0
  33. package/dist/core/orchestrator.js +234 -0
  34. package/dist/core/orchestrator.js.map +1 -0
  35. package/dist/core/types.d.ts +139 -0
  36. package/dist/core/types.js +2 -0
  37. package/dist/core/types.js.map +1 -0
  38. package/dist/index.d.ts +9 -0
  39. package/dist/index.js +9 -0
  40. package/dist/index.js.map +1 -0
  41. package/dist/llm/provider.d.ts +8 -0
  42. package/dist/llm/provider.js +84 -0
  43. package/dist/llm/provider.js.map +1 -0
  44. package/dist/ui/terminal.d.ts +16 -0
  45. package/dist/ui/terminal.js +71 -0
  46. package/dist/ui/terminal.js.map +1 -0
  47. package/package.json +40 -0
  48. package/templates/.citadel/citadel.config.json +1 -0
  49. package/templates/.citadel/gates/gate-0-inception.json +1 -0
  50. package/templates/.citadel/gates/gate-1-predesign.json +1 -0
  51. package/templates/.citadel/gates/gate-2-prebuild.json +1 -0
  52. package/templates/.citadel/gates/gate-3-preship.json +1 -0
  53. package/templates/.citadel/gates/gate-4-postdeploy.json +1 -0
  54. package/templates/.citadel/memory/decisions.json +1 -0
  55. package/templates/.citadel/memory/errors.json +1 -0
  56. package/templates/.citadel/memory/project.json +1 -0
  57. package/templates/.citadel/memory/session.json +1 -0
  58. package/templates/.citadel/specs/adr.md +1 -0
  59. package/templates/.citadel/specs/data-model.md +1 -0
  60. package/templates/.citadel/specs/growth.md +1 -0
  61. package/templates/.citadel/specs/prd.md +1 -0
  62. package/templates/.citadel/specs/security.md +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare function installClaudeCode(projectPath: string): void;
2
+ export declare function installCursor(projectPath: string): void;
3
+ export declare function installAntigravity(projectPath: string): void;
4
+ export declare function installWindsurf(projectPath: string): void;
5
+ export declare function installAllIDEs(projectPath: string): void;
@@ -0,0 +1,176 @@
1
+ // ═══════════════════════════════════════════════════════════════
2
+ // CITADEL — IDE Rules Generator (Claude Code, Cursor, Antigravity, Windsurf)
3
+ // ═══════════════════════════════════════════════════════════════
4
+ import { mkdirSync, writeFileSync } from 'node:fs';
5
+ import { join } from 'node:path';
6
+ import { getAgentCount, getAgentsByLevel } from '../agents/registry.js';
7
+ // ── The master rules content (shared across all IDEs) ──
8
+ function buildRulesContent() {
9
+ const c = getAgentCount();
10
+ const csuite = getAgentsByLevel('c-suite');
11
+ const makers = getAgentsByLevel('maker');
12
+ const checkers = getAgentsByLevel('checker');
13
+ let agentRoster = '';
14
+ // C-Suite
15
+ agentRoster += '### C-Suite (Strategic Decisions)\n';
16
+ for (const a of csuite) {
17
+ agentRoster += `- **${a.icon} ${a.name} (${a.title})** — ${a.philosophy}\n`;
18
+ }
19
+ // Makers
20
+ agentRoster += '\n### Makers (Build)\n';
21
+ for (const a of makers) {
22
+ agentRoster += `- **${a.icon} ${a.name} (${a.title})** — ${a.philosophy}\n`;
23
+ }
24
+ // Checkers
25
+ agentRoster += '\n### Checkers (Validate)\n';
26
+ for (const a of checkers) {
27
+ agentRoster += `- **${a.icon} ${a.name} (${a.title})** — ${a.philosophy}\n`;
28
+ }
29
+ return `# šŸ° CITADEL — AI Development Framework
30
+
31
+ You are operating as CITADEL, a ${c.total}-agent AI development framework with enterprise-grade governance.
32
+ When the user asks you to build something, you embody the relevant agents below.
33
+ You ALWAYS follow the rules, gates, and Chinese Wall principles.
34
+
35
+ ## YOUR IDENTITY
36
+
37
+ You are **ATLAS** (the Orchestrator). You route conversations to the right agent.
38
+ When you act as a specific agent, adopt their personality, voice, and rules.
39
+ Always tell the user which agent is speaking: "šŸ—ļø LINUS (CTO): ..."
40
+
41
+ ## CORE RULES (IMMUTABLE)
42
+
43
+ ### 1. Maker ≠ Checker (Chinese Wall)
44
+ The agent/role that BUILDS something CANNOT validate it.
45
+ When you write code as UNCLE BOB, you MUST switch to GUIDO to review it.
46
+ Never skip the review step.
47
+
48
+ ### 2. CISO Veto Power
49
+ BRUCE (CISO) can block ANY deployment for security reasons.
50
+ Always run a security check before shipping. If there's a critical vulnerability, STOP.
51
+
52
+ ### 3. 5 Mandatory Gates
53
+ Every project goes through these gates IN ORDER:
54
+ - **Gate 0 — Inception**: Define the problem, scope, tech stack. All C-levels sign off.
55
+ - **Gate 1 — Pre-Design**: PRD with user stories + acceptance criteria approved.
56
+ - **Gate 2 — Pre-Build**: Architecture Decision Record + data model + security review.
57
+ - **Gate 3 — Pre-Ship**: Code review + tests (80%+ coverage) + security audit + CISO sign-off.
58
+ - **Gate 4 — Post-Deploy**: Monitoring active, rollback plan tested.
59
+
60
+ ### 4. Code Standards
61
+ - TypeScript strict mode
62
+ - Max 200 lines per file, 30 lines per function
63
+ - Business logic in service layer ONLY (never in controllers or DB layer)
64
+ - Every public function has a test
65
+ - No magic numbers — use named constants
66
+ - Error handling: explicit, typed, never swallowed
67
+
68
+ ### 5. Anti-Patterns (Auto-Reject)
69
+ If you detect these, flag them immediately:
70
+ God Objects, Primitive Obsession, Long Parameter Lists, Magic Numbers,
71
+ Error Swallowing, Callback Hell, Framework Coupling, Speculative Generality
72
+
73
+ ## THE 42 AGENTS
74
+
75
+ ${agentRoster}
76
+
77
+ ## HOW TO WORK
78
+
79
+ ### When the user describes what to build:
80
+ 1. Start as ATLAS — understand what they want
81
+ 2. Bring in MARTY (CPO) for PRD + user stories
82
+ 3. Bring in LINUS (CTO) for architecture
83
+ 4. Bring in BRUCE (CISO) for security review
84
+ 5. Pass Gate 0 (Inception) before any code
85
+
86
+ ### When building:
87
+ 1. UNCLE BOB writes backend, DAN writes frontend, STEIPETE writes mobile
88
+ 2. GUIDO reviews code (Chinese Wall — different agent than the builder)
89
+ 3. KENT writes/validates tests (80% coverage minimum)
90
+ 4. BRENDAN checks performance (LCP < 2.5s, no N+1 queries)
91
+
92
+ ### When reviewing:
93
+ 1. CHARLIE runs security checks (OWASP Top 10)
94
+ 2. JAKOB reviews UX (Nielsen's 10 Heuristics)
95
+ 3. ALEYDA audits SEO (Lighthouse > 90)
96
+ 4. AARON checks accessibility (WCAG 2.1 AA)
97
+
98
+ ### When shipping:
99
+ 1. BRUCE (CISO) gives final sign-off or VETO
100
+ 2. KELSEY handles deployment (zero-downtime, rollback ready)
101
+ 3. CHARITY sets up observability (structured logs, traces, alerts)
102
+
103
+ ## PROJECT CONTEXT
104
+
105
+ Read these files for project-specific context:
106
+ - \`.citadel/specs/prd.md\` — Product requirements
107
+ - \`.citadel/specs/adr.md\` — Architecture decisions
108
+ - \`.citadel/specs/security.md\` — Security requirements
109
+ - \`.citadel/specs/data-model.md\` — Database schema
110
+ - \`.citadel/specs/growth.md\` — Growth strategy
111
+ - \`.citadel/agents/\` — Detailed persona for each agent
112
+
113
+ ## COMMANDS
114
+ The user can say:
115
+ - "help" or "stuck" → Explain where we are and what to do next
116
+ - "status" → Show current gate progress
117
+ - "build [feature]" → Start the build loop
118
+ - "review" → Run the checker team
119
+ - "@[agent-name]" → Talk to a specific agent (e.g., "@bruce security check")
120
+ `;
121
+ }
122
+ // ── Install for each IDE ──
123
+ export function installClaudeCode(projectPath) {
124
+ // CLAUDE.md — auto-loaded by Claude Code
125
+ writeFileSync(join(projectPath, 'CLAUDE.md'), buildRulesContent(), 'utf-8');
126
+ // Slash commands
127
+ const cmdDir = join(projectPath, '.claude', 'commands');
128
+ mkdirSync(cmdDir, { recursive: true });
129
+ writeFileSync(join(cmdDir, 'citadel-help.md'), `You are ATLAS, the CITADEL orchestrator. Read CLAUDE.md and .citadel/ to understand the framework. Show the user: current phase, what's been done, what's next. If they seem stuck, guide them step by step.`, 'utf-8');
130
+ writeFileSync(join(cmdDir, 'citadel-build.md'), `You are the CITADEL build team. Read CLAUDE.md for all rules. Read .citadel/specs/ for requirements. Build following Maker→Checker flow. Always state which agent you're acting as. Chinese Wall: after building, switch to a checker agent to review.`, 'utf-8');
131
+ writeFileSync(join(cmdDir, 'citadel-review.md'), `You are the CITADEL checker team. Review the entire codebase against:
132
+ - šŸ” GUIDO: naming, SRP, DRY, anti-patterns
133
+ - 🧪 KENT: test coverage (80%+), test pyramid
134
+ - ⚔ BRENDAN: LCP < 2.5s, no N+1, bundle size
135
+ - āš”ļø CHARLIE: OWASP Top 10, auth, secrets
136
+ - ♿ AARON: WCAG 2.1 AA, keyboard nav, screen readers
137
+ Give PASS/FAIL per category with specific line references.`, 'utf-8');
138
+ writeFileSync(join(cmdDir, 'citadel-status.md'), `Read .citadel/memory/session.json and .citadel/gates/. Show a status dashboard: current phase, gate progress (checks passed/failed), active agents, and what needs to happen next.`, 'utf-8');
139
+ writeFileSync(join(cmdDir, 'citadel-security.md'), `You are šŸ›”ļø BRUCE (CISO). Run a full security audit:
140
+ - Secrets management (no hardcoded keys)
141
+ - Auth flow (bcrypt/argon2, JWT with short expiry)
142
+ - OWASP Top 10 compliance
143
+ - Dependency CVE scan
144
+ - PII handling (encrypted at rest)
145
+ - CSRF/XSS/SQL injection vectors
146
+ You have ABSOLUTE VETO POWER. If critical issues found, BLOCK deployment.`, 'utf-8');
147
+ }
148
+ export function installCursor(projectPath) {
149
+ // .cursorrules — auto-loaded by Cursor
150
+ writeFileSync(join(projectPath, '.cursorrules'), buildRulesContent(), 'utf-8');
151
+ // Commands
152
+ const cmdDir = join(projectPath, '.cursor', 'commands');
153
+ mkdirSync(cmdDir, { recursive: true });
154
+ writeFileSync(join(cmdDir, 'citadel-help.md'), `Read .cursorrules and .citadel/ directory. Show current phase, agents, and next steps.`, 'utf-8');
155
+ writeFileSync(join(cmdDir, 'citadel-build.md'), `Read .cursorrules for rules. Build following Maker→Checker flow. State which agent you're acting as.`, 'utf-8');
156
+ writeFileSync(join(cmdDir, 'citadel-review.md'), `Run CITADEL checker team review. PASS/FAIL per category: code quality, tests, performance, security, accessibility.`, 'utf-8');
157
+ }
158
+ export function installAntigravity(projectPath) {
159
+ // GEMINI.md — auto-loaded by Antigravity
160
+ writeFileSync(join(projectPath, 'GEMINI.md'), buildRulesContent(), 'utf-8');
161
+ // .antigravity/rules.md (backup location some setups use)
162
+ const agDir = join(projectPath, '.antigravity');
163
+ mkdirSync(agDir, { recursive: true });
164
+ writeFileSync(join(agDir, 'rules.md'), buildRulesContent(), 'utf-8');
165
+ }
166
+ export function installWindsurf(projectPath) {
167
+ // .windsurfrules — auto-loaded by Windsurf
168
+ writeFileSync(join(projectPath, '.windsurfrules'), buildRulesContent(), 'utf-8');
169
+ }
170
+ export function installAllIDEs(projectPath) {
171
+ installClaudeCode(projectPath);
172
+ installCursor(projectPath);
173
+ installAntigravity(projectPath);
174
+ installWindsurf(projectPath);
175
+ }
176
+ //# sourceMappingURL=ide-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ide-rules.js","sourceRoot":"","sources":["../../src/cli/ide-rules.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,59 @@
1
+ import { initCommand } from './init.js';
2
+ import { runCommand } from './run.js';
3
+ const cmd = process.argv[2];
4
+ if (cmd === 'init' || cmd === 'install') {
5
+ initCommand().catch(e => { console.error(e.message); process.exit(1); });
6
+ }
7
+ else if (cmd === 'run' || !cmd) {
8
+ runCommand().catch(e => { console.error(e.message); process.exit(1); });
9
+ }
10
+ else if (cmd === 'agents') {
11
+ import('../agents/registry.js').then(({ AGENT_REGISTRY }) => {
12
+ console.log(`\nšŸ° CITADEL — ${AGENT_REGISTRY.size} Agents\n`);
13
+ const levels = ['command', 'c-suite', 'maker', 'checker'];
14
+ const labels = { command: '⚔ COMMAND', 'c-suite': 'šŸ‘” C-SUITE', maker: 'šŸ”Ø MAKERS', checker: 'šŸ” CHECKERS' };
15
+ for (const level of levels) {
16
+ const agents = [...AGENT_REGISTRY.values()].filter(a => a.level === level);
17
+ console.log(`\n${labels[level]} (${agents.length})`);
18
+ for (const a of agents)
19
+ console.log(` ${a.icon} ${a.name.padEnd(12)} ${a.title.padEnd(28)} ${a.team}`);
20
+ }
21
+ console.log('');
22
+ });
23
+ }
24
+ else if (cmd === 'status') {
25
+ import('../core/memory.js').then(({ Memory }) => {
26
+ const m = new Memory(process.cwd());
27
+ const s = m.getSession();
28
+ if (!s) {
29
+ console.log('āŒ No session. Run: npx citadel-ai init');
30
+ return;
31
+ }
32
+ console.log(`\nšŸ“ Phase: ${s.currentPhase} | Gate: ${s.currentGate} | Agent: ${s.activeAgent}\n`);
33
+ });
34
+ }
35
+ else if (cmd === 'help' || cmd === '--help' || cmd === '-h') {
36
+ console.log(`
37
+ šŸ° CITADEL — 42-Agent AI Development Framework
38
+
39
+ npx citadel-ai init Initialize in your project
40
+ npx citadel-ai run Start interactive build session
41
+ npx citadel-ai status Show current phase & gate
42
+ npx citadel-ai agents List all 42 agents
43
+ npx citadel-ai help This message
44
+
45
+ After init, you can also use slash commands in your IDE:
46
+ /citadel-help — Guidance from ATLAS
47
+ /citadel-build — Start the maker team
48
+ /citadel-review — Run the checker team
49
+ /citadel-status — Phase & gate dashboard
50
+ `);
51
+ }
52
+ else if (cmd === 'version' || cmd === '--version' || cmd === '-v') {
53
+ console.log('citadel-ai v1.0.0');
54
+ }
55
+ else {
56
+ console.log(`Unknown command: ${cmd}\nRun: npx citadel-ai help`);
57
+ process.exit(1);
58
+ }
59
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function initCommand(targetPath?: string): Promise<void>;
@@ -0,0 +1,110 @@
1
+ import { existsSync, mkdirSync, writeFileSync, readFileSync, appendFileSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { createInterface } from 'node:readline';
4
+ import { Memory } from '../core/memory.js';
5
+ import { GateSystem } from '../core/gates.js';
6
+ import { getAgentCount, AGENT_REGISTRY } from '../agents/registry.js';
7
+ import { banner } from '../ui/terminal.js';
8
+ import { installAllIDEs } from './ide-rules.js';
9
+ function ask(q) {
10
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
11
+ return new Promise(r => { rl.question(q, a => { rl.close(); r(a.trim()); }); });
12
+ }
13
+ function writeAgentPersonas(cp) {
14
+ const d = join(cp, 'agents');
15
+ mkdirSync(d, { recursive: true });
16
+ for (const [id, a] of AGENT_REGISTRY) {
17
+ writeFileSync(join(d, `${id}.md`), `# ${a.icon} ${a.name} — ${a.title}\n> ${a.subtitle}\n\n**Inspiration:** ${a.inspiration}\n**Philosophy:** "${a.philosophy}"\n**Level:** ${a.level} | **Team:** ${a.team}\n\n## Personality\n${a.personality}\n\n## Voice\n${a.voice}\n\n## Rules (Immutable)\n${a.rules.map(r => `- ${r}`).join('\n')}\n\n## Principles\n${a.principles.map(p => `- ${p}`).join('\n')}\n\n## System Prompt\n${a.systemPrompt}\n`, 'utf-8');
18
+ }
19
+ }
20
+ function writeSpecTemplates(cp) {
21
+ const d = join(cp, 'specs');
22
+ mkdirSync(d, { recursive: true });
23
+ writeFileSync(join(d, 'prd.md'), `# Product Requirements Document\n\n## Problem Statement\n<!-- What problem are we solving? -->\n\n## Target Users\n\n## Success Metrics\n\n## User Stories\n<!-- As a [user], I want [action] so that [outcome] -->\n\n## Scope\n### In Scope\n### Out of Scope\n`, 'utf-8');
24
+ writeFileSync(join(d, 'adr.md'), `# Architecture Decision Records\n\n<!-- ADRs will be appended by LINUS (CTO) -->\n`, 'utf-8');
25
+ writeFileSync(join(d, 'security.md'), `# Security Requirements\n\n## Authentication\n## Authorization\n## Data Protection\n## Compliance\n## Threat Model\n\n<!-- Reviewed by BRUCE (CISO) — ABSOLUTE VETO POWER -->\n`, 'utf-8');
26
+ writeFileSync(join(d, 'data-model.md'), `# Data Model\n\n## Entities\n## Relationships\n## Indexes\n## Migration Plan\n\n<!-- Designed by CODD, reviewed by DATE -->\n`, 'utf-8');
27
+ writeFileSync(join(d, 'growth.md'), `# Growth Strategy\n\n## Metrics & KPIs\n## Analytics Plan\n## SEO Strategy\n## Growth Loops\n\n<!-- Owned by SEAN (CGO) -->\n`, 'utf-8');
28
+ }
29
+ // ═══ MAIN ═══
30
+ export async function initCommand(targetPath) {
31
+ const pp = targetPath ?? process.cwd();
32
+ const cp = join(pp, '.citadel');
33
+ console.log(banner());
34
+ if (existsSync(cp)) {
35
+ const redo = await ask('āš ļø Already initialized. Reinstall? (y/N): ');
36
+ if (redo.toLowerCase() !== 'y')
37
+ return;
38
+ }
39
+ // Provider
40
+ console.log('\nšŸ¤– AI provider:\n 1. Anthropic (Claude) — recommended\n 2. OpenAI (GPT-4o)');
41
+ const provAns = await ask('\nChoice (1/2): ');
42
+ const prov = provAns === '2' ? 'openai' : 'anthropic';
43
+ const model = prov === 'anthropic' ? 'claude-sonnet-4-20250514' : 'gpt-4o';
44
+ const ek = prov === 'anthropic' ? 'ANTHROPIC_API_KEY' : 'OPENAI_API_KEY';
45
+ // API Key
46
+ let ak = process.env[ek] ?? '';
47
+ if (ak) {
48
+ console.log(`\nāœ… Found ${ek} in environment`);
49
+ }
50
+ else {
51
+ ak = await ask(`\nšŸ”‘ ${prov} API key: `);
52
+ }
53
+ if (!ak) {
54
+ console.log(`\nāŒ Need ${ek}`);
55
+ process.exit(1);
56
+ }
57
+ console.log('\nā³ Installing CITADEL...\n');
58
+ // Scaffold .citadel/
59
+ for (const d of [cp, join(cp, 'memory'), join(cp, 'gates'), join(cp, 'specs'), join(cp, 'agents')]) {
60
+ mkdirSync(d, { recursive: true });
61
+ }
62
+ // Config
63
+ const cfg = {
64
+ version: '1.0.0',
65
+ llm: { provider: prov, model, apiKey: ak, maxTokens: 4096, temperature: 0.7 },
66
+ projectPath: pp, citadelPath: cp,
67
+ features: { webResearch: true, autoGates: true, persistentMemory: true, chineseWalls: true },
68
+ };
69
+ writeFileSync(join(cp, 'citadel.config.json'), JSON.stringify({ ...cfg, llm: { ...cfg.llm, apiKey: `\${${ek}}` } }, null, 2), 'utf-8');
70
+ // Init systems
71
+ new Memory(pp).initSession();
72
+ new GateSystem(pp).initAllGates();
73
+ // Agent personas + spec templates
74
+ writeAgentPersonas(cp);
75
+ writeSpecTemplates(cp);
76
+ // Install ALL IDE rules (Claude Code, Cursor, Antigravity, Windsurf)
77
+ installAllIDEs(pp);
78
+ console.log(' āœ… CLAUDE.md — Claude Code');
79
+ console.log(' āœ… .cursorrules — Cursor');
80
+ console.log(' āœ… GEMINI.md — Antigravity');
81
+ console.log(' āœ… .windsurfrules — Windsurf');
82
+ console.log(' āœ… Slash commands — Claude Code + Cursor');
83
+ // .gitignore
84
+ const gi = join(pp, '.gitignore');
85
+ const giContent = '\n# CITADEL state (specs + agents are committed)\n.citadel/memory/\n.citadel/gates/\n';
86
+ if (existsSync(gi)) {
87
+ if (!readFileSync(gi, 'utf-8').includes('.citadel/memory'))
88
+ appendFileSync(gi, giContent);
89
+ }
90
+ else {
91
+ writeFileSync(gi, giContent);
92
+ }
93
+ const c = getAgentCount();
94
+ console.log(`
95
+ āœ… CITADEL installed!
96
+
97
+ šŸ° ${c.total} agents ready
98
+ šŸ“ .citadel/ — agents, specs, memory, gates
99
+
100
+ IDE support:
101
+ Claude Code → CLAUDE.md + /citadel-help, /citadel-build, /citadel-review
102
+ Cursor → .cursorrules + /citadel-help, /citadel-build
103
+ Antigravity → GEMINI.md + .antigravity/rules.md
104
+ Windsurf → .windsurfrules
105
+
106
+ šŸš€ Open your IDE and start talking. The AI IS the team.
107
+ Or run: npx citadel-ai run (interactive CLI)
108
+ `);
109
+ }
110
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function runCommand(): Promise<void>;
@@ -0,0 +1,64 @@
1
+ import { existsSync, readFileSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { createInterface } from 'node:readline';
4
+ import { Orchestrator } from '../core/orchestrator.js';
5
+ import { banner, loadUI, divider } from '../ui/terminal.js';
6
+ export async function runCommand() {
7
+ const pp = process.cwd(), cp = join(pp, '.citadel', 'citadel.config.json');
8
+ if (!existsSync(cp)) {
9
+ console.log('āŒ Run: npx citadel init');
10
+ process.exit(1);
11
+ }
12
+ const raw = JSON.parse(readFileSync(cp, 'utf-8'));
13
+ const ek = raw.llm.provider === 'anthropic' ? 'ANTHROPIC_API_KEY' : 'OPENAI_API_KEY';
14
+ const ak = process.env[ek];
15
+ if (!ak) {
16
+ console.log(`āŒ Missing ${ek}`);
17
+ process.exit(1);
18
+ }
19
+ const config = { ...raw, projectPath: pp, citadelPath: join(pp, '.citadel'), llm: { ...raw.llm, apiKey: ak } };
20
+ try {
21
+ await loadUI();
22
+ }
23
+ catch { }
24
+ console.log(banner());
25
+ console.log('Type message. "help" if stuck. "exit" to quit.\n');
26
+ const orc = new Orchestrator(config);
27
+ console.log(await orc.processMessage('hello'));
28
+ const rl = createInterface({ input: process.stdin, output: process.stdout, prompt: '\nšŸ’¬ You: ' });
29
+ rl.prompt();
30
+ rl.on('line', async (input) => {
31
+ const t = input.trim();
32
+ if (!t) {
33
+ rl.prompt();
34
+ return;
35
+ }
36
+ if (t.toLowerCase() === 'exit') {
37
+ console.log('\nšŸ‘‹ Saved.\n');
38
+ process.exit(0);
39
+ }
40
+ if (t.toLowerCase() === 'status') {
41
+ const s = orc.getMemory().getSession();
42
+ if (s) {
43
+ console.log(divider() + `Phase: ${s.currentPhase} | Gate: ${s.currentGate}`);
44
+ console.log(orc.getGates().getProgressSummary(s.currentGate));
45
+ }
46
+ rl.prompt();
47
+ return;
48
+ }
49
+ if (t.toLowerCase() === 'advance') {
50
+ console.log(await orc.advancePhase());
51
+ rl.prompt();
52
+ return;
53
+ }
54
+ try {
55
+ console.log(await orc.processMessage(t));
56
+ }
57
+ catch (e) {
58
+ console.log(`āŒ ${e.message}`);
59
+ }
60
+ rl.prompt();
61
+ });
62
+ rl.on('close', () => { console.log('\nšŸ‘‹ Saved.\n'); process.exit(0); });
63
+ }
64
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { TeamId } from '../core/types.js';
2
+ export interface WallViolation {
3
+ maker: string;
4
+ checker: string;
5
+ team: string;
6
+ reason: string;
7
+ }
8
+ export declare class ChineseWall {
9
+ /**
10
+ * Check if a checker agent can review work produced by a maker agent.
11
+ * Rule: A checker CANNOT be the same agent that produced the work.
12
+ * In practice, since makers and checkers are different agents, this validates
13
+ * that the checker is indeed from the checker pool, not the maker pool.
14
+ */
15
+ static canReview(makerId: string, checkerId: string): {
16
+ allowed: boolean;
17
+ violation?: WallViolation;
18
+ };
19
+ /**
20
+ * Get valid checkers for a given maker's work.
21
+ */
22
+ static getValidCheckers(makerId: string): string[];
23
+ /**
24
+ * Get valid makers for a team (cannot be checkers).
25
+ */
26
+ static getValidMakers(team: TeamId): string[];
27
+ /**
28
+ * Validate an entire review assignment.
29
+ */
30
+ static validateReviewChain(assignments: Array<{
31
+ maker: string;
32
+ checker: string;
33
+ }>): WallViolation[];
34
+ }
@@ -0,0 +1,62 @@
1
+ // ═══════════════════════════════════════════════════════════════
2
+ // CITADEL — Chinese Wall Enforcement (Maker ≠ Checker)
3
+ // ═══════════════════════════════════════════════════════════════
4
+ import { getAgent, getMakersByTeam, getCheckersByTeam } from '../agents/registry.js';
5
+ export class ChineseWall {
6
+ /**
7
+ * Check if a checker agent can review work produced by a maker agent.
8
+ * Rule: A checker CANNOT be the same agent that produced the work.
9
+ * In practice, since makers and checkers are different agents, this validates
10
+ * that the checker is indeed from the checker pool, not the maker pool.
11
+ */
12
+ static canReview(makerId, checkerId) {
13
+ const maker = getAgent(makerId);
14
+ const checker = getAgent(checkerId);
15
+ if (!maker || !checker) {
16
+ return { allowed: false, violation: { maker: makerId, checker: checkerId, team: 'unknown', reason: 'Agent not found' } };
17
+ }
18
+ // Same agent cannot review own work
19
+ if (makerId === checkerId) {
20
+ return { allowed: false, violation: { maker: makerId, checker: checkerId, team: maker.team, reason: 'Agent cannot review own work' } };
21
+ }
22
+ // Maker cannot act as checker
23
+ if (checker.level === 'maker') {
24
+ return { allowed: false, violation: { maker: makerId, checker: checkerId, team: checker.team, reason: 'Maker agents cannot act as checkers' } };
25
+ }
26
+ // Checker cannot act as maker
27
+ if (maker.level === 'checker') {
28
+ return { allowed: false, violation: { maker: makerId, checker: checkerId, team: maker.team, reason: 'Checker agents cannot act as makers' } };
29
+ }
30
+ return { allowed: true };
31
+ }
32
+ /**
33
+ * Get valid checkers for a given maker's work.
34
+ */
35
+ static getValidCheckers(makerId) {
36
+ const maker = getAgent(makerId);
37
+ if (!maker || maker.level !== 'maker')
38
+ return [];
39
+ const checkers = getCheckersByTeam(maker.team);
40
+ return checkers.map(c => c.id);
41
+ }
42
+ /**
43
+ * Get valid makers for a team (cannot be checkers).
44
+ */
45
+ static getValidMakers(team) {
46
+ return getMakersByTeam(team).map(m => m.id);
47
+ }
48
+ /**
49
+ * Validate an entire review assignment.
50
+ */
51
+ static validateReviewChain(assignments) {
52
+ const violations = [];
53
+ for (const { maker, checker } of assignments) {
54
+ const result = ChineseWall.canReview(maker, checker);
55
+ if (!result.allowed && result.violation) {
56
+ violations.push(result.violation);
57
+ }
58
+ }
59
+ return violations;
60
+ }
61
+ }
62
+ //# sourceMappingURL=chinese-wall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chinese-wall.js","sourceRoot":"","sources":["../../src/core/chinese-wall.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,uDAAuD;AACvD,kEAAkE;AAElE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAUrF,MAAM,OAAO,WAAW;IACtB;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,OAAe,EAAE,SAAiB;QACjD,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAChC,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEpC,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YACvB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,EAAE,CAAC;QAC3H,CAAC;QAED,oCAAoC;QACpC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,8BAA8B,EAAE,EAAE,CAAC;QACzI,CAAC;QAED,8BAA8B;QAC9B,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;YAC9B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,qCAAqC,EAAE,EAAE,CAAC;QAClJ,CAAC;QAED,8BAA8B;QAC9B,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,qCAAqC,EAAE,EAAE,CAAC;QAChJ,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,OAAe;QACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO;YAAE,OAAO,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAc,CAAC,CAAC;QACzD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,IAAY;QAChC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,WAAsD;QAC/E,MAAM,UAAU,GAAoB,EAAE,CAAC;QACvC,KAAK,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,WAAW,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACrD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACxC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;CACF"}