@craftspace/cli 0.4.2 → 0.4.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/dist/index.js CHANGED
@@ -19783,7 +19783,7 @@ var SaveWorkstationBodySchema = external_exports.object({
19783
19783
  var WorkstationResponseSchema = external_exports.object({ workstation: WorkstationSchema });
19784
19784
 
19785
19785
  // ../../shared/dist/machines/machine.js
19786
- var CLI_VERSION = "0.4.2";
19786
+ var CLI_VERSION = "0.4.3";
19787
19787
  var CLI_PACKAGE = "@craftspace/cli";
19788
19788
  var CLI_INSTALL = `npm i -g ${CLI_PACKAGE}`;
19789
19789
  var MACHINE_BEAT_INTERVAL_MS = 15e3;
@@ -23268,7 +23268,10 @@ ${ui.dim("\u2192")} ${ui.name(target.name)} ${ui.dim(`\xB7 ${where}`)}
23268
23268
 
23269
23269
  `);
23270
23270
  return new Promise((resolve) => {
23271
- const session = spawn2("ssh", ["-t", where], { stdio: "inherit" });
23271
+ const session = spawn2("ssh", ["-t", where], {
23272
+ stdio: "inherit",
23273
+ env: { ...process.env, TERM: portableTerm(process.env.TERM) }
23274
+ });
23272
23275
  session.on("error", (error51) => {
23273
23276
  ui.say(ui.bad(`could not start ssh`, error51.message));
23274
23277
  resolve(1);
@@ -23276,6 +23279,9 @@ ${ui.dim("\u2192")} ${ui.name(target.name)} ${ui.dim(`\xB7 ${where}`)}
23276
23279
  session.on("exit", (code) => resolve(code ?? 0));
23277
23280
  });
23278
23281
  }
23282
+ function portableTerm(local) {
23283
+ return local !== void 0 && PORTABLE_TERMS.has(local) ? local : "xterm-256color";
23284
+ }
23279
23285
  function nowhereToGo({ url: url2 }) {
23280
23286
  ui.say(`
23281
23287
  ${ui.attention("No workstations here yet.")}
@@ -23605,6 +23611,21 @@ var KEYS_BEGIN = "# craftspace begin";
23605
23611
  var KEYS_END = "# craftspace end";
23606
23612
  var UPDATE_EVERY_MS = 6 * 60 * 60 * 1e3;
23607
23613
  var BEATING = "beating every 15s, outbound only, and keeps this set up";
23614
+ var PORTABLE_TERMS = /* @__PURE__ */ new Set([
23615
+ "ansi",
23616
+ "dumb",
23617
+ "linux",
23618
+ "rxvt",
23619
+ "rxvt-unicode",
23620
+ "rxvt-unicode-256color",
23621
+ "screen",
23622
+ "screen-256color",
23623
+ "vt100",
23624
+ "vt220",
23625
+ "xterm",
23626
+ "xterm-color",
23627
+ "xterm-256color"
23628
+ ]);
23608
23629
  var LINGER_LINE = `sudo loginctl enable-linger ${os5.userInfo().username}`;
23609
23630
  var DEFAULT_URL = process.env.CRAFTSPACE_URL ?? "https://craftspace.app";
23610
23631
  var PROBE_EVERY_MS = 3e5;
package/dist/machine.d.ts CHANGED
@@ -25,6 +25,7 @@ export declare const machine: {
25
25
  }>;
26
26
  logout(): Promise<void>;
27
27
  };
28
+ export declare function portableTerm(local: string | undefined): string;
28
29
  export declare function tokenIn(line: string): string | undefined;
29
30
  export declare function nextDelayMs(failures: number, busy?: boolean): number;
30
31
  interface Auth {
package/dist/machine.js CHANGED
@@ -197,7 +197,10 @@ async function openTerminal(target) {
197
197
  const where = `${target.sshUser ?? 'root'}@${target.sshAddress}`;
198
198
  ui.say(`\n${ui.dim('\u2192')} ${ui.name(target.name)} ${ui.dim(`\u00b7 ${where}`)}\n\n`);
199
199
  return new Promise((resolve) => {
200
- const session = spawn('ssh', ['-t', where], { stdio: 'inherit' });
200
+ const session = spawn('ssh', ['-t', where], {
201
+ stdio: 'inherit',
202
+ env: { ...process.env, TERM: portableTerm(process.env.TERM) },
203
+ });
201
204
  session.on('error', (error) => {
202
205
  ui.say(ui.bad(`could not start ssh`, error.message));
203
206
  resolve(1);
@@ -205,6 +208,9 @@ async function openTerminal(target) {
205
208
  session.on('exit', (code) => resolve(code ?? 0));
206
209
  });
207
210
  }
211
+ export function portableTerm(local) {
212
+ return local !== undefined && PORTABLE_TERMS.has(local) ? local : 'xterm-256color';
213
+ }
208
214
  function nowhereToGo({ url }) {
209
215
  ui.say(`\n${ui.attention('No workstations here yet.')}\n\n`);
210
216
  ui.say(ui.field('Add one', ui.link(`${url}/workstations`)));
@@ -525,6 +531,21 @@ const KEYS_BEGIN = '# craftspace begin';
525
531
  const KEYS_END = '# craftspace end';
526
532
  const UPDATE_EVERY_MS = 6 * 60 * 60 * 1_000;
527
533
  const BEATING = 'beating every 15s, outbound only, and keeps this set up';
534
+ const PORTABLE_TERMS = new Set([
535
+ 'ansi',
536
+ 'dumb',
537
+ 'linux',
538
+ 'rxvt',
539
+ 'rxvt-unicode',
540
+ 'rxvt-unicode-256color',
541
+ 'screen',
542
+ 'screen-256color',
543
+ 'vt100',
544
+ 'vt220',
545
+ 'xterm',
546
+ 'xterm-color',
547
+ 'xterm-256color',
548
+ ]);
528
549
  const LINGER_LINE = `sudo loginctl enable-linger ${os.userInfo().username}`;
529
550
  const DEFAULT_URL = process.env.CRAFTSPACE_URL ?? 'https://craftspace.app';
530
551
  const PROBE_EVERY_MS = 300_000;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@craftspace/cli",
3
- "version": "0.4.2",
3
+ "version": "0.4.3",
4
4
  "type": "module",
5
5
  "description": "Sign a Mac or Linux machine into Craftspace and keep its agent setup in step.",
6
6
  "license": "MIT",