@secondcontext/btx-cli 0.0.1 → 0.0.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/README.md +15 -5
- package/dist/bin.js +282 -17
- package/dist/bin.js.map +1 -1
- package/dist/config.d.ts +13 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +55 -5
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/login.d.ts +22 -0
- package/dist/login.d.ts.map +1 -0
- package/dist/login.js +207 -0
- package/dist/login.js.map +1 -0
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -36,7 +36,7 @@ Install the tarball into a clean repo or temp directory:
|
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
38
|
npm init -y
|
|
39
|
-
npm install /absolute/path/to/code/packages/btx-cli/secondcontext-btx-cli-0.0.
|
|
39
|
+
npm install /absolute/path/to/code/packages/btx-cli/secondcontext-btx-cli-0.0.3.tgz
|
|
40
40
|
./node_modules/.bin/btx --help
|
|
41
41
|
./node_modules/.bin/btx repo status --json
|
|
42
42
|
```
|
|
@@ -44,6 +44,11 @@ npm install /absolute/path/to/code/packages/btx-cli/secondcontext-btx-cli-0.0.1.
|
|
|
44
44
|
## Supported standalone flow
|
|
45
45
|
|
|
46
46
|
```bash
|
|
47
|
+
btx login
|
|
48
|
+
btx login status
|
|
49
|
+
btx logout
|
|
50
|
+
btx setup
|
|
51
|
+
btx setup codex
|
|
47
52
|
btx projects
|
|
48
53
|
btx repo link <project-id>
|
|
49
54
|
btx bootstrap all
|
|
@@ -56,11 +61,14 @@ btx session finish --summary "Recorded outcome and next steps"
|
|
|
56
61
|
|
|
57
62
|
## Auth and repo state
|
|
58
63
|
|
|
64
|
+
- `btx login` imports an existing desktop auth session when available, or opens a browser flow that writes `~/.btx/auth-session.json`
|
|
65
|
+
- `btx login status` shows whether the CLI is authenticated and whether desktop fallback is enabled
|
|
66
|
+
- `btx logout` clears the standalone CLI session and disables desktop fallback so the CLI stays logged out. Use `btx logout --all` to also clear the desktop session file
|
|
67
|
+
- `btx setup` is the first-run path for linking a repo and choosing `codex`, `claude`, or both bootstrap targets
|
|
59
68
|
- Auth is read from `~/.btx/auth-session.json`, with a fallback to the desktop app auth session store
|
|
60
69
|
- Repo linkage is stored in `.btx/btx.json`
|
|
61
70
|
- External session state is stored in `~/.btx/runtime-state.json`
|
|
62
|
-
|
|
63
|
-
Until the package is published, the desktop app remains the easiest way to seed the auth session that the standalone CLI reads.
|
|
71
|
+
- The standalone CLI no longer reads repo-local `API_URL` env files by default, so running `btx` inside this monorepo no longer forces the CLI onto `http://localhost:3000`
|
|
64
72
|
|
|
65
73
|
## First npm publish
|
|
66
74
|
|
|
@@ -70,14 +78,16 @@ Dry-run the publish from the monorepo root:
|
|
|
70
78
|
npm run publish:btx-cli:dry-run --prefix code
|
|
71
79
|
```
|
|
72
80
|
|
|
73
|
-
|
|
81
|
+
Publish from the monorepo root:
|
|
74
82
|
|
|
75
83
|
```bash
|
|
76
|
-
npm publish
|
|
84
|
+
npm run publish:btx-cli --prefix code
|
|
77
85
|
```
|
|
78
86
|
|
|
79
87
|
Expected manual npm steps:
|
|
80
88
|
|
|
81
89
|
- Log in to npm with an account that can publish under `@secondcontext`
|
|
90
|
+
- Set `NPM_TOKEN` in `code/packages/btx-cli/.env` or export it in your shell
|
|
91
|
+
- The publish helper creates a temporary npm user config so workspace-local `.npmrc` files are not needed. Do not run raw `npm publish` from `code/packages/btx-cli`
|
|
82
92
|
- Ensure the `@secondcontext` scope is configured for public packages
|
|
83
93
|
- If you want an open-source package, add a real `LICENSE` file before publishing and replace the current `UNLICENSED` marker in `package.json`
|
package/dist/bin.js
CHANGED
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
import { randomUUID } from 'node:crypto';
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { spawnSync } from 'node:child_process';
|
|
5
|
+
import { createInterface } from 'node:readline/promises';
|
|
5
6
|
import { apiGet, projectApiPatch, projectApiPost } from './api.js';
|
|
6
7
|
import { bootstrapAgents } from './bootstrap.js';
|
|
7
|
-
import { clearActiveSession, findRepoRoot, getActiveSession, loadRepoConfig, resolveRuntimeEnv, setActiveSession, writeRepoConfig, } from './config.js';
|
|
8
|
+
import { clearStoredAuthSession, DEFAULT_API_URL, clearActiveSession, findRepoRoot, getActiveSession, isDesktopFallbackEnabled, loadRepoConfig, resolveRuntimeEnv, resolveStoredAuthSessionSource, setActiveSession, writeRepoConfig, } from './config.js';
|
|
9
|
+
import { loginToBtx } from './login.js';
|
|
8
10
|
import { runRuntimeCli } from './runtime-cli.js';
|
|
9
11
|
const RUNTIME_RESOURCES = new Set([
|
|
10
12
|
'tasks',
|
|
@@ -63,6 +65,9 @@ Usage:
|
|
|
63
65
|
btx <resource> <subcommand> [flags]
|
|
64
66
|
|
|
65
67
|
Standalone commands:
|
|
68
|
+
btx login Sign in to BTX for standalone CLI use
|
|
69
|
+
btx logout Remove stored standalone BTX auth credentials
|
|
70
|
+
btx setup [agent] Link this repo and bootstrap AGENTS.md and/or CLAUDE.md
|
|
66
71
|
btx projects List BTX projects you can access
|
|
67
72
|
btx repo link <project-id> Link the current repo to a BTX project
|
|
68
73
|
btx repo status Show current repo BTX status
|
|
@@ -77,6 +82,11 @@ BTX resources:
|
|
|
77
82
|
search, context, pages, sessions, hiring-types, hiring-candidates
|
|
78
83
|
|
|
79
84
|
Examples:
|
|
85
|
+
btx login
|
|
86
|
+
btx login status
|
|
87
|
+
btx logout
|
|
88
|
+
btx setup
|
|
89
|
+
btx setup codex
|
|
80
90
|
btx projects
|
|
81
91
|
btx repo link <project-id>
|
|
82
92
|
btx bootstrap all
|
|
@@ -98,9 +108,83 @@ function bestEffortGitBranch(repoRoot) {
|
|
|
98
108
|
return null;
|
|
99
109
|
return result.stdout.trim() || null;
|
|
100
110
|
}
|
|
111
|
+
function isInteractiveShell() {
|
|
112
|
+
return !!process.stdin.isTTY && !!process.stdout.isTTY;
|
|
113
|
+
}
|
|
114
|
+
async function promptLine(question) {
|
|
115
|
+
const rl = createInterface({
|
|
116
|
+
input: process.stdin,
|
|
117
|
+
output: process.stdout,
|
|
118
|
+
});
|
|
119
|
+
try {
|
|
120
|
+
return (await rl.question(question)).trim();
|
|
121
|
+
}
|
|
122
|
+
finally {
|
|
123
|
+
rl.close();
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
async function promptChoice(label, options) {
|
|
127
|
+
if (!isInteractiveShell()) {
|
|
128
|
+
die(`Interactive input required for ${label}. Provide an explicit flag instead.`);
|
|
129
|
+
}
|
|
130
|
+
console.log(label);
|
|
131
|
+
for (const [index, option] of options.entries()) {
|
|
132
|
+
console.log(` ${index + 1}. ${option.label}`);
|
|
133
|
+
}
|
|
134
|
+
while (true) {
|
|
135
|
+
const answer = await promptLine(`Choose 1-${options.length}: `);
|
|
136
|
+
const index = Number.parseInt(answer, 10);
|
|
137
|
+
if (Number.isInteger(index) && index >= 1 && index <= options.length) {
|
|
138
|
+
return options[index - 1].value;
|
|
139
|
+
}
|
|
140
|
+
console.log('Enter a valid number.');
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
function resolveBootstrapTarget(targetArg) {
|
|
144
|
+
return targetArg === 'claude' || targetArg === 'codex' || targetArg === 'all'
|
|
145
|
+
? targetArg
|
|
146
|
+
: 'all';
|
|
147
|
+
}
|
|
148
|
+
async function listProjects(env) {
|
|
149
|
+
return apiGet(env, '/projects');
|
|
150
|
+
}
|
|
151
|
+
function persistRepoLink(repoRoot, env, project) {
|
|
152
|
+
writeRepoConfig(repoRoot, {
|
|
153
|
+
projectId: project.id,
|
|
154
|
+
projectName: project.name,
|
|
155
|
+
apiBase: env.BTX_API_URL,
|
|
156
|
+
linkedAt: new Date().toISOString(),
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
function printLoginResult(authSource, apiUrl, browserOpened) {
|
|
160
|
+
switch (authSource) {
|
|
161
|
+
case 'local':
|
|
162
|
+
console.log('BTX CLI is already logged in.');
|
|
163
|
+
break;
|
|
164
|
+
case 'desktop':
|
|
165
|
+
console.log('Imported the current BTX desktop auth session into the standalone CLI.');
|
|
166
|
+
break;
|
|
167
|
+
case 'browser':
|
|
168
|
+
console.log(browserOpened ? 'Completed BTX browser login.' : 'Completed BTX login.');
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
171
|
+
console.log(`API base: ${apiUrl}`);
|
|
172
|
+
}
|
|
173
|
+
function authStatusPayload() {
|
|
174
|
+
const env = resolveRuntimeEnv();
|
|
175
|
+
const hasEnvToken = !!process.env.BTX_ACCESS_TOKEN;
|
|
176
|
+
const authSource = hasEnvToken ? 'env' : resolveStoredAuthSessionSource();
|
|
177
|
+
return {
|
|
178
|
+
loggedIn: !!env.BTX_ACCESS_TOKEN,
|
|
179
|
+
authSource,
|
|
180
|
+
apiBase: env.BTX_API_URL ?? null,
|
|
181
|
+
desktopFallbackEnabled: isDesktopFallbackEnabled(),
|
|
182
|
+
hasEnvToken,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
101
185
|
async function handleProjects(flags) {
|
|
102
186
|
const env = resolveRuntimeEnv();
|
|
103
|
-
const projects = await
|
|
187
|
+
const projects = await listProjects(env);
|
|
104
188
|
if (isJson(flags)) {
|
|
105
189
|
printJson(projects);
|
|
106
190
|
return;
|
|
@@ -121,18 +205,13 @@ async function handleRepoLink(projectId, flags) {
|
|
|
121
205
|
if (!projectId)
|
|
122
206
|
die('Usage: btx repo link <project-id>');
|
|
123
207
|
const env = resolveRuntimeEnv();
|
|
124
|
-
const projects = await
|
|
208
|
+
const projects = await listProjects(env);
|
|
125
209
|
const project = projects.find((item) => item.id === projectId);
|
|
126
210
|
if (!project) {
|
|
127
211
|
die(`Project ${projectId} is not accessible with the current BTX auth session.`);
|
|
128
212
|
}
|
|
129
213
|
const repoRoot = findRepoRoot();
|
|
130
|
-
|
|
131
|
-
projectId: project.id,
|
|
132
|
-
projectName: project.name,
|
|
133
|
-
apiBase: env.BTX_API_URL,
|
|
134
|
-
linkedAt: new Date().toISOString(),
|
|
135
|
-
});
|
|
214
|
+
persistRepoLink(repoRoot, env, project);
|
|
136
215
|
if (isJson(flags)) {
|
|
137
216
|
printJson({
|
|
138
217
|
repoRoot,
|
|
@@ -151,14 +230,16 @@ function handleRepoStatus(flags) {
|
|
|
151
230
|
const repoRoot = findRepoRoot();
|
|
152
231
|
const repoConfig = loadRepoConfig(repoRoot);
|
|
153
232
|
const activeSession = getActiveSession(repoRoot);
|
|
154
|
-
const
|
|
233
|
+
const auth = authStatusPayload();
|
|
155
234
|
const status = {
|
|
156
235
|
repoRoot,
|
|
157
236
|
linked: !!repoConfig,
|
|
158
237
|
projectId: repoConfig?.projectId ?? null,
|
|
159
238
|
projectName: repoConfig?.projectName ?? null,
|
|
160
|
-
apiBase:
|
|
161
|
-
hasAuthToken:
|
|
239
|
+
apiBase: auth.apiBase,
|
|
240
|
+
hasAuthToken: auth.loggedIn,
|
|
241
|
+
authSource: auth.authSource,
|
|
242
|
+
desktopFallbackEnabled: auth.desktopFallbackEnabled,
|
|
162
243
|
activeSession,
|
|
163
244
|
};
|
|
164
245
|
if (isJson(flags)) {
|
|
@@ -172,8 +253,10 @@ function handleRepoStatus(flags) {
|
|
|
172
253
|
else {
|
|
173
254
|
console.log(`Linked project: ${repoConfig.projectName ?? 'BTX Project'} (${repoConfig.projectId})`);
|
|
174
255
|
}
|
|
175
|
-
console.log(`API base: ${
|
|
176
|
-
console.log(`Auth token available: ${
|
|
256
|
+
console.log(`API base: ${auth.apiBase}`);
|
|
257
|
+
console.log(`Auth token available: ${auth.loggedIn ? 'yes' : 'no'}`);
|
|
258
|
+
console.log(`Auth source: ${auth.authSource ?? 'none'}`);
|
|
259
|
+
console.log(`Desktop fallback enabled: ${auth.desktopFallbackEnabled ? 'yes' : 'no'}`);
|
|
177
260
|
if (activeSession) {
|
|
178
261
|
console.log(`Active session: ${activeSession.label} (${activeSession.sessionId})`);
|
|
179
262
|
console.log(`Runtime: ${activeSession.runtime}`);
|
|
@@ -182,10 +265,186 @@ function handleRepoStatus(flags) {
|
|
|
182
265
|
console.log('Active session: none');
|
|
183
266
|
}
|
|
184
267
|
}
|
|
268
|
+
function handleLoginStatus(flags) {
|
|
269
|
+
const status = authStatusPayload();
|
|
270
|
+
if (isJson(flags)) {
|
|
271
|
+
printJson(status);
|
|
272
|
+
return;
|
|
273
|
+
}
|
|
274
|
+
console.log(`Logged in: ${status.loggedIn ? 'yes' : 'no'}`);
|
|
275
|
+
console.log(`Auth source: ${status.authSource ?? 'none'}`);
|
|
276
|
+
console.log(`API base: ${status.apiBase}`);
|
|
277
|
+
console.log(`Desktop fallback enabled: ${status.desktopFallbackEnabled ? 'yes' : 'no'}`);
|
|
278
|
+
if (status.hasEnvToken) {
|
|
279
|
+
console.log('BTX_ACCESS_TOKEN is set in the current shell environment.');
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
async function handleLogin(positionals, flags) {
|
|
283
|
+
const subcommand = positionals[1];
|
|
284
|
+
if (subcommand === 'status') {
|
|
285
|
+
handleLoginStatus(flags);
|
|
286
|
+
return;
|
|
287
|
+
}
|
|
288
|
+
if (subcommand) {
|
|
289
|
+
die('Usage: btx login [status] [flags]');
|
|
290
|
+
}
|
|
291
|
+
const env = resolveRuntimeEnv(process.cwd(), {
|
|
292
|
+
...(flags['api-url'] ? { BTX_API_URL: flags['api-url'] } : {}),
|
|
293
|
+
});
|
|
294
|
+
const apiUrl = env.BTX_API_URL || DEFAULT_API_URL;
|
|
295
|
+
const result = await loginToBtx({
|
|
296
|
+
apiUrl,
|
|
297
|
+
env,
|
|
298
|
+
force: flags.force === 'true',
|
|
299
|
+
openBrowser: flags.open !== 'false',
|
|
300
|
+
onBrowserLoginStart: ({ loginUrl, browserOpened }) => {
|
|
301
|
+
if (browserOpened) {
|
|
302
|
+
console.log('Opened your browser to complete BTX login.');
|
|
303
|
+
}
|
|
304
|
+
else {
|
|
305
|
+
console.log('Open this URL to complete BTX login:');
|
|
306
|
+
console.log(loginUrl);
|
|
307
|
+
}
|
|
308
|
+
},
|
|
309
|
+
});
|
|
310
|
+
if (isJson(flags)) {
|
|
311
|
+
printJson({
|
|
312
|
+
authSource: result.authSource,
|
|
313
|
+
apiBase: result.apiUrl,
|
|
314
|
+
browserOpened: result.browserOpened,
|
|
315
|
+
expiresAt: result.session.expires_at,
|
|
316
|
+
});
|
|
317
|
+
return;
|
|
318
|
+
}
|
|
319
|
+
printLoginResult(result.authSource, result.apiUrl, result.browserOpened);
|
|
320
|
+
}
|
|
321
|
+
function handleLogout(flags) {
|
|
322
|
+
const hadEnvToken = !!process.env.BTX_ACCESS_TOKEN;
|
|
323
|
+
const result = clearStoredAuthSession({
|
|
324
|
+
clearDesktop: flags.all === 'true',
|
|
325
|
+
});
|
|
326
|
+
const status = authStatusPayload();
|
|
327
|
+
if (isJson(flags)) {
|
|
328
|
+
printJson({
|
|
329
|
+
loggedIn: status.loggedIn,
|
|
330
|
+
authSource: status.authSource,
|
|
331
|
+
desktopFallbackEnabled: status.desktopFallbackEnabled,
|
|
332
|
+
clearedLocal: result.clearedLocal,
|
|
333
|
+
clearedDesktop: result.clearedDesktop,
|
|
334
|
+
hadEnvToken,
|
|
335
|
+
});
|
|
336
|
+
return;
|
|
337
|
+
}
|
|
338
|
+
console.log('Removed stored BTX CLI authentication.');
|
|
339
|
+
console.log(`Cleared local session: ${result.clearedLocal ? 'yes' : 'no'}`);
|
|
340
|
+
console.log(`Cleared desktop session: ${result.clearedDesktop ? 'yes' : 'no'}`);
|
|
341
|
+
console.log(`Desktop fallback enabled: ${status.desktopFallbackEnabled ? 'yes' : 'no'}`);
|
|
342
|
+
if (!flags.all || flags.all !== 'true') {
|
|
343
|
+
console.log('The standalone CLI will stay logged out until you run `btx login` again.');
|
|
344
|
+
}
|
|
345
|
+
if (hadEnvToken) {
|
|
346
|
+
console.log('BTX_ACCESS_TOKEN is still set in the current shell environment and cannot be cleared by `btx logout`.');
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
async function selectProject(env, projectId) {
|
|
350
|
+
const projects = await listProjects(env);
|
|
351
|
+
if (projects.length === 0) {
|
|
352
|
+
die('No BTX projects are available for this account yet.');
|
|
353
|
+
}
|
|
354
|
+
if (projectId) {
|
|
355
|
+
const matched = projects.find((project) => project.id === projectId);
|
|
356
|
+
if (!matched) {
|
|
357
|
+
die(`Project ${projectId} is not accessible with the current BTX auth session.`);
|
|
358
|
+
}
|
|
359
|
+
return matched;
|
|
360
|
+
}
|
|
361
|
+
if (projects.length === 1 || !isInteractiveShell()) {
|
|
362
|
+
if (projects.length === 1)
|
|
363
|
+
return projects[0];
|
|
364
|
+
die('Multiple BTX projects are available. Run `btx setup --project-id <project-id>`.');
|
|
365
|
+
}
|
|
366
|
+
const selectedId = await promptChoice('Choose the BTX project to link to this repo:', projects.map((project) => ({
|
|
367
|
+
value: project.id,
|
|
368
|
+
label: `${project.name}${project.role ? ` (${project.role})` : ''} [${project.id}]`,
|
|
369
|
+
})));
|
|
370
|
+
const project = projects.find((item) => item.id === selectedId);
|
|
371
|
+
if (!project) {
|
|
372
|
+
die(`Project ${selectedId} is not accessible with the current BTX auth session.`);
|
|
373
|
+
}
|
|
374
|
+
return project;
|
|
375
|
+
}
|
|
376
|
+
async function selectBootstrapTarget(targetArg, flags) {
|
|
377
|
+
if (flags.agent === 'claude' ||
|
|
378
|
+
flags.agent === 'codex' ||
|
|
379
|
+
flags.agent === 'all') {
|
|
380
|
+
return flags.agent;
|
|
381
|
+
}
|
|
382
|
+
if (targetArg === 'claude' || targetArg === 'codex' || targetArg === 'all') {
|
|
383
|
+
return targetArg;
|
|
384
|
+
}
|
|
385
|
+
if (!isInteractiveShell())
|
|
386
|
+
return 'all';
|
|
387
|
+
return promptChoice('Choose which agent instructions to write:', [
|
|
388
|
+
{ value: 'codex', label: 'Codex only (AGENTS.md)' },
|
|
389
|
+
{ value: 'claude', label: 'Claude only (CLAUDE.md)' },
|
|
390
|
+
{ value: 'all', label: 'Both Codex and Claude' },
|
|
391
|
+
]);
|
|
392
|
+
}
|
|
393
|
+
async function handleSetup(targetArg, flags) {
|
|
394
|
+
const repoRoot = findRepoRoot();
|
|
395
|
+
let env = resolveRuntimeEnv(repoRoot, {
|
|
396
|
+
...(flags['api-url'] ? { BTX_API_URL: flags['api-url'] } : {}),
|
|
397
|
+
});
|
|
398
|
+
const loginResult = await loginToBtx({
|
|
399
|
+
apiUrl: env.BTX_API_URL || DEFAULT_API_URL,
|
|
400
|
+
env,
|
|
401
|
+
force: flags.force === 'true',
|
|
402
|
+
openBrowser: flags.open !== 'false',
|
|
403
|
+
onBrowserLoginStart: ({ loginUrl, browserOpened }) => {
|
|
404
|
+
if (browserOpened) {
|
|
405
|
+
console.log('Opened your browser to complete BTX login before setup.');
|
|
406
|
+
}
|
|
407
|
+
else {
|
|
408
|
+
console.log('Open this URL to complete BTX login before setup:');
|
|
409
|
+
console.log(loginUrl);
|
|
410
|
+
}
|
|
411
|
+
},
|
|
412
|
+
});
|
|
413
|
+
env = resolveRuntimeEnv(repoRoot, {
|
|
414
|
+
...(flags['api-url'] ? { BTX_API_URL: flags['api-url'] } : {}),
|
|
415
|
+
});
|
|
416
|
+
let repoConfig = loadRepoConfig(repoRoot);
|
|
417
|
+
let linkedProjectName = repoConfig?.projectName ?? null;
|
|
418
|
+
let linkedProjectId = repoConfig?.projectId ?? null;
|
|
419
|
+
if (flags['project-id'] || !repoConfig) {
|
|
420
|
+
const project = await selectProject(env, flags['project-id']);
|
|
421
|
+
persistRepoLink(repoRoot, env, project);
|
|
422
|
+
repoConfig = loadRepoConfig(repoRoot);
|
|
423
|
+
linkedProjectName = project.name;
|
|
424
|
+
linkedProjectId = project.id;
|
|
425
|
+
}
|
|
426
|
+
const target = await selectBootstrapTarget(targetArg, flags);
|
|
427
|
+
const result = bootstrapAgents(target, repoRoot);
|
|
428
|
+
if (isJson(flags)) {
|
|
429
|
+
printJson({
|
|
430
|
+
authSource: loginResult.authSource,
|
|
431
|
+
repoRoot: result.repoRoot,
|
|
432
|
+
projectId: linkedProjectId ?? result.projectId,
|
|
433
|
+
projectName: linkedProjectName ?? result.projectName,
|
|
434
|
+
target,
|
|
435
|
+
files: result.files.map((filePath) => path.relative(result.repoRoot, filePath)),
|
|
436
|
+
});
|
|
437
|
+
return;
|
|
438
|
+
}
|
|
439
|
+
printLoginResult(loginResult.authSource, loginResult.apiUrl, loginResult.browserOpened);
|
|
440
|
+
console.log(`Linked project: ${(linkedProjectName ?? result.projectName)} (${linkedProjectId ?? result.projectId})`);
|
|
441
|
+
console.log(`Bootstrapped ${target} instructions:`);
|
|
442
|
+
for (const filePath of result.files) {
|
|
443
|
+
console.log(` ${path.relative(result.repoRoot, filePath)}`);
|
|
444
|
+
}
|
|
445
|
+
}
|
|
185
446
|
async function handleBootstrap(targetArg, flags) {
|
|
186
|
-
const target = targetArg
|
|
187
|
-
? targetArg
|
|
188
|
-
: 'all';
|
|
447
|
+
const target = resolveBootstrapTarget(targetArg);
|
|
189
448
|
const result = bootstrapAgents(target);
|
|
190
449
|
if (isJson(flags)) {
|
|
191
450
|
printJson({
|
|
@@ -369,6 +628,12 @@ async function main() {
|
|
|
369
628
|
return;
|
|
370
629
|
}
|
|
371
630
|
switch (command) {
|
|
631
|
+
case 'login':
|
|
632
|
+
return handleLogin(positional, flags);
|
|
633
|
+
case 'logout':
|
|
634
|
+
return handleLogout(flags);
|
|
635
|
+
case 'setup':
|
|
636
|
+
return handleSetup(positional[1], flags);
|
|
372
637
|
case 'projects':
|
|
373
638
|
return handleProjects(flags);
|
|
374
639
|
case 'repo':
|
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -24,6 +24,8 @@ export interface ActiveSessionState {
|
|
|
24
24
|
interface RuntimeState {
|
|
25
25
|
activeSessions: Record<string, ActiveSessionState>;
|
|
26
26
|
}
|
|
27
|
+
export declare const DEFAULT_API_URL = "https://btx.secondcontext.com";
|
|
28
|
+
export type AuthSessionSource = 'local' | 'desktop';
|
|
27
29
|
export declare function findRepoRoot(startDir?: string): string;
|
|
28
30
|
export declare function repoConfigPath(repoRoot: string): string;
|
|
29
31
|
export declare function loadRepoConfig(repoRoot: string): RepoConfig | null;
|
|
@@ -32,8 +34,19 @@ export declare function loadRuntimeState(): RuntimeState;
|
|
|
32
34
|
export declare function getActiveSession(repoRoot: string): ActiveSessionState | null;
|
|
33
35
|
export declare function setActiveSession(repoRoot: string, session: ActiveSessionState): void;
|
|
34
36
|
export declare function clearActiveSession(repoRoot: string): void;
|
|
37
|
+
export declare function loadLocalAuthSession(): StoredAuthSession | null;
|
|
38
|
+
export declare function loadDesktopAuthSession(): StoredAuthSession | null;
|
|
39
|
+
export declare function isDesktopFallbackEnabled(): boolean;
|
|
40
|
+
export declare function setDesktopFallbackEnabled(enabled: boolean): void;
|
|
35
41
|
export declare function loadStoredAuthSession(): StoredAuthSession | null;
|
|
36
42
|
export declare function writeStoredAuthSession(session: StoredAuthSession): void;
|
|
43
|
+
export declare function clearStoredAuthSession(options?: {
|
|
44
|
+
clearDesktop?: boolean;
|
|
45
|
+
}): {
|
|
46
|
+
clearedLocal: boolean;
|
|
47
|
+
clearedDesktop: boolean;
|
|
48
|
+
};
|
|
49
|
+
export declare function resolveStoredAuthSessionSource(): AuthSessionSource | null;
|
|
37
50
|
export declare function loadEnvContext(startDir?: string): Record<string, string>;
|
|
38
51
|
export declare function resolveRuntimeEnv(startDir?: string, overrides?: RuntimeCliEnv): RuntimeCliEnv;
|
|
39
52
|
export declare function requireProjectId(env: RuntimeCliEnv): string;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAErD,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,UAAU,YAAY;IACpB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;CACnD;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAErD,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,UAAU,YAAY;IACpB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;CACnD;AAWD,eAAO,MAAM,eAAe,kCAAkC,CAAA;AAE9D,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,SAAS,CAAA;AAiDnD,wBAAgB,YAAY,CAAC,QAAQ,SAAgB,GAAG,MAAM,CAa7D;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAElE;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAE1E;AAED,wBAAgB,gBAAgB,IAAI,YAAY,CAE/C;AAMD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAG5E;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAIpF;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAIzD;AAED,wBAAgB,oBAAoB,IAAI,iBAAiB,GAAG,IAAI,CAE/D;AAED,wBAAgB,sBAAsB,IAAI,iBAAiB,GAAG,IAAI,CAEjE;AAMD,wBAAgB,wBAAwB,IAAI,OAAO,CAElD;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAMhE;AAED,wBAAgB,qBAAqB,IAAI,iBAAiB,GAAG,IAAI,CAEhE;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAGvE;AAED,wBAAgB,sBAAsB,CAAC,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG;IAChF,YAAY,EAAE,OAAO,CAAA;IACrB,cAAc,EAAE,OAAO,CAAA;CACxB,CAgBA;AAED,wBAAgB,8BAA8B,IAAI,iBAAiB,GAAG,IAAI,CAIzE;AAED,wBAAgB,cAAc,CAAC,QAAQ,SAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAc/E;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,SAAgB,EAAE,SAAS,GAAE,aAAkB,GAAG,aAAa,CAuCxG;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAQ3D;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAQ7D"}
|
package/dist/config.js
CHANGED
|
@@ -5,6 +5,8 @@ const REPO_CONFIG_RELATIVE_PATH = path.join('.btx', 'btx.json');
|
|
|
5
5
|
const GLOBAL_DIR = path.join(os.homedir(), '.btx');
|
|
6
6
|
const GLOBAL_AUTH_PATH = path.join(GLOBAL_DIR, 'auth-session.json');
|
|
7
7
|
const RUNTIME_STATE_PATH = path.join(GLOBAL_DIR, 'runtime-state.json');
|
|
8
|
+
const AUTH_STATE_PATH = path.join(GLOBAL_DIR, 'auth-state.json');
|
|
9
|
+
export const DEFAULT_API_URL = 'https://btx.secondcontext.com';
|
|
8
10
|
function readJson(filePath) {
|
|
9
11
|
if (!fs.existsSync(filePath))
|
|
10
12
|
return null;
|
|
@@ -22,6 +24,15 @@ function writeJsonAtomic(filePath, value) {
|
|
|
22
24
|
fs.writeFileSync(tmp, JSON.stringify(value, null, 2), 'utf8');
|
|
23
25
|
fs.renameSync(tmp, filePath);
|
|
24
26
|
}
|
|
27
|
+
function removeFileIfExists(filePath) {
|
|
28
|
+
try {
|
|
29
|
+
if (fs.existsSync(filePath))
|
|
30
|
+
fs.unlinkSync(filePath);
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
// best-effort
|
|
34
|
+
}
|
|
35
|
+
}
|
|
25
36
|
function readEnvFile(filePath) {
|
|
26
37
|
if (!fs.existsSync(filePath))
|
|
27
38
|
return {};
|
|
@@ -86,13 +97,53 @@ export function clearActiveSession(repoRoot) {
|
|
|
86
97
|
delete state.activeSessions[path.resolve(repoRoot)];
|
|
87
98
|
writeRuntimeState(state);
|
|
88
99
|
}
|
|
100
|
+
export function loadLocalAuthSession() {
|
|
101
|
+
return readJson(GLOBAL_AUTH_PATH);
|
|
102
|
+
}
|
|
103
|
+
export function loadDesktopAuthSession() {
|
|
104
|
+
return readJson(desktopAuthPath());
|
|
105
|
+
}
|
|
106
|
+
function loadAuthState() {
|
|
107
|
+
return readJson(AUTH_STATE_PATH) ?? {};
|
|
108
|
+
}
|
|
109
|
+
export function isDesktopFallbackEnabled() {
|
|
110
|
+
return loadAuthState().allowDesktopFallback !== false;
|
|
111
|
+
}
|
|
112
|
+
export function setDesktopFallbackEnabled(enabled) {
|
|
113
|
+
if (enabled) {
|
|
114
|
+
removeFileIfExists(AUTH_STATE_PATH);
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
writeJsonAtomic(AUTH_STATE_PATH, { allowDesktopFallback: false });
|
|
118
|
+
}
|
|
89
119
|
export function loadStoredAuthSession() {
|
|
90
|
-
return (
|
|
91
|
-
readJson(desktopAuthPath()));
|
|
120
|
+
return loadLocalAuthSession() ?? (isDesktopFallbackEnabled() ? loadDesktopAuthSession() : null);
|
|
92
121
|
}
|
|
93
122
|
export function writeStoredAuthSession(session) {
|
|
123
|
+
setDesktopFallbackEnabled(true);
|
|
94
124
|
writeJsonAtomic(GLOBAL_AUTH_PATH, session);
|
|
95
125
|
}
|
|
126
|
+
export function clearStoredAuthSession(options = {}) {
|
|
127
|
+
const localExisted = fs.existsSync(GLOBAL_AUTH_PATH);
|
|
128
|
+
const desktopPath = desktopAuthPath();
|
|
129
|
+
const desktopExisted = fs.existsSync(desktopPath);
|
|
130
|
+
removeFileIfExists(GLOBAL_AUTH_PATH);
|
|
131
|
+
setDesktopFallbackEnabled(false);
|
|
132
|
+
if (options.clearDesktop) {
|
|
133
|
+
removeFileIfExists(desktopPath);
|
|
134
|
+
}
|
|
135
|
+
return {
|
|
136
|
+
clearedLocal: localExisted,
|
|
137
|
+
clearedDesktop: options.clearDesktop ? desktopExisted : false,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
export function resolveStoredAuthSessionSource() {
|
|
141
|
+
if (loadLocalAuthSession())
|
|
142
|
+
return 'local';
|
|
143
|
+
if (isDesktopFallbackEnabled() && loadDesktopAuthSession())
|
|
144
|
+
return 'desktop';
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
96
147
|
export function loadEnvContext(startDir = process.cwd()) {
|
|
97
148
|
const repoRoot = findRepoRoot(startDir);
|
|
98
149
|
const candidates = [
|
|
@@ -136,8 +187,7 @@ export function resolveRuntimeEnv(startDir = process.cwd(), overrides = {}) {
|
|
|
136
187
|
process.env.API_URL ??
|
|
137
188
|
storedAuth?.api_url ??
|
|
138
189
|
repoConfig?.apiBase ??
|
|
139
|
-
|
|
140
|
-
'https://btx.secondcontext.com',
|
|
190
|
+
DEFAULT_API_URL,
|
|
141
191
|
BTX_SESSION_ID: overrides.BTX_SESSION_ID ?? process.env.BTX_SESSION_ID ?? activeSession?.sessionId,
|
|
142
192
|
};
|
|
143
193
|
}
|
|
@@ -151,7 +201,7 @@ export function requireProjectId(env) {
|
|
|
151
201
|
export function requireAccessToken(env) {
|
|
152
202
|
const token = env.BTX_ACCESS_TOKEN;
|
|
153
203
|
if (!token) {
|
|
154
|
-
throw new Error('No BTX auth session found.
|
|
204
|
+
throw new Error('No BTX auth session found. Run `btx login`, or set BTX_ACCESS_TOKEN explicitly.');
|
|
155
205
|
}
|
|
156
206
|
return token;
|
|
157
207
|
}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { runRuntimeCli, type RuntimeCliEnv } from './runtime-cli.js';
|
|
2
2
|
export { bootstrapAgents, } from './bootstrap.js';
|
|
3
|
-
export { findRepoRoot, loadRepoConfig, loadStoredAuthSession, resolveRuntimeEnv, writeRepoConfig, getActiveSession, setActiveSession, clearActiveSession, type RepoConfig, type ActiveSessionState, } from './config.js';
|
|
3
|
+
export { findRepoRoot, clearStoredAuthSession, isDesktopFallbackEnabled, loadDesktopAuthSession, loadLocalAuthSession, loadRepoConfig, loadStoredAuthSession, resolveRuntimeEnv, resolveStoredAuthSessionSource, writeRepoConfig, getActiveSession, setActiveSession, clearActiveSession, DEFAULT_API_URL, type RepoConfig, type ActiveSessionState, } from './config.js';
|
|
4
|
+
export { loginToBtx, type LoginOptions, type LoginResult, } from './login.js';
|
|
4
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACpE,OAAO,EACL,eAAe,GAChB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,UAAU,EACf,KAAK,kBAAkB,GACxB,MAAM,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACpE,OAAO,EACL,eAAe,GAChB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,8BAA8B,EAC9B,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,KAAK,UAAU,EACf,KAAK,kBAAkB,GACxB,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,UAAU,EACV,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,YAAY,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { runRuntimeCli } from './runtime-cli.js';
|
|
2
2
|
export { bootstrapAgents, } from './bootstrap.js';
|
|
3
|
-
export { findRepoRoot, loadRepoConfig, loadStoredAuthSession, resolveRuntimeEnv, writeRepoConfig, getActiveSession, setActiveSession, clearActiveSession, } from './config.js';
|
|
3
|
+
export { findRepoRoot, clearStoredAuthSession, isDesktopFallbackEnabled, loadDesktopAuthSession, loadLocalAuthSession, loadRepoConfig, loadStoredAuthSession, resolveRuntimeEnv, resolveStoredAuthSessionSource, writeRepoConfig, getActiveSession, setActiveSession, clearActiveSession, DEFAULT_API_URL, } from './config.js';
|
|
4
|
+
export { loginToBtx, } from './login.js';
|
|
4
5
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAsB,MAAM,kBAAkB,CAAA;AACpE,OAAO,EACL,eAAe,GAChB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAsB,MAAM,kBAAkB,CAAA;AACpE,OAAO,EACL,eAAe,GAChB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,8BAA8B,EAC9B,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,GAGhB,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,UAAU,GAGX,MAAM,YAAY,CAAA"}
|
package/dist/login.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type StoredAuthSession } from './config.js';
|
|
2
|
+
import type { RuntimeCliEnv } from './runtime-cli.js';
|
|
3
|
+
export interface LoginOptions {
|
|
4
|
+
apiUrl: string;
|
|
5
|
+
env: RuntimeCliEnv;
|
|
6
|
+
force?: boolean;
|
|
7
|
+
openBrowser?: boolean;
|
|
8
|
+
onBrowserLoginStart?: (details: {
|
|
9
|
+
loginUrl: string;
|
|
10
|
+
browserOpened: boolean;
|
|
11
|
+
}) => void;
|
|
12
|
+
timeoutMs?: number;
|
|
13
|
+
}
|
|
14
|
+
export interface LoginResult {
|
|
15
|
+
authSource: 'local' | 'desktop' | 'browser';
|
|
16
|
+
apiUrl: string;
|
|
17
|
+
browserOpened: boolean;
|
|
18
|
+
loginUrl?: string;
|
|
19
|
+
session: StoredAuthSession;
|
|
20
|
+
}
|
|
21
|
+
export declare function loginToBtx(options: LoginOptions): Promise<LoginResult>;
|
|
22
|
+
//# sourceMappingURL=login.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,KAAK,iBAAiB,EAEvB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAErD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,aAAa,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAA;IACrF,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAA;IAC3C,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,iBAAiB,CAAA;CAC3B;AAmMD,wBAAsB,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAwD5E"}
|
package/dist/login.js
ADDED
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
2
|
+
import http from 'node:http';
|
|
3
|
+
import { randomUUID } from 'node:crypto';
|
|
4
|
+
import { setDesktopFallbackEnabled, loadDesktopAuthSession, loadLocalAuthSession, writeStoredAuthSession, } from './config.js';
|
|
5
|
+
function normalizeStoredSession(session, apiUrl, env) {
|
|
6
|
+
return {
|
|
7
|
+
...session,
|
|
8
|
+
api_url: session.api_url ?? apiUrl,
|
|
9
|
+
supabase_url: session.supabase_url ?? env.BTX_SUPABASE_URL,
|
|
10
|
+
supabase_anon_key: session.supabase_anon_key ?? env.BTX_SUPABASE_ANON_KEY,
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
function sessionsEqual(a, b) {
|
|
14
|
+
return JSON.stringify(a) === JSON.stringify(b);
|
|
15
|
+
}
|
|
16
|
+
async function closeServer(server) {
|
|
17
|
+
await new Promise((resolve, reject) => {
|
|
18
|
+
server.close((error) => {
|
|
19
|
+
if (error)
|
|
20
|
+
reject(error);
|
|
21
|
+
else
|
|
22
|
+
resolve();
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
function createPendingLogin(state, timeoutMs) {
|
|
27
|
+
return new Promise((resolve, reject) => {
|
|
28
|
+
const server = http.createServer();
|
|
29
|
+
let settled = false;
|
|
30
|
+
let timeout = null;
|
|
31
|
+
let resolveSession = null;
|
|
32
|
+
let rejectSession = null;
|
|
33
|
+
const waitForSession = new Promise((resolvePromise, rejectPromise) => {
|
|
34
|
+
resolveSession = resolvePromise;
|
|
35
|
+
rejectSession = rejectPromise;
|
|
36
|
+
}).finally(async () => {
|
|
37
|
+
if (timeout)
|
|
38
|
+
clearTimeout(timeout);
|
|
39
|
+
await closeServer(server).catch(() => { });
|
|
40
|
+
});
|
|
41
|
+
function finishWithError(error) {
|
|
42
|
+
if (settled)
|
|
43
|
+
return;
|
|
44
|
+
settled = true;
|
|
45
|
+
reject(error);
|
|
46
|
+
rejectSession?.(error);
|
|
47
|
+
}
|
|
48
|
+
function finishWithSession(session) {
|
|
49
|
+
if (settled)
|
|
50
|
+
return;
|
|
51
|
+
settled = true;
|
|
52
|
+
resolveSession?.(session);
|
|
53
|
+
}
|
|
54
|
+
function writeJson(res, statusCode, body) {
|
|
55
|
+
res.statusCode = statusCode;
|
|
56
|
+
res.setHeader('access-control-allow-origin', '*');
|
|
57
|
+
res.setHeader('access-control-allow-methods', 'POST, OPTIONS');
|
|
58
|
+
res.setHeader('access-control-allow-headers', 'content-type');
|
|
59
|
+
res.setHeader('content-type', 'application/json');
|
|
60
|
+
res.end(JSON.stringify(body));
|
|
61
|
+
}
|
|
62
|
+
server.on('request', (req, res) => {
|
|
63
|
+
if (req.method === 'OPTIONS') {
|
|
64
|
+
writeJson(res, 204, {});
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
if (req.method !== 'POST' || req.url !== '/auth/callback') {
|
|
68
|
+
writeJson(res, 404, { ok: false, error: 'Not found.' });
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
const chunks = [];
|
|
72
|
+
req.on('data', (chunk) => chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk)));
|
|
73
|
+
req.on('error', (error) => {
|
|
74
|
+
writeJson(res, 400, { ok: false, error: String(error) });
|
|
75
|
+
});
|
|
76
|
+
req.on('end', () => {
|
|
77
|
+
try {
|
|
78
|
+
const payload = JSON.parse(Buffer.concat(chunks).toString('utf8'));
|
|
79
|
+
if (payload.state !== state) {
|
|
80
|
+
writeJson(res, 400, { ok: false, error: 'State mismatch.' });
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
const accessToken = typeof payload.access_token === 'string' ? payload.access_token.trim() : '';
|
|
84
|
+
if (!accessToken) {
|
|
85
|
+
writeJson(res, 400, { ok: false, error: 'Missing access token.' });
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
const refreshToken = typeof payload.refresh_token === 'string' ? payload.refresh_token : '';
|
|
89
|
+
const expiresAt = typeof payload.expires_at === 'number' && Number.isFinite(payload.expires_at)
|
|
90
|
+
? payload.expires_at
|
|
91
|
+
: Math.floor(Date.now() / 1000) + 3600;
|
|
92
|
+
const session = {
|
|
93
|
+
access_token: accessToken,
|
|
94
|
+
refresh_token: refreshToken,
|
|
95
|
+
expires_at: expiresAt,
|
|
96
|
+
...(typeof payload.supabase_url === 'string' && payload.supabase_url
|
|
97
|
+
? { supabase_url: payload.supabase_url }
|
|
98
|
+
: {}),
|
|
99
|
+
...(typeof payload.supabase_anon_key === 'string' && payload.supabase_anon_key
|
|
100
|
+
? { supabase_anon_key: payload.supabase_anon_key }
|
|
101
|
+
: {}),
|
|
102
|
+
...(typeof payload.api_url === 'string' && payload.api_url
|
|
103
|
+
? { api_url: payload.api_url }
|
|
104
|
+
: {}),
|
|
105
|
+
};
|
|
106
|
+
writeJson(res, 200, { ok: true });
|
|
107
|
+
finishWithSession(session);
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
111
|
+
writeJson(res, 400, { ok: false, error: message });
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
server.on('error', (error) => {
|
|
116
|
+
finishWithError(error instanceof Error ? error : new Error(String(error)));
|
|
117
|
+
});
|
|
118
|
+
server.listen(0, '127.0.0.1', () => {
|
|
119
|
+
const address = server.address();
|
|
120
|
+
if (!address || typeof address === 'string') {
|
|
121
|
+
finishWithError(new Error('Failed to start the local BTX login callback server.'));
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
timeout = setTimeout(() => {
|
|
125
|
+
finishWithError(new Error('Timed out waiting for the browser login to finish.'));
|
|
126
|
+
}, timeoutMs);
|
|
127
|
+
resolve({
|
|
128
|
+
port: address.port,
|
|
129
|
+
waitForSession,
|
|
130
|
+
close: () => closeServer(server),
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
function buildLoginUrl(apiUrl, port, state) {
|
|
136
|
+
const url = new URL('/auth/cli', apiUrl);
|
|
137
|
+
url.searchParams.set('port', String(port));
|
|
138
|
+
url.searchParams.set('state', state);
|
|
139
|
+
return url.toString();
|
|
140
|
+
}
|
|
141
|
+
function openInBrowser(url) {
|
|
142
|
+
const command = process.platform === 'darwin'
|
|
143
|
+
? ['open', url]
|
|
144
|
+
: process.platform === 'win32'
|
|
145
|
+
? ['cmd', '/c', 'start', '', url]
|
|
146
|
+
: ['xdg-open', url];
|
|
147
|
+
try {
|
|
148
|
+
const child = spawn(command[0], command.slice(1), {
|
|
149
|
+
detached: true,
|
|
150
|
+
stdio: 'ignore',
|
|
151
|
+
});
|
|
152
|
+
child.unref();
|
|
153
|
+
return true;
|
|
154
|
+
}
|
|
155
|
+
catch {
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
export async function loginToBtx(options) {
|
|
160
|
+
const { apiUrl, env, force = false, openBrowser = true, onBrowserLoginStart, timeoutMs = 10 * 60 * 1000, } = options;
|
|
161
|
+
const localSession = loadLocalAuthSession();
|
|
162
|
+
if (localSession && !force) {
|
|
163
|
+
setDesktopFallbackEnabled(true);
|
|
164
|
+
const normalized = normalizeStoredSession(localSession, apiUrl, env);
|
|
165
|
+
if (!sessionsEqual(localSession, normalized))
|
|
166
|
+
writeStoredAuthSession(normalized);
|
|
167
|
+
return {
|
|
168
|
+
authSource: 'local',
|
|
169
|
+
apiUrl,
|
|
170
|
+
browserOpened: false,
|
|
171
|
+
session: normalized,
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
const desktopSession = loadDesktopAuthSession();
|
|
175
|
+
if (desktopSession && !force) {
|
|
176
|
+
const normalized = normalizeStoredSession(desktopSession, apiUrl, env);
|
|
177
|
+
writeStoredAuthSession(normalized);
|
|
178
|
+
return {
|
|
179
|
+
authSource: 'desktop',
|
|
180
|
+
apiUrl,
|
|
181
|
+
browserOpened: false,
|
|
182
|
+
session: normalized,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
const state = randomUUID();
|
|
186
|
+
const pending = await createPendingLogin(state, timeoutMs);
|
|
187
|
+
const loginUrl = buildLoginUrl(apiUrl, pending.port, state);
|
|
188
|
+
const browserOpened = openBrowser ? openInBrowser(loginUrl) : false;
|
|
189
|
+
onBrowserLoginStart?.({ loginUrl, browserOpened });
|
|
190
|
+
try {
|
|
191
|
+
const session = await pending.waitForSession;
|
|
192
|
+
const normalized = normalizeStoredSession(session, apiUrl, env);
|
|
193
|
+
writeStoredAuthSession(normalized);
|
|
194
|
+
return {
|
|
195
|
+
authSource: 'browser',
|
|
196
|
+
apiUrl,
|
|
197
|
+
browserOpened,
|
|
198
|
+
loginUrl,
|
|
199
|
+
session: normalized,
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
catch (error) {
|
|
203
|
+
await pending.close().catch(() => { });
|
|
204
|
+
throw error;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
//# sourceMappingURL=login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,oBAAoB,EAEpB,sBAAsB,GACvB,MAAM,aAAa,CAAA;AAoCpB,SAAS,sBAAsB,CAC7B,OAA0B,EAC1B,MAAc,EACd,GAAkB;IAElB,OAAO;QACL,GAAG,OAAO;QACV,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,MAAM;QAClC,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,GAAG,CAAC,gBAAgB;QAC1D,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,IAAI,GAAG,CAAC,qBAAqB;KAC1E,CAAA;AACH,CAAC;AAED,SAAS,aAAa,CAAC,CAAoB,EAAE,CAAoB;IAC/D,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AAChD,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,MAAmB;IAC5C,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACrB,IAAI,KAAK;gBAAE,MAAM,CAAC,KAAK,CAAC,CAAA;;gBACnB,OAAO,EAAE,CAAA;QAChB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa,EAAE,SAAiB;IAC1D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;QAClC,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,IAAI,OAAO,GAA0B,IAAI,CAAA;QACzC,IAAI,cAAc,GAAkD,IAAI,CAAA;QACxE,IAAI,aAAa,GAAoC,IAAI,CAAA;QAEzD,MAAM,cAAc,GAAG,IAAI,OAAO,CAAoB,CAAC,cAAc,EAAE,aAAa,EAAE,EAAE;YACtF,cAAc,GAAG,cAAc,CAAA;YAC/B,aAAa,GAAG,aAAa,CAAA;QAC/B,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YACpB,IAAI,OAAO;gBAAE,YAAY,CAAC,OAAO,CAAC,CAAA;YAClC,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAC3C,CAAC,CAAC,CAAA;QAEF,SAAS,eAAe,CAAC,KAAY;YACnC,IAAI,OAAO;gBAAE,OAAM;YACnB,OAAO,GAAG,IAAI,CAAA;YACd,MAAM,CAAC,KAAK,CAAC,CAAA;YACb,aAAa,EAAE,CAAC,KAAK,CAAC,CAAA;QACxB,CAAC;QAED,SAAS,iBAAiB,CAAC,OAA0B;YACnD,IAAI,OAAO;gBAAE,OAAM;YACnB,OAAO,GAAG,IAAI,CAAA;YACd,cAAc,EAAE,CAAC,OAAO,CAAC,CAAA;QAC3B,CAAC;QAED,SAAS,SAAS,CAAC,GAAwB,EAAE,UAAkB,EAAE,IAA6B;YAC5F,GAAG,CAAC,UAAU,GAAG,UAAU,CAAA;YAC3B,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAA;YACjD,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,eAAe,CAAC,CAAA;YAC9D,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,cAAc,CAAC,CAAA;YAC7D,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;YACjD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;QAC/B,CAAC;QAED,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAChC,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC7B,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAA;gBACvB,OAAM;YACR,CAAC;YAED,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,gBAAgB,EAAE,CAAC;gBAC1D,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAA;gBACvD,OAAM;YACR,CAAC;YAED,MAAM,MAAM,GAAa,EAAE,CAAA;YAC3B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC3F,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACxB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YAC1D,CAAC,CAAC,CAAA;YACF,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACjB,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAwB,CAAA;oBACzF,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;wBAC5B,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAA;wBAC5D,OAAM;oBACR,CAAC;oBAED,MAAM,WAAW,GACf,OAAO,OAAO,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;oBAC7E,IAAI,CAAC,WAAW,EAAE,CAAC;wBACjB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAA;wBAClE,OAAM;oBACR,CAAC;oBAED,MAAM,YAAY,GAChB,OAAO,OAAO,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAA;oBACxE,MAAM,SAAS,GACb,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC;wBAC3E,CAAC,CAAC,OAAO,CAAC,UAAU;wBACpB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;oBAE1C,MAAM,OAAO,GAAsB;wBACjC,YAAY,EAAE,WAAW;wBACzB,aAAa,EAAE,YAAY;wBAC3B,UAAU,EAAE,SAAS;wBACrB,GAAG,CAAC,OAAO,OAAO,CAAC,YAAY,KAAK,QAAQ,IAAI,OAAO,CAAC,YAAY;4BAClE,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE;4BACxC,CAAC,CAAC,EAAE,CAAC;wBACP,GAAG,CAAC,OAAO,OAAO,CAAC,iBAAiB,KAAK,QAAQ,IAAI,OAAO,CAAC,iBAAiB;4BAC5E,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE;4BAClD,CAAC,CAAC,EAAE,CAAC;wBACP,GAAG,CAAC,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO;4BACxD,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;4BAC9B,CAAC,CAAC,EAAE,CAAC;qBACR,CAAA;oBAED,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;oBACjC,iBAAiB,CAAC,OAAO,CAAC,CAAA;gBAC5B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;oBACtE,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;gBACpD,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC3B,eAAe,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC5E,CAAC,CAAC,CAAA;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE;YACjC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;YAChC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC5C,eAAe,CAAC,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC,CAAA;gBAClF,OAAM;YACR,CAAC;YAED,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBACxB,eAAe,CAAC,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC,CAAA;YAClF,CAAC,EAAE,SAAS,CAAC,CAAA;YAEb,OAAO,CAAC;gBACN,IAAI,EAAG,OAAuB,CAAC,IAAI;gBACnC,cAAc;gBACd,KAAK,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC;aACjC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,MAAc,EAAE,IAAY,EAAE,KAAa;IAChE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;IACxC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;IAC1C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IACpC,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAA;AACvB,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IAChC,MAAM,OAAO,GACX,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAC3B,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC;QACf,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO;YAC5B,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC;YACjC,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;IAEzB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YAChD,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAA;QACF,KAAK,CAAC,KAAK,EAAE,CAAA;QACb,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAqB;IACpD,MAAM,EACJ,MAAM,EACN,GAAG,EACH,KAAK,GAAG,KAAK,EACb,WAAW,GAAG,IAAI,EAClB,mBAAmB,EACnB,SAAS,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAC3B,GAAG,OAAO,CAAA;IAEX,MAAM,YAAY,GAAG,oBAAoB,EAAE,CAAA;IAC3C,IAAI,YAAY,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,yBAAyB,CAAC,IAAI,CAAC,CAAA;QAC/B,MAAM,UAAU,GAAG,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;QACpE,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,UAAU,CAAC;YAAE,sBAAsB,CAAC,UAAU,CAAC,CAAA;QAChF,OAAO;YACL,UAAU,EAAE,OAAO;YACnB,MAAM;YACN,aAAa,EAAE,KAAK;YACpB,OAAO,EAAE,UAAU;SACpB,CAAA;IACH,CAAC;IAED,MAAM,cAAc,GAAG,sBAAsB,EAAE,CAAA;IAC/C,IAAI,cAAc,IAAI,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,sBAAsB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;QACtE,sBAAsB,CAAC,UAAU,CAAC,CAAA;QAClC,OAAO;YACL,UAAU,EAAE,SAAS;YACrB,MAAM;YACN,aAAa,EAAE,KAAK;YACpB,OAAO,EAAE,UAAU;SACpB,CAAA;IACH,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,EAAE,CAAA;IAC1B,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IAC1D,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAC3D,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IACnE,mBAAmB,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAA;IAElD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,cAAc,CAAA;QAC5C,MAAM,UAAU,GAAG,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;QAC/D,sBAAsB,CAAC,UAAU,CAAC,CAAA;QAClC,OAAO;YACL,UAAU,EAAE,SAAS;YACrB,MAAM;YACN,aAAa;YACb,QAAQ;YACR,OAAO,EAAE,UAAU;SACpB,CAAA;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QACrC,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@secondcontext/btx-cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"description": "BTX CLI for standalone coding sessions and the BTX desktop app",
|
|
5
5
|
"author": "Second Context",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -50,7 +50,8 @@
|
|
|
50
50
|
"pack:local": "npm pack --json",
|
|
51
51
|
"prepack": "npm run build",
|
|
52
52
|
"prepublishOnly": "npm run typecheck && npm run build",
|
|
53
|
-
"publish:dry-run": "
|
|
53
|
+
"publish:dry-run": "bash ../../scripts/publish-btx-cli.sh --dry-run",
|
|
54
|
+
"publish:registry": "bash ../../scripts/publish-btx-cli.sh",
|
|
54
55
|
"typecheck": "tsc --noEmit -p tsconfig.json"
|
|
55
56
|
}
|
|
56
57
|
}
|