@vibecodr/cli 1.0.7 → 1.0.9
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 +9 -0
- package/README.md +31 -11
- package/dist/app/command-registry.d.ts +13 -0
- package/dist/app/command-registry.d.ts.map +1 -0
- package/dist/app/command-registry.js +54 -0
- package/dist/app/command-registry.js.map +1 -0
- package/dist/app/help.d.ts +5 -0
- package/dist/app/help.d.ts.map +1 -0
- package/dist/app/help.js +158 -0
- package/dist/app/help.js.map +1 -0
- package/dist/bin/vibecodr-mcp.js +82 -89
- package/dist/bin/vibecodr-mcp.js.map +1 -1
- package/dist/commands/context.d.ts +2 -0
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +81 -2
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/feedback.d.ts +3 -0
- package/dist/commands/feedback.d.ts.map +1 -0
- package/dist/commands/feedback.js +92 -0
- package/dist/commands/feedback.js.map +1 -0
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +14 -0
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +29 -4
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.d.ts.map +1 -1
- package/dist/commands/logout.js +25 -3
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/mcp.d.ts +3 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +26 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +78 -6
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/tools.js +2 -2
- package/dist/commands/tools.js.map +1 -1
- package/dist/legacy/cli/run.js +36 -1
- package/dist/legacy/cli/run.js.map +1 -1
- package/dist/legacy/core/version.d.ts +2 -2
- package/dist/legacy/core/version.js +1 -1
- package/docs/API-CONTRACT.md +18 -1
- package/docs/RELEASE-CHECKLIST.md +11 -7
- package/docs/SECURITY.md +10 -6
- package/docs/VALIDATION-MATRIX.md +5 -5
- package/docs/architecture.md +9 -6
- package/docs/auth.md +15 -7
- package/docs/commands.md +44 -18
- package/docs/install.md +5 -5
- package/package.json +4 -3
package/dist/commands/status.js
CHANGED
|
@@ -23,6 +23,66 @@ async function inspectInstall(entry) {
|
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
+
async function inspectCredentialSurface(context, surface, endpoint) {
|
|
27
|
+
if (!context.credentialBroker) {
|
|
28
|
+
return {
|
|
29
|
+
surface,
|
|
30
|
+
endpoint,
|
|
31
|
+
authenticated: false,
|
|
32
|
+
error: "credential broker unavailable"
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
try {
|
|
36
|
+
const credential = await context.credentialBroker.getCredentialForEndpoint(endpoint);
|
|
37
|
+
return {
|
|
38
|
+
surface,
|
|
39
|
+
endpoint,
|
|
40
|
+
authenticated: Boolean(credential),
|
|
41
|
+
...(credential ? { credentialKind: credential.kind, serviceId: credential.serviceId } : {}),
|
|
42
|
+
...(credential?.expiresAt !== undefined ? { expiresAt: credential.expiresAt } : {})
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
return {
|
|
47
|
+
surface,
|
|
48
|
+
endpoint,
|
|
49
|
+
authenticated: false,
|
|
50
|
+
error: error instanceof Error ? error.message : String(error)
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function credentialSurfaceLine(surface) {
|
|
55
|
+
const label = surface.surface === "agentComputer" ? "Agent Computer" : "MCP Gateway";
|
|
56
|
+
if (surface.error)
|
|
57
|
+
return `${label}: credential state unavailable (${surface.error})`;
|
|
58
|
+
if (!surface.authenticated)
|
|
59
|
+
return `${label}: not authenticated`;
|
|
60
|
+
const kind = surface.credentialKind ? ` via ${formatCredentialKind(surface.credentialKind)}` : "";
|
|
61
|
+
return `${label}: signed in${kind}`;
|
|
62
|
+
}
|
|
63
|
+
function formatCredentialKind(kind) {
|
|
64
|
+
switch (kind) {
|
|
65
|
+
case "api_key":
|
|
66
|
+
return "API key";
|
|
67
|
+
case "oauth":
|
|
68
|
+
return "OAuth";
|
|
69
|
+
case "token":
|
|
70
|
+
return "temporary token";
|
|
71
|
+
default:
|
|
72
|
+
return kind;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
function statusNextStep(credentialSurfaces) {
|
|
76
|
+
const agentComputer = credentialSurfaces.find((surface) => surface.surface === "agentComputer");
|
|
77
|
+
const mcpGateway = credentialSurfaces.find((surface) => surface.surface === "mcpGateway");
|
|
78
|
+
if (!mcpGateway?.authenticated) {
|
|
79
|
+
return "Next: run `vibecodr login` for publishing, uploads, Pulses, and MCP Gateway tools.";
|
|
80
|
+
}
|
|
81
|
+
if (!agentComputer?.authenticated) {
|
|
82
|
+
return "Next: run `vibecodr start` when you want hosted browser/computer work.";
|
|
83
|
+
}
|
|
84
|
+
return "Next: run `vibecodr browser read https://example.com` or `vibecodr mcp tools`.";
|
|
85
|
+
}
|
|
26
86
|
export async function runStatusCommand(args, context) {
|
|
27
87
|
if (showHelpIfRequested(args, context, "Usage: vibecodr status [--probe] [--show-installs]"))
|
|
28
88
|
return;
|
|
@@ -32,6 +92,10 @@ export async function runStatusCommand(args, context) {
|
|
|
32
92
|
const { profileName, profile, serverUrl } = await context.tokenManager.resolveProfile(context.globalOptions);
|
|
33
93
|
const session = await context.tokenManager.getSession(profileName, serverUrl);
|
|
34
94
|
const sessionState = context.tokenManager.sessionState(session);
|
|
95
|
+
const credentialSurfaces = await Promise.all([
|
|
96
|
+
inspectCredentialSurface(context, "agentComputer", "tools.vibecodr.space"),
|
|
97
|
+
inspectCredentialSurface(context, "mcpGateway", "openai.vibecodr.space/mcp")
|
|
98
|
+
]);
|
|
35
99
|
const installs = flags["show-installs"]
|
|
36
100
|
? await Promise.all((await new InstallManifestStore().find(() => true)).map((entry) => inspectInstall(entry)))
|
|
37
101
|
: [];
|
|
@@ -43,26 +107,34 @@ export async function runStatusCommand(args, context) {
|
|
|
43
107
|
pkceS256: Boolean(discovery.authorizationServerMetadata?.code_challenge_methods_supported?.includes("S256"))
|
|
44
108
|
};
|
|
45
109
|
}
|
|
46
|
-
|
|
110
|
+
const value = {
|
|
47
111
|
schemaVersion: 1,
|
|
48
112
|
profile: profileName,
|
|
49
113
|
serverUrl,
|
|
50
114
|
sessionState,
|
|
51
115
|
registrationMode: session?.registrationMode || profile.registrationMode,
|
|
52
116
|
expiresAt: session?.expiresAt,
|
|
117
|
+
credentialSurfaces,
|
|
53
118
|
installs,
|
|
54
119
|
...(probe ? { probe } : {})
|
|
55
|
-
}
|
|
120
|
+
};
|
|
121
|
+
const humanLines = [
|
|
122
|
+
"Vibecodr status",
|
|
123
|
+
...credentialSurfaces.map((surface) => credentialSurfaceLine(surface)),
|
|
124
|
+
statusNextStep(credentialSurfaces),
|
|
125
|
+
"",
|
|
126
|
+
"Details:",
|
|
56
127
|
`Profile: ${profileName}`,
|
|
57
|
-
`
|
|
58
|
-
`
|
|
128
|
+
`MCP server: ${serverUrl}`,
|
|
129
|
+
`MCP session: ${sessionState}`,
|
|
59
130
|
`Registration mode: ${session?.registrationMode || profile.registrationMode}`,
|
|
60
|
-
`
|
|
131
|
+
`MCP session expires: ${session?.expiresAt || "not logged in"}`,
|
|
61
132
|
...(flags["show-installs"] ? [`Managed installs: ${installs.length}`] : []),
|
|
62
133
|
...(flags["show-installs"]
|
|
63
134
|
? installs.map((install) => `Install: ${install.client} ${install.scope} ${install.location} [${install.status}]`)
|
|
64
135
|
: []),
|
|
65
136
|
...(probe ? [`Authorization server: ${String(probe["authorizationServerUrl"])}`, `PKCE S256: ${probe["pkceS256"] ? "yes" : "no"}`] : [])
|
|
66
|
-
]
|
|
137
|
+
];
|
|
138
|
+
context.output.success(value, humanLines);
|
|
67
139
|
}
|
|
68
140
|
//# sourceMappingURL=status.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/tools.js
CHANGED
|
@@ -19,7 +19,7 @@ function summarizeDescription(desc, maxWidth) {
|
|
|
19
19
|
function renderToolsList(tools, serverUrl, search) {
|
|
20
20
|
if (tools.length === 0) {
|
|
21
21
|
return search
|
|
22
|
-
? [`No tools matched "${search}".`, "", `Try: vibecodr tools --search <other-text> | vibecodr tools --json`]
|
|
22
|
+
? [`No tools matched "${search}".`, "", `Try: vibecodr mcp tools --search <other-text> | vibecodr mcp tools --json`]
|
|
23
23
|
: ["No tools available from the gateway."];
|
|
24
24
|
}
|
|
25
25
|
const columns = Math.max(60, process.stdout.columns ?? 100);
|
|
@@ -43,7 +43,7 @@ function renderToolsList(tools, serverUrl, search) {
|
|
|
43
43
|
const summary = summarizeDescription(tool.description, descWidth);
|
|
44
44
|
lines.push(`${" ".repeat(indent)}${padded}${summary}`);
|
|
45
45
|
}
|
|
46
|
-
lines.push("", "Show details for one tool: vibecodr tools <tool-name>", "Filter by text: vibecodr tools --search <query>", "Machine-readable output: vibecodr tools --json");
|
|
46
|
+
lines.push("", "Show details for one tool: vibecodr mcp tools <tool-name>", "Filter by text: vibecodr mcp tools --search <query>", "Machine-readable output: vibecodr mcp tools --json");
|
|
47
47
|
return lines;
|
|
48
48
|
}
|
|
49
49
|
function challengedScope(error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/commands/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAKhD,SAAS,oBAAoB,CAAC,IAAwB,EAAE,QAAgB;IACtE,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7E,IAAI,SAAS,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,SAAS,CAAC;IACnD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,CAAC,SAAS,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;AACpF,CAAC;AAED,SAAS,eAAe,CAAC,KAA4B,EAAE,SAAiB,EAAE,MAAc;IACtF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,MAAM;YACX,CAAC,CAAC,CAAC,qBAAqB,MAAM,IAAI,EAAE,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/commands/tools.ts"],"names":[],"mappings":"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"}
|
package/dist/legacy/cli/run.js
CHANGED
|
@@ -479,7 +479,11 @@ async function commandConnect(context, parsed) {
|
|
|
479
479
|
const url = typeof publicConnection.url === "string" ? publicConnection.url : undefined;
|
|
480
480
|
const warnings = [];
|
|
481
481
|
let installResult;
|
|
482
|
-
|
|
482
|
+
const namedClientAuthBlocked = url !== undefined && hostedAgentComputerClientAuthBlocked(clientName, url, publicConnection);
|
|
483
|
+
if (namedClientAuthBlocked) {
|
|
484
|
+
warnings.push(hostedAgentComputerClientAuthMessage(clientName));
|
|
485
|
+
}
|
|
486
|
+
if (!printOnly && url && isInstallableClient(clientName) && !namedClientAuthBlocked) {
|
|
483
487
|
try {
|
|
484
488
|
installResult = await installClient({
|
|
485
489
|
client: clientName,
|
|
@@ -1552,6 +1556,11 @@ function formatAgentConnectionSummary(clientName, connection, serverName = "vc-t
|
|
|
1552
1556
|
lines.push(installResult.nextStep);
|
|
1553
1557
|
return lines.join("\n");
|
|
1554
1558
|
}
|
|
1559
|
+
if (hostedAgentComputerClientAuthBlocked(clientName, url, connection)) {
|
|
1560
|
+
lines.push("", hostedAgentComputerClientAuthMessage(clientName));
|
|
1561
|
+
lines.push("Next: use `vibecodr start` or `vibecodr try` for the hosted Agent Computer, and use `vibecodr install " + clientName + "` for the OAuth-backed Vibecodr MCP Gateway.");
|
|
1562
|
+
return lines.join("\n");
|
|
1563
|
+
}
|
|
1555
1564
|
const snippet = clientConfigSnippet(clientName, url, serverName);
|
|
1556
1565
|
if (snippet) {
|
|
1557
1566
|
lines.push("", `Add this to ${snippet.label}:`, "", snippet.code);
|
|
@@ -1562,6 +1571,32 @@ function formatAgentConnectionSummary(clientName, connection, serverName = "vc-t
|
|
|
1562
1571
|
}
|
|
1563
1572
|
return lines.join("\n");
|
|
1564
1573
|
}
|
|
1574
|
+
function hostedAgentComputerClientAuthBlocked(clientName, url, connection) {
|
|
1575
|
+
if (!isInstallableClient(clientName)) {
|
|
1576
|
+
return false;
|
|
1577
|
+
}
|
|
1578
|
+
if (!isHostedAgentComputerMcpUrl(url)) {
|
|
1579
|
+
return false;
|
|
1580
|
+
}
|
|
1581
|
+
const auth = typeof connection.auth === "object" && connection.auth !== null && !Array.isArray(connection.auth)
|
|
1582
|
+
? connection.auth
|
|
1583
|
+
: {};
|
|
1584
|
+
return auth.clientInstall !== "oauth_client_supported";
|
|
1585
|
+
}
|
|
1586
|
+
function hostedAgentComputerClientAuthMessage(clientName) {
|
|
1587
|
+
return `${clientLabel(clientName)} install skipped: tools.vibecodr.space/mcp uses vc-tools grants, and this CLI will not write a bare editor config until that client auth flow is explicitly supported.`;
|
|
1588
|
+
}
|
|
1589
|
+
function isHostedAgentComputerMcpUrl(value) {
|
|
1590
|
+
try {
|
|
1591
|
+
const url = new URL(value);
|
|
1592
|
+
return url.protocol === "https:"
|
|
1593
|
+
&& url.hostname === "tools.vibecodr.space"
|
|
1594
|
+
&& (url.pathname === "/mcp" || url.pathname === "/v1/mcp");
|
|
1595
|
+
}
|
|
1596
|
+
catch {
|
|
1597
|
+
return false;
|
|
1598
|
+
}
|
|
1599
|
+
}
|
|
1565
1600
|
function clientLabel(clientName) {
|
|
1566
1601
|
switch (clientName.toLowerCase()) {
|
|
1567
1602
|
case "codex": return "Codex";
|