agileflow 2.94.1 → 2.95.1
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/CHANGELOG.md +20 -0
- package/README.md +3 -3
- package/lib/colors.generated.js +117 -0
- package/lib/colors.js +59 -109
- package/lib/generator-factory.js +333 -0
- package/lib/path-utils.js +49 -0
- package/lib/session-registry.js +25 -15
- package/lib/smart-json-file.js +40 -32
- package/lib/state-machine.js +286 -0
- package/package.json +1 -1
- package/scripts/agileflow-configure.js +7 -6
- package/scripts/archive-completed-stories.sh +86 -11
- package/scripts/babysit-context-restore.js +89 -0
- package/scripts/claude-tmux.sh +111 -5
- package/scripts/damage-control/bash-tool-damage-control.js +11 -247
- package/scripts/damage-control/edit-tool-damage-control.js +9 -249
- package/scripts/damage-control/write-tool-damage-control.js +9 -244
- package/scripts/generate-colors.js +314 -0
- package/scripts/lib/colors.generated.sh +82 -0
- package/scripts/lib/colors.sh +10 -70
- package/scripts/lib/configure-features.js +401 -0
- package/scripts/lib/context-loader.js +181 -52
- package/scripts/precompact-context.sh +54 -17
- package/scripts/session-coordinator.sh +2 -2
- package/scripts/session-manager.js +653 -10
- package/src/core/commands/audit.md +93 -0
- package/src/core/commands/auto.md +73 -0
- package/src/core/commands/babysit.md +169 -13
- package/src/core/commands/baseline.md +73 -0
- package/src/core/commands/batch.md +64 -0
- package/src/core/commands/blockers.md +60 -0
- package/src/core/commands/board.md +66 -0
- package/src/core/commands/choose.md +77 -0
- package/src/core/commands/ci.md +77 -0
- package/src/core/commands/compress.md +27 -1
- package/src/core/commands/configure.md +126 -10
- package/src/core/commands/council.md +74 -0
- package/src/core/commands/debt.md +72 -0
- package/src/core/commands/deploy.md +73 -0
- package/src/core/commands/deps.md +68 -0
- package/src/core/commands/docs.md +60 -0
- package/src/core/commands/feedback.md +68 -0
- package/src/core/commands/ideate.md +74 -0
- package/src/core/commands/impact.md +74 -0
- package/src/core/commands/install.md +529 -0
- package/src/core/commands/maintain.md +558 -0
- package/src/core/commands/metrics.md +75 -0
- package/src/core/commands/multi-expert.md +74 -0
- package/src/core/commands/packages.md +69 -0
- package/src/core/commands/readme-sync.md +64 -0
- package/src/core/commands/research/analyze.md +285 -121
- package/src/core/commands/research/import.md +281 -109
- package/src/core/commands/retro.md +76 -0
- package/src/core/commands/review.md +72 -0
- package/src/core/commands/rlm.md +83 -0
- package/src/core/commands/rpi.md +90 -0
- package/src/core/commands/session/cleanup.md +214 -12
- package/src/core/commands/session/end.md +155 -17
- package/src/core/commands/sprint.md +72 -0
- package/src/core/commands/story-validate.md +68 -0
- package/src/core/commands/template.md +69 -0
- package/src/core/commands/tests.md +83 -0
- package/src/core/commands/update.md +59 -0
- package/src/core/commands/validate-expertise.md +76 -0
- package/src/core/commands/velocity.md +74 -0
- package/src/core/commands/verify.md +91 -0
- package/src/core/commands/whats-new.md +69 -0
- package/src/core/commands/workflow.md +88 -0
- package/src/core/templates/command-documentation.md +187 -0
- package/tools/cli/commands/session.js +1171 -0
- package/tools/cli/commands/setup.js +2 -81
- package/tools/cli/installers/core/installer.js +0 -5
- package/tools/cli/installers/ide/claude-code.js +6 -0
- package/tools/cli/lib/config-manager.js +42 -5
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* generate-colors.js - Generate color files from YAML config
|
|
5
|
+
*
|
|
6
|
+
* Reads config/colors.yaml and generates:
|
|
7
|
+
* - lib/colors.js (JavaScript module)
|
|
8
|
+
* - scripts/lib/colors.sh (Bash script)
|
|
9
|
+
*
|
|
10
|
+
* Usage:
|
|
11
|
+
* node scripts/generate-colors.js
|
|
12
|
+
* node scripts/generate-colors.js --check # Verify files are up-to-date
|
|
13
|
+
*
|
|
14
|
+
* This ensures a single source of truth for all color definitions.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
const fs = require('fs');
|
|
18
|
+
const path = require('path');
|
|
19
|
+
const { safeLoad } = require('../lib/yaml-utils');
|
|
20
|
+
|
|
21
|
+
const ROOT = path.resolve(__dirname, '..');
|
|
22
|
+
const CONFIG_PATH = path.join(ROOT, 'config', 'colors.yaml');
|
|
23
|
+
const JS_OUTPUT = path.join(ROOT, 'lib', 'colors.generated.js');
|
|
24
|
+
const SH_OUTPUT = path.join(ROOT, 'scripts', 'lib', 'colors.generated.sh');
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Load colors configuration from YAML
|
|
28
|
+
* @returns {Object} Colors configuration
|
|
29
|
+
*/
|
|
30
|
+
function loadConfig() {
|
|
31
|
+
const content = fs.readFileSync(CONFIG_PATH, 'utf8');
|
|
32
|
+
return safeLoad(content);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Generate JavaScript module content
|
|
37
|
+
* @param {Object} config - Colors configuration
|
|
38
|
+
* @returns {string} JavaScript module content
|
|
39
|
+
*/
|
|
40
|
+
function generateJS(config) {
|
|
41
|
+
const lines = [
|
|
42
|
+
'/**',
|
|
43
|
+
' * colors.generated.js - Auto-generated from config/colors.yaml',
|
|
44
|
+
' *',
|
|
45
|
+
' * DO NOT EDIT THIS FILE DIRECTLY.',
|
|
46
|
+
' * Run: node scripts/generate-colors.js',
|
|
47
|
+
' *',
|
|
48
|
+
` * Generated: ${new Date().toISOString()}`,
|
|
49
|
+
' */',
|
|
50
|
+
'',
|
|
51
|
+
"'use strict';",
|
|
52
|
+
'',
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
// Brand color
|
|
56
|
+
lines.push(`// Brand color`);
|
|
57
|
+
lines.push(`const BRAND_HEX = '${config.brand.hex}';`);
|
|
58
|
+
lines.push('');
|
|
59
|
+
|
|
60
|
+
// Modifiers
|
|
61
|
+
lines.push('// Modifiers');
|
|
62
|
+
lines.push('const modifiers = {');
|
|
63
|
+
for (const [name, code] of Object.entries(config.modifiers)) {
|
|
64
|
+
lines.push(` ${name}: '\\x1b[${code}m',`);
|
|
65
|
+
}
|
|
66
|
+
lines.push('};');
|
|
67
|
+
lines.push('');
|
|
68
|
+
|
|
69
|
+
// Standard colors
|
|
70
|
+
lines.push('// Standard ANSI colors');
|
|
71
|
+
lines.push('const standard = {');
|
|
72
|
+
for (const [name, code] of Object.entries(config.standard)) {
|
|
73
|
+
lines.push(` ${name}: '\\x1b[${code}m',`);
|
|
74
|
+
}
|
|
75
|
+
lines.push('};');
|
|
76
|
+
lines.push('');
|
|
77
|
+
|
|
78
|
+
// Bright colors
|
|
79
|
+
lines.push('// Bright ANSI colors');
|
|
80
|
+
lines.push('const bright = {');
|
|
81
|
+
for (const [name, code] of Object.entries(config.bright)) {
|
|
82
|
+
lines.push(` bright${name.charAt(0).toUpperCase() + name.slice(1)}: '\\x1b[${code}m',`);
|
|
83
|
+
}
|
|
84
|
+
lines.push('};');
|
|
85
|
+
lines.push('');
|
|
86
|
+
|
|
87
|
+
// 256-color palette
|
|
88
|
+
lines.push('// 256-color palette');
|
|
89
|
+
lines.push('const palette256 = {');
|
|
90
|
+
for (const [name, def] of Object.entries(config.palette256)) {
|
|
91
|
+
const comment = def.comment ? ` // ${def.comment}` : '';
|
|
92
|
+
lines.push(` ${name}: '\\x1b[${def.code}m',${comment}`);
|
|
93
|
+
}
|
|
94
|
+
lines.push('};');
|
|
95
|
+
lines.push('');
|
|
96
|
+
|
|
97
|
+
// Background colors
|
|
98
|
+
lines.push('// Background colors');
|
|
99
|
+
lines.push('const backgrounds = {');
|
|
100
|
+
for (const [name, code] of Object.entries(config.backgrounds)) {
|
|
101
|
+
lines.push(` bg${name.charAt(0).toUpperCase() + name.slice(1)}: '\\x1b[${code}m',`);
|
|
102
|
+
}
|
|
103
|
+
lines.push('};');
|
|
104
|
+
lines.push('');
|
|
105
|
+
|
|
106
|
+
// Brand color ANSI
|
|
107
|
+
lines.push('// Brand color ANSI');
|
|
108
|
+
lines.push(`const brand = '\\x1b[${config.brand.ansi}m';`);
|
|
109
|
+
lines.push('');
|
|
110
|
+
|
|
111
|
+
// High contrast colors
|
|
112
|
+
lines.push('// High-contrast mode colors (WCAG AAA)');
|
|
113
|
+
lines.push('const highContrast = {');
|
|
114
|
+
for (const [name, code] of Object.entries(config.highContrast)) {
|
|
115
|
+
lines.push(` ${name}: '\\x1b[${code}m',`);
|
|
116
|
+
}
|
|
117
|
+
lines.push('};');
|
|
118
|
+
lines.push('');
|
|
119
|
+
|
|
120
|
+
// Combined cStandard object (for backward compatibility)
|
|
121
|
+
lines.push('// Combined standard color palette');
|
|
122
|
+
lines.push('const cStandard = {');
|
|
123
|
+
lines.push(' ...modifiers,');
|
|
124
|
+
lines.push(' ...standard,');
|
|
125
|
+
lines.push(' ...bright,');
|
|
126
|
+
lines.push(' ...palette256,');
|
|
127
|
+
lines.push(' ...backgrounds,');
|
|
128
|
+
lines.push(' brand,');
|
|
129
|
+
lines.push(` orange: brand, // Alias`);
|
|
130
|
+
lines.push(' // Semantic aliases');
|
|
131
|
+
for (const [semantic, target] of Object.entries(config.semantic)) {
|
|
132
|
+
lines.push(` ${semantic}: standard.${target},`);
|
|
133
|
+
}
|
|
134
|
+
lines.push('};');
|
|
135
|
+
lines.push('');
|
|
136
|
+
|
|
137
|
+
// Exports
|
|
138
|
+
lines.push('module.exports = {');
|
|
139
|
+
lines.push(' BRAND_HEX,');
|
|
140
|
+
lines.push(' modifiers,');
|
|
141
|
+
lines.push(' standard,');
|
|
142
|
+
lines.push(' bright,');
|
|
143
|
+
lines.push(' palette256,');
|
|
144
|
+
lines.push(' backgrounds,');
|
|
145
|
+
lines.push(' brand,');
|
|
146
|
+
lines.push(' highContrast,');
|
|
147
|
+
lines.push(' cStandard,');
|
|
148
|
+
lines.push('};');
|
|
149
|
+
lines.push('');
|
|
150
|
+
|
|
151
|
+
return lines.join('\n');
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Generate Bash script content
|
|
156
|
+
* @param {Object} config - Colors configuration
|
|
157
|
+
* @returns {string} Bash script content
|
|
158
|
+
*/
|
|
159
|
+
function generateSH(config) {
|
|
160
|
+
const lines = [
|
|
161
|
+
'#!/bin/bash',
|
|
162
|
+
'# colors.generated.sh - Auto-generated from config/colors.yaml',
|
|
163
|
+
'#',
|
|
164
|
+
'# DO NOT EDIT THIS FILE DIRECTLY.',
|
|
165
|
+
'# Run: node scripts/generate-colors.js',
|
|
166
|
+
'#',
|
|
167
|
+
`# Generated: ${new Date().toISOString()}`,
|
|
168
|
+
'#',
|
|
169
|
+
'# Usage: source "$(dirname "${BASH_SOURCE[0]}")/colors.generated.sh"',
|
|
170
|
+
'',
|
|
171
|
+
'# ============================================================================',
|
|
172
|
+
'# Modifiers',
|
|
173
|
+
'# ============================================================================',
|
|
174
|
+
];
|
|
175
|
+
|
|
176
|
+
for (const [name, code] of Object.entries(config.modifiers)) {
|
|
177
|
+
lines.push(`${name.toUpperCase()}="\\033[${code}m"`);
|
|
178
|
+
}
|
|
179
|
+
lines.push('');
|
|
180
|
+
|
|
181
|
+
lines.push('# ============================================================================');
|
|
182
|
+
lines.push('# Standard ANSI Colors');
|
|
183
|
+
lines.push('# ============================================================================');
|
|
184
|
+
for (const [name, code] of Object.entries(config.standard)) {
|
|
185
|
+
lines.push(`${name.toUpperCase()}="\\033[${code}m"`);
|
|
186
|
+
}
|
|
187
|
+
lines.push('');
|
|
188
|
+
|
|
189
|
+
lines.push('# ============================================================================');
|
|
190
|
+
lines.push('# Bright Variants');
|
|
191
|
+
lines.push('# ============================================================================');
|
|
192
|
+
for (const [name, code] of Object.entries(config.bright)) {
|
|
193
|
+
lines.push(`BRIGHT_${name.toUpperCase()}="\\033[${code}m"`);
|
|
194
|
+
}
|
|
195
|
+
lines.push('');
|
|
196
|
+
|
|
197
|
+
lines.push('# ============================================================================');
|
|
198
|
+
lines.push('# Semantic Aliases');
|
|
199
|
+
lines.push('# ============================================================================');
|
|
200
|
+
for (const [semantic, target] of Object.entries(config.semantic)) {
|
|
201
|
+
lines.push(`${semantic.toUpperCase()}="$${target.toUpperCase()}"`);
|
|
202
|
+
}
|
|
203
|
+
lines.push('');
|
|
204
|
+
|
|
205
|
+
lines.push('# ============================================================================');
|
|
206
|
+
lines.push('# 256-Color Palette');
|
|
207
|
+
lines.push('# ============================================================================');
|
|
208
|
+
for (const [name, def] of Object.entries(config.palette256)) {
|
|
209
|
+
const varName = name.replace(/([A-Z])/g, '_$1').toUpperCase();
|
|
210
|
+
const comment = def.comment ? ` # ${def.comment}` : '';
|
|
211
|
+
lines.push(`${varName}="\\033[${def.code}m"${comment}`);
|
|
212
|
+
}
|
|
213
|
+
lines.push('');
|
|
214
|
+
|
|
215
|
+
lines.push('# ============================================================================');
|
|
216
|
+
lines.push('# Brand Color');
|
|
217
|
+
lines.push('# ============================================================================');
|
|
218
|
+
lines.push(`BRAND="\\033[${config.brand.ansi}m"`);
|
|
219
|
+
lines.push('ORANGE="$BRAND" # Alias');
|
|
220
|
+
lines.push('');
|
|
221
|
+
|
|
222
|
+
lines.push('# ============================================================================');
|
|
223
|
+
lines.push('# Background Colors');
|
|
224
|
+
lines.push('# ============================================================================');
|
|
225
|
+
for (const [name, code] of Object.entries(config.backgrounds)) {
|
|
226
|
+
lines.push(`BG_${name.toUpperCase()}="\\033[${code}m"`);
|
|
227
|
+
}
|
|
228
|
+
lines.push('');
|
|
229
|
+
|
|
230
|
+
return lines.join('\n');
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* Main function
|
|
235
|
+
*/
|
|
236
|
+
function main() {
|
|
237
|
+
const checkMode = process.argv.includes('--check');
|
|
238
|
+
|
|
239
|
+
console.log('🎨 Color Generator');
|
|
240
|
+
console.log('==================');
|
|
241
|
+
console.log(`Config: ${CONFIG_PATH}`);
|
|
242
|
+
|
|
243
|
+
// Load configuration
|
|
244
|
+
const config = loadConfig();
|
|
245
|
+
console.log('✓ Loaded colors.yaml');
|
|
246
|
+
|
|
247
|
+
// Generate content
|
|
248
|
+
const jsContent = generateJS(config);
|
|
249
|
+
const shContent = generateSH(config);
|
|
250
|
+
|
|
251
|
+
if (checkMode) {
|
|
252
|
+
// Check if files are up-to-date
|
|
253
|
+
let upToDate = true;
|
|
254
|
+
|
|
255
|
+
try {
|
|
256
|
+
const existingJS = fs.readFileSync(JS_OUTPUT, 'utf8');
|
|
257
|
+
// Compare without timestamp line
|
|
258
|
+
const normalizeJS = content =>
|
|
259
|
+
content
|
|
260
|
+
.split('\n')
|
|
261
|
+
.filter(line => !line.includes('Generated:'))
|
|
262
|
+
.join('\n');
|
|
263
|
+
if (normalizeJS(existingJS) !== normalizeJS(jsContent)) {
|
|
264
|
+
console.log('✗ lib/colors.generated.js is out of date');
|
|
265
|
+
upToDate = false;
|
|
266
|
+
} else {
|
|
267
|
+
console.log('✓ lib/colors.generated.js is up to date');
|
|
268
|
+
}
|
|
269
|
+
} catch {
|
|
270
|
+
console.log('✗ lib/colors.generated.js does not exist');
|
|
271
|
+
upToDate = false;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
try {
|
|
275
|
+
const existingSH = fs.readFileSync(SH_OUTPUT, 'utf8');
|
|
276
|
+
const normalizeSH = content =>
|
|
277
|
+
content
|
|
278
|
+
.split('\n')
|
|
279
|
+
.filter(line => !line.includes('Generated:'))
|
|
280
|
+
.join('\n');
|
|
281
|
+
if (normalizeSH(existingSH) !== normalizeSH(shContent)) {
|
|
282
|
+
console.log('✗ scripts/lib/colors.generated.sh is out of date');
|
|
283
|
+
upToDate = false;
|
|
284
|
+
} else {
|
|
285
|
+
console.log('✓ scripts/lib/colors.generated.sh is up to date');
|
|
286
|
+
}
|
|
287
|
+
} catch {
|
|
288
|
+
console.log('✗ scripts/lib/colors.generated.sh does not exist');
|
|
289
|
+
upToDate = false;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
if (!upToDate) {
|
|
293
|
+
console.log('\nRun: node scripts/generate-colors.js');
|
|
294
|
+
process.exit(1);
|
|
295
|
+
}
|
|
296
|
+
console.log('\n✓ All color files are up to date');
|
|
297
|
+
return;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
// Write files
|
|
301
|
+
fs.writeFileSync(JS_OUTPUT, jsContent);
|
|
302
|
+
console.log(`✓ Generated ${JS_OUTPUT}`);
|
|
303
|
+
|
|
304
|
+
fs.writeFileSync(SH_OUTPUT, shContent);
|
|
305
|
+
console.log(`✓ Generated ${SH_OUTPUT}`);
|
|
306
|
+
|
|
307
|
+
console.log('\n✓ Color generation complete!');
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
if (require.main === module) {
|
|
311
|
+
main();
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
module.exports = { loadConfig, generateJS, generateSH };
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# colors.generated.sh - Auto-generated from config/colors.yaml
|
|
3
|
+
#
|
|
4
|
+
# DO NOT EDIT THIS FILE DIRECTLY.
|
|
5
|
+
# Run: node scripts/generate-colors.js
|
|
6
|
+
#
|
|
7
|
+
# Generated: 2026-01-29T08:28:33.726Z
|
|
8
|
+
#
|
|
9
|
+
# Usage: source "$(dirname "${BASH_SOURCE[0]}")/colors.generated.sh"
|
|
10
|
+
|
|
11
|
+
# ============================================================================
|
|
12
|
+
# Modifiers
|
|
13
|
+
# ============================================================================
|
|
14
|
+
RESET="\033[0m"
|
|
15
|
+
BOLD="\033[1m"
|
|
16
|
+
DIM="\033[2m"
|
|
17
|
+
ITALIC="\033[3m"
|
|
18
|
+
UNDERLINE="\033[4m"
|
|
19
|
+
|
|
20
|
+
# ============================================================================
|
|
21
|
+
# Standard ANSI Colors
|
|
22
|
+
# ============================================================================
|
|
23
|
+
RED="\033[31m"
|
|
24
|
+
GREEN="\033[32m"
|
|
25
|
+
YELLOW="\033[33m"
|
|
26
|
+
BLUE="\033[34m"
|
|
27
|
+
MAGENTA="\033[35m"
|
|
28
|
+
CYAN="\033[36m"
|
|
29
|
+
WHITE="\033[37m"
|
|
30
|
+
BLACK="\033[30m"
|
|
31
|
+
|
|
32
|
+
# ============================================================================
|
|
33
|
+
# Bright Variants
|
|
34
|
+
# ============================================================================
|
|
35
|
+
BRIGHT_RED="\033[91m"
|
|
36
|
+
BRIGHT_GREEN="\033[92m"
|
|
37
|
+
BRIGHT_YELLOW="\033[93m"
|
|
38
|
+
BRIGHT_BLUE="\033[94m"
|
|
39
|
+
BRIGHT_MAGENTA="\033[95m"
|
|
40
|
+
BRIGHT_CYAN="\033[96m"
|
|
41
|
+
BRIGHT_WHITE="\033[97m"
|
|
42
|
+
BRIGHT_BLACK="\033[90m"
|
|
43
|
+
|
|
44
|
+
# ============================================================================
|
|
45
|
+
# Semantic Aliases
|
|
46
|
+
# ============================================================================
|
|
47
|
+
SUCCESS="$GREEN"
|
|
48
|
+
ERROR="$RED"
|
|
49
|
+
WARNING="$YELLOW"
|
|
50
|
+
INFO="$CYAN"
|
|
51
|
+
|
|
52
|
+
# ============================================================================
|
|
53
|
+
# 256-Color Palette
|
|
54
|
+
# ============================================================================
|
|
55
|
+
MINT_GREEN="\033[38;5;158m" # Healthy/success states
|
|
56
|
+
PEACH="\033[38;5;215m" # Warning states
|
|
57
|
+
CORAL="\033[38;5;203m" # Critical/error states
|
|
58
|
+
LIGHT_GREEN="\033[38;5;194m" # Session healthy
|
|
59
|
+
LIGHT_YELLOW="\033[38;5;228m" # Session warning
|
|
60
|
+
LIGHT_PINK="\033[38;5;210m" # Session critical
|
|
61
|
+
SKY_BLUE="\033[38;5;117m" # Directories/paths, ready states
|
|
62
|
+
LAVENDER="\033[38;5;147m" # Model info, story IDs
|
|
63
|
+
SOFT_GOLD="\033[38;5;222m" # Cost/money
|
|
64
|
+
TEAL="\033[38;5;80m" # Pending states
|
|
65
|
+
SLATE="\033[38;5;103m" # Secondary info
|
|
66
|
+
ROSE="\033[38;5;211m" # Blocked/critical accent
|
|
67
|
+
AMBER="\033[38;5;214m" # WIP/in-progress accent
|
|
68
|
+
POWDER="\033[38;5;153m" # Labels/headers
|
|
69
|
+
|
|
70
|
+
# ============================================================================
|
|
71
|
+
# Brand Color
|
|
72
|
+
# ============================================================================
|
|
73
|
+
BRAND="\033[38;2;232;104;58m"
|
|
74
|
+
ORANGE="$BRAND" # Alias
|
|
75
|
+
|
|
76
|
+
# ============================================================================
|
|
77
|
+
# Background Colors
|
|
78
|
+
# ============================================================================
|
|
79
|
+
BG_RED="\033[41m"
|
|
80
|
+
BG_GREEN="\033[42m"
|
|
81
|
+
BG_YELLOW="\033[43m"
|
|
82
|
+
BG_BLUE="\033[44m"
|
package/scripts/lib/colors.sh
CHANGED
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
#
|
|
4
4
|
# Source this file: source "$(dirname "${BASH_SOURCE[0]}")/lib/colors.sh"
|
|
5
5
|
#
|
|
6
|
+
# Color definitions are sourced from colors.generated.sh which is
|
|
7
|
+
# auto-generated from config/colors.yaml (single source of truth).
|
|
8
|
+
# Run: node scripts/generate-colors.js
|
|
9
|
+
#
|
|
6
10
|
# WCAG AA Contrast Ratios (verified against #1a1a1a dark terminal background):
|
|
7
11
|
# - Green (#32CD32): 4.5:1 ✓ (meets AA for normal text)
|
|
8
12
|
# - Red (#FF6B6B): 5.0:1 ✓ (meets AA for normal text)
|
|
@@ -18,66 +22,15 @@
|
|
|
18
22
|
# echo -e "${BRAND}AgileFlow${RESET}"
|
|
19
23
|
|
|
20
24
|
# ============================================================================
|
|
21
|
-
#
|
|
22
|
-
# ============================================================================
|
|
23
|
-
RESET="\033[0m"
|
|
24
|
-
BOLD="\033[1m"
|
|
25
|
-
DIM="\033[2m"
|
|
26
|
-
ITALIC="\033[3m"
|
|
27
|
-
UNDERLINE="\033[4m"
|
|
28
|
-
|
|
29
|
-
# ============================================================================
|
|
30
|
-
# Standard ANSI Colors (8 colors)
|
|
31
|
-
# ============================================================================
|
|
32
|
-
RED="\033[31m"
|
|
33
|
-
GREEN="\033[32m"
|
|
34
|
-
YELLOW="\033[33m"
|
|
35
|
-
BLUE="\033[34m"
|
|
36
|
-
MAGENTA="\033[35m"
|
|
37
|
-
CYAN="\033[36m"
|
|
38
|
-
WHITE="\033[37m"
|
|
39
|
-
BLACK="\033[30m"
|
|
40
|
-
|
|
41
|
-
# ============================================================================
|
|
42
|
-
# Bright Variants
|
|
43
|
-
# ============================================================================
|
|
44
|
-
BRIGHT_RED="\033[91m"
|
|
45
|
-
BRIGHT_GREEN="\033[92m"
|
|
46
|
-
BRIGHT_YELLOW="\033[93m"
|
|
47
|
-
BRIGHT_BLUE="\033[94m"
|
|
48
|
-
BRIGHT_MAGENTA="\033[95m"
|
|
49
|
-
BRIGHT_CYAN="\033[96m"
|
|
50
|
-
BRIGHT_WHITE="\033[97m"
|
|
51
|
-
BRIGHT_BLACK="\033[90m"
|
|
52
|
-
|
|
53
|
-
# ============================================================================
|
|
54
|
-
# Semantic Aliases (for consistent meaning across codebase)
|
|
25
|
+
# Source generated colors from YAML
|
|
55
26
|
# ============================================================================
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
INFO="$CYAN"
|
|
60
|
-
|
|
61
|
-
# ============================================================================
|
|
62
|
-
# 256-Color Palette (vibrant, modern look)
|
|
63
|
-
# ============================================================================
|
|
64
|
-
MINT_GREEN="\033[38;5;158m" # Healthy/success states
|
|
65
|
-
PEACH="\033[38;5;215m" # Warning states
|
|
66
|
-
CORAL="\033[38;5;203m" # Critical/error states
|
|
67
|
-
LIGHT_GREEN="\033[38;5;194m" # Session healthy
|
|
68
|
-
LIGHT_YELLOW="\033[38;5;228m" # Session warning
|
|
69
|
-
LIGHT_PINK="\033[38;5;210m" # Session critical
|
|
70
|
-
SKY_BLUE="\033[38;5;117m" # Directories/paths, ready states
|
|
71
|
-
LAVENDER="\033[38;5;147m" # Model info, story IDs
|
|
72
|
-
SOFT_GOLD="\033[38;5;222m" # Cost/money
|
|
73
|
-
TEAL="\033[38;5;80m" # Pending states
|
|
74
|
-
SLATE="\033[38;5;103m" # Secondary info
|
|
75
|
-
ROSE="\033[38;5;211m" # Blocked/critical accent
|
|
76
|
-
AMBER="\033[38;5;214m" # WIP/in-progress accent
|
|
77
|
-
POWDER="\033[38;5;153m" # Labels/headers
|
|
27
|
+
_COLORS_DIR="$(dirname "${BASH_SOURCE[0]}")"
|
|
28
|
+
# shellcheck source=colors.generated.sh
|
|
29
|
+
source "${_COLORS_DIR}/colors.generated.sh"
|
|
78
30
|
|
|
79
31
|
# ============================================================================
|
|
80
32
|
# Context/Usage Colors (for status indicators)
|
|
33
|
+
# These are additional aliases not in the generated file
|
|
81
34
|
# ============================================================================
|
|
82
35
|
CTX_GREEN="$MINT_GREEN" # Healthy context
|
|
83
36
|
CTX_YELLOW="$PEACH" # Moderate usage
|
|
@@ -86,21 +39,8 @@ CTX_RED="$CORAL" # Critical
|
|
|
86
39
|
|
|
87
40
|
# ============================================================================
|
|
88
41
|
# Session Time Colors
|
|
42
|
+
# These are additional aliases not in the generated file
|
|
89
43
|
# ============================================================================
|
|
90
44
|
SESSION_GREEN="$LIGHT_GREEN" # Plenty of time
|
|
91
45
|
SESSION_YELLOW="$LIGHT_YELLOW" # Getting low
|
|
92
46
|
SESSION_RED="$LIGHT_PINK" # Critical
|
|
93
|
-
|
|
94
|
-
# ============================================================================
|
|
95
|
-
# Brand Color (#e8683a - burnt orange/terracotta)
|
|
96
|
-
# ============================================================================
|
|
97
|
-
BRAND="\033[38;2;232;104;58m"
|
|
98
|
-
ORANGE="$BRAND" # Alias for brand color
|
|
99
|
-
|
|
100
|
-
# ============================================================================
|
|
101
|
-
# Background Colors
|
|
102
|
-
# ============================================================================
|
|
103
|
-
BG_RED="\033[41m"
|
|
104
|
-
BG_GREEN="\033[42m"
|
|
105
|
-
BG_YELLOW="\033[43m"
|
|
106
|
-
BG_BLUE="\033[44m"
|