writethevision 7.0.1 → 7.0.3
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/package.json +1 -1
- package/src/cli.js +31 -17
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "writethevision",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.3",
|
|
4
4
|
"description": "Write The Vision (WTV): vision-driven development with the Habakkuk workflow. 10 agents + 21 skills for Claude Code, Codex CLI, and OpenCode.",
|
|
5
5
|
"author": "Christopher Hogg",
|
|
6
6
|
"license": "MIT",
|
package/src/cli.js
CHANGED
|
@@ -402,6 +402,15 @@ function getAgentLocations() {
|
|
|
402
402
|
return locations;
|
|
403
403
|
}
|
|
404
404
|
|
|
405
|
+
function brickifyAsciiArt(asciiArt) {
|
|
406
|
+
if (!asciiArt) return asciiArt;
|
|
407
|
+
|
|
408
|
+
return asciiArt
|
|
409
|
+
.split('\n')
|
|
410
|
+
.map(line => line.replace(/[^\s]/g, '█'))
|
|
411
|
+
.join('\n');
|
|
412
|
+
}
|
|
413
|
+
|
|
405
414
|
function parseAgentFile(filePath) {
|
|
406
415
|
if (!existsSync(filePath)) return null;
|
|
407
416
|
|
|
@@ -444,7 +453,7 @@ function parseAgentFile(filePath) {
|
|
|
444
453
|
let asciiArt = '';
|
|
445
454
|
const asciiMatch = content.match(/```text\n([\s\S]+?)\n```/);
|
|
446
455
|
if (asciiMatch) {
|
|
447
|
-
asciiArt = asciiMatch[1];
|
|
456
|
+
asciiArt = brickifyAsciiArt(asciiMatch[1]);
|
|
448
457
|
}
|
|
449
458
|
|
|
450
459
|
return {
|
|
@@ -3063,11 +3072,13 @@ Prototype
|
|
|
3063
3072
|
async function interactiveVision() {
|
|
3064
3073
|
console.clear();
|
|
3065
3074
|
console.log(` ${c.magenta}${c.bold}
|
|
3066
|
-
|
|
3067
|
-
|
|
3068
|
-
|
|
3069
|
-
|
|
3070
|
-
|
|
3075
|
+
██╗ ██╗██╗███████╗██╗ ██████╗ ███╗ ██╗
|
|
3076
|
+
██║ ██║██║██╔════╝██║██╔═══██╗████╗ ██║
|
|
3077
|
+
██║ ██║██║███████╗██║██║ ██║██╔██╗ ██║
|
|
3078
|
+
╚██╗ ██╔╝██║╚════██║██║██║ ██║██║╚██╗██║
|
|
3079
|
+
╚████╔╝ ██║███████║██║╚██████╔╝██║ ╚████║
|
|
3080
|
+
╚═══╝ ╚═╝╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═══╝
|
|
3081
|
+
${c.reset}`);
|
|
3071
3082
|
console.log(` ${c.dim}Write the vision, make it plain.${c.reset}\n`);
|
|
3072
3083
|
|
|
3073
3084
|
const visionDirPath = join(process.cwd(), 'vision');
|
|
@@ -3203,12 +3214,14 @@ async function dashboard() {
|
|
|
3203
3214
|
|
|
3204
3215
|
// Header
|
|
3205
3216
|
console.log(
|
|
3206
|
-
` ${c.magenta}
|
|
3207
|
-
|
|
3208
|
-
|
|
3209
|
-
|
|
3210
|
-
|
|
3211
|
-
|
|
3217
|
+
` ${c.magenta}${c.bold}
|
|
3218
|
+
██╗ ██╗████████╗██╗ ██╗
|
|
3219
|
+
██║ ██║╚══██╔══╝██║ ██║
|
|
3220
|
+
██║ █╗ ██║ ██║ ██║ ██║
|
|
3221
|
+
██║███╗██║ ██║ ╚██╗ ██╔╝
|
|
3222
|
+
╚███╔███╔╝ ██║ ╚████╔╝
|
|
3223
|
+
╚══╝╚══╝ ╚═╝ ╚═══╝
|
|
3224
|
+
${c.reset}`
|
|
3212
3225
|
);
|
|
3213
3226
|
|
|
3214
3227
|
console.log(` ${c.dim}v${getVersion()} • ${tool.toUpperCase()} MODE${c.reset}\n`);
|
|
@@ -3282,11 +3295,12 @@ function dashboardStatic() {
|
|
|
3282
3295
|
// Banner
|
|
3283
3296
|
console.log('');
|
|
3284
3297
|
const wtvAscii = `
|
|
3285
|
-
${c.magenta}
|
|
3286
|
-
${c.magenta}
|
|
3287
|
-
${c.magenta}
|
|
3288
|
-
${c.magenta}
|
|
3289
|
-
${c.magenta}
|
|
3298
|
+
${c.magenta}${c.bold}██╗ ██╗████████╗██╗ ██╗${c.reset}
|
|
3299
|
+
${c.magenta}${c.bold}██║ ██║╚══██╔══╝██║ ██║${c.reset}
|
|
3300
|
+
${c.magenta}${c.bold}██║ █╗ ██║ ██║ ██║ ██║${c.reset}
|
|
3301
|
+
${c.magenta}${c.bold}██║███╗██║ ██║ ╚██╗ ██╔╝${c.reset}
|
|
3302
|
+
${c.magenta}${c.bold}╚███╔███╔╝ ██║ ╚████╔╝ ${c.reset}
|
|
3303
|
+
${c.magenta}${c.bold} ╚══╝╚══╝ ╚═╝ ╚═══╝ ${c.reset}`;
|
|
3290
3304
|
|
|
3291
3305
|
console.log(wtvAscii);
|
|
3292
3306
|
console.log(drawBox([
|