@jlongo78/agent-spaces 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/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +3 -3
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/server/app/(desktop)/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/analytics.html +1 -1
- package/.next/standalone/.next/server/app/admin/analytics.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin/analytics/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/analytics.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/analytics.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/users.html +1 -1
- package/.next/standalone/.next/server/app/admin/users.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin/users/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/users.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/users.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/analytics.html +1 -1
- package/.next/standalone/.next/server/app/analytics.rsc +1 -1
- package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap/analytics/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/analytics.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/analytics.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/api/admin/analytics/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/admin/os-users/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/admin/users/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/admin/users/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/analytics/overview/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/login/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/me/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/totp/setup/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/totp/status/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/totp/verify/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/bulk/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/chat/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/claude/usage/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/config/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/events/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/folders/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/discovered/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/handshake/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/health/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/identity/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/keys/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/keys/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/nodes/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/nodes/check/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/nodes/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/panes/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/panes/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/projects/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/proxy/[nodeId]/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/search/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/sessions/[id]/messages/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/sessions/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/workspaces/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/workspaces/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/panes/[id]/diff/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/panes/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/panes/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/proxy/models/[modelId]/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/proxy/models/[modelId]/status/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/search/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/server-config/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[id]/chat/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[id]/messages/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sync/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tags/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tier/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/updates/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/whisper/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wizard/chat/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/context/[key]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/context/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/[msgId]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/[todoId]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/login.html +1 -1
- package/.next/standalone/.next/server/app/login.rsc +1 -1
- package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/projects.html +1 -1
- package/.next/standalone/.next/server/app/m/projects.rsc +1 -1
- package/.next/standalone/.next/server/app/m/projects.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/projects.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/projects.segments/m/projects/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/sessions.html +1 -1
- package/.next/standalone/.next/server/app/m/sessions.rsc +1 -1
- package/.next/standalone/.next/server/app/m/sessions.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/sessions.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/sessions.segments/m/sessions/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/settings.html +1 -1
- package/.next/standalone/.next/server/app/m/settings.rsc +1 -1
- package/.next/standalone/.next/server/app/m/settings.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/settings.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/settings.segments/m/settings/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/terminal.html +1 -1
- package/.next/standalone/.next/server/app/m/terminal.rsc +1 -1
- package/.next/standalone/.next/server/app/m/terminal.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/terminal.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/terminal.segments/m/terminal/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m.html +1 -1
- package/.next/standalone/.next/server/app/m.rsc +1 -1
- package/.next/standalone/.next/server/app/m.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m.segments/m/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/network.html +1 -1
- package/.next/standalone/.next/server/app/network.rsc +1 -1
- package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap/network/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/network.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/network.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/projects.html +1 -1
- package/.next/standalone/.next/server/app/projects.rsc +1 -1
- package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap/projects/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/projects.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/projects.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/sessions.html +1 -1
- package/.next/standalone/.next/server/app/sessions.rsc +1 -1
- package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap/sessions/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/sessions.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/sessions.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.html +1 -1
- package/.next/standalone/.next/server/app/settings.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap/settings/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/terminal.html +1 -1
- package/.next/standalone/.next/server/app/terminal.rsc +1 -1
- package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap/terminal/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/terminal.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/terminal.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/vr.html +1 -1
- package/.next/standalone/.next/server/app/vr.rsc +1 -1
- package/.next/standalone/.next/server/app/vr.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/vr.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/vr.segments/vr/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspaces.html +1 -1
- package/.next/standalone/.next/server/app/workspaces.rsc +1 -1
- package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap/workspaces/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspaces.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspaces.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/chunks/_1-inpovedul0t._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_1yl1yt70hdi7k._.js +1 -1
- package/.next/standalone/.next/server/edge/chunks/[root-of-the-server]__00lhc9vpmf8oy._.js +2 -2
- package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
- package/.next/standalone/.next/server/middleware-manifest.json +5 -5
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/preview-props.json +3 -3
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/package.json +6 -6
- package/README.md +38 -38
- package/bin/lib/cli-flags.js +1 -1
- package/bin/lib/desktop-auth.js +2 -2
- package/bin/lib/remote.js +1 -1
- package/bin/spaces-install.js +104 -11
- package/bin/spaces.js +22 -19
- package/package.json +6 -6
- /package/.next/standalone/.next/static/{azrK2W2Y6LLwO8lE1ZBlb → TUBrOcHqnnSk2PWe-0LXB}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{azrK2W2Y6LLwO8lE1ZBlb → TUBrOcHqnnSk2PWe-0LXB}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{azrK2W2Y6LLwO8lE1ZBlb → TUBrOcHqnnSk2PWe-0LXB}/_ssgManifest.js +0 -0
package/bin/spaces.js
CHANGED
|
@@ -193,18 +193,18 @@ if (cliFlags.help) {
|
|
|
193
193
|
Spaces - Agent Workspace Manager
|
|
194
194
|
|
|
195
195
|
Usage:
|
|
196
|
-
spaces
|
|
197
|
-
spaces tui
|
|
196
|
+
spaces Open the terminal client, starting the server if needed
|
|
197
|
+
spaces tui The same, and never falls back to the browser
|
|
198
198
|
spaces --remote you@host The terminal client for Spaces on another machine,
|
|
199
199
|
over SSH. Offers to install Spaces there, or to
|
|
200
200
|
update it when it is older than this machine's
|
|
201
201
|
spaces --remote you@host --yes
|
|
202
202
|
The same, installing or updating without asking
|
|
203
|
-
spaces
|
|
203
|
+
spaces web --remote you@host
|
|
204
204
|
The web app for Spaces on another machine, in your
|
|
205
205
|
browser, through an SSH tunnel (Ctrl+C closes it)
|
|
206
206
|
spaces start Start the server in the background, if it is not running
|
|
207
|
-
spaces
|
|
207
|
+
spaces web Open the web app in your browser, signed in
|
|
208
208
|
spaces signout Sign out every browser and terminal client
|
|
209
209
|
spaces stop Stop running server
|
|
210
210
|
spaces restart Restart the server (through the service, if installed)
|
|
@@ -247,11 +247,13 @@ if (cliFlags.help) {
|
|
|
247
247
|
}
|
|
248
248
|
|
|
249
249
|
// ─── Stop command ─────────────────────────────────────────
|
|
250
|
-
|
|
250
|
+
// `spaces web` was the browser command before `spaces web`; it stays as
|
|
251
|
+
// an alias, mapped here so nothing below has to know.
|
|
252
|
+
const subcommand = args[0] === 'open' ? 'web' : args[0];
|
|
251
253
|
// `--remote` means "the terminal client, over there". With any other command
|
|
252
254
|
// it would be silently ignored and the command would run here instead.
|
|
253
|
-
if (cliFlags.remote && subcommand && subcommand !== 'tui' && subcommand !== '
|
|
254
|
-
console.error(` --remote works with "spaces", "spaces tui" and "spaces
|
|
255
|
+
if (cliFlags.remote && subcommand && subcommand !== 'tui' && subcommand !== 'web' && !subcommand.startsWith('-')) {
|
|
256
|
+
console.error(` --remote works with "spaces", "spaces tui" and "spaces web", not "spaces ${subcommand}".`);
|
|
255
257
|
console.error(` To run that on the other machine: ssh ${cliFlags.remote} spaces ${subcommand}`);
|
|
256
258
|
process.exit(2);
|
|
257
259
|
}
|
|
@@ -308,7 +310,7 @@ if (subcommand === 'service') {
|
|
|
308
310
|
}
|
|
309
311
|
|
|
310
312
|
// ─── Route tui to the platform terminal-client binary ─────
|
|
311
|
-
if (subcommand === 'tui' || (cliFlags.remote && subcommand !== '
|
|
313
|
+
if (subcommand === 'tui' || (cliFlags.remote && subcommand !== 'web')) {
|
|
312
314
|
// Explicit `spaces tui` never silently opens a browser: the user asked
|
|
313
315
|
// for the terminal client by name, so a failure is reported as one. Bare
|
|
314
316
|
// `spaces --remote host` asks for the same thing.
|
|
@@ -332,11 +334,11 @@ if (subcommand === 'signout') {
|
|
|
332
334
|
}
|
|
333
335
|
|
|
334
336
|
// ─── Open the web app, signed in / setup wizard / server ──
|
|
335
|
-
if (subcommand === '
|
|
337
|
+
if (subcommand === 'web' && cliFlags.remote) {
|
|
336
338
|
// Waits for the tunnel on the event loop: part of this chain for the
|
|
337
339
|
// same reason as `open` below.
|
|
338
340
|
openRemote(cliFlags.remote);
|
|
339
|
-
} else if (subcommand === '
|
|
341
|
+
} else if (subcommand === 'web') {
|
|
340
342
|
// Exits by itself: at once, or on Linux once the timer that removes the
|
|
341
343
|
// sign-in redirect page fires. Part of this chain so it no longer falls
|
|
342
344
|
// through to "Unknown command" while that timer is pending.
|
|
@@ -609,8 +611,8 @@ function startDetached(startArgs) {
|
|
|
609
611
|
const session = desktopSessionToken();
|
|
610
612
|
if (session) console.log(`SPACES_TOKEN=${session}`);
|
|
611
613
|
}
|
|
612
|
-
// `spaces
|
|
613
|
-
// `spaces
|
|
614
|
+
// `spaces web --remote` asks for this: a browser sign-in code, the kind
|
|
615
|
+
// `spaces web` puts in its link (one use, two minutes), and the path the
|
|
614
616
|
// web app is served under. The secret itself never leaves this machine.
|
|
615
617
|
if (!multiuser && startArgs.includes('--print-login')) {
|
|
616
618
|
if (!listenerIsMine(port)) refuseForeignListener(port);
|
|
@@ -706,7 +708,7 @@ function signInUrl(port, basePath, secret) {
|
|
|
706
708
|
}
|
|
707
709
|
|
|
708
710
|
/**
|
|
709
|
-
* `spaces
|
|
711
|
+
* `spaces web`: starts the server if needed and opens the web app in the
|
|
710
712
|
* browser, already signed in through a one-time link.
|
|
711
713
|
*/
|
|
712
714
|
function openSignedIn() {
|
|
@@ -762,7 +764,7 @@ function signOutEverywhere() {
|
|
|
762
764
|
console.log(' If Spaces runs as a service, restart the service too, so it picks up the new secret.');
|
|
763
765
|
}
|
|
764
766
|
console.log(' Signed out everywhere: every browser, terminal client and remote session.');
|
|
765
|
-
console.log(' Run "spaces
|
|
767
|
+
console.log(' Run "spaces web" or "spaces tui" to sign in again.');
|
|
766
768
|
process.exit(0);
|
|
767
769
|
}
|
|
768
770
|
|
|
@@ -837,7 +839,7 @@ function launchRemote(dest, tuiArgs) {
|
|
|
837
839
|
}
|
|
838
840
|
|
|
839
841
|
/**
|
|
840
|
-
* What `spaces --remote` and `spaces
|
|
842
|
+
* What `spaces --remote` and `spaces web --remote` share: Spaces running on
|
|
841
843
|
* `dest` (installed or updated first, with the user's say-so) and an SSH
|
|
842
844
|
* tunnel to it from a local port. `login` also asks for a browser sign-in
|
|
843
845
|
* code; `localPort` is tried before any free port. Returns what `spaces
|
|
@@ -963,7 +965,7 @@ function localPortIsFree(port) {
|
|
|
963
965
|
}
|
|
964
966
|
|
|
965
967
|
/**
|
|
966
|
-
* `spaces
|
|
968
|
+
* `spaces web --remote <dest>`: the web app for Spaces on another machine.
|
|
967
969
|
* Connects as `spaces --remote` does, then signs the browser in through
|
|
968
970
|
* the tunnel with a one-time code made over there, and keeps the tunnel up
|
|
969
971
|
* until Ctrl+C.
|
|
@@ -1365,7 +1367,8 @@ function startServer() {
|
|
|
1365
1367
|
},
|
|
1366
1368
|
});
|
|
1367
1369
|
} else {
|
|
1368
|
-
|
|
1370
|
+
// One command line: a list of arguments to a shell draws Node's DEP0190.
|
|
1371
|
+
next = spawn(`npx next start --port ${Number(NEXT_INTERNAL_PORT)}`, {
|
|
1369
1372
|
cwd: projectDir,
|
|
1370
1373
|
stdio: ['ignore', 'pipe', 'pipe'],
|
|
1371
1374
|
windowsHide: true,
|
|
@@ -1428,7 +1431,7 @@ function startServer() {
|
|
|
1428
1431
|
if (!(isMultiuser ? openInBrowser(url) : openSignInLink(url))) {
|
|
1429
1432
|
console.log(isMultiuser
|
|
1430
1433
|
? ` Open ${url} in your browser`
|
|
1431
|
-
: ' Run "spaces
|
|
1434
|
+
: ' Run "spaces web" to open Spaces in your browser, signed in.');
|
|
1432
1435
|
}
|
|
1433
1436
|
}
|
|
1434
1437
|
}
|
|
@@ -1514,7 +1517,7 @@ function startServer() {
|
|
|
1514
1517
|
const headers = { 'Cache-Control': 'no-store', 'Referrer-Policy': 'no-referrer' };
|
|
1515
1518
|
if (req.method !== 'GET' || !loginCodes.redeem(code)) {
|
|
1516
1519
|
res.writeHead(401, { ...headers, 'Content-Type': 'text/plain; charset=utf-8' });
|
|
1517
|
-
res.end('This sign-in link has expired or was already used. Run "spaces
|
|
1520
|
+
res.end('This sign-in link has expired or was already used. Run "spaces web" for a new one.');
|
|
1518
1521
|
return;
|
|
1519
1522
|
}
|
|
1520
1523
|
const session = desktopAuth.signDesktop(internalToken, 'session', desktopAuth.SESSION_TTL_S);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jlongo78/agent-spaces",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.9",
|
|
4
4
|
"description": "Agent workspace manager for Claude, Codex, Gemini, and more",
|
|
5
5
|
"bin": {
|
|
6
6
|
"spaces": "./bin/spaces.js",
|
|
@@ -122,11 +122,11 @@
|
|
|
122
122
|
"xterm": "^5.3.0"
|
|
123
123
|
},
|
|
124
124
|
"optionalDependencies": {
|
|
125
|
-
"@jlongo78/agent-spaces-tui-darwin-arm64": "1.0.
|
|
126
|
-
"@jlongo78/agent-spaces-tui-darwin-x64": "1.0.
|
|
127
|
-
"@jlongo78/agent-spaces-tui-linux-arm64": "1.0.
|
|
128
|
-
"@jlongo78/agent-spaces-tui-linux-x64": "1.0.
|
|
129
|
-
"@jlongo78/agent-spaces-tui-win32-x64": "1.0.
|
|
125
|
+
"@jlongo78/agent-spaces-tui-darwin-arm64": "1.0.9",
|
|
126
|
+
"@jlongo78/agent-spaces-tui-darwin-x64": "1.0.9",
|
|
127
|
+
"@jlongo78/agent-spaces-tui-linux-arm64": "1.0.9",
|
|
128
|
+
"@jlongo78/agent-spaces-tui-linux-x64": "1.0.9",
|
|
129
|
+
"@jlongo78/agent-spaces-tui-win32-x64": "1.0.9",
|
|
130
130
|
"otpauth": "^9.5.0",
|
|
131
131
|
"qrcode": "^1.5.4"
|
|
132
132
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|