@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.
Files changed (179) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +3 -3
  3. package/.next/standalone/.next/prerender-manifest.json +3 -3
  4. package/.next/standalone/.next/server/app/(desktop)/page.js.nft.json +1 -1
  5. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  6. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  7. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  10. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  11. package/.next/standalone/.next/server/app/_not-found.rsc +1 -1
  12. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  13. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  14. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  15. package/.next/standalone/.next/server/app/admin/analytics.html +1 -1
  16. package/.next/standalone/.next/server/app/admin/analytics.rsc +1 -1
  17. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin/analytics/__PAGE__.segment.rsc +1 -1
  18. package/.next/standalone/.next/server/app/admin/analytics.segments/_full.segment.rsc +1 -1
  19. package/.next/standalone/.next/server/app/admin/analytics.segments/_tree.segment.rsc +1 -1
  20. package/.next/standalone/.next/server/app/admin/users.html +1 -1
  21. package/.next/standalone/.next/server/app/admin/users.rsc +1 -1
  22. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin/users/__PAGE__.segment.rsc +1 -1
  23. package/.next/standalone/.next/server/app/admin/users.segments/_full.segment.rsc +1 -1
  24. package/.next/standalone/.next/server/app/admin/users.segments/_tree.segment.rsc +1 -1
  25. package/.next/standalone/.next/server/app/analytics.html +1 -1
  26. package/.next/standalone/.next/server/app/analytics.rsc +1 -1
  27. package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap/analytics/__PAGE__.segment.rsc +1 -1
  28. package/.next/standalone/.next/server/app/analytics.segments/_full.segment.rsc +1 -1
  29. package/.next/standalone/.next/server/app/analytics.segments/_tree.segment.rsc +1 -1
  30. package/.next/standalone/.next/server/app/api/admin/analytics/route.js.nft.json +1 -1
  31. package/.next/standalone/.next/server/app/api/admin/os-users/route.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/api/admin/users/[id]/route.js.nft.json +1 -1
  33. package/.next/standalone/.next/server/app/api/admin/users/route.js.nft.json +1 -1
  34. package/.next/standalone/.next/server/app/api/analytics/overview/route.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/api/auth/login/route.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/api/auth/me/route.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/api/auth/totp/setup/route.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/api/auth/totp/status/route.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/api/auth/totp/verify/route.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/api/bulk/route.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/api/chat/route.js.nft.json +1 -1
  43. package/.next/standalone/.next/server/app/api/claude/usage/route.js.nft.json +1 -1
  44. package/.next/standalone/.next/server/app/api/config/route.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/api/events/route.js.nft.json +1 -1
  46. package/.next/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  47. package/.next/standalone/.next/server/app/api/folders/route.js.nft.json +1 -1
  48. package/.next/standalone/.next/server/app/api/network/discovered/route.js.nft.json +1 -1
  49. package/.next/standalone/.next/server/app/api/network/handshake/route.js.nft.json +1 -1
  50. package/.next/standalone/.next/server/app/api/network/health/route.js.nft.json +1 -1
  51. package/.next/standalone/.next/server/app/api/network/identity/route.js.nft.json +1 -1
  52. package/.next/standalone/.next/server/app/api/network/keys/[id]/route.js.nft.json +1 -1
  53. package/.next/standalone/.next/server/app/api/network/keys/route.js.nft.json +1 -1
  54. package/.next/standalone/.next/server/app/api/network/nodes/[id]/route.js.nft.json +1 -1
  55. package/.next/standalone/.next/server/app/api/network/nodes/check/route.js.nft.json +1 -1
  56. package/.next/standalone/.next/server/app/api/network/nodes/route.js.nft.json +1 -1
  57. package/.next/standalone/.next/server/app/api/network/panes/[id]/route.js.nft.json +1 -1
  58. package/.next/standalone/.next/server/app/api/network/panes/route.js.nft.json +1 -1
  59. package/.next/standalone/.next/server/app/api/network/projects/route.js.nft.json +1 -1
  60. package/.next/standalone/.next/server/app/api/network/proxy/[nodeId]/[...path]/route.js.nft.json +1 -1
  61. package/.next/standalone/.next/server/app/api/network/search/route.js.nft.json +1 -1
  62. package/.next/standalone/.next/server/app/api/network/sessions/[id]/messages/route.js.nft.json +1 -1
  63. package/.next/standalone/.next/server/app/api/network/sessions/[id]/route.js.nft.json +1 -1
  64. package/.next/standalone/.next/server/app/api/network/sessions/route.js.nft.json +1 -1
  65. package/.next/standalone/.next/server/app/api/network/workspaces/[id]/route.js.nft.json +1 -1
  66. package/.next/standalone/.next/server/app/api/network/workspaces/route.js.nft.json +1 -1
  67. package/.next/standalone/.next/server/app/api/panes/[id]/diff/route.js.nft.json +1 -1
  68. package/.next/standalone/.next/server/app/api/panes/[id]/route.js.nft.json +1 -1
  69. package/.next/standalone/.next/server/app/api/panes/route.js.nft.json +1 -1
  70. package/.next/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  71. package/.next/standalone/.next/server/app/api/proxy/models/[modelId]/[...path]/route.js.nft.json +1 -1
  72. package/.next/standalone/.next/server/app/api/proxy/models/[modelId]/status/route.js.nft.json +1 -1
  73. package/.next/standalone/.next/server/app/api/search/route.js.nft.json +1 -1
  74. package/.next/standalone/.next/server/app/api/server-config/route.js.nft.json +1 -1
  75. package/.next/standalone/.next/server/app/api/sessions/[id]/chat/route.js.nft.json +1 -1
  76. package/.next/standalone/.next/server/app/api/sessions/[id]/messages/route.js.nft.json +1 -1
  77. package/.next/standalone/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  78. package/.next/standalone/.next/server/app/api/sessions/route.js.nft.json +1 -1
  79. package/.next/standalone/.next/server/app/api/sync/route.js.nft.json +1 -1
  80. package/.next/standalone/.next/server/app/api/tags/route.js.nft.json +1 -1
  81. package/.next/standalone/.next/server/app/api/tier/route.js.nft.json +1 -1
  82. package/.next/standalone/.next/server/app/api/updates/route.js.nft.json +1 -1
  83. package/.next/standalone/.next/server/app/api/whisper/route.js.nft.json +1 -1
  84. package/.next/standalone/.next/server/app/api/wizard/chat/route.js.nft.json +1 -1
  85. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/[key]/route.js.nft.json +1 -1
  86. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/route.js.nft.json +1 -1
  87. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/[msgId]/route.js.nft.json +1 -1
  88. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/route.js.nft.json +1 -1
  89. package/.next/standalone/.next/server/app/api/workspaces/[id]/route.js.nft.json +1 -1
  90. package/.next/standalone/.next/server/app/api/workspaces/[id]/sessions/route.js.nft.json +1 -1
  91. package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/[todoId]/route.js.nft.json +1 -1
  92. package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/route.js.nft.json +1 -1
  93. package/.next/standalone/.next/server/app/api/workspaces/route.js.nft.json +1 -1
  94. package/.next/standalone/.next/server/app/login.html +1 -1
  95. package/.next/standalone/.next/server/app/login.rsc +1 -1
  96. package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +1 -1
  97. package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  98. package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  99. package/.next/standalone/.next/server/app/m/projects.html +1 -1
  100. package/.next/standalone/.next/server/app/m/projects.rsc +1 -1
  101. package/.next/standalone/.next/server/app/m/projects.segments/_full.segment.rsc +1 -1
  102. package/.next/standalone/.next/server/app/m/projects.segments/_tree.segment.rsc +1 -1
  103. package/.next/standalone/.next/server/app/m/projects.segments/m/projects/__PAGE__.segment.rsc +1 -1
  104. package/.next/standalone/.next/server/app/m/sessions.html +1 -1
  105. package/.next/standalone/.next/server/app/m/sessions.rsc +1 -1
  106. package/.next/standalone/.next/server/app/m/sessions.segments/_full.segment.rsc +1 -1
  107. package/.next/standalone/.next/server/app/m/sessions.segments/_tree.segment.rsc +1 -1
  108. package/.next/standalone/.next/server/app/m/sessions.segments/m/sessions/__PAGE__.segment.rsc +1 -1
  109. package/.next/standalone/.next/server/app/m/settings.html +1 -1
  110. package/.next/standalone/.next/server/app/m/settings.rsc +1 -1
  111. package/.next/standalone/.next/server/app/m/settings.segments/_full.segment.rsc +1 -1
  112. package/.next/standalone/.next/server/app/m/settings.segments/_tree.segment.rsc +1 -1
  113. package/.next/standalone/.next/server/app/m/settings.segments/m/settings/__PAGE__.segment.rsc +1 -1
  114. package/.next/standalone/.next/server/app/m/terminal.html +1 -1
  115. package/.next/standalone/.next/server/app/m/terminal.rsc +1 -1
  116. package/.next/standalone/.next/server/app/m/terminal.segments/_full.segment.rsc +1 -1
  117. package/.next/standalone/.next/server/app/m/terminal.segments/_tree.segment.rsc +1 -1
  118. package/.next/standalone/.next/server/app/m/terminal.segments/m/terminal/__PAGE__.segment.rsc +1 -1
  119. package/.next/standalone/.next/server/app/m.html +1 -1
  120. package/.next/standalone/.next/server/app/m.rsc +1 -1
  121. package/.next/standalone/.next/server/app/m.segments/_full.segment.rsc +1 -1
  122. package/.next/standalone/.next/server/app/m.segments/_tree.segment.rsc +1 -1
  123. package/.next/standalone/.next/server/app/m.segments/m/__PAGE__.segment.rsc +1 -1
  124. package/.next/standalone/.next/server/app/network.html +1 -1
  125. package/.next/standalone/.next/server/app/network.rsc +1 -1
  126. package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap/network/__PAGE__.segment.rsc +1 -1
  127. package/.next/standalone/.next/server/app/network.segments/_full.segment.rsc +1 -1
  128. package/.next/standalone/.next/server/app/network.segments/_tree.segment.rsc +1 -1
  129. package/.next/standalone/.next/server/app/projects.html +1 -1
  130. package/.next/standalone/.next/server/app/projects.rsc +1 -1
  131. package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap/projects/__PAGE__.segment.rsc +1 -1
  132. package/.next/standalone/.next/server/app/projects.segments/_full.segment.rsc +1 -1
  133. package/.next/standalone/.next/server/app/projects.segments/_tree.segment.rsc +1 -1
  134. package/.next/standalone/.next/server/app/sessions.html +1 -1
  135. package/.next/standalone/.next/server/app/sessions.rsc +1 -1
  136. package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap/sessions/__PAGE__.segment.rsc +1 -1
  137. package/.next/standalone/.next/server/app/sessions.segments/_full.segment.rsc +1 -1
  138. package/.next/standalone/.next/server/app/sessions.segments/_tree.segment.rsc +1 -1
  139. package/.next/standalone/.next/server/app/settings.html +1 -1
  140. package/.next/standalone/.next/server/app/settings.rsc +1 -1
  141. package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap/settings/__PAGE__.segment.rsc +1 -1
  142. package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +1 -1
  143. package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  144. package/.next/standalone/.next/server/app/terminal.html +1 -1
  145. package/.next/standalone/.next/server/app/terminal.rsc +1 -1
  146. package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap/terminal/__PAGE__.segment.rsc +1 -1
  147. package/.next/standalone/.next/server/app/terminal.segments/_full.segment.rsc +1 -1
  148. package/.next/standalone/.next/server/app/terminal.segments/_tree.segment.rsc +1 -1
  149. package/.next/standalone/.next/server/app/vr.html +1 -1
  150. package/.next/standalone/.next/server/app/vr.rsc +1 -1
  151. package/.next/standalone/.next/server/app/vr.segments/_full.segment.rsc +1 -1
  152. package/.next/standalone/.next/server/app/vr.segments/_tree.segment.rsc +1 -1
  153. package/.next/standalone/.next/server/app/vr.segments/vr/__PAGE__.segment.rsc +1 -1
  154. package/.next/standalone/.next/server/app/workspaces.html +1 -1
  155. package/.next/standalone/.next/server/app/workspaces.rsc +1 -1
  156. package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap/workspaces/__PAGE__.segment.rsc +1 -1
  157. package/.next/standalone/.next/server/app/workspaces.segments/_full.segment.rsc +1 -1
  158. package/.next/standalone/.next/server/app/workspaces.segments/_tree.segment.rsc +1 -1
  159. package/.next/standalone/.next/server/chunks/_1-inpovedul0t._.js +1 -1
  160. package/.next/standalone/.next/server/chunks/ssr/_1yl1yt70hdi7k._.js +1 -1
  161. package/.next/standalone/.next/server/edge/chunks/[root-of-the-server]__00lhc9vpmf8oy._.js +2 -2
  162. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  163. package/.next/standalone/.next/server/middleware-manifest.json +5 -5
  164. package/.next/standalone/.next/server/pages/404.html +1 -1
  165. package/.next/standalone/.next/server/pages/500.html +1 -1
  166. package/.next/standalone/.next/server/preview-props.json +3 -3
  167. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  168. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  169. package/.next/standalone/package.json +6 -6
  170. package/README.md +38 -38
  171. package/bin/lib/cli-flags.js +1 -1
  172. package/bin/lib/desktop-auth.js +2 -2
  173. package/bin/lib/remote.js +1 -1
  174. package/bin/spaces-install.js +104 -11
  175. package/bin/spaces.js +22 -19
  176. package/package.json +6 -6
  177. /package/.next/standalone/.next/static/{azrK2W2Y6LLwO8lE1ZBlb → TUBrOcHqnnSk2PWe-0LXB}/_buildManifest.js +0 -0
  178. /package/.next/standalone/.next/static/{azrK2W2Y6LLwO8lE1ZBlb → TUBrOcHqnnSk2PWe-0LXB}/_clientMiddlewareManifest.js +0 -0
  179. /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 Start the server (desktop mode by default)
197
- spaces tui Launch the terminal client
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 open --remote you@host
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 open Open the web app in your browser, signed in
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
- const subcommand = args[0];
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 !== 'open' && !subcommand.startsWith('-')) {
254
- console.error(` --remote works with "spaces", "spaces tui" and "spaces open", not "spaces ${subcommand}".`);
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 !== 'open')) {
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 === 'open' && cliFlags.remote) {
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 === 'open') {
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 open --remote` asks for this: a browser sign-in code, the kind
613
- // `spaces open` puts in its link (one use, two minutes), and the path the
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 open`: starts the server if needed and opens the web app in the
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 open" or "spaces tui" to sign in again.');
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 open --remote` share: Spaces running on
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 open --remote <dest>`: the web app for Spaces on another machine.
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
- next = spawn('npx', ['next', 'start', '--port', String(NEXT_INTERNAL_PORT)], {
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 open" to open Spaces in your browser, signed in.');
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 open" for a new one.');
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.7",
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.7",
126
- "@jlongo78/agent-spaces-tui-darwin-x64": "1.0.7",
127
- "@jlongo78/agent-spaces-tui-linux-arm64": "1.0.7",
128
- "@jlongo78/agent-spaces-tui-linux-x64": "1.0.7",
129
- "@jlongo78/agent-spaces-tui-win32-x64": "1.0.7",
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
  }