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.
- package/CONTRIBUTING.md +91 -0
- package/LICENSE +5 -0
- package/README.md +254 -0
- package/bin/citadel.js +2 -0
- package/dist/agents/registry.d.ts +16 -0
- package/dist/agents/registry.js +1108 -0
- package/dist/agents/registry.js.map +1 -0
- package/dist/cli/ide-rules.d.ts +5 -0
- package/dist/cli/ide-rules.js +176 -0
- package/dist/cli/ide-rules.js.map +1 -0
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.js +59 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/init.d.ts +1 -0
- package/dist/cli/init.js +110 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/run.d.ts +1 -0
- package/dist/cli/run.js +64 -0
- package/dist/cli/run.js.map +1 -0
- package/dist/core/chinese-wall.d.ts +34 -0
- package/dist/core/chinese-wall.js +62 -0
- package/dist/core/chinese-wall.js.map +1 -0
- package/dist/core/gates.d.ts +19 -0
- package/dist/core/gates.js +38 -0
- package/dist/core/gates.js.map +1 -0
- package/dist/core/loops.d.ts +20 -0
- package/dist/core/loops.js +83 -0
- package/dist/core/loops.js.map +1 -0
- package/dist/core/memory.d.ts +23 -0
- package/dist/core/memory.js +116 -0
- package/dist/core/memory.js.map +1 -0
- package/dist/core/orchestrator.d.ts +22 -0
- package/dist/core/orchestrator.js +234 -0
- package/dist/core/orchestrator.js.map +1 -0
- package/dist/core/types.d.ts +139 -0
- package/dist/core/types.js +2 -0
- package/dist/core/types.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/llm/provider.d.ts +8 -0
- package/dist/llm/provider.js +84 -0
- package/dist/llm/provider.js.map +1 -0
- package/dist/ui/terminal.d.ts +16 -0
- package/dist/ui/terminal.js +71 -0
- package/dist/ui/terminal.js.map +1 -0
- package/package.json +40 -0
- package/templates/.citadel/citadel.config.json +1 -0
- package/templates/.citadel/gates/gate-0-inception.json +1 -0
- package/templates/.citadel/gates/gate-1-predesign.json +1 -0
- package/templates/.citadel/gates/gate-2-prebuild.json +1 -0
- package/templates/.citadel/gates/gate-3-preship.json +1 -0
- package/templates/.citadel/gates/gate-4-postdeploy.json +1 -0
- package/templates/.citadel/memory/decisions.json +1 -0
- package/templates/.citadel/memory/errors.json +1 -0
- package/templates/.citadel/memory/project.json +1 -0
- package/templates/.citadel/memory/session.json +1 -0
- package/templates/.citadel/specs/adr.md +1 -0
- package/templates/.citadel/specs/data-model.md +1 -0
- package/templates/.citadel/specs/growth.md +1 -0
- package/templates/.citadel/specs/prd.md +1 -0
- 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>;
|
package/dist/cli/init.js
ADDED
|
@@ -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>;
|
package/dist/cli/run.js
ADDED
|
@@ -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"}
|