spirewise 1.9.2 → 1.9.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/bin/cli.js +13 -7
- package/install.sh +1 -1
- package/package.json +1 -1
package/bin/cli.js
CHANGED
|
@@ -56,7 +56,7 @@ const BANNER = [
|
|
|
56
56
|
function banner() {
|
|
57
57
|
console.log('');
|
|
58
58
|
for (const line of BANNER) console.log(paint(RAW.cyan, line));
|
|
59
|
-
console.log(paint(RAW.magenta, ` Agent Skills ·
|
|
59
|
+
console.log(paint(RAW.magenta, ` Agent Skills · That Startup Founders Love ${PKG_VERSION ? ' · v' + PKG_VERSION : ''}`));
|
|
60
60
|
console.log('');
|
|
61
61
|
}
|
|
62
62
|
|
|
@@ -251,11 +251,12 @@ function interactiveSelect({ title, subtitle, items, multi = true, preselected =
|
|
|
251
251
|
: '↑/↓ move enter confirm';
|
|
252
252
|
|
|
253
253
|
const lines = [];
|
|
254
|
-
lines.push(rail());
|
|
255
254
|
lines.push(`${paint(RAW.cyan, G.step)} ${paint(RAW.bold, `${num} - ${title}`)}`);
|
|
255
|
+
lines.push(rail()); // space under the header
|
|
256
256
|
if (subtitle) lines.push(railLn(paint(RAW.dim, subtitle)));
|
|
257
257
|
lines.push(railLn(paint(RAW.dim, nav)));
|
|
258
|
-
|
|
258
|
+
lines.push(rail()); // space before the list
|
|
259
|
+
if (items.length > PAGE && start > 0) lines.push(railLn(paint(RAW.dim, '↑ more')));
|
|
259
260
|
for (let i = start; i < end; i++) {
|
|
260
261
|
const it = items[i];
|
|
261
262
|
const on = i === index;
|
|
@@ -267,15 +268,19 @@ function interactiveSelect({ title, subtitle, items, multi = true, preselected =
|
|
|
267
268
|
const hint = it.hint ? paint(RAW.dim, ' ' + it.hint) : '';
|
|
268
269
|
lines.push(`${rail()} ${ptr} ${mark} ${label}${hint}`);
|
|
269
270
|
}
|
|
270
|
-
if (items.length > PAGE)
|
|
271
|
-
|
|
271
|
+
if (items.length > PAGE) {
|
|
272
|
+
lines.push(rail()); // space between the list and "↓ more"
|
|
273
|
+
lines.push(railLn(paint(RAW.dim, `${end < items.length ? '↓ more' : ' '} ${index + 1}/${items.length}`)));
|
|
274
|
+
}
|
|
275
|
+
lines.push(rail()); // trailing space below the step
|
|
272
276
|
|
|
273
277
|
if (lastLines > 0) stdout.write(`\x1b[${lastLines}A`);
|
|
274
278
|
stdout.write('\x1b[0J' + lines.join('\n') + '\n');
|
|
275
279
|
lastLines = lines.length;
|
|
276
280
|
}
|
|
277
281
|
|
|
278
|
-
// Replace the live frame with a compact, persisted transcript line
|
|
282
|
+
// Replace the live frame with a compact, persisted transcript line — followed
|
|
283
|
+
// by a blank rail line so completed steps are spaced one line apart.
|
|
279
284
|
function persist() {
|
|
280
285
|
const summary = multi
|
|
281
286
|
? (() => { const l = items.filter((_, i) => selected.has(i)).map((it) => it.label);
|
|
@@ -284,6 +289,7 @@ function interactiveSelect({ title, subtitle, items, multi = true, preselected =
|
|
|
284
289
|
const out = [
|
|
285
290
|
`${paint(RAW.green, G.done)} ${paint(RAW.bold, `${num} - ${title}`)}`,
|
|
286
291
|
railLn(paint(RAW.cyan, summary)),
|
|
292
|
+
rail(),
|
|
287
293
|
];
|
|
288
294
|
if (lastLines > 0) stdout.write(`\x1b[${lastLines}A`);
|
|
289
295
|
stdout.write('\x1b[0J' + out.join('\n') + '\n');
|
|
@@ -470,7 +476,7 @@ async function main() {
|
|
|
470
476
|
const scopes = scope === 'both' ? ['project', 'global'] : [scope];
|
|
471
477
|
|
|
472
478
|
// ACTION
|
|
473
|
-
if (framed) console.log(
|
|
479
|
+
if (!framed) console.log(''); // framed mode already ends with a │ rail line from the last step
|
|
474
480
|
|
|
475
481
|
const pl = (n, w) => `${n} ${w}${n === 1 ? '' : 's'}`;
|
|
476
482
|
const where = { project: 'workspace', global: 'global', both: 'workspace + global' }[scope];
|
package/install.sh
CHANGED
|
@@ -54,7 +54,7 @@ banner() {
|
|
|
54
54
|
color '1;36' ' ╚════██║██╔═══╝ ██║██╔══██╗██╔══╝ ██║███╗██║██║╚════██║██╔══╝ '; printf '\n'
|
|
55
55
|
color '1;36' ' ███████║██║ ██║██║ ██║███████╗╚███╔███╔╝██║███████║███████╗'; printf '\n'
|
|
56
56
|
color '1;36' ' ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝ ╚══╝╚══╝ ╚═╝╚══════╝╚══════╝'; printf '\n'
|
|
57
|
-
color '1;35' ' Agent Skills ·
|
|
57
|
+
color '1;35' ' Agent Skills · That Startup Founders Love'; printf '\n\n'
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
usage() {
|
package/package.json
CHANGED