vectorvesper 2.8.0 → 2.8.2
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/hooks.json
CHANGED
package/dist/index.js
CHANGED
|
@@ -1123,7 +1123,7 @@ Remove ${slug}
|
|
|
1123
1123
|
import fs7 from "fs";
|
|
1124
1124
|
import path7 from "path";
|
|
1125
1125
|
import pc8 from "picocolors";
|
|
1126
|
-
var CLI_VERSION = true ? "2.8.
|
|
1126
|
+
var CLI_VERSION = true ? "2.8.2" : "0.0.0-dev";
|
|
1127
1127
|
async function infoCommand() {
|
|
1128
1128
|
console.log(pc8.bold(pc8.cyan("\nVector Vesper Diagnostics\n")));
|
|
1129
1129
|
const projectInfo = detectProject();
|
|
@@ -1363,8 +1363,9 @@ async function loginCommand(key) {
|
|
|
1363
1363
|
console.log(` ${pc10.green(pc10.bold("\u2714"))} Token saved \u2014 you're logged in.`);
|
|
1364
1364
|
console.log(` ${pc10.dim("Stored at:")} ${pc10.cyan(getGlobalConfigPath())}`);
|
|
1365
1365
|
console.log("");
|
|
1366
|
-
console.log(` ${pc10.dim("
|
|
1367
|
-
console.log(` ${pc10.dim("
|
|
1366
|
+
console.log(` ${pc10.dim("Install a component with")} ${pc10.cyan("npx vectorvesper add <slug>")}`);
|
|
1367
|
+
console.log(` ${pc10.dim("Pro components install if your membership covers them.")}`);
|
|
1368
|
+
console.log(` ${pc10.dim("Your membership:")} ${pc10.cyan("https://vectorvesper.dev/account")}`);
|
|
1368
1369
|
console.log("");
|
|
1369
1370
|
}
|
|
1370
1371
|
async function logoutCommand() {
|
|
@@ -1392,30 +1393,25 @@ async function logoutCommand() {
|
|
|
1392
1393
|
async function whoamiCommand() {
|
|
1393
1394
|
const config = loadGlobalConfig();
|
|
1394
1395
|
console.log("");
|
|
1395
|
-
console.log(pc10.bold(pc10.cyan(" Vector Vesper
|
|
1396
|
+
console.log(pc10.bold(pc10.cyan(" Vector Vesper CLI\n")));
|
|
1396
1397
|
if (config.auth?.token) {
|
|
1397
1398
|
const maskedKey = config.auth.token.slice(0, 6) + "\u2026" + config.auth.token.slice(-4);
|
|
1398
|
-
|
|
1399
|
-
console.log(` ${pc10.bold("Status:")} ${pc10.green("Authenticated")}`);
|
|
1399
|
+
console.log(` ${pc10.bold("Status:")} ${pc10.green("Signed in")}`);
|
|
1400
1400
|
console.log(` ${pc10.bold("Token:")} ${pc10.cyan(maskedKey)}`);
|
|
1401
|
-
console.log(` ${pc10.bold("Tier:")} ${pc10.magenta(tier)}`);
|
|
1402
1401
|
if (config.auth.email) {
|
|
1403
1402
|
console.log(` ${pc10.bold("Email:")} ${pc10.cyan(config.auth.email)}`);
|
|
1404
1403
|
}
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
const isExpired = expiry < now;
|
|
1409
|
-
console.log(` ${pc10.bold("Expires:")} ${isExpired ? pc10.red("EXPIRED") : pc10.green(expiry.toLocaleDateString())}`);
|
|
1410
|
-
}
|
|
1404
|
+
console.log("");
|
|
1405
|
+
console.log(` ${pc10.dim("Your membership is checked by the server each time you install.")}`);
|
|
1406
|
+
console.log(` ${pc10.dim("A Pro component arrives if it covers you, and is refused if not.")}`);
|
|
1411
1407
|
console.log("");
|
|
1412
1408
|
console.log(` ${pc10.dim("Config:")} ${pc10.cyan(getGlobalConfigPath())}`);
|
|
1413
|
-
console.log(` ${pc10.dim("
|
|
1409
|
+
console.log(` ${pc10.dim("See your membership at")} ${pc10.cyan("https://vectorvesper.dev/account")}`);
|
|
1414
1410
|
} else {
|
|
1415
|
-
console.log(` ${pc10.bold("Status:")} ${pc10.yellow("
|
|
1411
|
+
console.log(` ${pc10.bold("Status:")} ${pc10.yellow("Not signed in")}`);
|
|
1416
1412
|
console.log(` ${pc10.bold("Access:")} ${pc10.dim("Free components only")}`);
|
|
1417
1413
|
console.log("");
|
|
1418
|
-
console.log(` ${pc10.dim("To
|
|
1414
|
+
console.log(` ${pc10.dim("To install Pro components you have a membership for:")}`);
|
|
1419
1415
|
console.log(` ${pc10.cyan("npx vectorvesper login <token>")}`);
|
|
1420
1416
|
console.log(` \u{1F511} ${pc10.dim("Generate a token at")} ${pc10.cyan("https://vectorvesper.dev/account")}`);
|
|
1421
1417
|
}
|
|
@@ -1423,7 +1419,7 @@ async function whoamiCommand() {
|
|
|
1423
1419
|
}
|
|
1424
1420
|
|
|
1425
1421
|
// src/index.ts
|
|
1426
|
-
var version = true ? "2.8.
|
|
1422
|
+
var version = true ? "2.8.2" : "0.0.0-dev";
|
|
1427
1423
|
var program = new Command();
|
|
1428
1424
|
program.name("vv").description("Vector Vesper CLI \u2014 add visual components to your React project").version(version).option("--verbose", "Show detailed debug output").hook("preAction", (thisCommand) => {
|
|
1429
1425
|
const opts = thisCommand.opts();
|
|
@@ -1465,7 +1461,7 @@ program.command("mcp [action] [client]").description(
|
|
|
1465
1461
|
"Run as an MCP server (stdio) for AI coding agents. `vv mcp install` wires it into your editor; `vv mcp status` checks the setup."
|
|
1466
1462
|
).option("--stdio", "Force server mode even from an interactive terminal").option("-g, --global", "Write user-level config instead of project-level (install)").action(
|
|
1467
1463
|
async (action, client, options) => {
|
|
1468
|
-
const { mcpCommand } = await import("./mcp-
|
|
1464
|
+
const { mcpCommand } = await import("./mcp-RERKF32A.js");
|
|
1469
1465
|
await mcpCommand(action, { ...options, client });
|
|
1470
1466
|
}
|
|
1471
1467
|
);
|
|
@@ -146,7 +146,7 @@ function detectClients(cwd = process.cwd()) {
|
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
// src/commands/mcp.ts
|
|
149
|
-
var VERSION = true ? "2.8.
|
|
149
|
+
var VERSION = true ? "2.8.2" : "0.0.0-dev";
|
|
150
150
|
var CONFIG_SNIPPET = `{
|
|
151
151
|
"mcpServers": {
|
|
152
152
|
"vectorvesper": {
|
|
@@ -186,7 +186,7 @@ function printStatus() {
|
|
|
186
186
|
console.log(` ${pc.dim("Reinstall with: npm i -g vectorvesper@latest")}`);
|
|
187
187
|
}
|
|
188
188
|
console.log(
|
|
189
|
-
` ${authed ? ok("
|
|
189
|
+
` ${authed ? ok("Signed in \u2014 Pro installs allowed if your membership covers them") : pc.dim("\u25CB Not signed in \u2014 free components only")}`
|
|
190
190
|
);
|
|
191
191
|
console.log("");
|
|
192
192
|
console.log(pc.bold(" Register with an agent"));
|
|
@@ -293,7 +293,7 @@ ${pc.red("\u2717")} Unknown argument "${action}" for \`vv mcp\`.
|
|
|
293
293
|
return;
|
|
294
294
|
}
|
|
295
295
|
protectStdout();
|
|
296
|
-
const { startMcpServer } = await import("./server-
|
|
296
|
+
const { startMcpServer } = await import("./server-UQBNOULO.js");
|
|
297
297
|
try {
|
|
298
298
|
await startMcpServer();
|
|
299
299
|
} catch (error) {
|
|
@@ -1327,7 +1327,7 @@ function formatPlan({ building, using }) {
|
|
|
1327
1327
|
}
|
|
1328
1328
|
|
|
1329
1329
|
// src/mcp/server.ts
|
|
1330
|
-
var VERSION = true ? "2.8.
|
|
1330
|
+
var VERSION = true ? "2.8.2" : "0.0.0-dev";
|
|
1331
1331
|
function text(body) {
|
|
1332
1332
|
return { content: [{ type: "text", text: body }] };
|
|
1333
1333
|
}
|
|
@@ -1789,9 +1789,11 @@ Hook discovery still works offline \u2014 try \`list_hooks\`.`
|
|
|
1789
1789
|
out.push(`- Tailwind: ${info.hasTailwind ? "yes" : "no"}`);
|
|
1790
1790
|
out.push(`- \`src/\` directory: ${info.hasSrcDir ? "yes" : "no"}`);
|
|
1791
1791
|
out.push("\n# Vector Vesper");
|
|
1792
|
-
out.push(
|
|
1792
|
+
out.push(
|
|
1793
|
+
`- CLI signed in: ${authed ? "yes \u2014 a Pro component installs if the account's membership covers it, and is refused if not" : "no \u2014 free components only"}`
|
|
1794
|
+
);
|
|
1793
1795
|
if (!authed) {
|
|
1794
|
-
out.push(" -
|
|
1796
|
+
out.push(" - For Pro: `npx vectorvesper login <token>` (tokens at https://vectorvesper.dev/account)");
|
|
1795
1797
|
}
|
|
1796
1798
|
out.push("\n# What this implies");
|
|
1797
1799
|
if (info.framework === "next" && info.nextRouter === "app") {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vectorvesper",
|
|
3
|
-
"version": "2.8.
|
|
3
|
+
"version": "2.8.2",
|
|
4
4
|
"description": "Motion runtime and WebGL/R3F component CLI for React, with an MCP server that tells your coding agent which primitive to use, how to wire it, and when not to.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|