citadel-ai 1.4.3 → 10.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/README.fr.md +1 -0
- package/README.md +12 -4
- package/dist/cli/ide-rules.js +36 -1
- package/dist/cli/ide-rules.js.map +1 -1
- package/dist/cli/index.js +6 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.js +109 -4
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/update.d.ts +1 -0
- package/dist/cli/update.js +90 -0
- package/dist/cli/update.js.map +1 -0
- package/package.json +1 -1
package/README.fr.md
CHANGED
|
@@ -209,6 +209,7 @@ Chaque agent a une persona complète : nom, inspiration, philosophie, voix, règ
|
|
|
209
209
|
| Commande | Description |
|
|
210
210
|
|---------|-------------|
|
|
211
211
|
| `npx citadel-ai init` | Installe CITADEL dans ton projet |
|
|
212
|
+
| `npx citadel-ai update` | Met à jour le framework (garde tes données) |
|
|
212
213
|
| `npx citadel-ai run` | CLI interactif (nécessite clé API) |
|
|
213
214
|
| `npx citadel-ai agents` | Liste les 42 agents |
|
|
214
215
|
| `npx citadel-ai status` | Phase & gate en cours |
|
package/README.md
CHANGED
|
@@ -57,7 +57,7 @@ CITADEL installs a governance layer into your AI IDE. It doesn't replace your AI
|
|
|
57
57
|
|
|
58
58
|
**Enforces safety checks before shipping.** 5 mandatory gates from inception to deployment. Security has veto power — no exceptions.
|
|
59
59
|
|
|
60
|
-
**Keeps project memory across sessions.** Decisions,
|
|
60
|
+
**Keeps project memory across sessions.** A vault of markdown files that the AI reads on session start and updates as it works. Decisions, architecture, code inventory, progress — all persisted. The AI doesn't start from scratch every time.
|
|
61
61
|
|
|
62
62
|
**Loads only what's needed.** Instead of dumping 42 agent profiles into context (and burning your token quota), CITADEL loads only the team relevant to the current phase. 88% less tokens.
|
|
63
63
|
|
|
@@ -72,7 +72,7 @@ CITADEL installs a governance layer into your AI IDE. It doesn't replace your AI
|
|
|
72
72
|
| Code quality | Hope for the best | Standards enforced: 200 lines/file, typed errors, no magic numbers |
|
|
73
73
|
| Review | You read it yourself (and miss things) | Independent checker agents with different perspective |
|
|
74
74
|
| Security | "We'll add auth later" | Security review at every gate. Veto power on deployment |
|
|
75
|
-
| Next session | AI forgot everything |
|
|
75
|
+
| Next session | AI forgot everything | Vault files persist: decisions, progress, code inventory |
|
|
76
76
|
| Token usage | Full context every message (~14K tokens) | Phased loading (~1,800 tokens per phase) |
|
|
77
77
|
|
|
78
78
|
---
|
|
@@ -136,8 +136,15 @@ your-project/
|
|
|
136
136
|
├── .citadel/
|
|
137
137
|
│ ├── agents/ ← 42 full agent personas (reference)
|
|
138
138
|
│ ├── teams/ ← 10 team files (phased loading by IDE)
|
|
139
|
+
│ ├── vault/ ← Live project memory (AI reads + writes)
|
|
140
|
+
│ │ ├── PROGRESS.md Phase, gates, what's done/next
|
|
141
|
+
│ │ ├── CONTEXT_SNAPSHOT.md Resume point for next session
|
|
142
|
+
│ │ ├── SESSION_LOG.md What happened, who did what
|
|
143
|
+
│ │ ├── DECISIONS.md Architecture + product decisions
|
|
144
|
+
│ │ ├── CODE_INVENTORY.md File map, patterns, dependencies
|
|
145
|
+
│ │ └── ARCHITECTURE.md System design, tech stack
|
|
139
146
|
│ ├── specs/ ← PRD, ADR, Security, Data Model, Growth
|
|
140
|
-
│ ├── memory/ ←
|
|
147
|
+
│ ├── memory/ ← Internal state (gitignored)
|
|
141
148
|
│ └── gates/ ← Gate tracking (gitignored)
|
|
142
149
|
```
|
|
143
150
|
|
|
@@ -164,7 +171,7 @@ Most AI frameworks give you **more agents**. CITADEL gives you **more discipline
|
|
|
164
171
|
|
|
165
172
|
- **Organization > single brain.** 42 agents with distinct roles, rules, and personalities — but loaded per phase, not all at once.
|
|
166
173
|
- **Governance > speed.** Questions before specs. Review before ship. Security veto before deploy.
|
|
167
|
-
- **Memory > amnesia.**
|
|
174
|
+
- **Memory > amnesia.** A vault of markdown files the AI reads on session start and updates as it works. Progress, decisions, code inventory, architecture — all live.
|
|
168
175
|
- **Efficiency > brute force.** Phased context loading means ~1,800 tokens per phase instead of ~14,000.
|
|
169
176
|
|
|
170
177
|
---
|
|
@@ -207,6 +214,7 @@ Each agent has a full persona: name, inspiration, philosophy, voice, immutable r
|
|
|
207
214
|
| Command | Description |
|
|
208
215
|
|---------|-------------|
|
|
209
216
|
| `npx citadel-ai init` | Install CITADEL in your project |
|
|
217
|
+
| `npx citadel-ai update` | Update framework files (keeps your data) |
|
|
210
218
|
| `npx citadel-ai run` | Interactive CLI (needs API key) |
|
|
211
219
|
| `npx citadel-ai agents` | List all 42 agents |
|
|
212
220
|
| `npx citadel-ai status` | Current phase & gate |
|
package/dist/cli/ide-rules.js
CHANGED
|
@@ -112,11 +112,46 @@ Read \`.citadel/teams/[domain]-checkers.md\` for the domain being reviewed.
|
|
|
112
112
|
2. KELSEY: deploy (zero-downtime)
|
|
113
113
|
3. CHARITY: observability
|
|
114
114
|
|
|
115
|
+
## MEMORY PROTOCOL (CRITICAL)
|
|
116
|
+
|
|
117
|
+
You MUST maintain project memory by reading and writing these files. This is how context survives across sessions.
|
|
118
|
+
|
|
119
|
+
### On EVERY session start:
|
|
120
|
+
1. Read \`.citadel/vault/PROGRESS.md\` — know where the project is
|
|
121
|
+
2. Read \`.citadel/vault/CONTEXT_SNAPSHOT.md\` — resume from last session
|
|
122
|
+
3. Read \`.citadel/vault/DECISIONS.md\` — don't contradict past decisions
|
|
123
|
+
|
|
124
|
+
### On EVERY phase transition or significant action:
|
|
125
|
+
1. Update \`.citadel/vault/PROGRESS.md\` — current phase, gate, what's done, what's next
|
|
126
|
+
2. Update \`.citadel/vault/SESSION_LOG.md\` — append what was done, by which agent, when
|
|
127
|
+
3. Update \`.citadel/vault/DECISIONS.md\` — append any architecture, tech, or product decision
|
|
128
|
+
|
|
129
|
+
### On EVERY session end (or when the user says "stop", "bye", "save"):
|
|
130
|
+
1. Write \`.citadel/vault/CONTEXT_SNAPSHOT.md\` — summary of current state, enough for the next session to resume without re-reading everything
|
|
131
|
+
|
|
132
|
+
### When code is written or modified:
|
|
133
|
+
1. Update \`.citadel/vault/CODE_INVENTORY.md\` — what files exist, what they do, key patterns
|
|
134
|
+
|
|
135
|
+
### Vault files:
|
|
136
|
+
|
|
137
|
+
| File | Purpose | When to read | When to write |
|
|
138
|
+
|------|---------|-------------|---------------|
|
|
139
|
+
| \`PROGRESS.md\` | Phase, gate, what's done/pending | Session start | Every phase change |
|
|
140
|
+
| \`CONTEXT_SNAPSHOT.md\` | Resume context for next session | Session start | Session end |
|
|
141
|
+
| \`SESSION_LOG.md\` | What happened, who did what | Never (it's a log) | After every action |
|
|
142
|
+
| \`DECISIONS.md\` | Architecture + product decisions | Session start | When decisions are made |
|
|
143
|
+
| \`CODE_INVENTORY.md\` | Files map, patterns, dependencies | When building/reviewing | When code changes |
|
|
144
|
+
| \`ARCHITECTURE.md\` | System design, tech stack, ADRs | When building | After architecture decisions |
|
|
145
|
+
|
|
146
|
+
⚠️ If these files are empty or missing, you are in a FRESH PROJECT. Start from Phase 1: Inception.
|
|
147
|
+
⚠️ If PROGRESS.md shows you're in Build phase, do NOT re-ask inception questions.
|
|
148
|
+
|
|
115
149
|
## COMMANDS
|
|
116
150
|
- "help" / "stuck" → Show status + next steps
|
|
117
|
-
- "status" →
|
|
151
|
+
- "status" → Read PROGRESS.md, show gate progress
|
|
118
152
|
- "build [feature]" → Start build
|
|
119
153
|
- "review" → Run checkers
|
|
154
|
+
- "snapshot" / "save" → Write CONTEXT_SNAPSHOT.md
|
|
120
155
|
- "@[agent]" → Talk to specific agent
|
|
121
156
|
|
|
122
157
|
## SPECS
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ide-rules.js","sourceRoot":"","sources":["../../src/cli/ide-rules.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,yDAAyD;AACzD,kEAAkE;AAElE,OAAO,EAAc,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGxF,4CAA4C;AAC5C,SAAS,SAAS,CAAC,CAAkB;IACnC,OAAO,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,UAAU,GAAG,CAAC;AACtE,CAAC;AAED,6CAA6C;AAC7C,SAAS,aAAa,CAAC,KAAa,EAAE,MAAyB;IAC7D,IAAI,OAAO,GAAG,KAAK,KAAK,MAAM,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,OAAO,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,KAAK,IAAI,CAAC;QACnD,OAAO,IAAI,KAAK,CAAC,CAAC,UAAU,MAAM,CAAC;QACnC,OAAO,IAAI,cAAc,CAAC,CAAC,KAAK,MAAM,CAAC;QACvC,OAAO,IAAI,eAAe,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IACxE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,4CAA4C;AAC5C,SAAS,iBAAiB;IACxB,MAAM,CAAC,GAAG,aAAa,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAE3C,kDAAkD;IAClD,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAE7C,IAAI,aAAa,GAAG,eAAe,CAAC;IACpC,KAAK,MAAM,CAAC,IAAI,MAAM;QAAE,aAAa,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC7D,aAAa,IAAI,qBAAqB,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,MAAM;QAAE,aAAa,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC;IAChF,aAAa,IAAI,uBAAuB,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,QAAQ;QAAE,aAAa,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC;IAElF,OAAO,kBAAkB,CAAC,CAAC,KAAK;;gDAEc,CAAC,CAAC,KAAK;+CACR,cAAc;;;;;;;;;;;;EAY3D,aAAa
|
|
1
|
+
{"version":3,"file":"ide-rules.js","sourceRoot":"","sources":["../../src/cli/ide-rules.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { initCommand } from './init.js';
|
|
2
2
|
import { runCommand } from './run.js';
|
|
3
|
+
import { updateCommand } from './update.js';
|
|
3
4
|
const cmd = process.argv[2];
|
|
4
5
|
if (cmd === 'init' || cmd === 'install') {
|
|
5
6
|
initCommand().catch(e => { console.error(e.message); process.exit(1); });
|
|
6
7
|
}
|
|
8
|
+
else if (cmd === 'update' || cmd === 'upgrade') {
|
|
9
|
+
updateCommand().catch(e => { console.error(e.message); process.exit(1); });
|
|
10
|
+
}
|
|
7
11
|
else if (cmd === 'run' || !cmd) {
|
|
8
12
|
runCommand().catch(e => { console.error(e.message); process.exit(1); });
|
|
9
13
|
}
|
|
@@ -37,6 +41,7 @@ else if (cmd === 'help' || cmd === '--help' || cmd === '-h') {
|
|
|
37
41
|
🏰 CITADEL — 42-Agent AI Development Framework
|
|
38
42
|
|
|
39
43
|
npx citadel-ai init Initialize in your project
|
|
44
|
+
npx citadel-ai update Update framework (keeps your data)
|
|
40
45
|
npx citadel-ai run Start interactive build session
|
|
41
46
|
npx citadel-ai status Show current phase & gate
|
|
42
47
|
npx citadel-ai agents List all 42 agents
|
|
@@ -50,7 +55,7 @@ After init, you can also use slash commands in your IDE:
|
|
|
50
55
|
`);
|
|
51
56
|
}
|
|
52
57
|
else if (cmd === 'version' || cmd === '--version' || cmd === '-v') {
|
|
53
|
-
console.log('citadel-ai
|
|
58
|
+
console.log('citadel-ai v10.0.0');
|
|
54
59
|
}
|
|
55
60
|
else {
|
|
56
61
|
console.log(`Unknown command: ${cmd}\nRun: npx citadel-ai help`);
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/init.js
CHANGED
|
@@ -48,6 +48,109 @@ function writeSpecTemplates(cp) {
|
|
|
48
48
|
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');
|
|
49
49
|
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');
|
|
50
50
|
}
|
|
51
|
+
function writeVaultTemplates(cp) {
|
|
52
|
+
const d = join(cp, 'vault');
|
|
53
|
+
mkdirSync(d, { recursive: true });
|
|
54
|
+
writeFileSync(join(d, 'PROGRESS.md'), `# Project Progress
|
|
55
|
+
|
|
56
|
+
## Current State
|
|
57
|
+
- **Phase:** Inception (Gate 0)
|
|
58
|
+
- **Status:** Fresh project — no work started
|
|
59
|
+
- **Active agents:** None yet
|
|
60
|
+
|
|
61
|
+
## Gates
|
|
62
|
+
| Gate | Status | Notes |
|
|
63
|
+
|------|--------|-------|
|
|
64
|
+
| Gate 0 — Inception | ⬜ Pending | C-Suite needs to ask questions |
|
|
65
|
+
| Gate 1 — Pre-Design | ⬜ Pending | |
|
|
66
|
+
| Gate 2 — Pre-Build | ⬜ Pending | |
|
|
67
|
+
| Gate 3 — Pre-Ship | ⬜ Pending | |
|
|
68
|
+
| Gate 4 — Post-Deploy | ⬜ Pending | |
|
|
69
|
+
|
|
70
|
+
## Done
|
|
71
|
+
<!-- Nothing yet -->
|
|
72
|
+
|
|
73
|
+
## Next
|
|
74
|
+
- [ ] User describes what they want to build
|
|
75
|
+
- [ ] C-Suite asks questions
|
|
76
|
+
- [ ] Specs drafted after user answers
|
|
77
|
+
`, 'utf-8');
|
|
78
|
+
writeFileSync(join(d, 'CONTEXT_SNAPSHOT.md'), `# Context Snapshot
|
|
79
|
+
|
|
80
|
+
> This file is written at the end of each session. Read it first to resume.
|
|
81
|
+
|
|
82
|
+
## Last Updated
|
|
83
|
+
Never — fresh project.
|
|
84
|
+
|
|
85
|
+
## What We're Building
|
|
86
|
+
<!-- Not defined yet -->
|
|
87
|
+
|
|
88
|
+
## Key Decisions Made
|
|
89
|
+
<!-- None yet -->
|
|
90
|
+
|
|
91
|
+
## Where We Left Off
|
|
92
|
+
Project just initialized. Waiting for user to describe what they want to build.
|
|
93
|
+
|
|
94
|
+
## Open Questions
|
|
95
|
+
<!-- None yet -->
|
|
96
|
+
`, 'utf-8');
|
|
97
|
+
writeFileSync(join(d, 'SESSION_LOG.md'), `# Session Log
|
|
98
|
+
|
|
99
|
+
> Append-only. Every significant action is logged here.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
### Session: Init
|
|
104
|
+
- **Date:** ${new Date().toISOString().split('T')[0]}
|
|
105
|
+
- **Agent:** ATLAS (Orchestrator)
|
|
106
|
+
- **Action:** Project initialized with CITADEL
|
|
107
|
+
- **Result:** 42 agents installed, specs templates created, vault ready
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
<!-- New sessions are appended below -->
|
|
112
|
+
`, 'utf-8');
|
|
113
|
+
writeFileSync(join(d, 'DECISIONS.md'), `# Decisions Log
|
|
114
|
+
|
|
115
|
+
> Every architecture, product, or tech decision is recorded here.
|
|
116
|
+
> Format: Decision — Reason — Alternatives considered — Date — Agent
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
<!-- Decisions will be appended by C-Suite agents -->
|
|
121
|
+
`, 'utf-8');
|
|
122
|
+
writeFileSync(join(d, 'CODE_INVENTORY.md'), `# Code Inventory
|
|
123
|
+
|
|
124
|
+
> Map of all project files, what they do, and key patterns.
|
|
125
|
+
> Updated by maker agents when code is written or modified.
|
|
126
|
+
|
|
127
|
+
## Files
|
|
128
|
+
<!-- No code files yet -->
|
|
129
|
+
|
|
130
|
+
## Key Patterns
|
|
131
|
+
<!-- No patterns established yet -->
|
|
132
|
+
|
|
133
|
+
## Dependencies
|
|
134
|
+
<!-- No dependencies yet -->
|
|
135
|
+
`, 'utf-8');
|
|
136
|
+
writeFileSync(join(d, 'ARCHITECTURE.md'), `# Architecture
|
|
137
|
+
|
|
138
|
+
> System design, tech stack decisions, and high-level structure.
|
|
139
|
+
> Updated by LINUS (CTO) and CODD (Data Architect).
|
|
140
|
+
|
|
141
|
+
## Tech Stack
|
|
142
|
+
<!-- Not decided yet -->
|
|
143
|
+
|
|
144
|
+
## System Design
|
|
145
|
+
<!-- Not decided yet -->
|
|
146
|
+
|
|
147
|
+
## Data Model Summary
|
|
148
|
+
<!-- Not decided yet -->
|
|
149
|
+
|
|
150
|
+
## API Design
|
|
151
|
+
<!-- Not decided yet -->
|
|
152
|
+
`, 'utf-8');
|
|
153
|
+
}
|
|
51
154
|
function writeGettingStarted(pp) {
|
|
52
155
|
writeFileSync(join(pp, '.citadel', 'GETTING_STARTED.md'), `# 🏰 Getting Started with CITADEL
|
|
53
156
|
|
|
@@ -136,12 +239,12 @@ export async function initCommand(targetPath) {
|
|
|
136
239
|
}
|
|
137
240
|
console.log('\n⏳ Installing CITADEL...\n');
|
|
138
241
|
// Scaffold
|
|
139
|
-
for (const d of [cp, join(cp, 'memory'), join(cp, 'gates'), join(cp, 'specs'), join(cp, 'agents'), join(cp, 'teams')]) {
|
|
242
|
+
for (const d of [cp, join(cp, 'memory'), join(cp, 'gates'), join(cp, 'specs'), join(cp, 'agents'), join(cp, 'teams'), join(cp, 'vault')]) {
|
|
140
243
|
mkdirSync(d, { recursive: true });
|
|
141
244
|
}
|
|
142
245
|
// Config
|
|
143
246
|
writeFileSync(join(cp, 'citadel.config.json'), JSON.stringify({
|
|
144
|
-
version: '
|
|
247
|
+
version: '10.0.0',
|
|
145
248
|
features: { autoGates: true, persistentMemory: true, chineseWalls: true },
|
|
146
249
|
}, null, 2), 'utf-8');
|
|
147
250
|
// Init memory & gates
|
|
@@ -151,12 +254,13 @@ export async function initCommand(targetPath) {
|
|
|
151
254
|
writeAgentPersonas(cp);
|
|
152
255
|
writeTeamFiles(cp);
|
|
153
256
|
writeSpecTemplates(cp);
|
|
257
|
+
writeVaultTemplates(cp);
|
|
154
258
|
writeGettingStarted(pp);
|
|
155
259
|
// IDE rules
|
|
156
260
|
installAllIDEs(pp);
|
|
157
|
-
// .gitignore
|
|
261
|
+
// .gitignore (vault is committed, memory/gates are not)
|
|
158
262
|
const gi = join(pp, '.gitignore');
|
|
159
|
-
const giContent = '\n# CITADEL state\n.citadel/memory/\n.citadel/gates/\n';
|
|
263
|
+
const giContent = '\n# CITADEL state (vault + specs + agents are committed)\n.citadel/memory/\n.citadel/gates/\n';
|
|
160
264
|
if (existsSync(gi)) {
|
|
161
265
|
if (!readFileSync(gi, 'utf-8').includes('.citadel/memory'))
|
|
162
266
|
appendFileSync(gi, giContent);
|
|
@@ -168,6 +272,7 @@ export async function initCommand(targetPath) {
|
|
|
168
272
|
console.log(` ✅ ${c.total} agents installed (.citadel/agents/)
|
|
169
273
|
✅ 10 team files for phased loading (.citadel/teams/)
|
|
170
274
|
✅ Spec templates (.citadel/specs/)
|
|
275
|
+
✅ Project vault — live memory (.citadel/vault/)
|
|
171
276
|
✅ Getting started guide (.citadel/GETTING_STARTED.md)
|
|
172
277
|
|
|
173
278
|
IDE rules (auto-loaded — no config needed):
|
package/dist/cli/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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
|
|
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 updateCommand(): Promise<void>;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { existsSync, mkdirSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { AGENT_REGISTRY } from '../agents/registry.js';
|
|
4
|
+
import { getAgentCount } from '../agents/registry.js';
|
|
5
|
+
import { installAllIDEs, writeTeamFiles } from './ide-rules.js';
|
|
6
|
+
import { writeFileSync } from 'node:fs';
|
|
7
|
+
import { banner } from '../ui/terminal.js';
|
|
8
|
+
function writeAgentPersonas(cp) {
|
|
9
|
+
const d = join(cp, 'agents');
|
|
10
|
+
mkdirSync(d, { recursive: true });
|
|
11
|
+
for (const [id, a] of AGENT_REGISTRY) {
|
|
12
|
+
writeFileSync(join(d, `${id}.md`), [
|
|
13
|
+
`# ${a.icon} ${a.name} — ${a.title}`,
|
|
14
|
+
`> ${a.subtitle}`,
|
|
15
|
+
'',
|
|
16
|
+
`**Inspiration:** ${a.inspiration}`,
|
|
17
|
+
`**Philosophy:** "${a.philosophy}"`,
|
|
18
|
+
`**Level:** ${a.level} | **Team:** ${a.team}`,
|
|
19
|
+
'',
|
|
20
|
+
`## Personality`,
|
|
21
|
+
a.personality,
|
|
22
|
+
'',
|
|
23
|
+
`## Voice`,
|
|
24
|
+
a.voice,
|
|
25
|
+
'',
|
|
26
|
+
`## Rules (Immutable)`,
|
|
27
|
+
...a.rules.map(r => `- ${r}`),
|
|
28
|
+
'',
|
|
29
|
+
`## Principles`,
|
|
30
|
+
...a.principles.map(p => `- ${p}`),
|
|
31
|
+
'',
|
|
32
|
+
`## System Prompt`,
|
|
33
|
+
a.systemPrompt,
|
|
34
|
+
].join('\n') + '\n', 'utf-8');
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export async function updateCommand() {
|
|
38
|
+
const pp = process.cwd();
|
|
39
|
+
const cp = join(pp, '.citadel');
|
|
40
|
+
if (!existsSync(cp)) {
|
|
41
|
+
console.log('❌ No CITADEL project found. Run: npx citadel-ai init');
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
console.log(banner());
|
|
45
|
+
console.log('⏳ Updating CITADEL framework files...\n');
|
|
46
|
+
console.log(' ⚠️ Your data is safe — vault/, specs/, memory/, gates/ are NOT touched.\n');
|
|
47
|
+
// Update framework files ONLY
|
|
48
|
+
writeAgentPersonas(cp);
|
|
49
|
+
console.log(' ✅ .citadel/agents/ — 42 agent personas updated');
|
|
50
|
+
writeTeamFiles(cp);
|
|
51
|
+
console.log(' ✅ .citadel/teams/ — 10 team files updated');
|
|
52
|
+
installAllIDEs(pp);
|
|
53
|
+
console.log(' ✅ CLAUDE.md — updated');
|
|
54
|
+
console.log(' ✅ .cursorrules — updated');
|
|
55
|
+
console.log(' ✅ GEMINI.md — updated');
|
|
56
|
+
console.log(' ✅ .windsurfrules — updated');
|
|
57
|
+
console.log(' ✅ Slash commands — updated');
|
|
58
|
+
// Create vault if it doesn't exist (for users upgrading from pre-1.5)
|
|
59
|
+
const vaultDir = join(cp, 'vault');
|
|
60
|
+
if (!existsSync(vaultDir)) {
|
|
61
|
+
mkdirSync(vaultDir, { recursive: true });
|
|
62
|
+
writeFileSync(join(vaultDir, 'PROGRESS.md'), `# Project Progress\n\n## Current State\n- **Phase:** Unknown (upgraded from older version)\n- **Status:** Check .citadel/specs/ for existing work\n\n## Next\n- [ ] Review existing specs\n- [ ] Continue building\n`, 'utf-8');
|
|
63
|
+
writeFileSync(join(vaultDir, 'CONTEXT_SNAPSHOT.md'), `# Context Snapshot\n\n## Last Updated\nCreated during upgrade to v1.5+\n\n## Where We Left Off\nProject upgraded from older CITADEL version. Check specs/ for existing work.\n`, 'utf-8');
|
|
64
|
+
writeFileSync(join(vaultDir, 'SESSION_LOG.md'), `# Session Log\n\n---\n\n### Session: Upgrade\n- **Date:** ${new Date().toISOString().split('T')[0]}\n- **Action:** Upgraded CITADEL to v1.5+ (vault memory system added)\n\n---\n`, 'utf-8');
|
|
65
|
+
writeFileSync(join(vaultDir, 'DECISIONS.md'), `# Decisions Log\n\n<!-- Decisions will be appended by C-Suite agents -->\n`, 'utf-8');
|
|
66
|
+
writeFileSync(join(vaultDir, 'CODE_INVENTORY.md'), `# Code Inventory\n\n<!-- Updated by maker agents -->\n`, 'utf-8');
|
|
67
|
+
writeFileSync(join(vaultDir, 'ARCHITECTURE.md'), `# Architecture\n\n<!-- Updated by LINUS (CTO) -->\n`, 'utf-8');
|
|
68
|
+
console.log(' ✅ .citadel/vault/ — created (new in this version)');
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
console.log(' ⏭️ .citadel/vault/ — kept as-is (your data)');
|
|
72
|
+
}
|
|
73
|
+
const c = getAgentCount();
|
|
74
|
+
console.log(`
|
|
75
|
+
✅ CITADEL updated to v10.0.0 — ${c.total} agents.
|
|
76
|
+
|
|
77
|
+
What was updated:
|
|
78
|
+
agents/ → Latest agent personas and rules
|
|
79
|
+
teams/ → Latest team files for phased loading
|
|
80
|
+
IDE rules → Latest CLAUDE.md, GEMINI.md, etc.
|
|
81
|
+
Commands → Latest slash commands
|
|
82
|
+
|
|
83
|
+
What was NOT touched:
|
|
84
|
+
vault/ → Your project memory (progress, decisions, etc.)
|
|
85
|
+
specs/ → Your PRD, ADR, security, data model
|
|
86
|
+
memory/ → Your session state
|
|
87
|
+
gates/ → Your gate progress
|
|
88
|
+
`);
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/cli/update.ts"],"names":[],"mappings":"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"}
|