sella-cli 0.6.2 → 0.6.4
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/dist/index.js +11 -1
- package/dist/ui.js +28 -4
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -12,7 +12,7 @@ import { capabilityLabel } from './chains.js';
|
|
|
12
12
|
import { defaultIo, Printer } from './output.js';
|
|
13
13
|
import { Ui } from './ui.js';
|
|
14
14
|
const DEFAULT_MCP_URL = 'https://sellag.vercel.app/api/mcp';
|
|
15
|
-
const VERSION = '0.6.
|
|
15
|
+
const VERSION = '0.6.4';
|
|
16
16
|
function parseFlags(argv) {
|
|
17
17
|
const flags = {
|
|
18
18
|
json: false, yes: false, noColor: false, dryRun: false, noKeychain: false,
|
|
@@ -295,6 +295,16 @@ async function cmdInit(ctx, flags, printer) {
|
|
|
295
295
|
lines.push('AgentWallet pending (backend not configured) — re-run `sella pair` later.');
|
|
296
296
|
}
|
|
297
297
|
ui.note('Sella is connected', lines, flags.dryRun ? 'plain' : awStatus === 'unavailable' ? 'warn' : 'ok');
|
|
298
|
+
// RFI: ready-to-send prompts for real agent tasks — the "now what?" answer.
|
|
299
|
+
const rfi = `${origin}/rfi`;
|
|
300
|
+
ui.bar();
|
|
301
|
+
ui.step('Ideas to try with your agent (each is a ready-to-send prompt):');
|
|
302
|
+
ui.rows([
|
|
303
|
+
{ tag: 'invest', text: `Validate a startup idea for $25 — ${rfi}?uc=twenty-five-dollar-study`, tone: 'brand' },
|
|
304
|
+
{ tag: 'daily', text: `Get a daily morning brief — ${rfi}?uc=morning-brief`, tone: 'ok' },
|
|
305
|
+
{ tag: 'free', text: `Test Sella without spending — ${rfi}?uc=zero-dollar-demo`, tone: 'dim' },
|
|
306
|
+
]);
|
|
307
|
+
ui.detail(`Browse all ideas: ${rfi}`);
|
|
298
308
|
const took = Math.max(1, Math.round((Date.now() - startedAt) / 1000));
|
|
299
309
|
ui.outro(flags.dryRun ? 'Dry run complete — nothing was written.' : `Done in ${took}s — your agents can now buy on Sella.`);
|
|
300
310
|
}
|
package/dist/ui.js
CHANGED
|
@@ -54,7 +54,26 @@ export class Ui {
|
|
|
54
54
|
this.out(`${this.dim('┌')} ${this.paint('1', title)}${meta ? ` ${this.dim(meta)}` : ''}`);
|
|
55
55
|
this.bar();
|
|
56
56
|
}
|
|
57
|
-
/**
|
|
57
|
+
/** Slant-style SELLA wordmark (slashes + underscores, matrix-green fade) — wide TTYs only. */
|
|
58
|
+
wordmarkArt() {
|
|
59
|
+
if (!this.pretty || (process.stdout.columns || 80) < 48)
|
|
60
|
+
return null;
|
|
61
|
+
const glyphs = {
|
|
62
|
+
S: [' _____', ' / ___/', ' \\__ \\ ', ' ___/ / ', '/____/ '],
|
|
63
|
+
E: [' ______', ' / ____/', ' / __/ ', ' / /___ ', '/_____/ '],
|
|
64
|
+
L: [' __ ', ' / / ', ' / / ', ' / /___ ', '/_____/ '],
|
|
65
|
+
A: [' ___ ', ' / |', ' / /| |', ' / ___ |', '/_/ |_|'],
|
|
66
|
+
};
|
|
67
|
+
const rows = [];
|
|
68
|
+
for (let r = 0; r < 5; r += 1) {
|
|
69
|
+
const raw = ['S', 'E', 'L', 'L', 'A'].map((ch) => glyphs[ch][r]).join('');
|
|
70
|
+
// Matrix fade: bright green on top, deep green at the base — decoration only.
|
|
71
|
+
const code = r < 3 ? '92' : '32';
|
|
72
|
+
rows.push(' ' + this.paint(code, raw));
|
|
73
|
+
}
|
|
74
|
+
return rows;
|
|
75
|
+
}
|
|
76
|
+
/** Branded header: line-art wordmark + info panel — the first thing the wizard paints. */
|
|
58
77
|
banner(subtitle, meta) {
|
|
59
78
|
if (this.quiet)
|
|
60
79
|
return;
|
|
@@ -62,12 +81,17 @@ export class Ui {
|
|
|
62
81
|
this.out(`SELLA — ${subtitle} (${meta})`);
|
|
63
82
|
return;
|
|
64
83
|
}
|
|
65
|
-
|
|
84
|
+
this.out('');
|
|
85
|
+
const art = this.wordmarkArt();
|
|
86
|
+
if (art)
|
|
87
|
+
for (const row of art)
|
|
88
|
+
this.out(row);
|
|
89
|
+
const wordmark = art ? '' : 'S E L L A';
|
|
66
90
|
const inner = Math.min(this.width() - 2, Math.max(wordmark.length, subtitle.length, meta.length) + 6);
|
|
67
91
|
const pad = (raw, painted = raw) => `${this.accent('│')} ${painted}${' '.repeat(Math.max(0, inner - raw.length - 2))}${this.accent('│')}`;
|
|
68
|
-
this.out('');
|
|
69
92
|
this.out(this.accent('╭' + '─'.repeat(inner) + '╮'));
|
|
70
|
-
|
|
93
|
+
if (wordmark)
|
|
94
|
+
this.out(pad(wordmark, this.paint('1;36', wordmark)));
|
|
71
95
|
this.out(pad(subtitle, this.paint('1', subtitle)));
|
|
72
96
|
this.out(pad(meta, this.dim(meta)));
|
|
73
97
|
this.out(this.accent('╰' + '─'.repeat(inner) + '╯'));
|
package/package.json
CHANGED