codebase-cli 2.0.0-pre.1 → 2.0.0-pre.10
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/agent/agent.js +16 -1
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/config.js +71 -9
- package/dist/agent/config.js.map +1 -1
- package/dist/app-server/protocol.js +7 -0
- package/dist/app-server/protocol.js.map +1 -0
- package/dist/app-server/server.js +241 -0
- package/dist/app-server/server.js.map +1 -0
- package/dist/auth/flow.js +174 -41
- package/dist/auth/flow.js.map +1 -1
- package/dist/cli.js +60 -3
- package/dist/cli.js.map +1 -1
- package/dist/commands/builtins.js +272 -1
- package/dist/commands/builtins.js.map +1 -1
- package/dist/config/store.js +125 -0
- package/dist/config/store.js.map +1 -0
- package/dist/config/types.js +2 -0
- package/dist/config/types.js.map +1 -0
- package/dist/headless/run.js +129 -21
- package/dist/headless/run.js.map +1 -1
- package/dist/permissions/store.js +105 -3
- package/dist/permissions/store.js.map +1 -1
- package/dist/projects/cli.js +92 -0
- package/dist/projects/cli.js.map +1 -0
- package/dist/projects/client.js +120 -0
- package/dist/projects/client.js.map +1 -0
- package/dist/projects/types.js +2 -0
- package/dist/projects/types.js.map +1 -0
- package/dist/skills/platform-loader.js +133 -38
- package/dist/skills/platform-loader.js.map +1 -1
- package/dist/tools/config.js +74 -0
- package/dist/tools/config.js.map +1 -0
- package/dist/tools/dispatch-agent.js +16 -0
- package/dist/tools/dispatch-agent.js.map +1 -1
- package/dist/tools/registry.js +4 -0
- package/dist/tools/registry.js.map +1 -1
- package/dist/ui/App.js +1 -1
- package/dist/ui/App.js.map +1 -1
- package/dist/ui/FirstRunSetup.js +101 -15
- package/dist/ui/FirstRunSetup.js.map +1 -1
- package/dist/ui/Message.js +80 -1
- package/dist/ui/Message.js.map +1 -1
- package/dist/ui/Status.js +13 -2
- package/dist/ui/Status.js.map +1 -1
- package/package.json +3 -1
package/dist/auth/flow.js
CHANGED
|
@@ -87,28 +87,151 @@ export function awaitCallback(server, expectedState, timeoutMs) {
|
|
|
87
87
|
});
|
|
88
88
|
}
|
|
89
89
|
function renderResponse(res, ok, message) {
|
|
90
|
+
const title = ok ? "Signed in" : "Sign-in failed";
|
|
91
|
+
const accent = ok ? "#22c55e" : "#ef4444";
|
|
92
|
+
const subtitle = ok ? "You can close this tab." : "Return to your terminal for details.";
|
|
93
|
+
// Inline SVG logo + minimal CSS. No external deps so the page renders
|
|
94
|
+
// before any network even on the CLI's localhost-only callback host.
|
|
90
95
|
const html = `<!doctype html>
|
|
91
|
-
<html
|
|
92
|
-
<
|
|
93
|
-
<
|
|
94
|
-
<
|
|
95
|
-
</
|
|
96
|
+
<html lang="en">
|
|
97
|
+
<head>
|
|
98
|
+
<meta charset="utf-8" />
|
|
99
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
100
|
+
<title>codebase · ${title}</title>
|
|
101
|
+
<style>
|
|
102
|
+
:root { color-scheme: light dark; }
|
|
103
|
+
* { box-sizing: border-box; }
|
|
104
|
+
html, body { margin: 0; padding: 0; }
|
|
105
|
+
body {
|
|
106
|
+
font: 15px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, system-ui, sans-serif;
|
|
107
|
+
background: #0a0a0b;
|
|
108
|
+
color: #f1f1f3;
|
|
109
|
+
min-height: 100vh;
|
|
110
|
+
display: flex;
|
|
111
|
+
align-items: center;
|
|
112
|
+
justify-content: center;
|
|
113
|
+
padding: 24px;
|
|
114
|
+
}
|
|
115
|
+
@media (prefers-color-scheme: light) {
|
|
116
|
+
body { background: #fafafa; color: #0a0a0b; }
|
|
117
|
+
.card { background: #fff; border-color: #e5e5ea; box-shadow: 0 1px 2px rgba(0,0,0,0.04), 0 8px 24px rgba(0,0,0,0.06); }
|
|
118
|
+
.subtitle { color: #6b6b73; }
|
|
119
|
+
.hint { color: #6b6b73; }
|
|
120
|
+
}
|
|
121
|
+
.card {
|
|
122
|
+
max-width: 440px;
|
|
123
|
+
width: 100%;
|
|
124
|
+
padding: 40px 36px 32px;
|
|
125
|
+
border: 1px solid #1f1f23;
|
|
126
|
+
border-radius: 16px;
|
|
127
|
+
background: #131316;
|
|
128
|
+
box-shadow: 0 1px 2px rgba(0,0,0,0.4), 0 12px 40px rgba(0,0,0,0.4);
|
|
129
|
+
text-align: center;
|
|
130
|
+
}
|
|
131
|
+
.logo {
|
|
132
|
+
width: 64px;
|
|
133
|
+
height: 64px;
|
|
134
|
+
margin: 0 auto 24px;
|
|
135
|
+
display: block;
|
|
136
|
+
}
|
|
137
|
+
.logo rect { fill: currentColor; }
|
|
138
|
+
.icon {
|
|
139
|
+
width: 48px;
|
|
140
|
+
height: 48px;
|
|
141
|
+
margin: 0 auto 12px;
|
|
142
|
+
border-radius: 999px;
|
|
143
|
+
background: ${accent}22;
|
|
144
|
+
color: ${accent};
|
|
145
|
+
display: flex;
|
|
146
|
+
align-items: center;
|
|
147
|
+
justify-content: center;
|
|
148
|
+
font-size: 28px;
|
|
149
|
+
font-weight: 600;
|
|
150
|
+
}
|
|
151
|
+
h1 {
|
|
152
|
+
font-size: 22px;
|
|
153
|
+
font-weight: 600;
|
|
154
|
+
margin: 0 0 4px;
|
|
155
|
+
letter-spacing: -0.01em;
|
|
156
|
+
}
|
|
157
|
+
.subtitle {
|
|
158
|
+
color: #a3a3ab;
|
|
159
|
+
font-size: 14px;
|
|
160
|
+
margin: 0 0 24px;
|
|
161
|
+
}
|
|
162
|
+
.message {
|
|
163
|
+
background: rgba(255,255,255,0.04);
|
|
164
|
+
border: 1px solid rgba(255,255,255,0.06);
|
|
165
|
+
padding: 12px 14px;
|
|
166
|
+
border-radius: 8px;
|
|
167
|
+
font-size: 13px;
|
|
168
|
+
text-align: left;
|
|
169
|
+
white-space: pre-wrap;
|
|
170
|
+
}
|
|
171
|
+
@media (prefers-color-scheme: light) {
|
|
172
|
+
.message { background: #f5f5f7; border-color: #e5e5ea; }
|
|
173
|
+
}
|
|
174
|
+
.hint {
|
|
175
|
+
margin-top: 18px;
|
|
176
|
+
font-size: 12px;
|
|
177
|
+
color: #6b6b73;
|
|
178
|
+
}
|
|
179
|
+
.brand {
|
|
180
|
+
font-size: 12px;
|
|
181
|
+
color: #6b6b73;
|
|
182
|
+
letter-spacing: 0.02em;
|
|
183
|
+
text-transform: uppercase;
|
|
184
|
+
margin-bottom: 8px;
|
|
185
|
+
}
|
|
186
|
+
</style>
|
|
187
|
+
</head>
|
|
188
|
+
<body>
|
|
189
|
+
<div class="card">
|
|
190
|
+
<svg class="logo" viewBox="7 6 6 7" shape-rendering="crispEdges" aria-hidden="true">
|
|
191
|
+
<rect width="1" height="1" x="9" y="7" /><rect width="1" height="1" x="10" y="7" /><rect width="1" height="1" x="11" y="7" />
|
|
192
|
+
<rect width="1" height="1" x="8" y="8" /><rect width="1" height="1" x="8" y="9" /><rect width="1" height="1" x="8" y="10" />
|
|
193
|
+
<rect width="1" height="1" x="9" y="11" /><rect width="1" height="1" x="10" y="11" /><rect width="1" height="1" x="11" y="11" />
|
|
194
|
+
</svg>
|
|
195
|
+
<div class="brand">codebase</div>
|
|
196
|
+
<div class="icon" aria-hidden="true">${ok ? "✓" : "!"}</div>
|
|
197
|
+
<h1>${title}</h1>
|
|
198
|
+
<p class="subtitle">${subtitle}</p>
|
|
199
|
+
<div class="message">${escapeHtml(message)}</div>
|
|
200
|
+
<p class="hint">${ok ? "Your terminal is signed in via codebase.design." : "Try <code>codebase auth login</code> again, or check your terminal for the error."}</p>
|
|
201
|
+
</div>
|
|
202
|
+
</body>
|
|
203
|
+
</html>`;
|
|
96
204
|
res.statusCode = ok ? 200 : 400;
|
|
97
205
|
res.setHeader("Content-Type", "text/html; charset=utf-8");
|
|
206
|
+
res.setHeader("Cache-Control", "no-store");
|
|
98
207
|
res.end(html);
|
|
99
208
|
}
|
|
209
|
+
function escapeHtml(s) {
|
|
210
|
+
return s
|
|
211
|
+
.replace(/&/g, "&")
|
|
212
|
+
.replace(/</g, "<")
|
|
213
|
+
.replace(/>/g, ">")
|
|
214
|
+
.replace(/"/g, """)
|
|
215
|
+
.replace(/'/g, "'");
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Token endpoints on codebase.design's web app expect JSON bodies —
|
|
219
|
+
* `app.js` only mounts `express.json()`, no `express.urlencoded()`.
|
|
220
|
+
* OAuth 2.0 RFC 6749 §4.1.3 says token endpoints MUST accept
|
|
221
|
+
* form-urlencoded; the web app is non-standard there but it's easier
|
|
222
|
+
* to send JSON from the CLI than to upstream a middleware change.
|
|
223
|
+
*/
|
|
100
224
|
export async function exchangeCode(config, params) {
|
|
101
|
-
const body = new URLSearchParams({
|
|
102
|
-
grant_type: "authorization_code",
|
|
103
|
-
client_id: config.clientId,
|
|
104
|
-
code: params.code,
|
|
105
|
-
code_verifier: params.codeVerifier,
|
|
106
|
-
redirect_uri: params.redirectUri,
|
|
107
|
-
});
|
|
108
225
|
const res = await fetch(config.tokenUrl, {
|
|
109
226
|
method: "POST",
|
|
110
|
-
headers: { "Content-Type": "application/
|
|
111
|
-
body
|
|
227
|
+
headers: { "Content-Type": "application/json", Accept: "application/json" },
|
|
228
|
+
body: JSON.stringify({
|
|
229
|
+
grant_type: "authorization_code",
|
|
230
|
+
client_id: config.clientId,
|
|
231
|
+
code: params.code,
|
|
232
|
+
code_verifier: params.codeVerifier,
|
|
233
|
+
redirect_uri: params.redirectUri,
|
|
234
|
+
}),
|
|
112
235
|
});
|
|
113
236
|
if (!res.ok) {
|
|
114
237
|
const text = await res.text();
|
|
@@ -118,15 +241,14 @@ export async function exchangeCode(config, params) {
|
|
|
118
241
|
return tokenToCredentials(json, config);
|
|
119
242
|
}
|
|
120
243
|
export async function refreshAccessToken(config, refreshToken) {
|
|
121
|
-
const body = new URLSearchParams({
|
|
122
|
-
grant_type: "refresh_token",
|
|
123
|
-
client_id: config.clientId,
|
|
124
|
-
refresh_token: refreshToken,
|
|
125
|
-
});
|
|
126
244
|
const res = await fetch(config.refreshUrl, {
|
|
127
245
|
method: "POST",
|
|
128
|
-
headers: { "Content-Type": "application/
|
|
129
|
-
body
|
|
246
|
+
headers: { "Content-Type": "application/json", Accept: "application/json" },
|
|
247
|
+
body: JSON.stringify({
|
|
248
|
+
grant_type: "refresh_token",
|
|
249
|
+
client_id: config.clientId,
|
|
250
|
+
refresh_token: refreshToken,
|
|
251
|
+
}),
|
|
130
252
|
});
|
|
131
253
|
if (!res.ok) {
|
|
132
254
|
const text = await res.text();
|
|
@@ -138,12 +260,11 @@ export async function refreshAccessToken(config, refreshToken) {
|
|
|
138
260
|
export async function revokeToken(config, accessToken) {
|
|
139
261
|
if (!config.revokeUrl)
|
|
140
262
|
return;
|
|
141
|
-
const body = new URLSearchParams({ token: accessToken, client_id: config.clientId });
|
|
142
263
|
try {
|
|
143
264
|
await fetch(config.revokeUrl, {
|
|
144
265
|
method: "POST",
|
|
145
|
-
headers: { "Content-Type": "application/
|
|
146
|
-
body,
|
|
266
|
+
headers: { "Content-Type": "application/json" },
|
|
267
|
+
body: JSON.stringify({ token: accessToken, client_id: config.clientId }),
|
|
147
268
|
});
|
|
148
269
|
}
|
|
149
270
|
catch {
|
|
@@ -165,17 +286,10 @@ function tokenToCredentials(token, config) {
|
|
|
165
286
|
source: "codebase",
|
|
166
287
|
};
|
|
167
288
|
}
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
* 3. Open the authorization URL in the user's browser
|
|
173
|
-
* 4. Wait for /callback, validate state
|
|
174
|
-
* 5. Exchange the code for tokens
|
|
175
|
-
*
|
|
176
|
-
* Returns ready-to-save Credentials.
|
|
177
|
-
*/
|
|
178
|
-
export async function runOAuthLogin(config, openBrowserFn = openBrowser) {
|
|
289
|
+
export async function runOAuthLogin(config, options = {}) {
|
|
290
|
+
// Backwards-compat: callers used to pass a bare openBrowserFn.
|
|
291
|
+
const opts = typeof options === "function" ? { openBrowserFn: options } : options;
|
|
292
|
+
const openBrowserFn = opts.openBrowserFn ?? openBrowser;
|
|
179
293
|
const verifier = generateCodeVerifier();
|
|
180
294
|
const challenge = generateCodeChallenge(verifier);
|
|
181
295
|
const state = generateState();
|
|
@@ -188,17 +302,36 @@ export async function runOAuthLogin(config, openBrowserFn = openBrowser) {
|
|
|
188
302
|
const redirectUri = `http://127.0.0.1:${port}/callback`;
|
|
189
303
|
const authUrl = buildAuthorizationUrl(config, { codeChallenge: challenge, state, redirectUri });
|
|
190
304
|
const callbackPromise = awaitCallback(server, state, config.timeoutMs ?? DEFAULT_TIMEOUT_MS);
|
|
191
|
-
|
|
192
|
-
|
|
305
|
+
if (isHeadlessSession()) {
|
|
306
|
+
opts.onManualUrl?.(authUrl, "headless session detected — open the URL manually in your browser");
|
|
193
307
|
}
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
308
|
+
else {
|
|
309
|
+
try {
|
|
310
|
+
await openBrowserFn(authUrl);
|
|
311
|
+
}
|
|
312
|
+
catch (err) {
|
|
313
|
+
// DON'T tear down the server: the user can still complete
|
|
314
|
+
// sign-in by opening the URL themselves. Surface the URL via
|
|
315
|
+
// onManualUrl and continue waiting for the callback.
|
|
316
|
+
opts.onManualUrl?.(authUrl, `auto-open failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
317
|
+
}
|
|
198
318
|
}
|
|
199
319
|
const { code } = await callbackPromise;
|
|
200
320
|
return exchangeCode(config, { code, codeVerifier: verifier, redirectUri });
|
|
201
321
|
}
|
|
322
|
+
/**
|
|
323
|
+
* Heuristic: is this process running somewhere that obviously can't
|
|
324
|
+
* launch a GUI browser? We bail out of the auto-open attempt instead
|
|
325
|
+
* of letting xdg-open ENOENT or `open` hang on a headless macOS box.
|
|
326
|
+
*/
|
|
327
|
+
function isHeadlessSession() {
|
|
328
|
+
const env = process.env;
|
|
329
|
+
if (env.SSH_CONNECTION || env.SSH_TTY || env.SSH_CLIENT)
|
|
330
|
+
return true;
|
|
331
|
+
if (process.platform === "linux" && !env.DISPLAY && !env.WAYLAND_DISPLAY)
|
|
332
|
+
return true;
|
|
333
|
+
return false;
|
|
334
|
+
}
|
|
202
335
|
/** Best-effort browser open. Falls back to printing the URL on platforms we can't detect. */
|
|
203
336
|
export async function openBrowser(url) {
|
|
204
337
|
const command = browserOpenCommand(url);
|
package/dist/auth/flow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow.js","sourceRoot":"","sources":["../../src/auth/flow.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"flow.js","sourceRoot":"","sources":["../../src/auth/flow.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -2,12 +2,15 @@
|
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
3
|
import { readFileSync } from "node:fs";
|
|
4
4
|
import { render } from "ink";
|
|
5
|
+
import { runAppServer } from "./app-server/server.js";
|
|
5
6
|
import { runAuthSubcommand } from "./auth/cli.js";
|
|
6
7
|
import { loadDotEnv } from "./dotenv/loader.js";
|
|
7
8
|
import { runHeadless } from "./headless/run.js";
|
|
9
|
+
import { runProjectSubcommand } from "./projects/cli.js";
|
|
8
10
|
import { App } from "./ui/App.js";
|
|
9
11
|
// Auto-load .env files before any subsystem reads process.env.
|
|
10
12
|
loadDotEnv();
|
|
13
|
+
const VALID_OUTPUT_FORMATS = new Set(["text", "json", "stream-json"]);
|
|
11
14
|
const argv = process.argv.slice(2);
|
|
12
15
|
if (argv[0] === "--version" || argv[0] === "-v") {
|
|
13
16
|
process.stdout.write(`${readPackageVersion()}\n`);
|
|
@@ -20,13 +23,30 @@ else if (argv[0] === "--help" || argv[0] === "-h") {
|
|
|
20
23
|
else if (argv[0] === "auth") {
|
|
21
24
|
runAuthSubcommand(argv).then((code) => process.exit(code));
|
|
22
25
|
}
|
|
26
|
+
else if (argv[0] === "project" || argv[0] === "projects") {
|
|
27
|
+
runProjectSubcommand(argv).then((code) => process.exit(code));
|
|
28
|
+
}
|
|
29
|
+
else if (argv[0] === "app-server") {
|
|
30
|
+
// JSON-RPC-ish over stdio for IDE extensions. Auto-approve permissions
|
|
31
|
+
// by default — IDE clients render approval UIs themselves and we don't
|
|
32
|
+
// want the server to hang waiting on a TUI prompt no one's watching.
|
|
33
|
+
// The `--no-auto-approve` flag is for clients that DO implement their
|
|
34
|
+
// own approval flow via the `permission_request` event.
|
|
35
|
+
const noAutoApprove = argv.includes("--no-auto-approve");
|
|
36
|
+
const resume = argv.includes("--resume");
|
|
37
|
+
runAppServer({ autoApprove: !noAutoApprove, resume }).then((code) => process.exit(code));
|
|
38
|
+
}
|
|
23
39
|
else if (argv[0] === "run") {
|
|
24
|
-
const prompt = argv.slice(1)
|
|
40
|
+
const { prompt, outputFormat, autoApprove, error } = parseRunArgs(argv.slice(1));
|
|
41
|
+
if (error) {
|
|
42
|
+
process.stderr.write(`${error}\n`);
|
|
43
|
+
process.exit(2);
|
|
44
|
+
}
|
|
25
45
|
if (!prompt) {
|
|
26
|
-
process.stderr.write("usage: codebase run <prompt>\n");
|
|
46
|
+
process.stderr.write("usage: codebase run [--output text|json|stream-json] [--auto-approve] <prompt>\n");
|
|
27
47
|
process.exit(2);
|
|
28
48
|
}
|
|
29
|
-
runHeadless({ prompt }).then((code) => process.exit(code));
|
|
49
|
+
runHeadless({ prompt, outputFormat, autoApprove }).then((code) => process.exit(code));
|
|
30
50
|
}
|
|
31
51
|
else {
|
|
32
52
|
const instance = render(_jsx(App, {}));
|
|
@@ -34,6 +54,38 @@ else {
|
|
|
34
54
|
process.exit(1);
|
|
35
55
|
});
|
|
36
56
|
}
|
|
57
|
+
function parseRunArgs(args) {
|
|
58
|
+
const remaining = [];
|
|
59
|
+
let outputFormat;
|
|
60
|
+
let autoApprove = false;
|
|
61
|
+
for (let i = 0; i < args.length; i++) {
|
|
62
|
+
const a = args[i];
|
|
63
|
+
if (a === "--output" || a === "-o") {
|
|
64
|
+
const value = args[i + 1];
|
|
65
|
+
if (!value || !VALID_OUTPUT_FORMATS.has(value)) {
|
|
66
|
+
return { error: `--output must be one of: ${[...VALID_OUTPUT_FORMATS].join(", ")}` };
|
|
67
|
+
}
|
|
68
|
+
outputFormat = value;
|
|
69
|
+
i++;
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
if (a.startsWith("--output=")) {
|
|
73
|
+
const value = a.slice("--output=".length);
|
|
74
|
+
if (!VALID_OUTPUT_FORMATS.has(value)) {
|
|
75
|
+
return { error: `--output must be one of: ${[...VALID_OUTPUT_FORMATS].join(", ")}` };
|
|
76
|
+
}
|
|
77
|
+
outputFormat = value;
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
if (a === "--auto-approve" || a === "--yes" || a === "-y") {
|
|
81
|
+
autoApprove = true;
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
remaining.push(a);
|
|
85
|
+
}
|
|
86
|
+
const prompt = remaining.join(" ").trim();
|
|
87
|
+
return { prompt: prompt || undefined, outputFormat, autoApprove };
|
|
88
|
+
}
|
|
37
89
|
function readPackageVersion() {
|
|
38
90
|
// dist/cli.js → ../package.json. Works for tsc-emitted output; if
|
|
39
91
|
// we ever ship a bundled binary this needs to switch to a build-time
|
|
@@ -54,11 +106,16 @@ function printHelp() {
|
|
|
54
106
|
"Usage:",
|
|
55
107
|
" codebase run the interactive TUI in the current directory",
|
|
56
108
|
" codebase run <prompt> one-shot headless run, prints to stdout",
|
|
109
|
+
" codebase run --output json|stream-json <prompt>",
|
|
110
|
+
" one-shot run with structured output",
|
|
57
111
|
" codebase auth login sign in via codebase.foundation OAuth",
|
|
58
112
|
" codebase auth logout revoke the current session",
|
|
59
113
|
" codebase auth status show current sign-in",
|
|
60
114
|
" codebase auth refresh force-refresh the access token",
|
|
61
115
|
" codebase auth <cbk_xxx> save a manual API key (for SSH / headless)",
|
|
116
|
+
" codebase project list list your projects on codebase.design",
|
|
117
|
+
" codebase project pull <id> download a project as a ZIP",
|
|
118
|
+
" codebase app-server JSON-RPC server on stdio (for IDE extensions)",
|
|
62
119
|
" codebase --version print version and exit",
|
|
63
120
|
" codebase --help show this message",
|
|
64
121
|
"",
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":";;AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":"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"}
|